[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 13/16] xen/arm: Add support for GIC v3
Hi Julien, On Thu, Apr 17, 2014 at 4:47 PM, Julien Grall <julien.grall@xxxxxxxxxx> wrote: > On 04/17/2014 12:00 PM, Vijay Kilari wrote: >> On Thu, Apr 17, 2014 at 3:27 PM, Julien Grall <julien.grall@xxxxxxxxxx> >> wrote: >>> On 04/15/2014 12:17 PM, vijay.kilari@xxxxxxxxx wrote: >>>> +#define GICD_CTLR (0x000) >>>> +#define GICD_TYPER (0x004) >>>> +#define GICD_IIDR (0x008) >>>> +#define GICD_STATUSR (0x010) >>>> +#define GICD_SETSPI_NSR (0x040) >>>> +#define GICD_CLRSPI_NSR (0x048) >>>> +#define GICD_SETSPI_SR (0x050) >>>> +#define GICD_CLRSPI_SR (0x058) >>>> +#define GICD_IGROUPR (0x080) >>>> +#define GICD_IGROUPRN (0x0FC) >>>> +#define GICD_ISENABLER (0x100) >>>> +#define GICD_ISENABLERN (0x17C) >>>> +#define GICD_ICENABLER (0x180) >>>> +#define GICD_ICENABLERN (0x1fC) >>>> +#define GICD_ISPENDR (0x200) >>>> +#define GICD_ISPENDRN (0x27C) >>>> +#define GICD_ICPENDR (0x280) >>>> +#define GICD_ICPENDRN (0x2FC) >>>> +#define GICD_ISACTIVER (0x300) >>>> +#define GICD_ISACTIVERN (0x37C) >>>> +#define GICD_ICACTIVER (0x380) >>>> +#define GICD_ICACTIVERN (0x3FC) >>>> +#define GICD_IPRIORITYR (0x400) >>>> +#define GICD_IPRIORITYRN (0x7F8) >>>> +#define GICD_ICFGR (0xC00) >>>> +#define GICD_ICFGRN (0xCFC) >>>> +#define GICD_NSACR (0xE00) >>>> +#define GICD_NSACRN (0xEFC) >>>> +#define GICD_SGIR (0xF00) >>>> +#define GICD_CPENDSGIR (0xF10) >>>> +#define GICD_CPENDSGIRN (0xF1C) >>>> +#define GICD_SPENDSGIR (0xF20) >>>> +#define GICD_SPENDSGIRN (0xF2C) >>>> +#define GICD_IROUTER (0x6000) >>>> +#define GICD_IROUTERN (0x7FF8) >>>> +#define GICD_PIDR0 (0xFFE0) >>>> +#define GICD_PIDR2 (0xFFE8) >>>> +#define GICD_PIDR7 (0xFFDC) >>> >>> Most of this registers are the same as GICv2 except /4 right? >>> >>> If so, it might be interesting to drop the /4 in the GICv2 so we will be >>> able to share most of the VGIC distr code. >>> >> Few registers are common. There are additional registers in V3 like >> IROUTER, PIDR. > > You have some strange conception of few :). About 20 registers are > common with GICv2. > >> The GICv2 defines are also used by gic-v2 driver as well which expects >> register_address/4. >> So changing this impacts existing GIC v2 driver as well. > > I would prefer to modify GIC v2 driver rather than forking too much the > VGIC code. The change in GIC v2 is not so difficult... Is it ok if we can get rid of usage fixmap in GICv2 driver to access GICD/GICH/GICC regions and use ioremap_nocache() similar to GICv3 driver?. > > It will save us lots of debugging time later. If we keep your solution, > if we find a bug in the vGICv2 distributor we have to check vGICv3 > {re,distributor}. That would mean fixing the same bug in 3 places... > > With my solution, you will be able to handle in common code the > registers valid on both configuration. Then calling vgic callbacks for > GICv3 specific registers. > > It will also help to support vGICv2 on GICv3. > > -- > Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |