[U-Boot] ARMv7 / RK3288 Hypervisor Support

Marc Zyngier marc.zyngier at arm.com
Sun May 1 11:30:04 CEST 2016


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.
-- 
Fast, cheap, reliable. Pick two.



More information about the U-Boot mailing list