[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Disabling a BAR
- To: Mailing List Recipients <pci-sig-request@znyx.com>
- Subject: RE: Disabling a BAR
- From: "Kimmery, Clifford (FL51)" <kimmery@space.honeywell.com>
- Date: Fri, 18 Oct 1996 20:32:19 -0400
- Cc: "'PCI SIG'" <pci-sig@znyx.com>
- Encoding: 116 TEXT
- Resent-Date: Fri, 18 Oct 1996 20:32:19 -0400
- Resent-From: pci-sig-request@znyx.com
- Resent-Message-Id: <"tHpEt.0.GJ6.H22Qo"@dart>
- Resent-Sender: pci-sig-request@znyx.com
>----------
>> From: Devendra K Tripathi[SMTP:tripathi@Synopsys.COM]
>> Sent: Friday, October 18, 1996 7:24 PM
>> To: Mailing List Recipients
>> Cc: pci-sig@znyx.com
>> Subject: Re: Disabling a BAR
>
>
>> Hi Cliff,
>
>> > Is a BAR supposed to be disabled when configuration software writes a
>> > particular value (presumably zero, although all ones would make sense as
>> > well)?
>
>> If we excude the address part, there is no way to disable a
>>"particular" BAR.
>> Offcourse we can disable complete space.
Granted that hardware is required to disable a particular BAR without
disabling
all of them. The way I read the spec, that hardware is a requirement.
>
>> >
>> > Is it non-compliant for a target device to respond to an address of zero
>> > (up to the range of the BAR) if one of its BARs is configured with a
>> > zero address field (the core I am using does)?
>
>> I do not have an emphatic answer to this. I asked this question a
>>while back and
>> response was that "it is illegal to have zero address in BAR range".
>>As somebody
>> pointed out that time that lower address is normally assigned to local
>>resources
>> so a an address "zero" will we out of scope of a PCI device.
>
I don't agree that it is illegal to have a zero address in a BAR. The
spec says
a zero in a BAR is an "invalid" address, not the same as illegal. The
question
>is how the device is supposed to respond to an "invalid" address.
>
>> > If a BAR is disabled, does that mean that it should read back as
>> > non-existent (LS four bits forced to zero)? Is it sufficient for it to
>> > just not respond to bus transactions? Will it confuse any software if
>> > the BAR reads as existing but zero?
>
>> This may not help as lower four bits being zero implies " a non
>>prefetchable memory
>> space which is locatable anywhere in 32 bit address space". I think, this
>> is a legal case.
>
This question is really about the way the note on page 26 is worded.
For
reference: 'Note: A Base Address register does not contain a valid
address
when it is equal to "0".'
A literal interpretation would conclude that the entire BAR (not just
the
address field) would have to be set to zero to not contain a valid
address.
That doesn't really make sense since the discussion in section 6.2.5.1
(page 196) talks about hardwiring the LS bits. However, it is possible
to design a BAR that only sets the LS bits if there is a one somewhere
in the address field.
My interpretation is that a BAR is 'unimplemented' if you write all ones
and read back all zeros. Anything else is a implemented BAR. Bit 2
handles the case of a 64 bit BAR with all other bits in the lower DWORD
hardwired to zero. Some may quibble that reading back all zeros
indicates a 4Gig BAR, but I disagree since no practical system could
use such a device.
Given that an implemented BAR will read back some ones, my only
possible interpretation for the note on page 26 is that a zero in the
address field is a special case to provide a mechanism for individually
disabling BARs. How to handle the LS bits is merely a nit that may
>have implications for configuration software compatibility.
>
>> > I am planning on detecting a zero address field to disable a BAR and
>> > ignore any address within the range defined by that BAR. I plan to
>> > force the LS four bits to zero if the address range is zero.
>
>> As pointed above, it may not help. The only possibility is to detect this
>> condition and not generate DEVSEL.
Exactly.
>
>> > Comments/Answers?
>> >
>> > Cliff Kimmery
>> > Honeywell Inc.
>> > kimmery@space.honeywell.com
>
>
>> Thanks,
>> Tripathi.
Thanks for your comments. We are getting to the point in our design
where this issue is becoming important.
>
>> PS: I will appreciate if somebody could give an emphatic answer to
>>second item that is
>> "is it illegal to assign address zero to BAR" or in other words
>>"is it OK
>> not to assert DEVSEL if complete address field is zero".
>
Second the motion. I would change the question to "is it legal to
assert DEVSEL if the address field of a BAR is zero".
Thanks,
Cliff
>
™ û