All of lore.kernel.org
 help / color / mirror / Atom feed
From: Julien Grall <julien.grall@arm.com>
To: Stefano Stabellini <sstabellini@kernel.org>,
	Shannon Zhao <zhaoshenglong@huawei.com>
Cc: wei.liu2@citrix.com, ian.jackson@eu.citrix.com,
	peter.huangpeng@huawei.com, xen-devel@lists.xen.org,
	shannon.zhao@linaro.org, boris.ostrovsky@oracle.com
Subject: Re: [PATCH v5 00/16] Xen ARM DomU ACPI support
Date: Wed, 14 Sep 2016 08:14:41 +0100	[thread overview]
Message-ID: <5d5a0bb9-a1e0-c4ea-91f5-b156fb6a5c5f@arm.com> (raw)
In-Reply-To: <alpine.DEB.2.10.1609131804310.2359@sstabellini-ThinkPad-X260>

Hello,

On 14/09/2016 02:06, Stefano Stabellini wrote:
> On Wed, 14 Sep 2016, Shannon Zhao wrote:
>> On 2016/9/13 23:17, Julien Grall wrote:
>>>
>>>
>>> On 13/09/16 14:06, Shannon Zhao wrote:
>>>> Hi Julien,
>>>
>>> Hello Shannon,
>>>
>>>> On 2016/9/13 19:56, Julien Grall wrote:
>>>>> Hi Shannon,
>>>>>
>>>>> On 02/09/16 03:55, Shannon Zhao wrote:
>>>>>> From: Shannon Zhao <shannon.zhao@linaro.org>
>>>>>>
>>>>>> The design of this feature is described as below.
>>>>>> Firstly, the toolstack (libxl) generates the ACPI tables according the
>>>>>> number of vcpus and gic controller.
>>>>>>
>>>>>> Then, it copies these ACPI tables to DomU non-RAM memory map space and
>>>>>> passes them to UEFI firmware through the "ARM multiboot" protocol.
>>>>>>
>>>>>> At last, UEFI gets the ACPI tables through the "ARM multiboot" protocol
>>>>>> and installs these tables like the usual way and passes both ACPI
>>>>>> and DT
>>>>>> information to the Xen DomU.
>>>>>>
>>>>>> Currently libxl only generates RSDP, XSDT, GTDT, MADT, FADT, DSDT
>>>>>> tables
>>>>>> since it's enough now.
>>>>>>
>>>>>> This has been tested using guest kernel with the Dom0 ACPI support
>>>>>> patches which could be fetched from linux master or:
>>>>>> https://git.kernel.org/cgit/linux/kernel/git/mfleming/efi.git/log/?h=efi/arm-xen
>>>>>>
>>>>>>
>>>>>>
>>>>>> The UEFI binary could be fetched from or built from edk2 master branch:
>>>>>> http://people.linaro.org/~shannon.zhao/DomU_ACPI/XEN_EFI.fd
>>>>>
>>>>> On which commit this EFI binary is based? I am trying to rebuild myself,
>>>>> and go no luck to boot it so far.
>>>>>
>>>> I forgot the exact commit. But I just tried below commit which adds the
>>>> support to edk2 and the guest can boot up successfully with ACPI.
>>>>
>>>> 402dde6 ArmVirtPkg/ArmVirtXen: Add ACPI support for Virt Xen ARM
>>>
>>> Thanks, the commit does not build on my platform. After some help for
>>> Ard I managed to boot UEFI with the patch [1] applied.
>>>
>>> However Linux does not boot when passing acpi=on and abort with the
>>> following message:
>>>
>>> (d86) 6RCU: Adjusting geometry for rcu_fanout_leaf=64, nr_cpu_ids=1
>>> (d86) 6NR_IRQS:64 nr_irqs:64 0
>>> (d86) 3No valid GICC entries exist
>>> (d86) 0Kernel panic - not syncing: No interrupt controller found.
>>> (d86) dCPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.8.0-rc6+ #420
>>> (d86) dHardware name: XENVM-4.8 (DT)
>>> (d86) Call trace:
>>> (d86) [<ffff000008088708>] dump_backtrace+0x0/0x1a8
>>> (d86) [<ffff0000080888c4>] show_stack+0x14/0x20
>>> (d86) [<ffff0000083d6c2c>] dump_stack+0x94/0xb8
>>> (d86) [<ffff00000815c24c>] panic+0x10c/0x250
>>> (d86) [<ffff000008c223f8>] init_IRQ+0x24/0x2c
>>> (d86) [<ffff000008c20a24>] start_kernel+0x238/0x394
>>> (d86) [<ffff000008c201bc>] __primary_switched+0x30/0x74
>>> (d86) 0---[ end Kernel panic - not syncing: No interrupt controller found.
>>>
>>> This is because the header.length for GICC is not valid for ACPI 5.1
>>> (see BAD_MADT_GICC_ENTRY). So please check all the size of each table
>>> against ACPI 5.1.
>>>
>> Oops. The reason is that acpi_madt_generic_interrupt in Xen is already
>> updated to ACPI 6.0 and the length is 80 not 76 of ACPI 5.1.
>> One solution is that we still use ACPI 5.1 and make gicc->header.length
>> 76. Other one is that we update to ACPI 6.0 since the Xen ARM ACPI
>> support in Linux was introduced after ACPI 6.0.
>>
>> Which one do you prefer?
>
> Certainly the versions of all tables need to be consistent. I would
> prefer to have ACPI 6.0 but 5.1 is acceptable too (especially if
> upgrading to 6.0 causes a large amount of changes to your patches).

I disagree on this, we should use the first version of ACPI that is 
fully supporting ARM because a guest operating system may choose to 
support the first one (there is a lot hardware platform out which only 
provides ACPI 5.1).

Regards,

-- 
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

  reply	other threads:[~2016-09-14  7:14 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-02  2:55 [PATCH v5 00/16] Xen ARM DomU ACPI support Shannon Zhao
2016-09-02  2:55 ` [PATCH v5 01/16] tools/libxl: Add an unified configuration option for ACPI Shannon Zhao
2016-09-02 14:29   ` Wei Liu
2016-09-02  2:55 ` [PATCH v5 02/16] libxl/arm: prepare for constructing ACPI tables Shannon Zhao
2016-09-02 14:29   ` Wei Liu
2016-09-12 14:41   ` Julien Grall
2016-09-02  2:55 ` [PATCH v5 03/16] libxl/arm: Generate static ACPI DSDT table Shannon Zhao
2016-09-02 14:29   ` Wei Liu
2016-09-12 14:44   ` Julien Grall
2016-09-02  2:55 ` [PATCH v5 04/16] libxl/arm: Estimate the size of ACPI tables Shannon Zhao
2016-09-02  2:55 ` [PATCH v5 05/16] libxl/arm: Construct ACPI RSDP table Shannon Zhao
2016-09-12 14:58   ` Julien Grall
2016-09-02  2:55 ` [PATCH v5 06/16] libxl/arm: Construct ACPI XSDT table Shannon Zhao
2016-09-12 15:05   ` Julien Grall
2016-09-02  2:55 ` [PATCH v5 07/16] libxl/arm: Construct ACPI GTDT table Shannon Zhao
2016-09-12 15:08   ` Julien Grall
2016-09-02  2:55 ` [PATCH v5 08/16] libxl/arm: Factor MPIDR computing codes out as a helper Shannon Zhao
2016-09-02  2:55 ` [PATCH v5 09/16] libxl/arm: Construct ACPI MADT table Shannon Zhao
2016-09-12 15:09   ` Julien Grall
2016-09-02  2:55 ` [PATCH v5 10/16] libxl/arm: Construct ACPI FADT table Shannon Zhao
2016-09-12 15:10   ` Julien Grall
2016-09-02  2:55 ` [PATCH v5 11/16] libxl/arm: Construct ACPI DSDT table Shannon Zhao
2016-09-12 15:13   ` Julien Grall
2016-09-02  2:55 ` [PATCH v5 12/16] libxl/arm: Factor finalise_one_memory_node as a gerneric function Shannon Zhao
2016-09-02  2:55 ` [PATCH v5 13/16] libxl/arm: Add ACPI module Shannon Zhao
2016-09-02  2:55 ` [PATCH v5 14/16] public/hvm/params.h: Add macros for HVM_PARAM_CALLBACK_TYPE_PPI Shannon Zhao
2016-09-02  6:18   ` Jan Beulich
2016-09-02  7:23     ` Shannon Zhao
2016-09-02  8:17       ` Jan Beulich
2016-09-02  2:55 ` [PATCH v5 15/16] libxl/arm: Initialize domain param HVM_PARAM_CALLBACK_IRQ Shannon Zhao
2016-09-12 15:14   ` Julien Grall
2016-09-02  2:55 ` [PATCH v5 16/16] libxl/arm: Add the size of ACPI tables to maxmem Shannon Zhao
2016-09-12 15:18   ` Julien Grall
2016-09-13  7:03     ` Shannon Zhao
2016-09-13 10:38       ` Julien Grall
2016-09-15 10:46         ` Wei Liu
2016-09-19 14:53         ` Ian Jackson
2016-09-02 14:31 ` [PATCH v5 00/16] Xen ARM DomU ACPI support Wei Liu
2016-09-12 15:22 ` Julien Grall
2016-09-13  6:30   ` Shannon Zhao
2016-09-13 11:56 ` Julien Grall
2016-09-13 13:06   ` Shannon Zhao
2016-09-13 15:17     ` Julien Grall
2016-09-13 15:18       ` Julien Grall
2016-09-14  0:56       ` Shannon Zhao
2016-09-14  1:06         ` Stefano Stabellini
2016-09-14  7:14           ` Julien Grall [this message]
2016-09-14  7:32             ` Shannon Zhao
2016-09-14  7:40               ` Julien Grall
2016-09-14  8:01                 ` Shannon Zhao
2016-09-14 20:48             ` Stefano Stabellini
2016-09-14 21:26               ` Julien Grall
2016-09-15  2:17 Boris Ostrovsky
2016-09-15  8:58 ` Julien Grall
2016-09-15 12:35   ` Boris Ostrovsky
2016-09-15 13:46     ` Julien Grall

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5d5a0bb9-a1e0-c4ea-91f5-b156fb6a5c5f@arm.com \
    --to=julien.grall@arm.com \
    --cc=boris.ostrovsky@oracle.com \
    --cc=ian.jackson@eu.citrix.com \
    --cc=peter.huangpeng@huawei.com \
    --cc=shannon.zhao@linaro.org \
    --cc=sstabellini@kernel.org \
    --cc=wei.liu2@citrix.com \
    --cc=xen-devel@lists.xen.org \
    --cc=zhaoshenglong@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.