Hello, I'm trying to provide multiple CPUs for a linux VM on top of L4. I'm using the qemu virt machine and building for aarch64. so I used *-smp* option to provide more CPUs.
$ qemu-system-aarch64 -M virt,virtualization=true -cpu cortex-a57 -smp 4 -m 1024 -kernel ....etc....
Unfortunately, This didn't work. I tried to add more CPU device nodes to the dts file *virt-arm_virt-64.dts *but it also didn't work.
I think that it's because of the provided interrupt-controller with *virt-arm_virt-64.dts* in *l4/pkg/uvmm/conf/dts* which mentioned that it supports only one CPU.
icsoc { compatible = "simple-bus"; #address-cells = <2>; #size-cells = <2>; ranges;
/* Uvmm will adapt the compatible string depending on the presentgic * version. It expects reg entries that provide enough space for the * Cpu/Dist interface for gicv2 (at least 0x1000, 0x1000) or the * Dist/Redist interface for gicv3 (0x10000, 0x20000 * number of cpus). * *The entries provided here support any gicv2 setup or a gicv3 setup
- with one Cpu.* */ gic: interrupt-controller { compatible = "arm,gic-400", "arm,cortex-a15-gic",
"arm,cortex-a9-gic"; #interrupt-cells = <3>; #address-cells = <0>; interrupt-controller; reg = <0 0x40000 0 0x10000>, <0 0x50000 0 0x20000>; }; };
My question now, is there any workaround to support multiple CPUs for virt machine on arm64 ?
Thanks, Regards