
Hi Tim,
[just spotted this by pure luck...]
I recently ported U-Boot over to the RK3288-based Veyron Speedy 4GB Chromebook in an attempt to gain KVM (hypervisor) support [1]. However, in addition to the GIC being completely masked off in non-secure mode by the AXI bus, the machine hangs immediately upon exiting the NS/HYP switch monitor mode call in arch/arm/cpu/armv7/nonsec_virt.S.
What exactly do you mean by "masked off"? As in non-accessible, generates an abort? Where exactly have you traced that hang? What are the other CPUs doing when you do this? In short: a lot more details, please.
I notice that the hypervisor setup code was revised back in 2014 to support platforms with secure RAM, effectively replacing the early hvc 0 call with a late smc 0-based setup routine. Has the current hypervisor implementation been tested on the original Versatile Express TC-2 board since the setup code modification?
I did when I wrote that code. And still run my TC2 occasionally, though I haven't updated u-boot on this system since then (if not broken...). This code has been known to enable both KVM and Xen on a variety of VE-capable HW, so it is not completely broken (it may still have the odd bug though).
Is anyone else working on RK3288 hypervisor support? The datasheet claims virtualization extensions are supported, but right now that seems quite dubious unless 1.) the GIC can be un-masked in normal mode and 2.) the hang on HYP mode switch can be traced to an implementation fault in u-boot.
Cortex-A12/A17 definitely has virtualization extensions (I ran KVM on a A12 FPGA a couple of years ago, without any issue). I'll try to have a look at your patches. Do you have an accessible git tree somewhere?
Thanks,
M.