* [PATCH v2 0/1] hw/intc/loongson_ipi: Fix for LoongArch @ 2024-06-27 12:58 Philippe Mathieu-Daudé 2024-06-27 12:58 ` [PATCH v2 1/1] hw/intc/loongson_ipi: Gate MMIO regions creation with property Philippe Mathieu-Daudé 2024-07-15 9:57 ` [PATCH v2 0/1] hw/intc/loongson_ipi: Fix for LoongArch Philippe Mathieu-Daudé 0 siblings, 2 replies; 5+ messages in thread From: Philippe Mathieu-Daudé @ 2024-06-27 12:58 UTC (permalink / raw) To: qemu-devel Cc: Jiaxun Yang, Song Gao, maobibo, Huacai Chen, Philippe Mathieu-Daudé v2: - Only skip mmio-related code in loongson_ipi_realize() Jiaxun Yang (1): hw/intc/loongson_ipi: Gate MMIO regions creation with property include/hw/intc/loongson_ipi.h | 1 + hw/intc/loongson_ipi.c | 16 ++++++++++------ hw/mips/loongson3_virt.c | 1 + 3 files changed, 12 insertions(+), 6 deletions(-) -- 2.41.0 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v2 1/1] hw/intc/loongson_ipi: Gate MMIO regions creation with property 2024-06-27 12:58 [PATCH v2 0/1] hw/intc/loongson_ipi: Fix for LoongArch Philippe Mathieu-Daudé @ 2024-06-27 12:58 ` Philippe Mathieu-Daudé 2024-07-15 9:57 ` [PATCH v2 0/1] hw/intc/loongson_ipi: Fix for LoongArch Philippe Mathieu-Daudé 1 sibling, 0 replies; 5+ messages in thread From: Philippe Mathieu-Daudé @ 2024-06-27 12:58 UTC (permalink / raw) To: qemu-devel Cc: Jiaxun Yang, Song Gao, maobibo, Huacai Chen, Philippe Mathieu-Daudé From: Jiaxun Yang <jiaxun.yang@flygoat.com> Commit 49eba52a52fe ("hw/intc/loongson_ipi: Provide per core MMIO address spaces") implemented per core MMIO spaces for IPI registers. However on LoongArch system emulation with high core count it may exhaust QDEV_MAX_MMIO and trigger assertion. Given that MMIO region is unused for LoongArch system emulation (we do have it on hardware but kernel is in favor of IOCSR), gate MMIO regions creation with "has-mmio" property and only set if for loongson3-virt machine to avoid such limitation on LoongArch. Reported-by: Bibo Mao <maobibo@loongson.cn> Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- include/hw/intc/loongson_ipi.h | 1 + hw/intc/loongson_ipi.c | 16 ++++++++++------ hw/mips/loongson3_virt.c | 1 + 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/include/hw/intc/loongson_ipi.h b/include/hw/intc/loongson_ipi.h index 3f795edbf3..0e35674e7a 100644 --- a/include/hw/intc/loongson_ipi.h +++ b/include/hw/intc/loongson_ipi.h @@ -50,6 +50,7 @@ struct LoongsonIPI { MemoryRegion ipi_iocsr_mem; MemoryRegion ipi64_iocsr_mem; uint32_t num_cpu; + bool has_mmio; IPICore *cpu; }; diff --git a/hw/intc/loongson_ipi.c b/hw/intc/loongson_ipi.c index e6a7142480..d1b7a80d7b 100644 --- a/hw/intc/loongson_ipi.c +++ b/hw/intc/loongson_ipi.c @@ -307,13 +307,16 @@ static void loongson_ipi_realize(DeviceState *dev, Error **errp) for (i = 0; i < s->num_cpu; i++) { s->cpu[i].ipi = s; - s->cpu[i].ipi_mmio_mem = g_new0(MemoryRegion, 1); - g_autofree char *name = g_strdup_printf("loongson_ipi_cpu%d_mmio", i); - memory_region_init_io(s->cpu[i].ipi_mmio_mem, OBJECT(dev), - &loongson_ipi_core_ops, &s->cpu[i], name, 0x48); - sysbus_init_mmio(sbd, s->cpu[i].ipi_mmio_mem); - qdev_init_gpio_out(dev, &s->cpu[i].irq, 1); + + if (s->has_mmio) { + g_autofree char *name = g_strdup_printf("loongson_ipi_cpu%d_mmio", i); + s->cpu[i].ipi_mmio_mem = g_new0(MemoryRegion, 1); + memory_region_init_io(s->cpu[i].ipi_mmio_mem, OBJECT(dev), + &loongson_ipi_core_ops, &s->cpu[i], + name, 0x48); + sysbus_init_mmio(sbd, s->cpu[i].ipi_mmio_mem); + } } } @@ -344,6 +347,7 @@ static const VMStateDescription vmstate_loongson_ipi = { static Property ipi_properties[] = { DEFINE_PROP_UINT32("num-cpu", LoongsonIPI, num_cpu, 1), + DEFINE_PROP_BOOL("has-mmio", LoongsonIPI, has_mmio, false), DEFINE_PROP_END_OF_LIST(), }; diff --git a/hw/mips/loongson3_virt.c b/hw/mips/loongson3_virt.c index 4ad36f0c5b..a27b30ab31 100644 --- a/hw/mips/loongson3_virt.c +++ b/hw/mips/loongson3_virt.c @@ -537,6 +537,7 @@ static void mips_loongson3_virt_init(MachineState *machine) if (!kvm_enabled()) { ipi = qdev_new(TYPE_LOONGSON_IPI); qdev_prop_set_uint32(ipi, "num-cpu", machine->smp.cpus); + qdev_prop_set_bit(ipi, "has-mmio", true); sysbus_realize_and_unref(SYS_BUS_DEVICE(ipi), &error_fatal); memory_region_add_subregion(iocsr, SMP_IPI_MAILBOX, sysbus_mmio_get_region(SYS_BUS_DEVICE(ipi), 0)); -- 2.41.0 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2 0/1] hw/intc/loongson_ipi: Fix for LoongArch 2024-06-27 12:58 [PATCH v2 0/1] hw/intc/loongson_ipi: Fix for LoongArch Philippe Mathieu-Daudé 2024-06-27 12:58 ` [PATCH v2 1/1] hw/intc/loongson_ipi: Gate MMIO regions creation with property Philippe Mathieu-Daudé @ 2024-07-15 9:57 ` Philippe Mathieu-Daudé 2024-07-15 10:08 ` maobibo 1 sibling, 1 reply; 5+ messages in thread From: Philippe Mathieu-Daudé @ 2024-07-15 9:57 UTC (permalink / raw) To: qemu-devel; +Cc: Jiaxun Yang, Song Gao, maobibo, Huacai Chen On 27/6/24 14:58, Philippe Mathieu-Daudé wrote: > v2: > - Only skip mmio-related code in loongson_ipi_realize() > > Jiaxun Yang (1): > hw/intc/loongson_ipi: Gate MMIO regions creation with property > > include/hw/intc/loongson_ipi.h | 1 + > hw/intc/loongson_ipi.c | 16 ++++++++++------ > hw/mips/loongson3_virt.c | 1 + > 3 files changed, 12 insertions(+), 6 deletions(-) > ping? ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2 0/1] hw/intc/loongson_ipi: Fix for LoongArch 2024-07-15 9:57 ` [PATCH v2 0/1] hw/intc/loongson_ipi: Fix for LoongArch Philippe Mathieu-Daudé @ 2024-07-15 10:08 ` maobibo 2024-07-15 10:15 ` Philippe Mathieu-Daudé 0 siblings, 1 reply; 5+ messages in thread From: maobibo @ 2024-07-15 10:08 UTC (permalink / raw) To: Philippe Mathieu-Daudé, qemu-devel Cc: Jiaxun Yang, Song Gao, Huacai Chen On 2024/7/15 下午5:57, Philippe Mathieu-Daudé wrote: > On 27/6/24 14:58, Philippe Mathieu-Daudé wrote: >> v2: >> - Only skip mmio-related code in loongson_ipi_realize() >> >> Jiaxun Yang (1): >> hw/intc/loongson_ipi: Gate MMIO regions creation with property >> >> include/hw/intc/loongson_ipi.h | 1 + >> hw/intc/loongson_ipi.c | 16 ++++++++++------ >> hw/mips/loongson3_virt.c | 1 + >> 3 files changed, 12 insertions(+), 6 deletions(-) >> > > ping? Hi Philippe, It is only temporary fix, in the long term we hope that interrupt controller emulation is similar with other architectures in directory hw/intc/, and we post the patch at website: https://lore.kernel.org/qemu-devel/20240704033802.3838618-1-maobibo@loongson.cn/ Regards Bibo Mao ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2 0/1] hw/intc/loongson_ipi: Fix for LoongArch 2024-07-15 10:08 ` maobibo @ 2024-07-15 10:15 ` Philippe Mathieu-Daudé 0 siblings, 0 replies; 5+ messages in thread From: Philippe Mathieu-Daudé @ 2024-07-15 10:15 UTC (permalink / raw) To: maobibo, qemu-devel; +Cc: Jiaxun Yang, Song Gao, Huacai Chen On 15/7/24 12:08, maobibo wrote: > > > On 2024/7/15 下午5:57, Philippe Mathieu-Daudé wrote: >> On 27/6/24 14:58, Philippe Mathieu-Daudé wrote: >>> v2: >>> - Only skip mmio-related code in loongson_ipi_realize() >>> >>> Jiaxun Yang (1): >>> hw/intc/loongson_ipi: Gate MMIO regions creation with property >>> >>> include/hw/intc/loongson_ipi.h | 1 + >>> hw/intc/loongson_ipi.c | 16 ++++++++++------ >>> hw/mips/loongson3_virt.c | 1 + >>> 3 files changed, 12 insertions(+), 6 deletions(-) >>> >> >> ping? > Hi Philippe, > > It is only temporary fix, in the long term we hope that interrupt > controller emulation is similar with other architectures in directory > hw/intc/, and we post the patch at website: > > https://lore.kernel.org/qemu-devel/20240704033802.3838618-1-maobibo@loongson.cn/ I missed that, thanks for pointing the series. ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-07-15 10:16 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-06-27 12:58 [PATCH v2 0/1] hw/intc/loongson_ipi: Fix for LoongArch Philippe Mathieu-Daudé 2024-06-27 12:58 ` [PATCH v2 1/1] hw/intc/loongson_ipi: Gate MMIO regions creation with property Philippe Mathieu-Daudé 2024-07-15 9:57 ` [PATCH v2 0/1] hw/intc/loongson_ipi: Fix for LoongArch Philippe Mathieu-Daudé 2024-07-15 10:08 ` maobibo 2024-07-15 10:15 ` Philippe Mathieu-Daudé
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).