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



Driving Innovation! Visit our website www.avelabs.com, to read Avelabs Confidentiality Notice, follow this link: http://www.avelabs.com/email/disclaimer.html