[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: PCI 64-bit master



Tehendra,

There is a difference between 64-bit data path and 64-bit addressing.

When people say their PCI device is a "64-bit PCI device" this usually means
that it has a 64-bit data path.  ie: There are pins AD[63:0] on the device.

A 64-bit addressable part contains a 64-bit BAR to allow it to be configured
as a target in 64-bit address space.

These two items (64-bit data & 64-bit BAR) are independent of each other and
it is possible to have a device that fits in any of the 4 categories of
having one or the other, neither, or both.

It appears that your device probably has a 64-bit data path, but only 32-bit
BARs.  What this means is that when you talk to your device you must use
32-bit addresses.  And when your device issues bus master cycles, it will
attempt to transfer data 64-bits at a time.  If your host bridge is also
64-bit wide, then this should work and you will see higher throughput than a
32-bit datapath device would show.

Finally, there is a also a difference between supporting 64-bit addressing
as a target and supporting 64-bit addressing as a master.  To support 64-bit
addressing as a target, a device requires a 64-bit BAR in config space.  To
support 64-bit addressing as a master, a device only needs to be able to
generate Dual Address Cycles on the bus.  Again, these are independent of
each other.  It might be that your device is only a 32-bit addressed target,
but can address a full 64-bit address space.

To answer your specific question, there is nothing that you can do to force
the device's BAR to 64-bit address space if it is a 32-bit addressed device.
Look at the datasheet for the device at the config space registers.  If the
BAR is listed as a 64-bit BAR, then it appears that your specific device is
malfunctioning.  If the BAR is listed as a 32-bit BAR, then it appears that
your device is a 32-bit addressed target with 64-bit data path and may or
may not support 64-bit addressing as a master (you'll need to check the
documentation for that as well).

-Richard Walter
Senior Hardware Engineer
Brocade Communications Systems
rwalter@brocade.com
Note: I speak for myself, not for Brocade Communications.


-----Original Message-----
From: Tejendra Joshi [mailto:tejendraarunjoshi@yahoo.com]
Sent: Wednesday, May 09, 2001 3:06 AM
To: pci-sig@znyx.com
Subject: PCI 64-bit master


Hi,

I am writing driver for ethernet card. Its 64-bit PCI
master.
My PC(mother board) is also 64-bit. I want to map my
card in 64-bit
address space but It does not get mapped in 64-bit
address space.
It always gives 00 for bit 2 & 3 in memory base
register indicating
mapping in 32-bit address space.

How can I map my device in 64-bit address space ?

Thanks

Regards,
Tejendra

__________________________________________________
Do You Yahoo!?
Yahoo! Auctions - buy the things you want at great prices
http://auctions.yahoo.com/