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 present gic
* 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
-- Mohamed Dawod
Software Engineer, Cairo Egypt