x86 device driver accessing BIOS memory

x86 device driver accessing BIOS memory

Post by Rudi Stev » Wed, 30 Jan 2002 01:20:48


I am trying to write a device driver that needs to search BIOS memory
(0xe0000 +) for a string. As I understand up to now, I need to create
a "reg" property, describe the memory there, and then map it.

Here is my try:
1. Creating the property using ddi_prop_create and
ddi_prop_update_int_array. The reg property looks like this:

0x82007800, 0x0, 0xe0000, 0x0, 0x20000

where phys.hi is:

1000 0010 0000 0000 0111 1000 0000 0000
npt0 00ss bbbb bbbb dddd dfff rrrr rrrr

2. Mapping it using ddi_map_regs(devi, 0, &BaseAddress, 0, size);

Now, all used functions return DDI_PROP_SUCCESS or DDI_SUCCESS, but it
looks like there are all zeros at BaseAddress.

What am I doing wrong?
Thanks for any help!
Rudi Steven