[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: PCI 64-bit addressing - problem
Raan,
Your problem is the BIOS on the motherboard doesn't recognize a 64-bit
BAR, so it configures you 1 BAR as 2 separate 32-bit BARs. You might try
getting an update from your motherboard manufacturer.
Also the operating system+chipset doesn't support full 64-bit
addressing. I think that the chipset might support 36-bit addressing
(don't quote me on this), but I'm sure that NT doesn't support more than
32-bit addressing.
You could get around this problem by doing something a little bit sneaky:
Add a boot rom to your device, who's sole purpose is to look at
the address set to your BAR and decide if the BIOS screwed it up, and then
fix it (i.e. set config address 0x14 to 0x00000000). Or you could have
your NT driver do the change for you, but this could possibly be too late
and have adverse effects on other devices in the system.
-- Neal
On Thu, 24 Feb 2000, Raan Kahn wrote:
> 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.
>
-- Neal Palmer
The Dini Group
1010 Pearl St #6
La Jolla, CA 92037
(858) 454-3419
(858) 454-1728 (Fax)