On Wed, Jun 09, 2010 at 09:26:20PM +0200, Stefan Reinauer wrote:
On 6/9/10 8:48 PM, Myles Watson wrote:
It would need to be 0xe0000 - 0xfffff unless we want to start cutting out more memory.
I meant where as in what interrupt to patch, not what address to run at. SeaBIOS should be able to use whatever address it wants to.
If it contains a dynamic linker, or the code is position independent, yes.
Alternatively we could add an SMI "function call" to coreboot that does the deed. That would simplify the code in SeaBIOS significantly but add more requirements for SMM.
I'm not sure what's best. Maybe few enough boards will need their own handlers that it doesn't really matter.
Kevin, any preference?
I think vgahooks.c is simple enough that extending it for the handful of boards that need it is okay. If it becomes too unwieldy, then I'm sure we can come up with a new system at that time.
If an alternate solution is needed, I'd guess it would be simplest to deploy an option rom that hooked 155f. Writing an option rom that hooks 155f is straight forward. However, there would be some complexity in deployment because the option rom would need to run before the vga bios and it would need to be loaded to an address other than 0xc0000. (Normally the vgabios is the first option rom to be executed, and option roms are normally loaded in ascending order starting at 0xc0000.) So, I'd say it is definitely possible, but probably not worth it right now.
-Kevin