qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Marcel Apfelbaum <marcel@redhat.com>
To: Kevin O'Connor <kevin@koconnor.net>
Cc: seabios@seabios.org, lersek@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: Thu, 11 Jun 2015 20:46:01 +0300	[thread overview]
Message-ID: <5579C959.8020607@redhat.com> (raw)
In-Reply-To: <20150611165404.GB20655@morn.localdomain>

On 06/11/2015 07:54 PM, Kevin O'Connor wrote:
> On Thu, Jun 11, 2015 at 05:36:06PM +0300, Marcel Apfelbaum wrote:
>> On 06/11/2015 05:24 PM, Kevin O'Connor wrote:
>>> On Thu, Jun 11, 2015 at 05:12:33PM +0300, Marcel Apfelbaum wrote:
>>>> On 06/11/2015 04:58 PM, Kevin O'Connor wrote:
>>>>> On Thu, Jun 11, 2015 at 04:37:08PM +0300, Marcel Apfelbaum wrote:
>>>>>> The fixes solves the following issue:
>>>>>> The PXB device exposes a new  pci root bridge with the
>>>>>> fw path:  /pci-root@4/..., in which 4 is the root bus number.
>>>>>> Before this patch the fw path was wrongly computed:
>>>>>>      /pci-root@1/pci@i0cf8/...
>>>>>> Fix the above issues: Correct the bus number and remove the
>>>>>> extra host bridge description.
>>>>>
>>>>> Why is that wrong?  The previous path looks correct to me.
>>>> The prev path includes both the extra root bridge and *then* the usual host bridge.
>>>>   /pci-root@1/pci@i0cf8/   ...
>>>>      ^ new       ^ regular  ^ devices
>>>>
>>>> Since the new pci root bridge (and bus) is on "paralel" with the regular one.
>>>> it is not correct to add it to the path.
>>>>
>>>> The architecture is:
>>>>   /<host bridge>/devices...
>>>>   /extra root bridge/devices...
>>>>   /extra root bridge/devices...
>>>> And not
>>>> /extra root bridge//<host bridge>/devices
>>>
>>> Your patch changed both the "/extra root bridge/devices..." part and
>>> the "@1" part.  The change of the "@1" in "/pci-root@1/" is not
>>> correct IMO.
>> Why? @1 should be the unit address which is the text representation
>> of the physical address, in our case the slot. Since the bus number
>> in our case is 4, I think /pci-root@4/ is the 'correct' address.
>
> 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.
Is my understanding incorrect?

Thanks,
Marcel






>
> -Kevin
>

  reply	other threads:[~2015-06-11 17:46 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 [this message]
2015-06-11 18:34             ` Laszlo Ersek
2015-06-11 19:24               ` Kevin O'Connor
2015-06-12  9:25                 ` Laszlo Ersek
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=5579C959.8020607@redhat.com \
    --to=marcel@redhat.com \
    --cc=kevin@koconnor.net \
    --cc=lersek@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).