diff options
author | Stefan Reinauer <stepan@coresystems.de> | 2010-04-26 12:08:51 +0000 |
---|---|---|
committer | Stefan Reinauer <stepan@openbios.org> | 2010-04-26 12:08:51 +0000 |
commit | 607cdf62b665230a943a271042bf9c3bf9803cab (patch) | |
tree | 60f8773ad8a9642fb7eeff1c5a208eb09dee30cd /src/arch/i386/lib/c_start.S | |
parent | 79255fcdb30a1e04ee25a98a4b25e63e56dba6a7 (diff) |
fix a bug in pcibios check.
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5502 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/arch/i386/lib/c_start.S')
-rw-r--r-- | src/arch/i386/lib/c_start.S | 81 |
1 files changed, 41 insertions, 40 deletions
diff --git a/src/arch/i386/lib/c_start.S b/src/arch/i386/lib/c_start.S index 34d8bbe7d1..94ce4a70c3 100644 --- a/src/arch/i386/lib/c_start.S +++ b/src/arch/i386/lib/c_start.S @@ -21,7 +21,7 @@ _start: leal _stack, %edi movl $_estack, %ecx subl %edi, %ecx - shrl $2, %ecx /* it is 32 bit align, right? */ + shrl $2, %ecx /* it is 32 bit aligned, right? */ xorl %eax, %eax rep stosl @@ -31,7 +31,7 @@ _start: movl $_ebss, %ecx subl %edi, %ecx jz .Lnobss - shrl $2, %ecx /* it is 32 bit align, right? */ + shrl $2, %ecx /* it is 32 bit aligned, right? */ xorl %eax, %eax rep stosl @@ -72,20 +72,20 @@ _start: * Now we are finished. Memory is up, data is copied and * bss is cleared. Now we call the main routine and * let it do the rest. - */ + */ post_code(0xfe) /* post fe */ /* Restore the stack location */ movl %ebp, %esp - + /* The boot_complete flag has already been pushed */ call hardwaremain - /*NOTREACHED*/ + /* NOTREACHED */ .Lhlt: post_code(0xee) /* post ee */ hlt jmp .Lhlt - + vec0: pushl $0 /* error code */ pushl $0 /* vector */ @@ -94,103 +94,104 @@ vec1: pushl $0 /* error code */ pushl $1 /* vector */ jmp int_hand - + vec2: pushl $0 /* error code */ pushl $2 /* vector */ jmp int_hand - + vec3: pushl $0 /* error code */ pushl $3 /* vector */ jmp int_hand - + vec4: pushl $0 /* error code */ pushl $4 /* vector */ jmp int_hand - + vec5: pushl $0 /* error code */ pushl $5 /* vector */ jmp int_hand - + vec6: pushl $0 /* error code */ pushl $6 /* vector */ jmp int_hand - + vec7: pushl $0 /* error code */ pushl $7 /* vector */ jmp int_hand - + vec8: /* error code */ pushl $8 /* vector */ jmp int_hand .word 0x9090 - + vec9: pushl $0 /* error code */ pushl $9 /* vector */ jmp int_hand - + vec10: /* error code */ pushl $10 /* vector */ jmp int_hand .word 0x9090 - + vec11: /* error code */ pushl $11 /* vector */ jmp int_hand .word 0x9090 - + vec12: /* error code */ pushl $12 /* vector */ jmp int_hand .word 0x9090 - + vec13: /* error code */ pushl $13 /* vector */ jmp int_hand .word 0x9090 - + vec14: /* error code */ pushl $14 /* vector */ jmp int_hand .word 0x9090 - + vec15: pushl $0 /* error code */ pushl $15 /* vector */ jmp int_hand - + vec16: pushl $0 /* error code */ pushl $16 /* vector */ jmp int_hand - + vec17: /* error code */ pushl $17 /* vector */ jmp int_hand .word 0x9090 - + vec18: pushl $0 /* error code */ pushl $18 /* vector */ jmp int_hand - + vec19: pushl $0 /* error code */ pushl $19 /* vector */ jmp int_hand + int_hand: /* At this point on the stack there is: * 0(%esp) vector @@ -232,7 +233,7 @@ int_hand: .globl gdb_stub_breakpoint gdb_stub_breakpoint: popl %eax /* Return address */ - pushfl + pushfl pushl %cs pushl %eax /* Return address */ pushl $0 /* No error code */ @@ -260,7 +261,7 @@ gdtaddr: * * When we're executing code from RAM, we want to do more complex * stuff, like initializing PCI option roms in real mode, or doing - * a resume from a suspend to ram. + * a resume from a suspend to ram. */ gdt: /* selgdt 0, unused */ @@ -271,13 +272,13 @@ gdt: .word 0x0000, 0x0000 /* dummy */ .byte 0x00, 0x00, 0x00, 0x00 - /* selgdt 0x10, flat code segment */ - .word 0xffff, 0x0000 - .byte 0x00, 0x9b, 0xcf, 0x00 /* G=1 and 0x0f, So we get 4Gbytes for limit */ + /* selgdt 0x10, flat code segment */ + .word 0xffff, 0x0000 + .byte 0x00, 0x9b, 0xcf, 0x00 /* G=1 and 0x0f, So we get 4Gbytes for limit */ /* selgdt 0x18, flat data segment */ - .word 0xffff, 0x0000 - .byte 0x00, 0x93, 0xcf, 0x00 + .word 0xffff, 0x0000 + .byte 0x00, 0x93, 0xcf, 0x00 /* selgdt 0x20, unused */ .word 0x0000, 0x0000 /* dummy */ @@ -285,31 +286,31 @@ gdt: /* The next two entries are used for executing VGA option ROMs */ - /* selgdt 0x28 16-bit 64k code at 0x00000000 */ + /* selgdt 0x28 16 bit 64k code at 0x00000000 */ .word 0xffff, 0x0000 .byte 0, 0x9a, 0, 0 - /* selgdt 0x30 16-bit 64k data at 0x00000000 */ + /* selgdt 0x30 16 bit 64k data at 0x00000000 */ .word 0xffff, 0x0000 .byte 0, 0x92, 0, 0 /* The next two entries are used for ACPI S3 RESUME */ - /* selgdt 0x38, flat data segment 16bit */ + /* selgdt 0x38, flat data segment 16 bit */ .word 0x0000, 0x0000 /* dummy */ - .byte 0x00, 0x93, 0x8f, 0x00 /* G=1 and 0x0f, So we get 4Gbytes for limit */ + .byte 0x00, 0x93, 0x8f, 0x00 /* G=1 and 0x0f, So we get 4Gbytes for limit */ - /* selgdt 0x40, flat code segment 16bit */ - .word 0xffff, 0x0000 - .byte 0x00, 0x9b, 0x8f, 0x00 /* G=1 and 0x0f, So we get 4Gbytes for limit */ + /* selgdt 0x40, flat code segment 16 bit */ + .word 0xffff, 0x0000 + .byte 0x00, 0x9b, 0x8f, 0x00 /* G=1 and 0x0f, So we get 4Gbytes for limit */ gdt_end: idtarg: .word _idt_end - _idt - 1 /* limit */ .long _idt - .word 0 + .word 0 _idt: - .fill 20, 8, 0 # idt is unitiailzed + .fill 20, 8, 0 # idt is uninitialized _idt_end: .previous |