x86 bootblock: improve clang compatibility

Its linker doesn't like "." arithmetics, so use .org,
while its assembler doesn't like data32 prefixes.

Change-Id: I3f5bbb350493d6510b8013df15d44c44c5db63c7
Signed-off-by: Patrick Georgi <patrick@georgi-clan.de>
Reviewed-on: http://review.coreboot.org/4714
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
This commit is contained in:
Patrick Georgi 2014-01-18 16:24:24 +01:00
parent 0d0b3c5467
commit 938ef9fb8d
2 changed files with 3 additions and 3 deletions

View File

@ -105,7 +105,7 @@ _start:
lidt %cs:(%bx) lidt %cs:(%bx)
movw $gdtptr16_offset, %bx movw $gdtptr16_offset, %bx
subw %ax, %bx subw %ax, %bx
data32 lgdt %cs:(%bx) lgdtl %cs:(%bx)
movl %cr0, %eax movl %cr0, %eax
andl $0x7FFAFFD1, %eax /* PG,AM,WP,NE,TS,EM,MP = 0 */ andl $0x7FFAFFD1, %eax /* PG,AM,WP,NE,TS,EM,MP = 0 */
@ -116,7 +116,7 @@ _start:
movl %ebp, %eax movl %ebp, %eax
/* Now that we are in protected mode jump to a 32 bit code segment. */ /* Now that we are in protected mode jump to a 32 bit code segment. */
data32 ljmp $ROM_CODE_SEG, $__protected_start ljmpl $ROM_CODE_SEG, $__protected_start
/** /**
* The gdt is defined in entry32.inc, it has a 4 Gb code segment * The gdt is defined in entry32.inc, it has a 4 Gb code segment

View File

@ -10,7 +10,7 @@ reset_vector:
* instead of the weird 16 bit relocations that binutils does not * instead of the weird 16 bit relocations that binutils does not
* handle consistenly between versions because they are used so rarely. * handle consistenly between versions because they are used so rarely.
*/ */
. = 0x8; .org 0x8;
.code32 .code32
jmp protected_start jmp protected_start
.previous .previous