[SeaBIOS] [RFC v2 0/3] Support multiple pci domains in pci_device

Marcel Apfelbaum marcel.apfelbaum at gmail.com
Sat Aug 25 18:07:53 CEST 2018


Hi,

On 08/09/2018 08:43 AM, Zihan Yang wrote:
> Currently seabios assumes there is only one pci domain(0), and almost
> everything operates on pci domain 0 by default. This patch aims to add
> multiple pci domain support for pci_device, while reserve the original
> API for compatibility.

This is a necessary addition to support your QEMU patches,
Please send a link to the QEMU series on your next re-spin.

> The reason to get seabios involved is that the pxb-pcie host bus created
> in QEMU is now in a different PCI domain, and its bus number would start
> from 0 instead of bus_nr. Actually bus_nr should not be used when in
> another non-zero domain.

That is not necessarily true. As we discussed in QEMU devel
mailing list, it is possible PCI buses of a different domain
to start from a positive bus number.
Both bus_nr and domain_nr support makes sense.

>   However, QEMU only binds port 0xcf8 and 0xcfc to
> bus pcie.0. To avoid bus confliction, we should use other port pairs for
> busses under new domains.

I would skip support for IO based configuration and use only MMCONFIG
for extra root buses.

The question remains: how do we assign MMCONFIG space for
each PCI domain.

Thanks,
Marcel

> Current issues:
> * when trying to read config space of pcie_pci_bridge, it actually reads
>    out the result of mch. I'm working on this weird behavior.
>
> Changelog:
> v2 <- v1:
> - Fix bugs in filtering domains when traversing pci devices
> - Reformat some hardcoded codes, such as probing the pci device in pci_setup
>
> Zihan Yang (3):
>    fw/pciinit: Recognize pxb-pcie-dev device
>    pci_device: Add pci domain support
>    pci: filter undesired domain when traversing pci
>
>   src/fw/coreboot.c    |   2 +-
>   src/fw/csm.c         |   2 +-
>   src/fw/mptable.c     |   1 +
>   src/fw/paravirt.c    |   3 +-
>   src/fw/pciinit.c     | 276 ++++++++++++++++++++++++++++++---------------------
>   src/hw/ahci.c        |   1 +
>   src/hw/ata.c         |   1 +
>   src/hw/esp-scsi.c    |   1 +
>   src/hw/lsi-scsi.c    |   1 +
>   src/hw/megasas.c     |   1 +
>   src/hw/mpt-scsi.c    |   1 +
>   src/hw/nvme.c        |   1 +
>   src/hw/pci.c         |  69 +++++++------
>   src/hw/pci.h         |  42 +++++---
>   src/hw/pci_ids.h     |   6 +-
>   src/hw/pcidevice.c   |  11 +-
>   src/hw/pcidevice.h   |   8 +-
>   src/hw/pvscsi.c      |   1 +
>   src/hw/sdcard.c      |   1 +
>   src/hw/usb-ehci.c    |   1 +
>   src/hw/usb-ohci.c    |   1 +
>   src/hw/usb-uhci.c    |   1 +
>   src/hw/usb-xhci.c    |   1 +
>   src/hw/virtio-blk.c  |   1 +
>   src/hw/virtio-scsi.c |   1 +
>   src/optionroms.c     |   3 +
>   26 files changed, 268 insertions(+), 170 deletions(-)
>




More information about the SeaBIOS mailing list