Hello! > Not worrying about KVM yet, but I think pushing this up to virt > shouldn’t interfere with that work anyway.
Actually, IMHO this code is quite universal. My initial idea was to introduce a global variable instead of ARM_CPUS_PER_CLUSTER definition. By setting this variable before creating CPU objects you could make whatever layout you want. But, yes, it always starts from 0. Perhaps you could add another global variable, like 'offset', in order to cover this. But, PM didn't want global variable. Okay, you can add a property and override this default during machine model creation. And this has nothing to do with KVM. KVM code is executed after default MPIDR is assigned and overrides IDs with whatever it gets from the kernel. All you can do with current kernels is to patch device tree with new IDs. Kind regards, Pavel Fedin Expert Engineer Samsung Electronics Research center Russia