Some (older) CFEs are loaded at 0x80401000 and ramdisks are loaded at
0x80010000, which means that ramdisk size limit is 0x3F1000 (almost 4M).
Therefore, current ramdisks (~4MB) are overwritting CFE in these devices,
which results in a crash.
This commit changes the address where ramdisks are loaded to 0x80a00000,
which is the same address where kernel is loaded when booting from the flash.
Therefore, lzma-loader will now be loaded at 0x80a00000, but it will still
decompress the kernel at 0x80010000.
Tested with huawei,hg556a-b, which has its CFE loaded at 0x80401000.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
LOADER_MAKEOPTS= \
KDIR=$(KDIR) \
- LOADADDR=$(KERNEL_LOADADDR) \
+ LOADER_ADDR=$(LOADER_ENTRY) \
+ KERNEL_ADDR=$(KERNEL_LOADADDR) \
RAMSIZE=$(RAMSIZE) \
LZMA_TEXT_START=$(LZMA_TEXT_START) \
CHIP_ID=$(CHIP_ID)
# by the Free Software Foundation.
#
-LOADADDR :=
+LOADER_ADDR :=
+KERNEL_ADDR :=
LZMA_TEXT_START := 0x80a00000
LOADER_DATA :=
ifneq ($(strip $(LOADER_DATA)),)
OBJECTS += data.o
-CFLAGS += -DLZMA_WRAPPER=1 -DLOADADDR=$(LOADADDR)
+CFLAGS += -DLZMA_WRAPPER=1 -DLOADADDR=$(KERNEL_ADDR)
endif
$(LD) -r -b binary --oformat $(O_FORMAT) -o $@ $<
loader.elf: loader2.o
- $(LD) -e startup -T loader2.lds -Ttext $(LOADADDR) -o $@ $<
+ $(LD) -e startup -T loader2.lds -Ttext $(LOADER_ADDR) -o $@ $<
mrproper: clean