Ronald, It seems that you made some mistake in mixing 16 and 32 bits code in the intel_start32.S:
_realstart: cli movw %cs, %eax movw %eax, %es
xor %eax, %eax mov %eax, %cr3 /* Invalidate TLB*/
.byte 0x66 /* prefix */ .byte 0x26 .byte 0x0f, 0x01, 0x16 /* lgdt [es:offset]*/ .word 0x02 /* offset in segment */
movl %cr0, %eax andl $0x7FFAFFD1, %eax /* PG,AM,WP,NE,TS,EM,MP = 0*/ orl $1, %eax movl %eax, %cr0 data32 ljmp $0x10, $.Lprotected
Before _realstart there was a .code16 directive, so it should be in 16 bits mode, so how could those 32 bits (long) operation works ??
This bugs seems breaks gas 2.9.5 also.
Ollie - To unsubscribe: send mail to majordomo@freiburg.linux.de with 'unsubscribe openbios' in the body of the message