Port-arm archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: [PATCH] Support for Versatile Express A15




To: Justin Cormack <justin%specialbusservice.com@localhost>

Subject: Re: [PATCH] Support for Versatile Express A15

From: "Sergio L. Pascual" <slp%sinrega.org@localhost>

Date: Mon, 09 Feb 2015 09:33:23 +0100


On Sunday 08 February 2015 13:24:36 Justin Cormack wrote:
> On 3 February 2015 at 20:33, Sergio L. Pascual <slp%sinrega.org@localhost> wrote:
> > This board is interesting for two reasons: is a well supported ARMv7
> > platform within QEMU, and it's a first step towards running NetBSD/evbarm
> > as a guest on KVM/ARM.
> 
> Out of interest what are the kvm additional requirements above these
> patches?
> 

I've just uploaded the patches for KVM support to 
http://www.netbsd.org/~slp/kvm

 - 01_vexpress_kvm_guest.patch: Add an independent configuration file for 
Versatile Express A15 with KVM support. Add an specialized driver for KVM's 
vGIC(*).

 - 02_gtmr_add_kvm_support.patch: If targeting KVM, rearm timer at each 
interrupt.

 - 03_gtmr_enable_timer_after_tval.patch: Enable timer after writing TVAL. 
This avoids an unpredictable behavior when running as KVM Guest.

 - 04_cortex_pmu_use_virtual_counter.patch: If targeting KVM, use the Virtual 
Timer Value Register, as the Cycle Count Register is not available when 
running as KVM Guest.

(*) This probably deserves some explaining. Our current controller for Cortex 
GIC has two problems with KVM's vGIC:

 1) It relies on interrupt levels and the PMR, which KVM doesn't implement yet 
(the PMR just acts like an all-or-nothing switch). The alternative driver 
implements a strategy similar to Nick's RPi interrupt handler, using pic.c 
instrumentation to avoid relying on IRQ levels.

 2) Under KVM, the GIC's CPU interface is hardware assisted, and can be 
cheaply used, but the distributor is emulated and accessing it traps to the 
Host, which makes the Guest unbearable slow. The alternative driver avoids 
using the distributor to mask interrupts by delaying EOI until 
pic_unblock_irqs is called.

There's still some work to be done to be able to run under KVM with a decent 
performance:

 - Add support for VirtIO-MMIO devices.

 - Add MULTIPROCESSOR support.

Sergio.



References:

[PATCH] Support for Versatile Express A15
From: Sergio L. Pascual

Re: [PATCH] Support for Versatile Express A15
From: Justin Cormack




Prev by Date: Re: [PATCH] Support for Versatile Express A15

Next by Date: Re: Raspberry Pi I2C implementation still broken?

Previous by Thread: Re: [PATCH] Support for Versatile Express A15

Next by Thread: Identifying VFPs by architecture bits

Indexes:

reverse Date

reverse Thread

Old Index



Home | Main Index | Thread Index | Old Index