Welcome! Log In Create A New Profile


Calling BIOS Services

Posted by Washington 
Calling BIOS Services
October 16, 2007 03:54PM
Helo there,

I would like to know how can I find a entry point of a BIOS function. I need to call the Plug and Play function 52H, according with the DMTF to SMBIOS. I Need to do a code to update a structure in the DMI pool. The SMBIOS Specification has a example code but I need to find the Entry Point of the service provided by the BIOS.

Any help would be appreciated!
Re: Calling BIOS Services
June 06, 2008 01:58PM
You may have found already, but just for the record, the entry point addresses (protected and real mode) are found at the structure preceded by the "$PnP" signature. See PnP 1.0A spec for more details.
The REAL problem is to know HOW to call the 52h and other functions. I've spent weeks to find a way and got nothing yet.
Some files which could help but didn't help me: bioscalls.c pcbios.c apm.c pnpbios.h
All I have found so far is that the code must be a module so that it can run the entry point. I tried to call it either via C code by running a function pointer and via inline ASM code by making a LCALL with all the push/pop stuff. I also got nothing looking on GDT.
__va() function may help in running bios code like "*__va(entry_point)"
Please let me know if you found a solution!

pnp bios smbios linux kernel dmi $pnp gdt pnp_cs32 pnp_ds 50h 51h 52h

Your Email:


Spam prevention:
Please, solve the mathematical question and enter the answer in the input field below. This is for blocking bots that try to post this form automatically.
Question: how much is 12 plus 2?