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 \
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))" \
# 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
$(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)
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)
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