[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Claiming 1M when using 8K
- To: Mailing List Recipients <pci-sig-request@znyx.com>
- Subject: Re: Claiming 1M when using 8K
- From: "David O'Shea" <daveo@corollary.com>
- Date: Wed, 16 Apr 1997 16:50:42 GMT
- Old-Return-Path: <daveo@corollary.com>
- Resent-Date: Wed, 16 Apr 1997 16:50:42 GMT
- Resent-From: pci-sig-request@znyx.com
- Resent-Message-Id: <"94YmX1.0.9o2.HQGLp"@dart>
- Resent-Sender: pci-sig-request@znyx.com
At 08:24 AM 4/16/97 -0700, you wrote:
>We have designed a PCI Adapter that requires 8K of memory space and 16
>bytes of I/O space for a PC-based application.
>When the memory and I/O BARs are programmed to take 8K and 64 bytes
>and the bits are set to allow them to be placed
>'anywhere in memory', we have observed one BIOS that puts the 8K
>memory space below the 1Meg limit.
>
>Since this presents the problem of a possible conflict with Legacy ISA
>adapters, we are now thinking of claiming 1M for
>both the I/O and memory BARs to force them into 'upper memory' and
>prevent any possibility of a conflict with an ISA
>device.
Well, you can't make the I/O Bar request 1MB of I/O space because
that's illegal now. The 2.1 spec changed things for I/O space so that
now you can't allocate more then 256 bytes! for an I/O bar. In 2.0
this was just a recommendation. (The recommendation was an excellent
one for PC's, but the requirement is somewhat stupid for everyone
else, and 2.1 should have never made it a requirement, but..... they did
so 256 bytes is the law of the land now for I/O.)
>The questions I have are:
>
>1. Why would any PCI add-in card want to be 'anywhere in memory' when
>it allows the possibility of a conflict with a Legacy
>ISA Adapter?
Well, the idea was that BIOS would make a smart decision and not
place PCI device memory down there. Most BIOS do not. Since the
space is so impacted, they want to save all of the < 1MB space for
shadowing PCI option roms, and placing ISA option ROM's and device
memory. You must have a dumb BIOS.
>2. Is there any possible problem with each card claiming 2M from the
>32G PCI pool? The maximum number of adapters
>we can put in a system is 16 (using expansion chassis).
Probably not. But some systems are starting to have quite a bit of
memory in them. 3GB plus, and these will probably go to 4GB soon.
In the PC universe for the next 3 years, you still have to think in
terms of a 4GB memory space, not a 32GB one. So, devices that carve
out more memory space than they need may start to cause systems to
have to turn off system memory in order to allocate address space
to adapters, so don't go overboard on address space. 1MB is not
overboard, so I would not worry about it.
>Seems like it would have been a better solution to have the bits in
>the PCI BARs mean:
> Below 1M
> Above 1M - instead of anywhere
>Then, I wouldn't need to claim more memory than I'm using to force it
>above 1M and eliminate the ISA conflict possibility.
Well, the BIOS is supposed to do the smart thing, not the stupid thing.
Why it would ever put any PCI memory below 1M unless the Below 1M bits
are on is hard to understand.
>Also, the PLX 9050 we are using has a fixed resource size of 64 bytes
>for its configuration registers, so we can not 'force'
>this to be in upper memory and are at the mercy of the BIOS being
>smart enough not to create a lower memory conflict.
95% of all BIOS will not put your device in low memory. There is nothing
that you can do about the other 5% of devices except hope that the end
user can handle the conflict headaches....
1 0