[PATCH 0/8] Add high MMIO support with GPEX host bridge

Bibo Mao posted 8 patches 1 week, 6 days ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20250915071946.315171-1-maobibo@loongson.cn
Maintainers: Song Gao <gaosong@loongson.cn>, Bibo Mao <maobibo@loongson.cn>, Jiaxun Yang <jiaxun.yang@flygoat.com>
hw/loongarch/virt-acpi-build.c |  17 +---
hw/loongarch/virt-fdt-build.c  |  43 +++++++---
hw/loongarch/virt.c            | 152 ++++++++++++++++++++++++++++++---
include/hw/loongarch/virt.h    |   5 +-
target/loongarch/cpu.c         |  13 +--
target/loongarch/cpu.h         |   2 +
6 files changed, 186 insertions(+), 46 deletions(-)
[PATCH 0/8] Add high MMIO support with GPEX host bridge
Posted by Bibo Mao 1 week, 6 days ago
On LoongArch Virt Machine, MMIO region with GPEX host bridge is
0x40000000 -- 0x7FFFFFFF. The total size is 1G bytes and it is enough
for emulated virtio devices basically.

However on some conditions such as hostmem is added with virtio-gpu
device with -device virtio-gpu-gl,hostmem=4G. The PCIE MMIO region is
not enough, 64-bit high MMIO region is required.

Here property highmem-mmio is added on virt machine to add 64-bit high
MMIO region supported. With high MMIO region added, it is not compatible
with old machine, so property highmem-mmio is disabled by default.

Bibo Mao (8):
  target/loongarch: Add phys_bits in CPULoongArchState
  hw/loongarch/virt: Add field ram_end in LoongArchVirtMachineState
  hw/loongarch/virt: Add field gpx in LoongArchVirtMachineState
  hw/loongarch/virt: Get irq number from gpex config info
  hw/loongarch/virt: Get PCI info from gpex config info
  hw/loongarch/virt: Add property highmem_mmio with virt machine
  hw/loongarch/virt: Add high MMIO support with GPEX host
  hw/loongarch/virt: Add property highmem-mmio-size with virt machine

 hw/loongarch/virt-acpi-build.c |  17 +---
 hw/loongarch/virt-fdt-build.c  |  43 +++++++---
 hw/loongarch/virt.c            | 152 ++++++++++++++++++++++++++++++---
 include/hw/loongarch/virt.h    |   5 +-
 target/loongarch/cpu.c         |  13 +--
 target/loongarch/cpu.h         |   2 +
 6 files changed, 186 insertions(+), 46 deletions(-)


base-commit: 190d5d7fd725ff754f94e8e0cbfb69f279c82b5d
-- 
2.39.3
Re: [PATCH 0/8] Add high MMIO support with GPEX host bridge
Posted by Jonathan Cameron via 1 week, 6 days ago
On Mon, 15 Sep 2025 15:19:38 +0800
Bibo Mao <maobibo@loongson.cn> wrote:

> On LoongArch Virt Machine, MMIO region with GPEX host bridge is
> 0x40000000 -- 0x7FFFFFFF. The total size is 1G bytes and it is enough
> for emulated virtio devices basically.
> 
> However on some conditions such as hostmem is added with virtio-gpu
> device with -device virtio-gpu-gl,hostmem=4G. The PCIE MMIO region is
> not enough, 64-bit high MMIO region is required.
> 
> Here property highmem-mmio is added on virt machine to add 64-bit high
> MMIO region supported. With high MMIO region added, it is not compatible
> with old machine, so property highmem-mmio is disabled by default.

Trivial request. Please mention loongarch in the cover letter title.
It will help people make a quick decision on whether they should be looking
at the thread or not.

Jonathan

> 
> Bibo Mao (8):
>   target/loongarch: Add phys_bits in CPULoongArchState
>   hw/loongarch/virt: Add field ram_end in LoongArchVirtMachineState
>   hw/loongarch/virt: Add field gpx in LoongArchVirtMachineState
>   hw/loongarch/virt: Get irq number from gpex config info
>   hw/loongarch/virt: Get PCI info from gpex config info
>   hw/loongarch/virt: Add property highmem_mmio with virt machine
>   hw/loongarch/virt: Add high MMIO support with GPEX host
>   hw/loongarch/virt: Add property highmem-mmio-size with virt machine
> 
>  hw/loongarch/virt-acpi-build.c |  17 +---
>  hw/loongarch/virt-fdt-build.c  |  43 +++++++---
>  hw/loongarch/virt.c            | 152 ++++++++++++++++++++++++++++++---
>  include/hw/loongarch/virt.h    |   5 +-
>  target/loongarch/cpu.c         |  13 +--
>  target/loongarch/cpu.h         |   2 +
>  6 files changed, 186 insertions(+), 46 deletions(-)
> 
> 
> base-commit: 190d5d7fd725ff754f94e8e0cbfb69f279c82b5d
Re: [PATCH 0/8] Add high MMIO support with GPEX host bridge
Posted by Bibo Mao 1 week, 6 days ago

On 2025/9/15 下午5:11, Jonathan Cameron wrote:
> On Mon, 15 Sep 2025 15:19:38 +0800
> Bibo Mao <maobibo@loongson.cn> wrote:
> 
>> On LoongArch Virt Machine, MMIO region with GPEX host bridge is
>> 0x40000000 -- 0x7FFFFFFF. The total size is 1G bytes and it is enough
>> for emulated virtio devices basically.
>>
>> However on some conditions such as hostmem is added with virtio-gpu
>> device with -device virtio-gpu-gl,hostmem=4G. The PCIE MMIO region is
>> not enough, 64-bit high MMIO region is required.
>>
>> Here property highmem-mmio is added on virt machine to add 64-bit high
>> MMIO region supported. With high MMIO region added, it is not compatible
>> with old machine, so property highmem-mmio is disabled by default.
> 
> Trivial request. Please mention loongarch in the cover letter title.
> It will help people make a quick decision on whether they should be looking
> at the thread or not.
Thanks for reminder, I notice this when it is sent out.
Will be cautious about this in future.

Regards
Bibo Mao
> 
> Jonathan
> 
>>
>> Bibo Mao (8):
>>    target/loongarch: Add phys_bits in CPULoongArchState
>>    hw/loongarch/virt: Add field ram_end in LoongArchVirtMachineState
>>    hw/loongarch/virt: Add field gpx in LoongArchVirtMachineState
>>    hw/loongarch/virt: Get irq number from gpex config info
>>    hw/loongarch/virt: Get PCI info from gpex config info
>>    hw/loongarch/virt: Add property highmem_mmio with virt machine
>>    hw/loongarch/virt: Add high MMIO support with GPEX host
>>    hw/loongarch/virt: Add property highmem-mmio-size with virt machine
>>
>>   hw/loongarch/virt-acpi-build.c |  17 +---
>>   hw/loongarch/virt-fdt-build.c  |  43 +++++++---
>>   hw/loongarch/virt.c            | 152 ++++++++++++++++++++++++++++++---
>>   include/hw/loongarch/virt.h    |   5 +-
>>   target/loongarch/cpu.c         |  13 +--
>>   target/loongarch/cpu.h         |   2 +
>>   6 files changed, 186 insertions(+), 46 deletions(-)
>>
>>
>> base-commit: 190d5d7fd725ff754f94e8e0cbfb69f279c82b5d