bcm63xx: image: support device-specific load address

Some CFEs are located at the address currently used for relocation and lzma
loader load address, so we need to provide a way to override it.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
This commit is contained in:
Álvaro Fernández Rojas 2020-06-07 10:55:53 +02:00
parent 27c20a1ef5
commit 9eb9d0baa0

View File

@ -13,14 +13,6 @@ LOADER_ENTRY = 0x80a00000 # RAM start + 10M, for relocate
RAMSIZE = 0x02000000 # 32MB RAMSIZE = 0x02000000 # 32MB
LZMA_TEXT_START = 0x81800000 # 32MB - 8MB LZMA_TEXT_START = 0x81800000 # 32MB - 8MB
LOADER_MAKEOPTS= \
KDIR=$(KDIR) \
LOADER_ADDR=$(LOADER_ENTRY) \
KERNEL_ADDR=$(KERNEL_LOADADDR) \
RAMSIZE=$(RAMSIZE) \
LZMA_TEXT_START=$(LZMA_TEXT_START) \
CHIP_ID=$(CHIP_ID)
RELOCATE_MAKEOPTS= \ RELOCATE_MAKEOPTS= \
CACHELINE_SIZE=16 \ CACHELINE_SIZE=16 \
KERNEL_ADDR=$(KERNEL_LOADADDR) \ KERNEL_ADDR=$(KERNEL_LOADADDR) \
@ -44,7 +36,12 @@ endef
define Build/loader-lzma define Build/loader-lzma
rm -rf $@.src rm -rf $@.src
$(MAKE) -C lzma-loader \ $(MAKE) -C lzma-loader \
$(LOADER_MAKEOPTS) \ KDIR=$(KDIR) \
LOADER_ADDR=$(if $(DEVICE_LOADADDR),$(DEVICE_LOADADDR),$(LOADER_ENTRY)) \
KERNEL_ADDR=$(KERNEL_LOADADDR) \
RAMSIZE=$(RAMSIZE) \
LZMA_TEXT_START=$(LZMA_TEXT_START) \
CHIP_ID=$(CHIP_ID) \
PKG_BUILD_DIR="$@.src" \ PKG_BUILD_DIR="$@.src" \
TARGET_DIR="$(dir $@)" \ TARGET_DIR="$(dir $@)" \
LOADER_DATA="$@" \ LOADER_DATA="$@" \
@ -172,8 +169,8 @@ define Build/cfe-jffs2-kernel
$(TOPDIR)/scripts/cfe-bin-header.py \ $(TOPDIR)/scripts/cfe-bin-header.py \
--input-file $@ \ --input-file $@ \
--output-file $@-kernel/vmlinux.lz \ --output-file $@-kernel/vmlinux.lz \
--load-addr $(LOADER_ENTRY) \ --load-addr $(if $(DEVICE_LOADADDR),$(DEVICE_LOADADDR),$(LOADER_ENTRY)) \
--entry-addr $(LOADER_ENTRY) --entry-addr $(if $(DEVICE_LOADADDR),$(DEVICE_LOADADDR),$(LOADER_ENTRY))
# The JFFS2 partition creation should result in the following # The JFFS2 partition creation should result in the following
# layout: # layout:
@ -310,8 +307,9 @@ define Device/Default
CHIP_ID := CHIP_ID :=
SOC = bcm$$(CHIP_ID) SOC = bcm$$(CHIP_ID)
DEVICE_DTS = $$(SOC)-$(subst _,-,$(1)) DEVICE_DTS = $$(SOC)-$(subst _,-,$(1))
DEVICE_LOADADDR :=
endef endef
DEVICE_VARS += CHIP_ID DEVICE_VARS += CHIP_ID DEVICE_LOADADDR
ATH5K_PACKAGES := kmod-ath5k wpad-basic ATH5K_PACKAGES := kmod-ath5k wpad-basic
ATH9K_PACKAGES := kmod-ath9k wpad-basic ATH9K_PACKAGES := kmod-ath9k wpad-basic