On Wed, Dec 10, 2008 at 5:50 AM, Scott Wood <[EMAIL PROTECTED]> wrote: > On Mon, Nov 10, 2008 at 01:53:46PM +0900, Kyungmin Park wrote: >> OneNAND IPL has common codes for RAM init, load data, and jump to 2nd >> bootloader, but it's common code used about 300~400 bytes. So board >> specific codes, such as lowlevel_init, can't has enough code. It make >> a difficult to implement OneNAND IPL. >> >> This patch make this common code as small as possible. and give >> lowlevel_init can have more codes. > > Sorry for the delay; I missed this patch earlier. > >> Signed-off-by: Kyungmin Park <[EMAIL PROTECTED]> >> --- >> diff --git a/cpu/arm1136/start.S b/cpu/arm1136/start.S >> index e622338..132cc4a 100644 >> --- a/cpu/arm1136/start.S >> +++ b/cpu/arm1136/start.S >> @@ -33,23 +33,7 @@ >> .globl _start >> _start: b reset >> #ifdef CONFIG_ONENAND_IPL >> - ldr pc, _hang >> - ldr pc, _hang >> - ldr pc, _hang >> - ldr pc, _hang >> - ldr pc, _hang >> - ldr pc, _hang >> - ldr pc, _hang >> - >> -_hang: >> - .word do_hang >> - .word 0x12345678 >> - .word 0x12345678 >> - .word 0x12345678 >> - .word 0x12345678 >> - .word 0x12345678 >> - .word 0x12345678 >> - .word 0x12345678 /* now 16*4=64 */ >> + . = _start + 64 /* now 16*4=64 */ >> #else > > Can you do a branch-to-self here that will accomplish the same thing, > without needing do_hang later?
So I don't understand the meaning. In general in restricted environment, 1KiB bootloader. There's no room to handle exception. > >> diff --git a/onenand_ipl/onenand_boot.c b/onenand_ipl/onenand_boot.c >> index aff62d2..2440d8b 100644 >> --- a/onenand_ipl/onenand_boot.c >> +++ b/onenand_ipl/onenand_boot.c >> @@ -39,6 +39,7 @@ int print_info(void) >> >> typedef int (init_fnc_t)(void); >> >> +#ifdef CONFIG_USE_ONENAND_INIT >> init_fnc_t *init_sequence[] = { > > Is there anything that's going to use this? If not, just remove the > code. I just wonder if there are some user to use. If not no problem to remove. > >> +#ifdef CONFIG_USE_ONENAND_INIT >> void hang(void) >> { >> /* if board_hang() returns, hange here */ >> printf("X-Loader hangs\n"); >> for (;;); >> } >> +#endif > > X-Loader? It's code used at x-loader (cross nand bootloader). > >> diff --git a/onenand_ipl/onenand_ipl.h b/onenand_ipl/onenand_ipl.h >> index 3387998..438e58c 100644 >> --- a/onenand_ipl/onenand_ipl.h >> +++ b/onenand_ipl/onenand_ipl.h >> @@ -23,7 +23,7 @@ >> >> #include <linux/mtd/onenand_regs.h> >> >> -#define ONENAND_BLOCK_SIZE 2048 >> +#define ONENAND_BLOCK_SIZE 0x20000 > > This doesn't seem to be referenced at all any more. Was the old value > simply wrong? It's used at onenand_boot.c but now it's not. It's also no problem to remove. Thank you, Kyungmin Park _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot