
On Wed, Jul 22, 2015 at 11:49 PM, Simon Glass sjg@chromium.org wrote:
Fix a typo, improve some comments and add a little more detail in some cases.
Signed-off-by: Simon Glass sjg@chromium.org
arch/x86/cpu/start.S | 46 ++++++++++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 20 deletions(-)
diff --git a/arch/x86/cpu/start.S b/arch/x86/cpu/start.S index 00e585e..7ef8b88 100644 --- a/arch/x86/cpu/start.S +++ b/arch/x86/cpu/start.S @@ -25,11 +25,11 @@ .globl _x86boot_start _x86boot_start: /*
* This is the fail safe 32-bit bootstrap entry point. The
* following code is not executed from a cold-reset (actually, a
* lot of it is, but from real-mode after cold reset. It is
* repeated here to put the board into a state as close to cold
* reset as necessary)
* This is the fail-safe 32-bit bootstrap entry point.
*
* This code is used when booting from another boot loader like
* coreboot or EFI. So we repeat some of the same init found in
* start16. */ cli cld
@@ -45,15 +45,15 @@ _x86boot_start: jmp 1f _start: /*
* This is the 32-bit cold-reset entry point. Initialize %bx to 0
* in case we're preceeded by some sort of boot stub.
* This is the 32-bit cold-reset entry point, coming from start16.
* Set %bx to 0 to indicate this. */ movw $GD_FLG_COLD_BOOT, %bx
1: /* Save BIST */ movl %eax, %ebp
/* Load the segement registes to match the gdt loaded in start16.S */
/* Load the segement registers to match the GDT loaded in start16.S */ movl $(X86_GDT_ENTRY_32BIT_DS * X86_GDT_ENTRY_SIZE), %eax movw %ax, %fs movw %ax, %ds
@@ -64,7 +64,11 @@ _start: /* Clear the interrupt vectors */ lidt blank_idt_ptr
/* Early platform init (setup gpio, etc ) */
/*
* Critical early platform init - generally not used, we prefer init
* to happen later when we have a console, in case something goes
* wrong.
*/ jmp early_board_init
.globl early_board_init_ret early_board_init_ret: @@ -79,7 +83,7 @@ car_init_ret: * We now have CONFIG_SYS_CAR_SIZE bytes of Cache-As-RAM (or SRAM, * or fully initialised SDRAM - we really don't care which) * starting at CONFIG_SYS_CAR_ADDR to be used as a temporary stack
* and early malloc area. The MRC requires some space at the top.
* and early malloc() area. The MRC requires some space at the top. * * Stack grows down from top of CAR. We have: *
@@ -97,7 +101,7 @@ car_init_ret: #endif #else /*
* When we get here after car_init, esp points to a temporary stack
* When we get here after car_init(), esp points to a temporary stack * and esi holds the HOB list address returned by the FSP. */
#endif @@ -137,17 +141,18 @@ skip_hob: movl %esp, %ecx
#if defined(CONFIG_SYS_MALLOC_F_LEN)
/* Set up the pre-relocation malloc pool */ subl $CONFIG_SYS_MALLOC_F_LEN, %esp movl %eax, %edx addl $GD_MALLOC_BASE, %edx movl %esp, (%edx)
#endif
/* Store BIST */
/* Store BIST into global_data */ movl %eax, %edx addl $GD_BIST, %edx movl %ebp, (%edx)
/* Set second parameter to setup_gdt */
/* Set second parameter to setup_gdt() */ movl %ecx, %edx /* Setup global descriptor table so gd->xyz works */
@@ -157,7 +162,7 @@ skip_hob: post_code(POST_START_DONE) xorl %eax, %eax
/* Enter, U-boot! */
/* Enter, U-Boot! */ call board_init_f /* indicate (lack of) progress */
@@ -184,13 +189,13 @@ board_init_f_r_trampoline: /* Align global data to 16-byte boundary */ andl $0xfffffff0, %esp
/* Setup first parameter to memcpy (and setup_gdt) */
/* Setup first parameter to memcpy() and setup_gdt() */ movl %esp, %eax
/* Setup second parameter to memcpy */
/* Setup second parameter to memcpy() */ fs movl 0, %edx
/* Set third parameter to memcpy */
/* Set third parameter to memcpy() */ movl $GENERATED_GBL_DATA_SIZE, %ecx /* Copy global data from CAR to SDRAM stack */
@@ -202,7 +207,7 @@ board_init_f_r_trampoline: /* Align global descriptor table to 16-byte boundary */ andl $0xfffffff0, %esp
/* Set second parameter to setup_gdt */
/* Set second parameter to setup_gdt() */ movl %esp, %edx /* Setup global descriptor table so gd->xyz works */
@@ -216,7 +221,7 @@ board_init_f_r_trampoline:
call car_uninit
1:
/* Re-enter U-Boot by calling board_init_f_r */
/* Re-enter U-Boot by calling board_init_f_r() */ call board_init_f_r
die: @@ -230,9 +235,10 @@ blank_idt_ptr:
.p2align 2 /* force 4-byte alignment */
/* Add a multiboot header so U-Boot can be loaded by GRUB2 */
multiboot_header: /* magic */
.long 0x1BADB002
.long 0x1badb002 /* flags */ .long (1 << 16) /* checksum */
--
Reviewed-by: Bin Meng bmeng.cn@gmail.com