On Wed, 21 Jan 2015, Hanjun Guo wrote: > Hi Christoffer, > > Sorry for the late reply, I got no answer yet but > with one question below. > > On 2015年01月20日 04:33, Christoffer Dall wrote: > > Hi, > > > > On Sun, Jan 04, 2015 at 06:55:18PM +0800, Hanjun Guo wrote: > > > From: Graeme Gregory <graeme.gregory@xxxxxxxxxx> > > > > > > Add documentation for the guidelines of how to use ACPI > > > on ARM64. > > > > > > Reviewed-by: Suravee Suthikulpanit <Suravee.Suthikulpanit@xxxxxxx> > > > Signed-off-by: Graeme Gregory <graeme.gregory@xxxxxxxxxx> > > > Signed-off-by: Al Stone <al.stone@xxxxxxxxxx> > > > Signed-off-by: Hanjun Guo <hanjun.guo@xxxxxxxxxx> > > > --- > > > Documentation/arm64/arm-acpi.txt | 327 > > > +++++++++++++++++++++++++++++++++++++++ > > > 1 file changed, 327 insertions(+) > > > create mode 100644 Documentation/arm64/arm-acpi.txt > > > > > > diff --git a/Documentation/arm64/arm-acpi.txt > > > b/Documentation/arm64/arm-acpi.txt > > > new file mode 100644 > > > index 0000000..21e7020 > > > --- /dev/null > > > +++ b/Documentation/arm64/arm-acpi.txt > > > @@ -0,0 +1,327 @@ > > > +ACPI on ARMv8 Servers > > > +--------------------- > > > +ACPI can be used for ARMv8 general purpose servers designed to follow > > > +the ARM SBSA (Server Base System Architecture) and SBBR (Server Base > > > +Boot Requirements) specifications, currently available to those with > > > +an ARM login at http://silver.arm.com. > > > + > > > +The ARMv8 kernel implements the reduced hardware model of ACPI version > > > +5.1 and later. Links to the specification and all external documents > > > +it refers to are managed by the UEFI Forum. The specification is > > > +available at http://www.uefi.org/specifications and external documents > > > +can be found via http://www.uefi.org/acpi. > > > + > > > +If an ARMv8 system does not meet the requirements of the SBSA, or cannot > > > +be described using the mechanisms defined in the required ACPI > > > specifications, > > > +then it is likely that Device Tree (DT) is more suitable than ACPI for > > > the > > > +hardware. > > > + > > > + > > > +Relationship with Device Tree > > > +----------------------------- > > > +ACPI support in drivers and subsystems for ARMv8 should never be mutually > > > +exclusive with DT support at compile time. > > > + > > > +At boot time the kernel will only use one description method depending on > > > +parameters passed from the bootloader (including kernel bootargs). > > > + > > > +Regardless of whether DT or ACPI is used, the kernel must always be > > > capable > > > +of booting with either scheme (in kernels with both schemes enabled at > > > compile > > > +time). > > > + > > > + > > > +Booting using ACPI tables > > > +------------------------- > > > +The only defined method for passing ACPI tables to the kernel on ARMv8 > > > +is via the UEFI system configuration table. > > > + > > > > This is a bit concerning for the approach we are currently taking to > > support ACPI on Xen [1]. > > > > Background: Xen is a tiny hypervisor which cannot parse the DSDT or any > > other non-static table. Xen relies on Linux in Dom0 to manage most > > (basically everything except the GIC, serial port, SMMU, and timers) > > hardware resources and relies on Dom0 to parse the ACPI tables. > > > > While Xen itself is typically booted by UEFI and finds RSDP through the > > UEFI system table, Xen does NOT run another UEFI instance to boot Dom0 > > nor does it pass through the presence of UEFI to Dom0 in any way. > > Instead, it just created a DT (with modifications concerning the > > hardware mentioned above) and boots Linux in Dom0 directly (on x86 any > > required UEFI call is performed through paravirtualized hypercalls). > > > > In the case of ACPI, Xen adds a property to the chosen node and > > populates it with the RDSP in Dom0's address space. Patches have not > > Sorry I'm not familiar with hypervisor, I have question here about > x86 on xen, how ACPI works on XEN for x86? The whole thing works differently on x86: on native x86 the OS finds the RDSP by scanning a couple of memory regions looking for the string "RSD PTR". Xen and Dom0 both do that independently (Dom0 can map that memory region).