diff mbox series

[3/4] hw/pci-host/bonito: Access memory regions via pci_address_space[_io]()

Message ID 20231011185954.10337-4-philmd@linaro.org
State New
Headers show
Series hw/pci: Have functions acess memory regions via pci_address_space() | expand

Commit Message

Philippe Mathieu-Daudé Oct. 11, 2023, 6:59 p.m. UTC
PCI functions are plugged on a PCI bus. They can only access
external memory regions via the bus.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 hw/pci-host/bonito.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Bernhard Beschow Oct. 15, 2023, 10:19 p.m. UTC | #1
Am 11. Oktober 2023 18:59:53 UTC schrieb "Philippe Mathieu-Daudé" <philmd@linaro.org>:
>PCI functions are plugged on a PCI bus. They can only access
>external memory regions via the bus.
>
>Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
>---
> hw/pci-host/bonito.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
>diff --git a/hw/pci-host/bonito.c b/hw/pci-host/bonito.c
>index ee6cb85e97..50bde57862 100644
>--- a/hw/pci-host/bonito.c
>+++ b/hw/pci-host/bonito.c
>@@ -700,14 +700,14 @@ static void bonito_pci_realize(PCIDevice *dev, Error **errp)
> 
>     /* Map PCI IO Space  0x1fd0 0000 - 0x1fd1 0000 */
>     memory_region_init_alias(&s->bonito_pciio, OBJECT(s), "isa_mmio",
>-                             get_system_io(), 0, BONITO_PCIIO_SIZE);
>+                             pci_address_space_io(dev), 0, BONITO_PCIIO_SIZE);
>     sysbus_init_mmio(sysbus, &s->bonito_pciio);
>     sysbus_mmio_map(sysbus, 5, BONITO_PCIIO_BASE);
> 
>     /* add pci local io mapping */
> 
>     memory_region_init_alias(&s->bonito_localio, OBJECT(s), "IOCS[0]",
>-                             get_system_io(), 0, 256 * KiB);
>+                             pci_address_space_io(dev), 0, 256 * KiB);
>     sysbus_init_mmio(sysbus, &s->bonito_localio);
>     sysbus_mmio_map(sysbus, 6, BONITO_DEV_BASE);
>     create_unimplemented_device("IOCS[1]", BONITO_DEV_BASE + 1 * 256 * KiB,
>@@ -719,7 +719,7 @@ static void bonito_pci_realize(PCIDevice *dev, Error **errp)
> 
>     memory_region_init_alias(pcimem_alias, NULL, "pci.mem.alias",
>                              &bs->pci_mem, 0, BONITO_PCIHI_SIZE);
>-    memory_region_add_subregion(get_system_memory(),
>+    memory_region_add_subregion(pci_address_space(dev),

I need to keep `get_system_memory()` here to get the same results for `info mtree` in the QEMU console before and after this patch when running `qemu-system-mips64el -M fuloong2e -S`. The other two changes above seem to work as expected.

Best regards,
Bernhard

>                                 BONITO_PCIHI_BASE, pcimem_alias);
>     create_unimplemented_device("PCI_2",
>                                 (hwaddr)BONITO_PCIHI_BASE + BONITO_PCIHI_SIZE,
Philippe Mathieu-Daudé Oct. 16, 2023, 7:04 a.m. UTC | #2
On 16/10/23 00:19, Bernhard Beschow wrote:
> Am 11. Oktober 2023 18:59:53 UTC schrieb "Philippe Mathieu-Daudé" <philmd@linaro.org>:
>> PCI functions are plugged on a PCI bus. They can only access
>> external memory regions via the bus.
>>
>> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
>> ---
>> hw/pci-host/bonito.c | 6 +++---
>> 1 file changed, 3 insertions(+), 3 deletions(-)


>> @@ -719,7 +719,7 @@ static void bonito_pci_realize(PCIDevice *dev, Error **errp)
>>
>>      memory_region_init_alias(pcimem_alias, NULL, "pci.mem.alias",
>>                               &bs->pci_mem, 0, BONITO_PCIHI_SIZE);
>> -    memory_region_add_subregion(get_system_memory(),
>> +    memory_region_add_subregion(pci_address_space(dev),
> 
> I need to keep `get_system_memory()` here to get the same results for `info mtree` in the QEMU console before and after this patch when running `qemu-system-mips64el -M fuloong2e -S`. The other two changes above seem to work as expected.

Good catch, thank you Bernhard!
Philippe Mathieu-Daudé Feb. 6, 2024, 3:45 p.m. UTC | #3
Hi Bernhard,

On 16/10/23 09:04, Philippe Mathieu-Daudé wrote:
> On 16/10/23 00:19, Bernhard Beschow wrote:
>> Am 11. Oktober 2023 18:59:53 UTC schrieb "Philippe Mathieu-Daudé" 
>> <philmd@linaro.org>:
>>> PCI functions are plugged on a PCI bus. They can only access
>>> external memory regions via the bus.
>>>
>>> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
>>> ---
>>> hw/pci-host/bonito.c | 6 +++---
>>> 1 file changed, 3 insertions(+), 3 deletions(-)
> 
> 
>>> @@ -719,7 +719,7 @@ static void bonito_pci_realize(PCIDevice *dev, 
>>> Error **errp)
>>>
>>>      memory_region_init_alias(pcimem_alias, NULL, "pci.mem.alias",
>>>                               &bs->pci_mem, 0, BONITO_PCIHI_SIZE);
>>> -    memory_region_add_subregion(get_system_memory(),
>>> +    memory_region_add_subregion(pci_address_space(dev),
>>
>> I need to keep `get_system_memory()` here to get the same results for 
>> `info mtree` in the QEMU console before and after this patch when 
>> running `qemu-system-mips64el -M fuloong2e -S`. The other two changes 
>> above seem to work as expected.

Can I use add R-b tag after dropping this change?
Bernhard Beschow Feb. 6, 2024, 4:14 p.m. UTC | #4
Am 6. Februar 2024 15:45:13 UTC schrieb "Philippe Mathieu-Daudé" <philmd@linaro.org>:
>Hi Bernhard,
>
>On 16/10/23 09:04, Philippe Mathieu-Daudé wrote:
>> On 16/10/23 00:19, Bernhard Beschow wrote:
>>> Am 11. Oktober 2023 18:59:53 UTC schrieb "Philippe Mathieu-Daudé" <philmd@linaro.org>:
>>>> PCI functions are plugged on a PCI bus. They can only access
>>>> external memory regions via the bus.
>>>> 
>>>> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
>>>> ---
>>>> hw/pci-host/bonito.c | 6 +++---
>>>> 1 file changed, 3 insertions(+), 3 deletions(-)
>> 
>> 
>>>> @@ -719,7 +719,7 @@ static void bonito_pci_realize(PCIDevice *dev, Error **errp)
>>>> 
>>>>      memory_region_init_alias(pcimem_alias, NULL, "pci.mem.alias",
>>>>                               &bs->pci_mem, 0, BONITO_PCIHI_SIZE);
>>>> -    memory_region_add_subregion(get_system_memory(),
>>>> +    memory_region_add_subregion(pci_address_space(dev),
>>> 
>>> I need to keep `get_system_memory()` here to get the same results for `info mtree` in the QEMU console before and after this patch when running `qemu-system-mips64el -M fuloong2e -S`. The other two changes above seem to work as expected.

With that resolved:
Reviewed-by: Bernhard Beschow <shentey@gmail.com>

>
>Can I use add R-b tag after dropping this change?

Yes, formally added above.

While at it, could you possibly double check if you really queued https://patchew.org/QEMU/20230105154440.259361-1-shentey@gmail.com/ into mips-next?

Thanks,
Bernhard
diff mbox series

Patch

diff --git a/hw/pci-host/bonito.c b/hw/pci-host/bonito.c
index ee6cb85e97..50bde57862 100644
--- a/hw/pci-host/bonito.c
+++ b/hw/pci-host/bonito.c
@@ -700,14 +700,14 @@  static void bonito_pci_realize(PCIDevice *dev, Error **errp)
 
     /* Map PCI IO Space  0x1fd0 0000 - 0x1fd1 0000 */
     memory_region_init_alias(&s->bonito_pciio, OBJECT(s), "isa_mmio",
-                             get_system_io(), 0, BONITO_PCIIO_SIZE);
+                             pci_address_space_io(dev), 0, BONITO_PCIIO_SIZE);
     sysbus_init_mmio(sysbus, &s->bonito_pciio);
     sysbus_mmio_map(sysbus, 5, BONITO_PCIIO_BASE);
 
     /* add pci local io mapping */
 
     memory_region_init_alias(&s->bonito_localio, OBJECT(s), "IOCS[0]",
-                             get_system_io(), 0, 256 * KiB);
+                             pci_address_space_io(dev), 0, 256 * KiB);
     sysbus_init_mmio(sysbus, &s->bonito_localio);
     sysbus_mmio_map(sysbus, 6, BONITO_DEV_BASE);
     create_unimplemented_device("IOCS[1]", BONITO_DEV_BASE + 1 * 256 * KiB,
@@ -719,7 +719,7 @@  static void bonito_pci_realize(PCIDevice *dev, Error **errp)
 
     memory_region_init_alias(pcimem_alias, NULL, "pci.mem.alias",
                              &bs->pci_mem, 0, BONITO_PCIHI_SIZE);
-    memory_region_add_subregion(get_system_memory(),
+    memory_region_add_subregion(pci_address_space(dev),
                                 BONITO_PCIHI_BASE, pcimem_alias);
     create_unimplemented_device("PCI_2",
                                 (hwaddr)BONITO_PCIHI_BASE + BONITO_PCIHI_SIZE,