[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.