From: Laszlo Ersek <lersek@redhat.com>
To: Kevin O'Connor <kevin@koconnor.net>
Cc: Marcel Apfelbaum <marcel@redhat.com>,
seabios@seabios.org, Gerd Hoffmann <kraxel@redhat.com>,
qemu-devel@nongnu.org, mst@redhat.com
Subject: Re: [Qemu-devel] [PATCH V2] pci: fixes to allow booting from extra root pci buses.
Date: Fri, 12 Jun 2015 11:25:50 +0200 [thread overview]
Message-ID: <557AA59E.6050509@redhat.com> (raw)
In-Reply-To: <20150611192427.GB28252@morn.localdomain>
On 06/11/15 21:24, Kevin O'Connor wrote:
> On Thu, Jun 11, 2015 at 08:34:56PM +0200, Laszlo Ersek wrote:
>> On 06/11/15 19:46, Marcel Apfelbaum wrote:
>>> On 06/11/2015 07:54 PM, Kevin O'Connor wrote:
>>>> On real machines, the firmware assigns the 4 - it's not a physical
>>>> address; it's a logical address (like all bus numbers in PCI). The
>>>> firmware might assign a totally different number on the next boot.
>>> Now I am confused. Don't get me wrong, I am not an expert on fw, I hardly
>>> try to understand it.
>>>
>>> I looked up a real hardware machine and it seemed to me that the extra
>>> pci root numbers
>>> are provided in the ACPI tables, meaning by the vendor, not the fw.
>>> In this case QEMU is the vendor, i440fx is the machine, right?
>>>
>>> I am not aware that Seabios/OVMF are deciding the bus numbers for the
>>> *PCI roots*.
>>> They are doing it for the pci-2-pci bridges of course.
>>> I saw that Seabios is trying to "guess" the root-buses by going over all
>>> the 0-0xff range
>>> and probing all the slots, looking for devices. So it expects the hw to
>>> be hardwired regarding
>>> PCI root buses.
>>
>> This is exactly how I understood it.
>>
>> We're not interested in placing such bus numbers in device paths that
>> are assigned during PCI enumeration. (Like subordinate bus numbers.)
>> We're talking about the root bus numbers.
>>
>> OVMF implements the same kind of probing that SeaBIOS does (based on
>> natural language description from Michael and Marcel, not on the actual
>> code). Devices on the root buses respond without any prior bus number
>> assignments.
>
> Alas, that is not correct. Coreboot supports several AMD boards that
> have multiple southbridge chips which provide independent PCI root
> buses. These chips have to be configured and assigned a bus number
> prior to use (which coreboot does).
Thanks.
Assuming such a physical hardware configuration, and that Coreboot
configures the root buses before the SeaBIOS payload is launched: how
does Coreboot identify a device, on a nonzero root bus, for SeaBIOS to
boot from? Is that possible at all, or is the user expected to configure
/ select that in SeaBIOS exclusively?
Our use case does not include Coreboot (as far as I can tell), but I'm
trying to find some parallels here.
* In the "QEMU without Coreboot" case, QEMU is the component that sets
up the root buses for the firmware. Therefore it has all knowledge about
the root buses. OVMF is meant solely for QEMU "hardware", therefore it
has a full understanding with QEMU. QEMU can refer to root buses in the
"bootorder" fw_cfg file because it owns both the root buses and the
"bootorder" fw_cfg file, and OVMF can trust them to match.
* In the "physical hardware with Coreboot" case, Coreboot is the
component that sets up the root buses for the firmware (SeaBIOS).
Coreboot *could* refer to the root buses in some boot order file (a cbfs
file I guess?) -- if such a feature existed between Coreboot and SeaBIOS
-- because Coreboot would own both the root buses and the (theoretical)
cbfs boot order file. Hence SeaBIOS could trust them to match.
Assuming there is no such feature between Coreboot and SeaBIOS (ie. one
that would parallel our QEMU use case on physical hardware), what
solution would you find acceptable for the case when QEMU basically
promises "I know where you'll find those root buses, and the bootorder
fw_cfg file will match them"?
Could we simply make this patch conditional on runningOnQEMU()?
Thanks
Laszlo
next prev parent reply other threads:[~2015-06-12 9:26 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-11 13:37 [Qemu-devel] [PATCH V2] pci: fixes to allow booting from extra root pci buses Marcel Apfelbaum
2015-06-11 13:57 ` Laszlo Ersek
2015-06-11 13:58 ` Kevin O'Connor
2015-06-11 14:12 ` Marcel Apfelbaum
2015-06-11 14:24 ` Kevin O'Connor
2015-06-11 14:36 ` Marcel Apfelbaum
2015-06-11 15:00 ` Laszlo Ersek
2015-06-11 16:54 ` Kevin O'Connor
2015-06-11 17:46 ` Marcel Apfelbaum
2015-06-11 18:34 ` Laszlo Ersek
2015-06-11 19:24 ` Kevin O'Connor
2015-06-12 9:25 ` Laszlo Ersek [this message]
2015-06-12 13:03 ` Kevin O'Connor
2015-06-12 15:45 ` Laszlo Ersek
2015-06-12 18:40 ` Kevin O'Connor
2015-06-12 20:13 ` Laszlo Ersek
2015-06-14 12:05 ` Michael S. Tsirkin
2015-06-14 14:50 ` Kevin O'Connor
2015-06-14 18:06 ` Michael S. Tsirkin
2015-06-14 18:21 ` Kevin O'Connor
2015-06-14 21:39 ` Benjamin Herrenschmidt
2015-06-14 21:59 ` Kevin O'Connor
2015-06-15 2:50 ` Benjamin Herrenschmidt
2015-06-15 8:22 ` Michael S. Tsirkin
2015-06-11 19:10 ` Kevin O'Connor
2015-06-12 6:00 ` Gerd Hoffmann
2015-06-12 12:17 ` Marcel Apfelbaum
2015-06-12 13:23 ` Kevin O'Connor
2015-06-15 6:01 ` Gerd Hoffmann
2015-06-15 6:50 ` Gerd Hoffmann
2015-06-15 9:02 ` Marcel Apfelbaum
2015-06-15 9:43 ` Michael S. Tsirkin
2015-06-15 10:18 ` Gerd Hoffmann
2015-06-15 10:26 ` Michael S. Tsirkin
2015-06-11 14:35 ` Laszlo Ersek
2015-06-11 16:48 ` Kevin O'Connor
2015-06-11 18:38 ` [Qemu-devel] [SeaBIOS] " Laszlo Ersek
2015-06-14 12:10 ` [Qemu-devel] " Michael S. Tsirkin
2015-06-14 13:47 ` Kevin O'Connor
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=557AA59E.6050509@redhat.com \
--to=lersek@redhat.com \
--cc=kevin@koconnor.net \
--cc=kraxel@redhat.com \
--cc=marcel@redhat.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=seabios@seabios.org \
/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).