post();
}
+
+// Externally visible 32bit entry point.
+asm(
+ ".global post32\n"
+ "post32:\n"
+ "cli\n"
+ "cld\n"
+ "lidtl " __stringify(0xf0000 | OFFSET_pmode_IDT_info) "\n"
+ "lgdtl " __stringify(0xf0000 | OFFSET_rombios32_gdt_48) "\n"
+ "movl $" __stringify(CONFIG_STACK_OFFSET) ", %esp\n"
+ "jmp _start\n"
+ );
import sys
import struct
+import os
ROM16='out/rom16.bin'
ROM32='out/rom32.bin'
f.write(outrom)
f.close()
+ # Build elf file with 32bit entry point
+ os.system(
+ "objcopy -I binary -O elf32-i386 -B i386"
+ " --change-addresses 0xf0000 --set-start %s %s %s" %(
+ int(o32['OFFSET_post32'], 16) - 0xf0000, OUT, OUT+".o"))
+
if __name__ == '__main__':
main()