From: "Hervé Poussineau" <hpoussin@reactos.org>
To: "Andreas Färber" <andreas.faerber@web.de>
Cc: "Isaku Yamahata" <yamahata@valinux.co.jp>,
"Hervé Poussineau" <hpoussin@reactos.org>,
"qemu-devel Developers" <qemu-devel@nongnu.org>,
"Michael S. Tsirkin" <mst@redhat.com>
Subject: Re: [Qemu-devel] [PATCH, RFC] pci: allow PCI devices to fix address space
Date: Sun, 12 Jun 2011 20:28:09 +0200 [thread overview]
Message-ID: <4DF50539.6010209@reactos.org> (raw)
In-Reply-To: <3B010ECF-E507-4479-983F-884825781755@web.de>
Andreas Färber a écrit :
>
> Am 12.06.2011 um 14:40 schrieb Hervé Poussineau:
>
>> Andreas Färber a écrit :
>>> Am 22.12.2010 um 07:49 schrieb Michael S. Tsirkin:
>>>
>>>> On Wed, Dec 22, 2010 at 07:30:33AM +0100, Hervé Poussineau wrote:
>>>>> Isaku Yamahata a écrit :
>>>>>> On Wed, Dec 22, 2010 at 12:20:23AM +0100, Andreas Färber wrote:
>>>>>>> From: Hervé Poussineau <hpoussin@reactos.org>
>>>>>>>
>>>>>>> v1:
>>>>>>> * Rebased.
>>>>>>>
>>>>>>> Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
>>>>>>> Cc: Michael S. Tsirkin <mst@redhat.com>
>>>>>>> Signed-off-by: Andreas Färber <andreas.faerber@web.de>
>>>>>>> ---
>>>>>>> Hello Michael,
>>>>>>> Could you please take a look at this? I'm out of my field here.
>>>>>>> The intention of the first part appears to be to save (val &
>>>>>>> ~mask),
>>>>>>> whereas the inline helper would've returned (val & mask).
>>>>>>
>>>>>> Such behavior is intended.
>>>>>> The returned value is just discarded in this case.
>>>>>> test-and-clear means
>>>>>> clear the bits
>>>>>> return if those cleared bits were really set.
>>>>>>
>>>>
>>>> What about this first chunk? Is it necessary.
>>>>
>>>>>>> The second part makes existing code conditional on that value.
>>>>>>
>>>>>> What issue are you addressing?
>>>>>> Although the spec doesn't says about the default value of BAR
>>>>>> registers
>>>>>> after reset, the current code assumes that almost all the pci
>>>>>> devices clear
>>>>>> those registers.
>>>>>> Anyway after cold/warm reset firmware sets up BARs, so it doesn't
>>>>>> matter.
>>>>>> You, however, seem to want to keep BARs over resets.
>>>>>>
>>>>> As you have seen, the intend here is to be able to keep BARs over
>>>>> resets.
>>>>> It is required for some really specific devices, like a PCI to ISA
>>>>> bridge, where MMIO is always at the same address.
>>>>> In that case, the device keeps PCI_COMMAND_MEMORY and/or
>>>>> PCI_COMMAND_IO flags as read-only.
>>>>
>>>> Aha. Are the BARs still writeable? If not maybe that's the right
>>>> thing
>>>> to check? If yes maybe the device simply should have a reset
>>>> handler to rewrite them?
>>>
>>> I haven't noticed a follow-up patch of yours.
>>>
>>> Since I don't know what to do here, I'll have to take this out of
>>> the PReP queue for now.
>>> Without this patch, I get to at least the second bootloader icon,
>>> the PCI graphics still work. What particular symptoms did you
>>> observe wrt the i82378 that we can reproduce?
>>
>> Try do do info qtree with and without this patch, and check the
>> i82378 device
>> With this patch, I have:
>> bar 0: mem at 0x80000000 [0x8000ffff]
>> bar 1: mem at 0xc0000000 [0xc0ffffff]
>>
>> Without it, I have:
>> bar 0: mem at 0xffffffffffffffff [0xfffe]
>> bar 1: mem at 0xffffffffffffffff [0xfffffe]
>
> That I can confirm.
>
>> I think that firmware doesn't initialize BARs for this device.
>> However, I don't know what can be the consequences of not doing it.
>
> Re-testing this after a rebase, I don't get any graphics at all
> without this patch. Must've done something wrong earlier...
>
> So, how to tell if the BARs are "still writable"? (mst's question)
>
I don't know if the BARs are hardwired to some value, or if they have
default values.
I've no real information on this aspect, so you might take a look at the
datasheet:
http://www.datasheetcatalog.org/datasheets2/10/1064845_1.pdf
Regarding PCI command register, it is explicitly said page 33 that "Bus
Master Enable", "Memory Space Enable" and "I/O Space Enable" are
hardwired to 1.
Regards,
Hervé
next prev parent reply other threads:[~2011-06-12 18:28 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-21 23:20 [Qemu-devel] [PATCH, RFC] pci: allow PCI devices to fix address space Andreas Färber
2010-12-22 2:50 ` Isaku Yamahata
2010-12-22 6:24 ` Michael S. Tsirkin
2010-12-22 6:30 ` Hervé Poussineau
2010-12-22 6:49 ` Michael S. Tsirkin
2011-06-12 11:36 ` Andreas Färber
2011-06-12 12:40 ` Hervé Poussineau
2011-06-12 14:20 ` Andreas Färber
2011-06-12 18:28 ` Hervé Poussineau [this message]
2011-06-12 19:35 ` Michael S. Tsirkin
2011-06-12 19:53 ` Michael S. Tsirkin
2011-06-12 19:33 ` Michael S. Tsirkin
2011-06-12 19:50 ` Hervé Poussineau
2011-06-12 19:59 ` Michael S. Tsirkin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4DF50539.6010209@reactos.org \
--to=hpoussin@reactos.org \
--cc=andreas.faerber@web.de \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=yamahata@valinux.co.jp \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).