
Hi Stefan,
This patch adds another build target for the AMCC Sequoia PPC440EPx eval board. This RAM-booting version is targeted for boards without NOR FLASH (NAND booting) which need a possibility to initially program their NAND FLASH. Using a JTAG debugger (e.g. BDI2000/3000) configured to setup the SDRAM, this debugger can load this RAM- booting image to the target address in SDRAM (in this case 0x1000000) and start it there. Then U-Boot's standard NAND commands can be used to program the NAND FLASH (e.g. "nand write ...").
Here the commands to load and start this image from the BDI2000:
440EPX>load 0x1000000 /tftpboot/sequoia/u-boot.bin 440EPX>go 0x1000000
Please note that this image automatically scans for an already initialized SDRAM TLB (detected by EPN=0). This TLB will not be cleared. So your debugger should configure the SDRAM TLB correctly (as done in the standard Sequoia BDI init script).
Signed-off-by: Stefan Roese sr@denx.de
Makefile | 11 +++ board/amcc/sequoia/init.S | 7 ++ board/amcc/sequoia/sdram.c | 3 +- board/amcc/sequoia/sequoia.c | 12 +++- board/amcc/sequoia/u-boot-ram.lds | 126 +++++++++++++++++++++++++++++++++++++ cpu/ppc4xx/start.S | 33 ++++++++-- include/configs/amcc-common.h | 11 +++ include/configs/sequoia.h | 30 +++++++-- 8 files changed, 215 insertions(+), 18 deletions(-) create mode 100644 board/amcc/sequoia/u-boot-ram.lds
[...]
diff --git a/board/amcc/sequoia/sequoia.c b/board/amcc/sequoia/sequoia.c index e824b8f..8b23823 100644 --- a/board/amcc/sequoia/sequoia.c +++ b/board/amcc/sequoia/sequoia.c @@ -33,7 +33,9 @@
DECLARE_GLOBAL_DATA_PTR;
+#if !defined(CONFIG_SYS_NO_FLASH) extern flash_info_t flash_info[CONFIG_SYS_MAX_FLASH_BANKS]; /* info for FLASH chips */ +#endif
extern void __ft_board_setup(void *blob, bd_t *bd); ulong flash_get_size(ulong base, int banknum); @@ -122,9 +124,9 @@ int board_early_init_f(void)
int misc_init_r(void) {
- uint pbcr;
- int size_val = 0;
- u32 reg;
- __attribute__((unused)) uint pbcr;
- __attribute__((unused)) int size_val = 0;
- __attribute__((unused)) u32 reg;
Am I correct to assume that this should shut up warnings for the ifdef case? If so, it still seems to be a somewhat rude way to do it. How long will it take the gcc maintainers to produce a "warning: unused variable is used" warning? ;)
Cheers Detlev