On 08/04/2010 10:01 AM, Gleb Natapov wrote:
Hm, may be. I read seabios code differently, but may be I misread it.
The BIOS Boot Specification spells it all out pretty clearly.
If a ROM needs memory after the init function, it needs to use the
traditional tricks to allocate long term memory and the most popular
one is modifying the e820 tables.
e820 has no in memory format,
Indeed.
See src/arch/i386/firmware/pcbios/e820mangler.S in gPXE.
so this ugly code intercepts int15 and mangle result. OMG. How this can
even work if more then two ROMs want to do that?
You have to save the old handlers and invoke them. Where do you save
the old handlers? There's tricks you can do by trying to use some
unused vectors and also temporarily using the stack.
But basically, yeah, I'm amazed every time I see a PC boot that it all
actually works :-)
Regards,
Anthony Liguori
--
Gleb.
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html