On Sun, Aug 22, 2010 at 07:23:30PM +0300, Avi Kivity wrote:
btw, big real mode cannot be entered in vm86 mode. So anything involving that can safely be moved to upper memory 32-bit code.
Only POST needs bigreal mode, and it should be no problem moving POST to high memory.
Even with all its warts I think .code16gcc is the best route.
For 16-bit runtime services, I agree. For POST and 32-bit runtime services, I think we can easily push the code to 4G-2M.
The 32bit runtime is also tricky, but thankfully it's under 2K of code and so it can be left in the f-segment.
I'm not sure what you mean by "4G-2M" - are you suggesting running XIP in the "flash" chip? This is possible in qemu/kvm, but it's not something you'd want to do on real hardware. Accesses to the flash chip are terribly slow - on real hardware you want to copy the code from flash to ram as soon as possible. (You typically want to compress everything in flash also.)