qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v7 10/10] hw/pci-bridge: format special OFW unit


From: Marcel Apfelbaum
Subject: Re: [Qemu-devel] [PATCH v7 10/10] hw/pci-bridge: format special OFW unit address for PXB host
Date: Wed, 24 Jun 2015 20:14:28 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0

On 06/24/2015 08:11 PM, Kevin O'Connor wrote:
On Fri, Jun 19, 2015 at 04:40:17AM +0200, Laszlo Ersek wrote:
We have agreed that OpenFirmware device paths in the "bootorder" fw_cfg
file should follow the pattern

   /address@hidden,%x/...

for devices that live behind an extra root bus. The extra root bus in
question is the %x'th among the extra root buses. (In other words, %x
gives the position of the affected extra root bus relative to the other
extra root buses, in bus_nr order.) %x starts at 1, and is formatted in
hex.

The portion of the unit address that comes before the comma is dynamically
taken from the main host bridge, similarly to sysbus_get_fw_dev_path().

Cc: Kevin O'Connor <address@hidden>
Cc: Michael S. Tsirkin <address@hidden>
Cc: Marcel Apfelbaum <address@hidden>
Signed-off-by: Laszlo Ersek <address@hidden>
---

Notes:
     v7:
     - implement the format that both Kevin and Michael agreed with. Example:
       
/address@hidden,1/address@hidden/address@hidden/address@hidden/address@hidden,0
     - I updated the OVMF patchset accordingly, but I won't post it until
       this QEMU patch is applied
     - Someone please write the SeaBIOS patch

The associated SeaBIOS patch is below.

Does anyone have a qemu command line handy to test with the PXB bus?
-device pxb,id=bridge1,bus_nr=10 -netdev user,id=u -device 
e1000,id=net2,bus=bridge1,netdev=u

Let me know if you have any issues with it.

Thanks,
Marcel


-Kevin


--- a/src/boot.c
+++ b/src/boot.c
@@ -112,9 +112,9 @@ build_pci_path(char *buf, int max, const char *devname, 
struct pci_device *pci)
      if (pci->parent) {
          p = build_pci_path(p, max, "pci-bridge", pci->parent);
      } else {
-        if (pci->rootbus)
-            p += snprintf(p, max, "/address@hidden", pci->rootbus);
          p += snprintf(p, buf+max-p, "%s", FW_PCI_DOMAIN);
+        if (pci->rootbus)
+            p += snprintf(p, buf+max-p, ",%x", pci->rootbus);
      }

      int dev = pci_bdf_to_dev(pci->bdf), fn = pci_bdf_to_fn(pci->bdf);





reply via email to

[Prev in Thread] Current Thread [Next in Thread]