ramips: lzma-loader: make FLASH_START configurable

FLASH_START is supposed to point at the memory area where NOR flash are
mapped. We currently have an incorrect FLASH_START copied from ar71xx
back then and the loader doesn't work under OKLI mode.
On ramips, mt7621 has it's flash mapped to 0x1fc00000 and other SoCs
uses 0x1c000000. This commit makes FLASH_START a configurable value to
handle both cases.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
This commit is contained in:
Chuanhong Guo 2020-09-02 14:22:29 +08:00 committed by Adrian Schmutzler
parent 7a5e4f5f00
commit cac9e3e2cb
3 changed files with 8 additions and 4 deletions

View File

@ -13,6 +13,7 @@ LOADER := loader.bin
LOADER_NAME := $(basename $(notdir $(LOADER)))
LOADER_DATA :=
TARGET_DIR :=
FLASH_START :=
FLASH_OFFS :=
FLASH_MAX :=
BOARD :=
@ -40,6 +41,7 @@ loader-compile: $(PKG_BUILD_DIR)/.prepared
$(MAKE) -C $(PKG_BUILD_DIR) CROSS_COMPILE="$(TARGET_CROSS)" \
LZMA_TEXT_START=$(LZMA_TEXT_START) \
LOADER_DATA=$(LOADER_DATA) \
FLASH_START=$(FLASH_START) \
FLASH_OFFS=$(FLASH_OFFS) \
FLASH_MAX=$(FLASH_MAX) \
BOARD="$(BOARD)" \

View File

@ -19,6 +19,7 @@ LOADADDR :=
LZMA_TEXT_START := 0x80a00000
LOADER_DATA :=
BOARD :=
FLASH_START :=
FLASH_OFFS :=
FLASH_MAX :=
PLATFORM :=
@ -64,6 +65,10 @@ ifneq ($(strip $(KERNEL_CMDLINE)),)
CFLAGS += -DCONFIG_KERNEL_CMDLINE='"$(KERNEL_CMDLINE)"'
endif
ifneq ($(strip $(FLASH_START)),)
CFLAGS += -DCONFIG_FLASH_START=$(FLASH_START)
endif
ifneq ($(strip $(FLASH_OFFS)),)
CFLAGS += -DCONFIG_FLASH_OFFS=$(FLASH_OFFS)
endif

View File

@ -28,9 +28,6 @@
#include "printf.h"
#include "LzmaDecode.h"
#define AR71XX_FLASH_START 0x1f000000
#define AR71XX_FLASH_END 0x1fe00000
#define KSEG0 0x80000000
#define KSEG1 0xa0000000
@ -178,7 +175,7 @@ static void lzma_init_data(void)
unsigned long kernel_ofs;
unsigned long kernel_size;
flash_base = (unsigned char *) KSEG1ADDR(AR71XX_FLASH_START);
flash_base = (unsigned char *) KSEG1ADDR(CONFIG_FLASH_START);
printf("Looking for OpenWrt image... ");