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