[U-Boot] [PATCH 1/2] sh: Add handling of CONFIG_SYS_FLASH_BASE for board.c

Some board of SH does not have flash memoy. This change initializes bi_flashstart, when CONFIG_SYS_FLASH_BASE was defined,
Signed-off-by: Nobuhiro Iwamatsu nobuhiro.iwamatsu.yj@renesas.com --- arch/sh/lib/board.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/arch/sh/lib/board.c b/arch/sh/lib/board.c index 968566c..81244ae 100644 --- a/arch/sh/lib/board.c +++ b/arch/sh/lib/board.c @@ -43,6 +43,7 @@ const char version_string[] = U_BOOT_VERSION" ("U_BOOT_DATE" - "U_BOOT_TIME")";
unsigned long monitor_flash_len = CONFIG_SYS_MONITOR_LEN;
+#if defined(CONFIG_SYS_FLASH_BASE) static int sh_flash_init(void) { gd->bd->bi_flashsize = flash_init(); @@ -54,6 +55,7 @@ static int sh_flash_init(void)
return 0; } +#endif
#if defined(CONFIG_CMD_NAND) # include <nand.h> @@ -125,7 +127,9 @@ init_fnc_t *init_sequence[] = dram_init, /* SDRAM init */ timer_init, /* SuperH Timer (TCNT0 only) init */ sh_mem_env_init, +#if defined(CONFIG_SYS_FLASH_BASE) sh_flash_init, /* Flash memory(NOR) init*/ +#endif INIT_FUNC_NAND_INIT/* Flash memory (NAND) init */ INIT_FUNC_PCI_INIT /* PCI init */ stdio_init, @@ -157,7 +161,9 @@ void sh_generic_init(void) bd = gd->bd; bd->bi_memstart = CONFIG_SYS_SDRAM_BASE; bd->bi_memsize = CONFIG_SYS_SDRAM_SIZE; +#if defined(CONFIG_SYS_FLASH_BASE) bd->bi_flashstart = CONFIG_SYS_FLASH_BASE; +#endif #if defined(CONFIG_SYS_SRAM_BASE) && defined(CONFIG_SYS_SRAM_SIZE) bd->bi_sramstart = CONFIG_SYS_SRAM_BASE; bd->bi_sramsize = CONFIG_SYS_SRAM_SIZE;

The start.o section is changed by --gc-section option of ld. Of this using KEEP order, therefore, evade this problem.
Signed-off-by: Nobuhiro Iwamatsu nobuhiro.iwamatsu.yj@renesas.com --- arch/sh/cpu/sh2/u-boot.lds | 2 +- arch/sh/cpu/sh3/u-boot.lds | 2 +- arch/sh/cpu/sh4/u-boot.lds | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/sh/cpu/sh2/u-boot.lds b/arch/sh/cpu/sh2/u-boot.lds index e4e8b60..7c0a18d 100644 --- a/arch/sh/cpu/sh2/u-boot.lds +++ b/arch/sh/cpu/sh2/u-boot.lds @@ -38,7 +38,7 @@ SECTIONS
.text : { - arch/sh/cpu/sh2/start.o (.text) + KEEP(arch/sh/cpu/sh2/start.o (.text)) . = ALIGN(8192); common/env_embedded.o (.ppcenv) . = ALIGN(8192); diff --git a/arch/sh/cpu/sh3/u-boot.lds b/arch/sh/cpu/sh3/u-boot.lds index 8afe160..2716246 100644 --- a/arch/sh/cpu/sh3/u-boot.lds +++ b/arch/sh/cpu/sh3/u-boot.lds @@ -44,7 +44,7 @@ SECTIONS
.text : { - arch/sh/cpu/sh3/start.o (.text) + KEEP(arch/sh/cpu/sh3/start.o (.text)) . = ALIGN(8192); common/env_embedded.o (.ppcenv) . = ALIGN(8192); diff --git a/arch/sh/cpu/sh4/u-boot.lds b/arch/sh/cpu/sh4/u-boot.lds index d3719df..0f42325 100644 --- a/arch/sh/cpu/sh4/u-boot.lds +++ b/arch/sh/cpu/sh4/u-boot.lds @@ -41,7 +41,7 @@ SECTIONS
.text : { - arch/sh/cpu/sh4/start.o (.text) + KEEP(arch/sh/cpu/sh4/start.o (.text)) . = ALIGN(8192); common/env_embedded.o (.ppcenv) . = ALIGN(8192);

Dear Nobuhiro Iwamatsu,
In message 1299484258-6042-1-git-send-email-nobuhiro.iwamatsu.yj@renesas.com you wrote:
Some board of SH does not have flash memoy. This change initializes bi_flashstart, when CONFIG_SYS_FLASH_BASE was defined,
Signed-off-by: Nobuhiro Iwamatsu nobuhiro.iwamatsu.yj@renesas.com
arch/sh/lib/board.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/arch/sh/lib/board.c b/arch/sh/lib/board.c index 968566c..81244ae 100644 --- a/arch/sh/lib/board.c +++ b/arch/sh/lib/board.c @@ -43,6 +43,7 @@ const char version_string[] = U_BOOT_VERSION" ("U_BOOT_DATE" - "U_BOOT_TIME")";
unsigned long monitor_flash_len = CONFIG_SYS_MONITOR_LEN;
+#if defined(CONFIG_SYS_FLASH_BASE)
I don't think this should depend on CONFIG_SYS_FLASH_BASE.
Boards without NOR flash should define CONFIG_SYS_NO_FLASH, and this define should be used here.
Best regards,
Wolfgang Denk

Hi,
2011/3/13 Wolfgang Denk wd@denx.de:
Dear Nobuhiro Iwamatsu,
In message 1299484258-6042-1-git-send-email-nobuhiro.iwamatsu.yj@renesas.com you wrote:
Some board of SH does not have flash memoy. This change initializes bi_flashstart, when CONFIG_SYS_FLASH_BASE was defined,
Signed-off-by: Nobuhiro Iwamatsu nobuhiro.iwamatsu.yj@renesas.com
arch/sh/lib/board.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/arch/sh/lib/board.c b/arch/sh/lib/board.c index 968566c..81244ae 100644 --- a/arch/sh/lib/board.c +++ b/arch/sh/lib/board.c @@ -43,6 +43,7 @@ const char version_string[] = U_BOOT_VERSION" ("U_BOOT_DATE" - "U_BOOT_TIME")";
unsigned long monitor_flash_len = CONFIG_SYS_MONITOR_LEN;
+#if defined(CONFIG_SYS_FLASH_BASE)
I don't think this should depend on CONFIG_SYS_FLASH_BASE.
Boards without NOR flash should define CONFIG_SYS_NO_FLASH, and this define should be used here.
Oh, sorry. I will resend patch. Thanks fo your patch review.
Nobuhiro
participants (3)
-
Nobuhiro Iwamatsu
-
Nobuhiro Iwamatsu
-
Wolfgang Denk