bcm63xx: image: don't add the CFE to the sercomm factory
[openwrt/staging/blocktrron.git] / target / linux / bcm63xx / image / Makefile
index e392d99f2c544370851527b6ddda714b8b5a961e..294db6eb32d81df3f3555b88db1fcf2ab62cf2ee 100644 (file)
@@ -15,9 +15,11 @@ LZMA_TEXT_START = 0x81800000         # 32MB - 8MB
 
 LOADER_MAKEOPTS= \
                KDIR=$(KDIR) \
-               LOADADDR=$(KERNEL_LOADADDR) \
+               LOADER_ADDR=$(LOADER_ENTRY) \
+               KERNEL_ADDR=$(KERNEL_LOADADDR) \
                RAMSIZE=$(RAMSIZE) \
-               LZMA_TEXT_START=$(LZMA_TEXT_START)
+               LZMA_TEXT_START=$(LZMA_TEXT_START) \
+               CHIP_ID=$(CHIP_ID)
 
 RELOCATE_MAKEOPTS= \
                CACHELINE_SIZE=16 \
@@ -97,7 +99,7 @@ endef
 
 define Build/cfe-bin
        $(STAGING_DIR_HOST)/bin/imagetag -i $(IMAGE_KERNEL) -f $(IMAGE_ROOTFS) \
-               --output $@ --boardid $(CFE_BOARD_ID) --chipid $(CFE_CHIP_ID) \
+               --output $@ --boardid $(CFE_BOARD_ID) --chipid $(CHIP_ID) \
                --entry $(LOADER_ENTRY) --load-addr $(LOADER_ENTRY) \
                --info1 "$(call Image/LimitName16,$(DEVICE_NAME))" \
                --info2 "$(call Image/FileSystemStrip,$(IMAGE_ROOTFS))" \
@@ -142,6 +144,9 @@ define Build/cfe-jffs2-cferam
        # Some devices need padding between CFE RAM and kernel
        $(if $(CFE_RAM_JFFS2_PAD),$(call Build/pad-to,$(CFE_RAM_JFFS2_PAD)))
 
+       # Add CFE partition tag
+       $(if $(CFE_PART_ID),$(call Build/cfe-part-tag))
+
        # Append kernel
        dd if=$@.kernel >> $@
        rm -f $@.kernel
@@ -178,9 +183,72 @@ define Build/cfe-jffs2-kernel
        $(call Build/cfe-jffs2,$@-kernel)
 endef
 
+define Build/cfe-part-tag
+       mv $@ $@.part
+
+       $(TOPDIR)/scripts/cfe-partition-tag.py \
+               --input-file $@.part \
+               --output-file $@ \
+               --flags $(CFE_PART_FLAGS) \
+               --id $(CFE_PART_ID) \
+               --name $(VERSION_CODE) \
+               --version $(DEVICE_NAME)
+
+       $(call Build/pad-to,$(BLOCKSIZE))
+
+       dd if=$@.part >> $@
+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)
+
+       mv $@.kernel_rootfs $@
+       dd if=$@.rootfs_lib >> $@
+endef
+
+define Build/cfe-sercomm-load
+       $(TOPDIR)/scripts/sercomm-payload.py \
+               --input-file $@ \
+               --output-file $@.new \
+               --pid "$(SERCOMM_PID)"
+
+       mv $@.new $@
+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
        $(TOPDIR)/scripts/brcmImage.pl -t -p \
-               -o $@ -b $(CFE_BOARD_ID) -c $(CFE_CHIP_ID) \
+               -o $@ -b $(CFE_BOARD_ID) -c $(CHIP_ID) \
                -e $(LOADER_ENTRY) -a $(LOADER_ENTRY) \
                -k $(IMAGE_KERNEL) -r $(IMAGE_ROOTFS) \
                $(CFE_EXTRAS)
@@ -188,7 +256,7 @@ endef
 
 define Build/cfe-spw303v-bin
        $(STAGING_DIR_HOST)/bin/imagetag -i $(IMAGE_KERNEL) -f $(IMAGE_ROOTFS) \
-               --output $@ --boardid $(CFE_BOARD_ID) --chipid $(CFE_CHIP_ID) \
+               --output $@ --boardid $(CFE_BOARD_ID) --chipid $(CHIP_ID) \
                --entry $(LOADER_ENTRY) --load-addr $(LOADER_ENTRY) \
                $(call rootfspad/$(call Image/FileSystemStrip,$(IMAGE_ROOTFS))) \
                $(CFE_EXTRAS) $(1)
@@ -239,9 +307,11 @@ define Device/Default
   KERNEL_DEPENDS = $$(wildcard ../dts/$$(DEVICE_DTS).dts)
   KERNEL_INITRAMFS_SUFFIX := .elf
   DEVICE_DTS_DIR := ../dts
-  SOC = bcm$$(CFE_CHIP_ID)
+  CHIP_ID :=
+  SOC = bcm$$(CHIP_ID)
   DEVICE_DTS = $$(SOC)-$(subst _,-,$(1))
 endef
+DEVICE_VARS += CHIP_ID
 
 ATH5K_PACKAGES := kmod-ath5k wpad-basic
 ATH9K_PACKAGES := kmod-ath9k wpad-basic