MAINTAINERS | 1 + hw/intc/loongson_ipi.c | 23 ++++++++++++++--------- hw/mips/loongson3_virt.c | 1 + include/hw/intc/loongson_ipi.h | 1 + 4 files changed, 17 insertions(+), 9 deletions(-)
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
---
Jiaxun Yang (2):
hw/intc/loongson_ipi: Gate MMIO regions creation with property
MAINTAINERS: Add myself as a reviewer of LoongArch virt machine
MAINTAINERS | 1 +
hw/intc/loongson_ipi.c | 23 ++++++++++++++---------
hw/mips/loongson3_virt.c | 1 +
include/hw/intc/loongson_ipi.h | 1 +
4 files changed, 17 insertions(+), 9 deletions(-)
---
base-commit: 3f044554b94fc0756d5b3cdbf84501e0eea0e629
change-id: 20240627-ipi-fixes-13eaf1b8815a
Best regards,
--
Jiaxun Yang <jiaxun.yang@flygoat.com>
On 27/6/24 06:13, Jiaxun Yang wrote: > Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com> > --- > Jiaxun Yang (2): > hw/intc/loongson_ipi: Gate MMIO regions creation with property > MAINTAINERS: Add myself as a reviewer of LoongArch virt machine Maybe s/has-mmio/use-mmio/? Otherwise series: Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
在 2024/6/27 下午2:38, Philippe Mathieu-Daudé 写道: > On 27/6/24 06:13, Jiaxun Yang wrote: >> Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com> >> --- >> Jiaxun Yang (2): >> hw/intc/loongson_ipi: Gate MMIO regions creation with property >> MAINTAINERS: Add myself as a reviewer of LoongArch virt machine > > Maybe s/has-mmio/use-mmio/? Otherwise series: > Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> > Hi, If we had done a simple test, we should have found the following problem, but obviously we didn't . root@loongson-KVM:~/work/code/clean/github/qemu# . /kernel.sh Unexpected error in object_property_find_err() at . /qom/object.c:1357. qemu-system-loongarch64: Property 'loongson_ipi.unnamed-gpio-out[0]' not found . /kernel.sh: line 16: 117708 Aborted (core dumped) . /build/qemu-system-loongarch64 -machine virt -m 8G -cpu la464 -smp 8 -kernel ~/vmlinux -initrd ramdisk -serial stdio -monitor telnet:localhost. 4418,server,nowait -net nic -net user -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0, port=1 -device usb-tablet,id=tablet,bus=xhci.0, -device usb-tablet,id=tablet,bus=xhci. port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 -append "root=/dev/ram rdinit=/sbin/init console=ttyS0,115200 earlycon=uart,mmio. 0x1fe001e0" --nographic So to minimize interactions with the MIPS architecture, I'll submit a patch to restore loongarch_ipi for LoongArch. Thanks. Song Gao
在2024年6月27日六月 下午4:13,gaosong写道: > 在 2024/6/27 下午2:38, Philippe Mathieu-Daudé 写道: >> On 27/6/24 06:13, Jiaxun Yang wrote: >>> Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com> >>> --- >>> Jiaxun Yang (2): >>> hw/intc/loongson_ipi: Gate MMIO regions creation with property >>> MAINTAINERS: Add myself as a reviewer of LoongArch virt machine >> >> Maybe s/has-mmio/use-mmio/? Otherwise series: >> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> >> > Hi, > > If we had done a simple test, we should have found the following > problem, but obviously we didn't . My bad, I’m currently traveling and sent that in rush. I do boot tested with CI and I trust CI can catch those issues. > > root@loongson-KVM:~/work/code/clean/github/qemu# . /kernel.sh > Unexpected error in object_property_find_err() at . /qom/object.c:1357. > qemu-system-loongarch64: Property 'loongson_ipi.unnamed-gpio-out[0]' not > found > . /kernel.sh: line 16: 117708 Aborted (core dumped) . > /build/qemu-system-loongarch64 -machine virt -m 8G -cpu la464 -smp 8 > -kernel ~/vmlinux -initrd ramdisk -serial stdio -monitor > telnet:localhost. 4418,server,nowait -net nic -net user -device > virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device > usb-tablet,id=tablet,bus=xhci.0, port=1 -device > usb-tablet,id=tablet,bus=xhci.0, -device usb-tablet,id=tablet,bus=xhci. > port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 -append > "root=/dev/ram rdinit=/sbin/init console=ttyS0,115200 > earlycon=uart,mmio. 0x1fe001e0" --nographic > > > So to minimize interactions with the MIPS architecture, I'll submit a > patch to restore loongarch_ipi for LoongArch. > > Thanks. > Song Gao -- - Jiaxun
On 27/6/24 14:13, gaosong wrote:
>
>
> 在 2024/6/27 下午2:38, Philippe Mathieu-Daudé 写道:
>> On 27/6/24 06:13, Jiaxun Yang wrote:
>>> Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
>>> ---
>>> Jiaxun Yang (2):
>>> hw/intc/loongson_ipi: Gate MMIO regions creation with property
>>> MAINTAINERS: Add myself as a reviewer of LoongArch virt machine
>>
>> Maybe s/has-mmio/use-mmio/? Otherwise series:
>> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
>>
> Hi,
>
> If we had done a simple test, we should have found the following
> problem, but obviously we didn't .
>
> root@loongson-KVM:~/work/code/clean/github/qemu# . /kernel.sh
> Unexpected error in object_property_find_err() at . /qom/object.c:1357.
> qemu-system-loongarch64: Property 'loongson_ipi.unnamed-gpio-out[0]' not
> found
> . /kernel.sh: line 16: 117708 Aborted (core dumped) .
> /build/qemu-system-loongarch64 -machine virt -m 8G -cpu la464 -smp 8
> -kernel ~/vmlinux -initrd ramdisk -serial stdio -monitor
> telnet:localhost. 4418,server,nowait -net nic -net user -device
> virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device
> usb-tablet,id=tablet,bus=xhci.0, port=1 -device
> usb-tablet,id=tablet,bus=xhci.0, -device usb-tablet,id=tablet,bus=xhci.
> port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 -append
> "root=/dev/ram rdinit=/sbin/init console=ttyS0,115200
> earlycon=uart,mmio. 0x1fe001e0" --nographic
Works for me squashing:
-- >8 --
diff --git a/hw/intc/loongson_ipi.c b/hw/intc/loongson_ipi.c
index 6e92a50349..ce845aecda 100644
--- a/hw/intc/loongson_ipi.c
+++ b/hw/intc/loongson_ipi.c
@@ -305,18 +305,18 @@ static void loongson_ipi_realize(DeviceState *dev,
Error **errp)
return;
}
- if (s->has_mmio) {
- for (i = 0; i < s->num_cpu; i++) {
- s->cpu[i].ipi = s;
+ for (i = 0; i < s->num_cpu; i++) {
+ s->cpu[i].ipi = s;
+ 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);
- 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);
}
}
}
---
© 2016 - 2026 Red Hat, Inc.