Strange PCI device BAR's...
Posted: Sun Aug 05, 2007 1:00 pm
I just got through writing the BAR decoder for I/O Memory aquiring device ONLY. I wish to get ethernet cards up and running first and finish plain memory mappers later.
So anyways, after reading the config dword from 0x10:0x02 (BAR address offset 0x02 for reserved space) and applying the appropriate mask, the base address returned is = ec01 and the size is 0x7f (almost 128). This seemed somewhat correct, but when i test it on my 'real' computer and not the virtual pc, I get either a base of 0xffff0000 or just plain 0, and the size is equal t either 0x7 or just 0 again.
Ive tried many different algorithms to do this somewhat simple extraction, but it seems that it never gets quite right. Could it be that my ethernet cards (which return a value of 1 at 0x10 btw) dont actually have a mapped IO space or buffer memory?
Do I have to 'install' the device through an IRQ handler first?
So anyways, after reading the config dword from 0x10:0x02 (BAR address offset 0x02 for reserved space) and applying the appropriate mask, the base address returned is = ec01 and the size is 0x7f (almost 128). This seemed somewhat correct, but when i test it on my 'real' computer and not the virtual pc, I get either a base of 0xffff0000 or just plain 0, and the size is equal t either 0x7 or just 0 again.
Ive tried many different algorithms to do this somewhat simple extraction, but it seems that it never gets quite right. Could it be that my ethernet cards (which return a value of 1 at 0x10 btw) dont actually have a mapped IO space or buffer memory?
Do I have to 'install' the device through an IRQ handler first?