What does this mean from the driver side?? What physical should I post
to the hardware?? Because If I post the high address to the hardware
[High part being
set to 0xfffffa80] I get a PCI abort?? If the OS is giving me high
address how does the driver handle this??
Please clarify a little bit more.
Thanks for the reply,
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Henry
Gabryjelski
Sent: Monday, December 18, 2006 10:30 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Windows Vista 0x64 Scatter Gather Element
Problem[Porting 32bit driver to 64 bit for Vista].
I’ve just learned this answer, so I’m happy to share my understanding.
Many machines BIOS reserves an area of the memory range from 3GB to 4GB
for use by the BIOS. It’s reasons are hidden in legacy modes (people on
this list might fill in this section). As a result, some portion of the
3GB-4GB memory area is not usable by “real” physical memory (amount
depends on motherboard and BIOS). This results in the need to use
64-bit physical memory addresses.
Weird to think that this is true, but it is. Be careful when putting
4GB of physical memory in a machine with older hardware (esp. TV tuners
and some audio cards), as they just won’t work until you physically
remove a bit of the memory. BTW, the /MAXMEM type switch doesn’t help
in these situations, because the physical memory still exists (and is
just ignored by the OS).
Fun and Exciting Times! 
BTW, a 4GB RAM machine is a great test case for hardware as a result of
this oddity…
.
-----Original Message-----
From: Ajitabh Saxena [mailto:xxxxx@broadcom.com]
Sent: Thursday, December 14, 2006 5:17 PM
Subject: RE: Windows Vista 0x64 Scatter Gather Element Problem[Porting
32bit driver to 64 bit for Vista].
One thing I still do not understand is that how come on a machine with
4GB memory I can get such a huge physical address??? [High part being
set to 0xfffffa80 and low part had some value ].
After I rebooted the machine once everything looks just perfect. The
Driver works just fine.
Any Ideas???
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Tim Roberts
Sent: Thursday, December 14, 2006 3:34 PM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] Windows Vista 0x64 Scatter Gather Element
Problem[Porting 32bit driver to 64 bit for Vista].
Ajitabh Saxena wrote:
I do the following to setup my DMA Descriptor:
pDMADesc[ulHWDescCnt].BuffAddrLow =
pSGL->Elements[ulCnt].Address.LowPart;
pDMADesc[ulHWDescCnt].BuffAddrHi =
(pSGL->Elements[ulCnt].Address.HighPart);
Where:
pDMADesc ----- Is the hardware specific structure.
pSGL ---- Scatter Gather list.
The problem that I am seeing right now is HighPart [defined as LONG]
is a signed value and I am assigning it to BuffAddrHi which is
Unsigned and hence the correct address does not get copied to the
Hardware descriptor. In One case I was getting a value of 0xfffffa80
in the high part and BuffAddrHi contains only 0x01.
That’s not the compiler’s fault. It will do that assignment
bit-for-bit. The MEANING might change, but not the VALUE. You must
have some other problem here.
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer