ppc/pegasos2: Fix reg property of ROM BARs
authorBALATON Zoltan <balaton@eik.bme.hu>
Wed, 19 Jul 2023 00:32:55 +0000 (02:32 +0200)
committerDaniel Henrique Barboza <danielhb413@gmail.com>
Fri, 4 Aug 2023 13:50:19 +0000 (10:50 -0300)
The register offset of the ROM BAR is 0x30 not 0x28. This fixes the
reg property entry of the ROM region in the device tree.

Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Message-ID: <6abd73b1211f9d0776dfa5d71d6294f17eecb426.1689725688.git.balaton@eik.bme.hu>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
hw/ppc/pegasos2.c

index 4a2ab35f19465591bb04f24c676b55f13dc4b493..8ed13a42a2bb82063d3fb026b0cdd515b26d3f68 100644 (file)
@@ -766,7 +766,11 @@ static void add_pci_device(PCIBus *bus, PCIDevice *d, void *opaque)
         if (!d->io_regions[i].size) {
             continue;
         }
-        cells[j] = cpu_to_be32(d->devfn << 8 | (PCI_BASE_ADDRESS_0 + i * 4));
+        cells[j] = PCI_BASE_ADDRESS_0 + i * 4;
+        if (cells[j] == 0x28) {
+            cells[j] = 0x30;
+        }
+        cells[j] = cpu_to_be32(d->devfn << 8 | cells[j]);
         if (d->io_regions[i].type & PCI_BASE_ADDRESS_SPACE_IO) {
             cells[j] |= cpu_to_be32(1 << 24);
         } else {