mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-23 23:42:43 +00:00
bcm63xx: nand: support Sercomm firmwares
Add support for Sercomm factory firmwares (AES 256 CBC encrypted). Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
This commit is contained in:
parent
4b2fe12953
commit
f263a0f9ff
@ -223,6 +223,64 @@ define Build/cfe-part-tag
|
|||||||
dd if=$@.part >> $@
|
dd if=$@.part >> $@
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define Build/cfe-sercomm-part
|
||||||
|
$(TOPDIR)/scripts/sercomm-partition-tag.py \
|
||||||
|
--input-file $@ \
|
||||||
|
--output-file $@.kernel_rootfs \
|
||||||
|
--part-name kernel_rootfs \
|
||||||
|
--part-version OpenWrt \
|
||||||
|
--rootfs-version $(SERCOMM_VERSION)
|
||||||
|
|
||||||
|
rm -rf $@-rootfs_lib
|
||||||
|
mkdir -p $@-rootfs_lib
|
||||||
|
echo $(SERCOMM_VERSION) > $@-rootfs_lib/lib_ver
|
||||||
|
$(call Build/cfe-jffs2,$@-rootfs_lib)
|
||||||
|
$(call Build/pad-to,$(BLOCKSIZE))
|
||||||
|
$(TOPDIR)/scripts/sercomm-partition-tag.py \
|
||||||
|
--input-file $@ \
|
||||||
|
--output-file $@.rootfs_lib \
|
||||||
|
--part-name rootfs_lib \
|
||||||
|
--part-version $(SERCOMM_VERSION)
|
||||||
|
|
||||||
|
rm -rf $@-bootloader
|
||||||
|
mkdir -p $@-bootloader
|
||||||
|
cp $(KDIR)/bcm63xx-cfe/$(CFE_RAM_FILE) $@-bootloader/$(CFE_RAM_JFFS2_NAME)
|
||||||
|
$(call Build/cfe-jffs2,$@-bootloader)
|
||||||
|
$(call Build/pad-to,$(BLOCKSIZE))
|
||||||
|
$(TOPDIR)/scripts/sercomm-partition-tag.py \
|
||||||
|
--input-file $@ \
|
||||||
|
--output-file $@.bootloader \
|
||||||
|
--part-name bootloader \
|
||||||
|
--part-version $(SERCOMM_VERSION)
|
||||||
|
|
||||||
|
mv $@.kernel_rootfs $@
|
||||||
|
dd if=$@.rootfs_lib >> $@
|
||||||
|
dd if=$@.bootloader >> $@
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Build/cfe-sercomm-load
|
||||||
|
mv $@ $@.ser
|
||||||
|
echo $(SERCOMM_PID) | xxd -p -r > $@
|
||||||
|
sha256sum $@.ser | awk '{ print $1 }' | xxd -p -r >> $@
|
||||||
|
dd if=$@.ser >> $@
|
||||||
|
rm -f $@.ser
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Build/cfe-sercomm-crypto
|
||||||
|
$(TOPDIR)/scripts/sercomm-crypto.py \
|
||||||
|
--input-file $@ \
|
||||||
|
--key-file $@.key \
|
||||||
|
--output-file $@.ser \
|
||||||
|
--version OpenWrt
|
||||||
|
$(STAGING_DIR_HOST)/bin/openssl enc -md md5 -aes-256-cbc \
|
||||||
|
-in $@ -out $@.enc \
|
||||||
|
-K `cat $@.key` \
|
||||||
|
-iv 00000000000000000000000000000000
|
||||||
|
dd if=$@.enc >> $@.ser
|
||||||
|
mv $@.ser $@
|
||||||
|
rm -f $@.enc $@.key
|
||||||
|
endef
|
||||||
|
|
||||||
define Build/cfe-old-bin
|
define Build/cfe-old-bin
|
||||||
$(TOPDIR)/scripts/brcmImage.pl -t -p \
|
$(TOPDIR)/scripts/brcmImage.pl -t -p \
|
||||||
-o $@ -b $(CFE_BOARD_ID) -c $(CHIP_ID) \
|
-o $@ -b $(CFE_BOARD_ID) -c $(CHIP_ID) \
|
||||||
|
@ -7,6 +7,7 @@ DEVICE_VARS += CFE_RAM_FILE
|
|||||||
DEVICE_VARS += CFE_RAM_JFFS2_NAME CFE_RAM_JFFS2_PAD
|
DEVICE_VARS += CFE_RAM_JFFS2_NAME CFE_RAM_JFFS2_PAD
|
||||||
DEVICE_VARS += CFE_WFI_CHIP_ID CFE_WFI_FLASH_TYPE
|
DEVICE_VARS += CFE_WFI_CHIP_ID CFE_WFI_FLASH_TYPE
|
||||||
DEVICE_VARS += CFE_WFI_FLAGS CFE_WFI_VERSION
|
DEVICE_VARS += CFE_WFI_FLAGS CFE_WFI_VERSION
|
||||||
|
DEVICE_VARS += SERCOMM_PID SERCOMM_VERSION
|
||||||
|
|
||||||
# CFE expects a single JFFS2 partition with cferam and kernel. However,
|
# CFE expects a single JFFS2 partition with cferam and kernel. However,
|
||||||
# it's possible to fool CFE into properly loading both cferam and kernel
|
# it's possible to fool CFE into properly loading both cferam and kernel
|
||||||
@ -36,6 +37,14 @@ define Device/bcm63xx-nand
|
|||||||
SUPPORTED_DEVICES := $(subst _,$(comma),$(1))
|
SUPPORTED_DEVICES := $(subst _,$(comma),$(1))
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define Device/sercomm-nand
|
||||||
|
$(Device/bcm63xx-nand)
|
||||||
|
IMAGES += factory.img
|
||||||
|
IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | cfe-sercomm-part | gzip | cfe-sercomm-load | cfe-sercomm-crypto
|
||||||
|
SERCOM_PID :=
|
||||||
|
SERCOMM_VERSION :=
|
||||||
|
endef
|
||||||
|
|
||||||
### Comtrend ###
|
### Comtrend ###
|
||||||
define Device/comtrend_vr-3032u
|
define Device/comtrend_vr-3032u
|
||||||
$(Device/bcm63xx-nand)
|
$(Device/bcm63xx-nand)
|
||||||
|
Loading…
Reference in New Issue
Block a user