I've written a device driver for a proprietary PCI card, and have run
into what seems to be a show-stopping bug. The device I'm writing the
driver for is responsible for running DMA transfers to other PCI
devices, and all of our initial work was going well. I locked down a
contiguous range of host memory and was able to do DMA fine. I'm now
trying to get the card to do DMA to other PCI cards, and have found a
bug in our chip. Basically, the high bit of the address on PCI
transfers gets dropped. This means that the chip can't address PCI
memory physical addresses over 0x7FFFFFFF. Big problem, since the
BIOS on our computers maps PCI device memory from 0xFFFF0000 downward.
So my question is, under FreeBSD (any version -- we're currently
running 3.4, but I can upgrade to -current if it will help), is there
any support for overriding the BIOS-assigned PCI address maps? I've
read through the 3.4 pci.c code and didn't see anything, and am not
thrilled about writing code to remap all the devices on the PCI bus.
I'm talking to our BIOS vendor about getting them to do the rework for
us, but as in all dealing with BIOS vendors, I am not hopeful :-(
Thanks for any and all suggestions!
DaveG o_, o, o_ o_ o'
Programmer )-' /|' ),` ) ' (\ ^o Gymnast
Dancer >\ / > >\ >^' >\ >>' Hiker
[EMAIL PROTECTED] www.mit.edu/~daveg/ (617)216-4705
[EMAIL PROTECTED] www.conexant.com (508)621-0658
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message