On Wed, 2014-05-28 at 15:36 -0400, Kevin O'Connor wrote:
On Mon, May 19, 2014 at 07:49:47PM +0100, David Woodhouse wrote:
On Mon, 2014-05-19 at 13:42 -0400, Kevin O'Connor wrote:
I don't see any reference to "int 15h, ax=0xd042" as a standard. So, maybe the author of the above text also wrote their own EFI module which used that magic value?
Well, the INT 15h call would still be on the BIOS side; that doesn't sound like an EFI thing at all. Perhaps that's a special-case hack to make their platform *trigger* the SMM entry, which then gets handled by the EFI code?
FYI, I just stumbled upon this definition in the std/LegacyBios.h efi header file:
/// /// SMM_FUNCTION Function constants. ///@{ #define INT15_D042 0x0000 [...]
-Kevin
I've been reading through the EDK2 SMM stuff, and invoking SMM functions from seems to involve putting parameters into a buffer at a certainly location, then triggering an SMI. On the EFI side there's obviously a function you can invoke to *do* it, but we could do it directly.
To make use of it from SeaBIOS-CSM, I think we'd just need to pass in the location of that buffer. There's space in the EFI_COMPATIBILITY16 table for "IBV-specific" information.