Message ID | 20210417103028.601124-6-f4bug@amsat.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | memory: Forbid mapping AddressSpace root MemoryRegion | expand |
On Sat, Apr 17, 2021 at 12:30:22PM +0200, Philippe Mathieu-Daudé wrote: > Rather than using the magic 0x80000000 number for the PCI I/O BAR > physical address on the main system bus, use a definition. > > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Acked-by: David Gibson <david@gibson.dropbear.id.au> > --- > hw/pci-host/raven.c | 11 +++++++---- > 1 file changed, 7 insertions(+), 4 deletions(-) > > diff --git a/hw/pci-host/raven.c b/hw/pci-host/raven.c > index 0a9162fba97..730f31a8931 100644 > --- a/hw/pci-host/raven.c > +++ b/hw/pci-host/raven.c > @@ -82,6 +82,8 @@ struct PRePPCIState { > > #define BIOS_SIZE (1 * MiB) > > +#define PCI_IO_BASE_ADDR 0x80000000 /* Physical address on main bus */ > + > static inline uint32_t raven_pci_io_config(hwaddr addr) > { > int i; > @@ -159,7 +161,7 @@ static uint64_t raven_io_read(void *opaque, hwaddr addr, > uint8_t buf[4]; > > addr = raven_io_address(s, addr); > - address_space_read(&s->pci_io_as, addr + 0x80000000, > + address_space_read(&s->pci_io_as, addr + PCI_IO_BASE_ADDR, > MEMTXATTRS_UNSPECIFIED, buf, size); > > if (size == 1) { > @@ -191,7 +193,7 @@ static void raven_io_write(void *opaque, hwaddr addr, > g_assert_not_reached(); > } > > - address_space_write(&s->pci_io_as, addr + 0x80000000, > + address_space_write(&s->pci_io_as, addr + PCI_IO_BASE_ADDR, > MEMTXATTRS_UNSPECIFIED, buf, size); > } > > @@ -294,8 +296,9 @@ static void raven_pcihost_initfn(Object *obj) > address_space_init(&s->pci_io_as, &s->pci_io, "raven-io"); > > /* CPU address space */ > - memory_region_add_subregion(address_space_mem, 0x80000000, &s->pci_io); > - memory_region_add_subregion_overlap(address_space_mem, 0x80000000, > + memory_region_add_subregion(address_space_mem, PCI_IO_BASE_ADDR, > + &s->pci_io); > + memory_region_add_subregion_overlap(address_space_mem, PCI_IO_BASE_ADDR, > &s->pci_io_non_contiguous, 1); > memory_region_add_subregion(address_space_mem, 0xc0000000, &s->pci_memory); > pci_root_bus_new_inplace(&s->pci_bus, sizeof(s->pci_bus), DEVICE(obj), NULL,
diff --git a/hw/pci-host/raven.c b/hw/pci-host/raven.c index 0a9162fba97..730f31a8931 100644 --- a/hw/pci-host/raven.c +++ b/hw/pci-host/raven.c @@ -82,6 +82,8 @@ struct PRePPCIState { #define BIOS_SIZE (1 * MiB) +#define PCI_IO_BASE_ADDR 0x80000000 /* Physical address on main bus */ + static inline uint32_t raven_pci_io_config(hwaddr addr) { int i; @@ -159,7 +161,7 @@ static uint64_t raven_io_read(void *opaque, hwaddr addr, uint8_t buf[4]; addr = raven_io_address(s, addr); - address_space_read(&s->pci_io_as, addr + 0x80000000, + address_space_read(&s->pci_io_as, addr + PCI_IO_BASE_ADDR, MEMTXATTRS_UNSPECIFIED, buf, size); if (size == 1) { @@ -191,7 +193,7 @@ static void raven_io_write(void *opaque, hwaddr addr, g_assert_not_reached(); } - address_space_write(&s->pci_io_as, addr + 0x80000000, + address_space_write(&s->pci_io_as, addr + PCI_IO_BASE_ADDR, MEMTXATTRS_UNSPECIFIED, buf, size); } @@ -294,8 +296,9 @@ static void raven_pcihost_initfn(Object *obj) address_space_init(&s->pci_io_as, &s->pci_io, "raven-io"); /* CPU address space */ - memory_region_add_subregion(address_space_mem, 0x80000000, &s->pci_io); - memory_region_add_subregion_overlap(address_space_mem, 0x80000000, + memory_region_add_subregion(address_space_mem, PCI_IO_BASE_ADDR, + &s->pci_io); + memory_region_add_subregion_overlap(address_space_mem, PCI_IO_BASE_ADDR, &s->pci_io_non_contiguous, 1); memory_region_add_subregion(address_space_mem, 0xc0000000, &s->pci_memory); pci_root_bus_new_inplace(&s->pci_bus, sizeof(s->pci_bus), DEVICE(obj), NULL,
Rather than using the magic 0x80000000 number for the PCI I/O BAR physical address on the main system bus, use a definition. Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> --- hw/pci-host/raven.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)