Currently CONFIG_ONENAND_IPL is used in a number of #ifdef's
in start.S. In preparation for adding support for NAND SPL
the macro CONFIG_PRELOADER is introducted and replaces the
CONFIG_ONENAND_IPL in start.S.

Signed-off-by: Magnus Lilja <lilja.mag...@gmail.com>
---
 README                             |    5 +++++
 cpu/arm1136/start.S                |   24 ++++++++++++------------
 onenand_ipl/board/apollon/Makefile |    4 ++--
 3 files changed, 19 insertions(+), 14 deletions(-)

diff --git a/README b/README
index 561c100..86cf628 100644
--- a/README
+++ b/README
@@ -2702,6 +2702,11 @@ Low Level (hardware related) configuration options:
                some other boot loader or by a debugger which
                performs these initializations itself.
 
+- CONFIG_PRELOADER
+
+               [ARM only] Modifies the behaviour of start.S when
+               compiling a loader that is executed before the actual
+               U-Boot. E.g. when compiling a NAND SPL.
 
 Building the Software:
 ======================
diff --git a/cpu/arm1136/start.S b/cpu/arm1136/start.S
index 999b184..28cb5fd 100644
--- a/cpu/arm1136/start.S
+++ b/cpu/arm1136/start.S
@@ -32,7 +32,7 @@
 #include <version.h>
 .globl _start
 _start: b      reset
-#ifdef CONFIG_ONENAND_IPL
+#ifdef CONFIG_PRELOADER
        ldr     pc, _hang
        ldr     pc, _hang
        ldr     pc, _hang
@@ -67,7 +67,7 @@ _not_used:            .word not_used
 _irq:                  .word irq
 _fiq:                  .word fiq
 _pad:                  .word 0x12345678 /* now 16*4=64 */
-#endif /* CONFIG_ONENAND_IPL */
+#endif /* CONFIG_PRELOADER */
 .global _end_vect
 _end_vect:
 
@@ -156,9 +156,9 @@ relocate:                           /* relocate U-Boot to 
RAM           */
        adr     r0, _start              /* r0 <- current position of code   */
        ldr     r1, _TEXT_BASE          /* test if we run from flash or RAM */
        cmp     r0, r1                  /* don't reloc during debug         */
-#ifndef CONFIG_ONENAND_IPL
+#ifndef CONFIG_PRELOADER
        beq     stack_setup
-#endif /* CONFIG_ONENAND_IPL */
+#endif /* CONFIG_PRELOADER */
 
        ldr     r2, _armboot_start
        ldr     r3, _bss_start
@@ -175,7 +175,7 @@ copy_loop:
        /* Set up the stack                                                 */
 stack_setup:
        ldr     r0, _TEXT_BASE          /* upper 128 KiB: relocated uboot   */
-#ifdef CONFIG_ONENAND_IPL
+#ifdef CONFIG_PRELOADER
        sub     sp, r0, #128            /* leave 32 words for abort-stack   */
 #else
        sub     r0, r0, #CONFIG_SYS_MALLOC_LEN /* malloc area                   
    */
@@ -184,14 +184,14 @@ stack_setup:
        sub     r0, r0, #(CONFIG_STACKSIZE_IRQ+CONFIG_STACKSIZE_FIQ)
 #endif
        sub     sp, r0, #12             /* leave 3 words for abort-stack    */
-#endif /* CONFIG_ONENAND_IPL */
+#endif /* CONFIG_PRELOADER */
 
 clear_bss:
        ldr     r0, _bss_start          /* find start of bss segment        */
        ldr     r1, _bss_end            /* stop here                        */
        mov     r2, #0x00000000         /* clear                            */
 
-#ifndef CONFIG_ONENAND_IPL
+#ifndef CONFIG_PRELOADER
 clbss_l:str    r2, [r0]                /* clear loop...                    */
        add     r0, r0, #4
        cmp     r0, r1
@@ -244,7 +244,7 @@ cpu_init_crit:
        mov     lr, ip          /* restore link */
        mov     pc, lr          /* back to my caller */
 
-#ifndef CONFIG_ONENAND_IPL
+#ifndef CONFIG_PRELOADER
 /*
  *************************************************************************
  *
@@ -357,17 +357,17 @@ cpu_init_crit:
        .macro get_fiq_stack                    @ setup FIQ stack
        ldr     sp, FIQ_STACK_START
        .endm
-#endif /* CONFIG_ONENAND_IPL */
+#endif /* CONFIG_PRELOADER */
 
 /*
  * exception handlers
  */
-#ifdef CONFIG_ONENAND_IPL
+#ifdef CONFIG_PRELOADER
        .align  5
 do_hang:
        ldr     sp, _TEXT_BASE                  /* use 32 words about stack */
        bl      hang                            /* hang and never return */
-#else  /* !CONFIG_ONENAND IPL */
+#else  /* !CONFIG_PRELOADER */
        .align  5
 undefined_instruction:
        get_bad_stack
@@ -435,4 +435,4 @@ fiq:
 arm1136_cache_flush:
                mcr     p15, 0, r1, c7, c5, 0   @ invalidate I cache
                mov     pc, lr                  @ back to caller
-#endif /* CONFIG_ONENAND_IPL */
+#endif /* CONFIG_PRELOADER */
diff --git a/onenand_ipl/board/apollon/Makefile 
b/onenand_ipl/board/apollon/Makefile
index 1f996a4..23eee43 100644
--- a/onenand_ipl/board/apollon/Makefile
+++ b/onenand_ipl/board/apollon/Makefile
@@ -4,8 +4,8 @@ include $(TOPDIR)/onenand_ipl/board/$(BOARDDIR)/config.mk
 
 LDSCRIPT= $(TOPDIR)/onenand_ipl/board/$(BOARDDIR)/u-boot.onenand.lds
 LDFLAGS        = -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) 
$(PLATFORM_LDFLAGS)
-AFLAGS += -DCONFIG_ONENAND_IPL
-CFLAGS += -DCONFIG_ONENAND_IPL
+AFLAGS += -DCONFIG_PRELOADER -DCONFIG_ONENAND_IPL
+CFLAGS += -DCONFIG_PRELOADER -DCONFIG_ONENAND_IPL
 OBJCLFAGS += --gap-fill=0x00
 
 SOBJS  := low_levelinit.o
-- 
1.5.6

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to