[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
PCI 64-bit addressing - problem
Hi,
We have a problem with 64-bit memory addressing on a 32-bit PCI bus.
We have a chip that is connected to a 32-bit PCI but has an internal pci
core that allows the PC to allocate our memory space in a 64-bit area
(address 0x10 in the configuration space, which is the memory base address
register, is of reset value 0xC).
I see that the PC allocates us in a 64-bit address space. This I see by the
fact that the PC configures two consecutive memory base address registers:
the PC configures a value of 0xFFA0000C in memory base address 0x10 and a
value of 0xFF in memory base address
When I perform a memory transaction, I expect the PC to address my chip
with a DAC (Dual Address Cycle), because the PC is supposed to know that my
memory space is allocated in a 64-bit space. But instead, the PC accesses
my chip with a SAC (Single Address Cycle), only passing the base address of
0xFFA000xx, and for this reason my chip does not recognize that the
transaction in towards it and therefore does not assert #DEVSEL, causing
the PC to do master abort.
We are using an Intel motherboard BI440ZX, and WIMDOWS NT 4.0 service pack
3.
Why doesn't the PC perform DAC? Is this problem a motherboard problem or
the operating system (Windows NT) problem?
How can this be solved?
When I use Windows NT 4.0 with service pack 5, but on a different
motherboard, the PC does not allocate us in a 64-bit address space
(configures the second configuration memory base address, address 0x14, to
a value of 0x0), causing our chip to recognize only SAC, so this
Raan.