Hi list,

I'm porting a driver to support PCI express devices. Under 32 bits
OSes (i.e. WinXP and Vista 32b) its work fine.
Its work fine too under Vista Ultimate 64bits, but every transaction
are still using a 32 bits addressing mode.

The driver is compiled via "build" utility under "Windows Vista and
Windows server Longhorn x64 Checked build environment",
and I checked that DMA tranferts are 64b enabled : I set to "true" the
field Dma64BitAddresses of the DEVICE_DESCRIPTION
structure.
(BTW could someone explain me the meanning of Dma32BitAddresses and
Dma64BitAddresses fields ?)


>From the device side, 64b addresing mode is activated in BAR register,
and device manufacturer certified me,
the device is 64 bits ready.


My machine is a standard Dell precision 380 with 1Gb RAM.

Does Vista need more than 4Gb RAM to activate 64b addressing ?

Any ideas, or hints ?


Thanks
--
Benedict

Re: PCIe 64b addressing under Vista. by Tim

Tim
Mon Jul 16 01:19:23 CDT 2007

Benoit <thunderben@free.fr> wrote:
>
>I'm porting a driver to support PCI express devices. Under 32 bits
>OSes (i.e. WinXP and Vista 32b) its work fine.
>Its work fine too under Vista Ultimate 64bits, but every transaction
>are still using a 32 bits addressing mode.

Why is that a problem? The BIOS is probably assigning you a physical
address in the low-order 32 bits. PCIe will only use 64-bit addressing if
it has to. It's more efficient to send 4 bytes instead of 8.

>Does Vista need more than 4Gb RAM to activate 64b addressing ?

It's not a Vista thing, it's a PCI Express thing. Your board doesn't need
64-bit addressing unless it has a 64-bit address.
--
Tim Roberts, timr@probo.com
Providenza & Boekelheide, Inc.