Hi Albert, On 13/02/14 10:11, Albert ARIBAUD wrote: > Hi Marc, > > On Sat, 7 Dec 2013 11:19:05 +0000, Marc Zyngier <marc.zyngier@xxxxxxx> > wrote: > >> PSCI is an ARM standard that provides a generic interface that >> supervisory software can use to manage power in the following >> situations: >> - Core idle management >> - CPU hotplug >> - big.LITTLE migration models >> - System shutdown and reset >> >> It basically allows the kernel to offload these tasks to the firmware, >> and rely on common kernel side code. >> >> More importantly, it gives a way to ensure that CPUs enter the kernel >> at the appropriate exception level (ie HYP mode, to allow the use of >> the virtualization extensions), even across events like CPUs being >> powered off/on or suspended. >> >> The main idea here is to turn some of the existing u-boot code into a >> separate section that can live in secure RAM (or a reserved page of >> memory), containing a secure monitor that will implement the PSCI >> operations. This code will still be alive when u-boot is long gone, >> hence the need for a piece of memory that will not be touched by the >> OS. >> >> This patch series contains 4 parts: >> - the first four patches are just bug fixes >> - the next three refactor the HYP/non-secure code to allow relocation >> in secure memory >> - the next three contain the generic PSCI code and DT infrastructure >> - the last three implement the CPU_ON method of the Allwinner A20 (aka sun7i). >> >> I realize the A20 u-boot code is not upstream yet (BTW is anyone >> actively working on that?), but hopefully that should give a good idea >> of how things are structured so far. The patches are against the sunxi >> u-boot tree as of today, and the first 10 patches will directly apply >> to mainline u-boot. >> >> As for using this code, it goes like this: >> sun7i# ext2load mmc 0:1 0x40008000 zImage ; ext2load mmc 0:1 0x60000000 sun7i-a20-cubietruck.dtb >> 2270120 bytes read in 117 ms (18.5 MiB/s) >> 9138 bytes read in 3 ms (2.9 MiB/s) >> sun7i# fdt addr 0x60000000 ; fdt resize ; fdt set ethernet0 mac-address "[5a fe b0 07 b0 07]" >> sun7i# setenv bootargs console=ttyS0,115200 earlyprintk ip=dhcp root=/dev/nfs nfsroot=/backup/a20_root,tcp >> sun7i# bootz 0x40008000 - 0x60000000 >> >> The kernel now boots in HYP mode, finds its secondary CPU without any >> SMP code present in the kernel, and runs KVM out of the box. >> Hopefully, the Xen/ARM guys can do the same fairly easily. >> >> This code has also been tested on a VExpress TC2, running KVM with all >> 5 CPUs, in order to make sure there was no obvious regression. >> >> I'm wildly cross-posting this patch series, including to lists I'm not >> subscribed to. Please keep me on Cc for any comment you may have. >> >> Cheers, >> >> M. > > There are comments re 01/13 an 07/13. Should I expect a V3 on the > U-Boot ML? Yes. As I said yesterday, I plan to address the comments pretty quickly (during the weekend anyway), and repost a new version on the same mailing lists. Thanks, M. -- Jazz is not dead. It just smells funny... _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/cucslists/listinfo/kvmarm