|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5.99.1 RFC 1/4] xen/arm: Duplicate gic-v2.c file to support hip04 platform version
Hi Ian,
On 26/02/15 12:44, Ian Campbell wrote:
> The set of hardware which Xen needs to be able to drive (rather than
> give to a hardware domain) is:
>
> * CPUs
> * Host interrupt controllers
> * Host timers
> * A UART
> * Second-state MMUs
> * Second-stage SMMUs/IOMMU (First-stage used by domains)
> * PCI host bridges (in the near future)
>
> (did I forget any?)
I think everything is there.
> NB: I'm only considering host level stuff here. Our virtualised hardware
> as exposed to the guest is well defined right now and any conversation
> about deviating from the set of hardware (e.g. providing a guest view to
> a non-GIC compliant virtual interrupt controller) would be part of a
> separate larger conversation about "hvm" style guests (and I'd, as you
> might imagine, be very reluctant to code to Xen itself to support
> non-standard vGICs in particular).
That would mean on platform such as Hisilicon, Guest (including DOM0)
won't be able to use more than 8 CPUs. But I guess this is a fair trade
for having a GIC which differs from the spec.
> From a "what does 'standards compliant' mean" PoV we have:
>
> CPUs:
>
> Specified in the ARM ARM (v7=ARM DDI 0406, v8=ARM DDI 0487).
>
> Uncontroversial, I hope!
>
> Host interrupt controllers:
>
> Defined in "ARM Generic Interrupt Controller Architecture
> Specification" (v2=ARM IHI 0048B, v3=???).
AFAICT, for GICv3 there is a hardware spec available (though not
publicly) but no developer spec.
> Referenced from ARMv8 ARM (but not required AFAICT) but
> nonetheless this is what we consider when we talk about the
> "standard interrupt controller".
>
> Host timers:
>
> Defined in the ARMv8 ARM "Generic Timers" chapter.
>
> Defined as an extension to ARMv7 (don't have doc ref handy). For
> our purposes such extensions are considered standardized[*].
It's worth to mention that we don't support generic memory mapped timer
for now. I don't know if we aim to support it.
> UARTS:
>
> SBSA defines some (pl011 only?), but there are lots, including
> 8250-alike ones (ns16550 etc) which is a well established
> standard (from x86).
>
> Given that UART drivers are generally small and pretty trivial I
> think we can tolerate "non-standard" (i.e. non-SBSA, non-8250)
> ones, so long as they are able to support our vuart interface.
>
> I think the non-{pl011,8250} ones should be subject to non-core
> (i.e. community) maintenance as I mentioned previously, i.e
> should be listed in MAINTAINERS other than under the core ARM
> entry. If we decide to go ahead with this approach I'll ask the
> appropriate people to update MAINTAINERS.
At that time we have 3 "non-compliant" UART in Xen: exynos4210, scif and
omap.
Having maintainers per non-compliant UART would make some generic more
complicate to upstream. Indeed, it would require all the ack.
>
> Second stage MMU:
>
> Defined in the ARMv8 ARM, or the ARMv7 LPAE extensions[*, **].
>
> Second stage SMMU/IOMMU:
>
> Defined in "ARM System Memory Management Unit Architecture
> Specification" (ARM IHI 0062D?)
The D is the revision, so this would be ARM IHI 0062 for all the SMMUs.
[..]
> I think the above is a workable definition of what it is reasonable to
> expect the core Xen/ARM maintainers to look after (with that particular
> hat on) vs. what it should be expected for interested members of the
> community to step up and maintain (where the people who happen to be
> core Xen/ARM maintainers may occasionally chose to have such a hat too.)
I got few questions about it:
- What happen if the maintainers of a specific driver (UART/IRQ
controller) doesn't answer?
- How do we handle possible security issue related to a specific
driver? Is it even considered as a security one?
- As a new drivers would tight to a new set of maintainers, how do we
decide that a new drivers is accepted in Xen?
Given the governance spec [1], we may decide to reject a maintainers for
some reason. Does it mean the drivers is rejected too?
Overall, I think we should clearly define the condition of
acceptance/maintenance of a specific driver.
[..]
> [**] The LPAE extensions include/are mixed with the hyp mode page table
> format, so we pretty certainly need it.
Rigth, the ARM spec required LPAE extensions when virtualization is
supported.
Regards,
--
Julien Grall
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |