Message ID | 1437580180-6405-9-git-send-email-sjg@chromium.org |
---|---|
State | Superseded |
Delegated to: | Simon Glass |
Headers | show |
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>
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 */
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(-)