Subject: [PATCH v6 17/17] Documentation: ACPI for ARM64

From: [email-masked] (Hanjun Guo)
Date: Wed, 21 Jan 2015 20:37:00 +0800

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 <[email-masked]>
>>
>> Add documentation for the guidelines of how to use ACPI
>> on ARM64.
>>
>> Reviewed-by: Suravee Suthikulpanit <[email-masked]>
>> Signed-off-by: Graeme Gregory <[email-masked]>
>> Signed-off-by: Al Stone <[email-masked]>
>> Signed-off-by: Hanjun Guo <[email-masked]>
>> ---
>>   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?

Thanks
Hanjun