All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH v5 00/16] Xen ARM DomU ACPI support
@ 2016-09-15  2:17 Boris Ostrovsky
  2016-09-15  8:58 ` Julien Grall
  0 siblings, 1 reply; 20+ messages in thread
From: Boris Ostrovsky @ 2016-09-15  2:17 UTC (permalink / raw)
  To: julien.grall
  Cc: sstabellini, wei.liu2, ian.jackson, peter.huangpeng, xen-devel,
	shannon.zhao, zhaoshenglong


----- julien.grall@arm.com wrote:

> Hi Stefano,
> 
> On 14/09/2016 21:48, Stefano Stabellini wrote:
> > On Wed, 14 Sep 2016, Julien Grall wrote:
> >> 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).
> >
> > And I thought that compatibility was supposed to be ACPI's strong
> suit.
> > I mistakenly had the impression that new ACPI releases weren't
> suppose
> > to break old OSes. I take back my comment, you are right that we
> should
> > stay on 5.1 (including all the erratas, many are important for ARM).
> >
> 
> IIRC, early version of ACPI used to have some incompatibility. I will
> have to go through the ACPI spec to find the main differences between
> 5.1 and 6.0 for ARM.


Transition from 1.x to 2.0 introduced incompatibilities (I believe in RSDP
structure definition) but I thought that since then they kept everything back
compatible.

-boris


> 
> Assuming the newer versions are backward compatible, it might be good
> to
> written down somewhere (maybe a public headers) that the guest OS
> should
> not assume a specific version of ACPI. This would avoid to tie us on
> ACPI 5.1 and allow us to upgrade the tables on a next release of Xen.
> 
> In any case, we should be consistent accross all the ACPI tables (e.g
> version, size of the tables...) to accommodate picky OSes. For now, I
> would stay on ACPI 5.1 for safety.
> 
> Regards,
> 
> --
> Julien Grall
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> https://lists.xen.org/xen-devel

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

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v5 00/16] Xen ARM DomU ACPI support
  2016-09-15  2:17 [PATCH v5 00/16] Xen ARM DomU ACPI support Boris Ostrovsky
@ 2016-09-15  8:58 ` Julien Grall
  2016-09-15 12:35   ` Boris Ostrovsky
  0 siblings, 1 reply; 20+ messages in thread
From: Julien Grall @ 2016-09-15  8:58 UTC (permalink / raw)
  To: Boris Ostrovsky
  Cc: sstabellini, wei.liu2, ian.jackson, peter.huangpeng, xen-devel,
	shannon.zhao, zhaoshenglong

Hi Boris,

On 15/09/2016 03:17, Boris Ostrovsky wrote:
>
> ----- julien.grall@arm.com wrote:
>
>> Hi Stefano,
>>
>> On 14/09/2016 21:48, Stefano Stabellini wrote:
>>> On Wed, 14 Sep 2016, Julien Grall wrote:
>>>> 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).
>>>
>>> And I thought that compatibility was supposed to be ACPI's strong
>> suit.
>>> I mistakenly had the impression that new ACPI releases weren't
>> suppose
>>> to break old OSes. I take back my comment, you are right that we
>> should
>>> stay on 5.1 (including all the erratas, many are important for ARM).
>>>
>>
>> IIRC, early version of ACPI used to have some incompatibility. I will
>> have to go through the ACPI spec to find the main differences between
>> 5.1 and 6.0 for ARM.
>
>
> Transition from 1.x to 2.0 introduced incompatibilities (I believe in RSDP
> structure definition) but I thought that since then they kept everything back
> compatible.

Not related to ARM. But is it the reason why you keep an early version 
of ACPI for HVM guest and never upgraded?

Regards,

-- 
Julien Grall

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

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v5 00/16] Xen ARM DomU ACPI support
  2016-09-15  8:58 ` Julien Grall
@ 2016-09-15 12:35   ` Boris Ostrovsky
  2016-09-15 13:46     ` Julien Grall
  0 siblings, 1 reply; 20+ messages in thread
From: Boris Ostrovsky @ 2016-09-15 12:35 UTC (permalink / raw)
  To: Julien Grall
  Cc: sstabellini, wei.liu2, ian.jackson, peter.huangpeng, xen-devel,
	shannon.zhao, zhaoshenglong

On 09/15/2016 04:58 AM, Julien Grall wrote:
> Hi Boris,
>
> On 15/09/2016 03:17, Boris Ostrovsky wrote:
>>
>> ----- julien.grall@arm.com wrote:
>>
>>> Hi Stefano,
>>>
>>> On 14/09/2016 21:48, Stefano Stabellini wrote:
>>>> On Wed, 14 Sep 2016, Julien Grall wrote:
>>>>> 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).
>>>>
>>>> And I thought that compatibility was supposed to be ACPI's strong
>>> suit.
>>>> I mistakenly had the impression that new ACPI releases weren't
>>> suppose
>>>> to break old OSes. I take back my comment, you are right that we
>>> should
>>>> stay on 5.1 (including all the erratas, many are important for ARM).
>>>>
>>>
>>> IIRC, early version of ACPI used to have some incompatibility. I will
>>> have to go through the ACPI spec to find the main differences between
>>> 5.1 and 6.0 for ARM.
>>
>>
>> Transition from 1.x to 2.0 introduced incompatibilities (I believe in
>> RSDP
>> structure definition) but I thought that since then they kept
>> everything back
>> compatible.
>
> Not related to ARM. But is it the reason why you keep an early version
> of ACPI for HVM guest and never upgraded?

I think Jan mentioned at some point that certain versions of Windows
require an early revision although IIRC it was 2.0. So perhaps at some
point we could drop support for pre-2.0 versions, but this was never
going to be part of my series --- the goal was only to make it available
to libxl.


-boris



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

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v5 00/16] Xen ARM DomU ACPI support
  2016-09-15 12:35   ` Boris Ostrovsky
@ 2016-09-15 13:46     ` Julien Grall
  0 siblings, 0 replies; 20+ messages in thread
From: Julien Grall @ 2016-09-15 13:46 UTC (permalink / raw)
  To: Boris Ostrovsky
  Cc: sstabellini, wei.liu2, ian.jackson, peter.huangpeng, xen-devel,
	shannon.zhao, zhaoshenglong



On 15/09/2016 13:35, Boris Ostrovsky wrote:
> On 09/15/2016 04:58 AM, Julien Grall wrote:
> I think Jan mentioned at some point that certain versions of Windows
> require an early revision although IIRC it was 2.0. So perhaps at some
> point we could drop support for pre-2.0 versions, but this was never
> going to be part of my series --- the goal was only to make it available
> to libxl.

Thank you for the information!

Cheers,

-- 
Julien Grall

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

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v5 00/16] Xen ARM DomU ACPI support
  2016-09-14 20:48             ` Stefano Stabellini
@ 2016-09-14 21:26               ` Julien Grall
  0 siblings, 0 replies; 20+ messages in thread
From: Julien Grall @ 2016-09-14 21:26 UTC (permalink / raw)
  To: Stefano Stabellini
  Cc: wei.liu2, ian.jackson, peter.huangpeng, xen-devel, shannon.zhao,
	Shannon Zhao, boris.ostrovsky

Hi Stefano,

On 14/09/2016 21:48, Stefano Stabellini wrote:
> On Wed, 14 Sep 2016, Julien Grall wrote:
>> 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).
>
> And I thought that compatibility was supposed to be ACPI's strong suit.
> I mistakenly had the impression that new ACPI releases weren't suppose
> to break old OSes. I take back my comment, you are right that we should
> stay on 5.1 (including all the erratas, many are important for ARM).
>

IIRC, early version of ACPI used to have some incompatibility. I will 
have to go through the ACPI spec to find the main differences between 
5.1 and 6.0 for ARM.

Assuming the newer versions are backward compatible, it might be good to 
written down somewhere (maybe a public headers) that the guest OS should 
not assume a specific version of ACPI. This would avoid to tie us on 
ACPI 5.1 and allow us to upgrade the tables on a next release of Xen.

In any case, we should be consistent accross all the ACPI tables (e.g 
version, size of the tables...) to accommodate picky OSes. For now, I 
would stay on ACPI 5.1 for safety.

Regards,

-- 
Julien Grall

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

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v5 00/16] Xen ARM DomU ACPI support
  2016-09-14  7:14           ` Julien Grall
  2016-09-14  7:32             ` Shannon Zhao
@ 2016-09-14 20:48             ` Stefano Stabellini
  2016-09-14 21:26               ` Julien Grall
  1 sibling, 1 reply; 20+ messages in thread
From: Stefano Stabellini @ 2016-09-14 20:48 UTC (permalink / raw)
  To: Julien Grall
  Cc: Stefano Stabellini, wei.liu2, ian.jackson, peter.huangpeng,
	xen-devel, shannon.zhao, Shannon Zhao, boris.ostrovsky

On Wed, 14 Sep 2016, Julien Grall wrote:

> 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).

And I thought that compatibility was supposed to be ACPI's strong suit.
I mistakenly had the impression that new ACPI releases weren't suppose
to break old OSes. I take back my comment, you are right that we should
stay on 5.1 (including all the erratas, many are important for ARM).

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

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v5 00/16] Xen ARM DomU ACPI support
  2016-09-14  7:40               ` Julien Grall
@ 2016-09-14  8:01                 ` Shannon Zhao
  0 siblings, 0 replies; 20+ messages in thread
From: Shannon Zhao @ 2016-09-14  8:01 UTC (permalink / raw)
  To: Julien Grall, Stefano Stabellini
  Cc: wei.liu2, ian.jackson, peter.huangpeng, xen-devel, shannon.zhao,
	boris.ostrovsky



On 2016/9/14 15:40, Julien Grall wrote:
> 
> On 14/09/2016 08:32, Shannon Zhao wrote:
>> > 
>> > 
>> > On 2016/9/14 15:14, Julien Grall wrote:
>>> >> 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).
>>> >>
>> > So you prefer we should set the gicc->header.length to 76 and still use
>> > ACPI 5.1, right?
> That would be my preference. From my understanding, the main difference
> between 6.0 and 5.1 for the MADT is a field "reserved" has been added at
> the end of the GICC subtable.
> 
> However, I am wondering whether the Linux check should be relaxed.
> #define BAD_MADT_GICC_ENTRY(entry, end)                                         \
>         (!(entry) || (unsigned long)(entry) + sizeof(*(entry)) > (end) ||       \
>          (entry)->header.length != ACPI_MADT_GICC_LENGTH)
> 
Look at the commit log of this definition, it's used to solve the
problem that linux boots fail when hardware uses ACPI 5.1 because
BAD_MADT_ENTRY() returns true. Maybe it could check if the
(entry)->header.length is greater than 76.

> But the definition of BAD_MADT_ENTRY is more relaxed as it only requires
> to be greater than the size of the structure.
> 
> #define BAD_MADT_ENTRY(entry, end) (                                        \
>                 (!entry) || (unsigned long)entry + sizeof(*entry) > end ||  \
>                 ((struct acpi_subtable_header *)entry)->length < sizeof(*entry))
> 
> Any opinions?
Anyway, for old Linux kernel or other OSes I think we could set
gicc->header.length to 76 and use ACPI 5.1.

Thanks,
-- 
Shannon


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

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v5 00/16] Xen ARM DomU ACPI support
  2016-09-14  7:32             ` Shannon Zhao
@ 2016-09-14  7:40               ` Julien Grall
  2016-09-14  8:01                 ` Shannon Zhao
  0 siblings, 1 reply; 20+ messages in thread
From: Julien Grall @ 2016-09-14  7:40 UTC (permalink / raw)
  To: Shannon Zhao, Stefano Stabellini
  Cc: wei.liu2, ian.jackson, peter.huangpeng, xen-devel, shannon.zhao,
	boris.ostrovsky



On 14/09/2016 08:32, Shannon Zhao wrote:
> 
> 
> On 2016/9/14 15:14, Julien Grall wrote:
>> 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).
>>
> So you prefer we should set the gicc->header.length to 76 and still use
> ACPI 5.1, right?

That would be my preference. From my understanding, the main difference
between 6.0 and 5.1 for the MADT is a field "reserved" has been added at
the end of the GICC subtable.

However, I am wondering whether the Linux check should be relaxed.
#define BAD_MADT_GICC_ENTRY(entry, end)                                         \
        (!(entry) || (unsigned long)(entry) + sizeof(*(entry)) > (end) ||       \
         (entry)->header.length != ACPI_MADT_GICC_LENGTH)

But the definition of BAD_MADT_ENTRY is more relaxed as it only requires
to be greater than the size of the structure.

#define BAD_MADT_ENTRY(entry, end) (                                        \
                (!entry) || (unsigned long)entry + sizeof(*entry) > end ||  \
                ((struct acpi_subtable_header *)entry)->length < sizeof(*entry))

Any opinions?

Regards,

-- 
Julien Grall

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

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v5 00/16] Xen ARM DomU ACPI support
  2016-09-14  7:14           ` Julien Grall
@ 2016-09-14  7:32             ` Shannon Zhao
  2016-09-14  7:40               ` Julien Grall
  2016-09-14 20:48             ` Stefano Stabellini
  1 sibling, 1 reply; 20+ messages in thread
From: Shannon Zhao @ 2016-09-14  7:32 UTC (permalink / raw)
  To: Julien Grall, Stefano Stabellini
  Cc: wei.liu2, ian.jackson, peter.huangpeng, xen-devel, shannon.zhao,
	boris.ostrovsky



On 2016/9/14 15:14, Julien Grall wrote:
> 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).
> 
So you prefer we should set the gicc->header.length to 76 and still use
ACPI 5.1, right?

Thanks,
-- 
Shannon


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

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v5 00/16] Xen ARM DomU ACPI support
  2016-09-14  1:06         ` Stefano Stabellini
@ 2016-09-14  7:14           ` Julien Grall
  2016-09-14  7:32             ` Shannon Zhao
  2016-09-14 20:48             ` Stefano Stabellini
  0 siblings, 2 replies; 20+ messages in thread
From: Julien Grall @ 2016-09-14  7:14 UTC (permalink / raw)
  To: Stefano Stabellini, Shannon Zhao
  Cc: wei.liu2, ian.jackson, peter.huangpeng, xen-devel, shannon.zhao,
	boris.ostrovsky

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

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v5 00/16] Xen ARM DomU ACPI support
  2016-09-14  0:56       ` Shannon Zhao
@ 2016-09-14  1:06         ` Stefano Stabellini
  2016-09-14  7:14           ` Julien Grall
  0 siblings, 1 reply; 20+ messages in thread
From: Stefano Stabellini @ 2016-09-14  1:06 UTC (permalink / raw)
  To: Shannon Zhao
  Cc: sstabellini, wei.liu2, ian.jackson, peter.huangpeng, xen-devel,
	Julien Grall, shannon.zhao, boris.ostrovsky

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).

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

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v5 00/16] Xen ARM DomU ACPI support
  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
  1 sibling, 1 reply; 20+ messages in thread
From: Shannon Zhao @ 2016-09-14  0:56 UTC (permalink / raw)
  To: Julien Grall, xen-devel
  Cc: sstabellini, wei.liu2, ian.jackson, peter.huangpeng,
	shannon.zhao, boris.ostrovsky



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?

Thanks,
-- 
Shannon


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

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v5 00/16] Xen ARM DomU ACPI support
  2016-09-13 15:17     ` Julien Grall
@ 2016-09-13 15:18       ` Julien Grall
  2016-09-14  0:56       ` Shannon Zhao
  1 sibling, 0 replies; 20+ messages in thread
From: Julien Grall @ 2016-09-13 15:18 UTC (permalink / raw)
  To: Shannon Zhao, xen-devel
  Cc: sstabellini, wei.liu2, ian.jackson, peter.huangpeng,
	shannon.zhao, boris.ostrovsky



On 13/09/16 16: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.
>
> My configuration is Linux 4.8-rc6 on Juno r2 (e.g GICv2 interrupt
> controller).


I forgot to post the link for [1].

https://lists.01.org/pipermail/edk2-devel/2016-September/001666.html

-- 
Julien Grall

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

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v5 00/16] Xen ARM DomU ACPI support
  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
  0 siblings, 2 replies; 20+ messages in thread
From: Julien Grall @ 2016-09-13 15:17 UTC (permalink / raw)
  To: Shannon Zhao, xen-devel
  Cc: sstabellini, wei.liu2, ian.jackson, peter.huangpeng,
	shannon.zhao, boris.ostrovsky



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.

My configuration is Linux 4.8-rc6 on Juno r2 (e.g GICv2 interrupt 
controller).

Regards,

-- 
Julien Grall

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

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v5 00/16] Xen ARM DomU ACPI support
  2016-09-13 11:56 ` Julien Grall
@ 2016-09-13 13:06   ` Shannon Zhao
  2016-09-13 15:17     ` Julien Grall
  0 siblings, 1 reply; 20+ messages in thread
From: Shannon Zhao @ 2016-09-13 13:06 UTC (permalink / raw)
  To: Julien Grall, xen-devel
  Cc: sstabellini, wei.liu2, ian.jackson, peter.huangpeng,
	shannon.zhao, boris.ostrovsky

Hi Julien,

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,
-- 
Shannon


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

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v5 00/16] Xen ARM DomU ACPI support
  2016-09-02  2:55 Shannon Zhao
  2016-09-02 14:31 ` Wei Liu
  2016-09-12 15:22 ` Julien Grall
@ 2016-09-13 11:56 ` Julien Grall
  2016-09-13 13:06   ` Shannon Zhao
  2 siblings, 1 reply; 20+ messages in thread
From: Julien Grall @ 2016-09-13 11:56 UTC (permalink / raw)
  To: Shannon Zhao, xen-devel
  Cc: sstabellini, wei.liu2, ian.jackson, peter.huangpeng,
	shannon.zhao, boris.ostrovsky

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.

Cheers,

-- 
Julien Grall

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

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v5 00/16] Xen ARM DomU ACPI support
  2016-09-12 15:22 ` Julien Grall
@ 2016-09-13  6:30   ` Shannon Zhao
  0 siblings, 0 replies; 20+ messages in thread
From: Shannon Zhao @ 2016-09-13  6:30 UTC (permalink / raw)
  To: Julien Grall, xen-devel
  Cc: sstabellini, wei.liu2, ian.jackson, peter.huangpeng,
	shannon.zhao, boris.ostrovsky



On 2016/9/12 23:22, 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
>>
>> This series can be fetched from:
>> https://git.linaro.org/people/shannon.zhao/xen.git  domu_acpi_v5
> 
> This branch is based on a fairly out of date xen. Do you have a branch
> rebased on the latest upstream + Boris ACPI v3?
> 
You can fetch the updated branch from:
https://git.linaro.org/people/shannon.zhao/xen.git  domu_acpi_v5_new

Thanks,
-- 
Shannon


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

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v5 00/16] Xen ARM DomU ACPI support
  2016-09-02  2:55 Shannon Zhao
  2016-09-02 14:31 ` Wei Liu
@ 2016-09-12 15:22 ` Julien Grall
  2016-09-13  6:30   ` Shannon Zhao
  2016-09-13 11:56 ` Julien Grall
  2 siblings, 1 reply; 20+ messages in thread
From: Julien Grall @ 2016-09-12 15:22 UTC (permalink / raw)
  To: Shannon Zhao, xen-devel
  Cc: sstabellini, wei.liu2, ian.jackson, peter.huangpeng,
	shannon.zhao, boris.ostrovsky

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
>
> This series can be fetched from:
> https://git.linaro.org/people/shannon.zhao/xen.git  domu_acpi_v5

This branch is based on a fairly out of date xen. Do you have a branch 
rebased on the latest upstream + Boris ACPI v3?

Cheers,

-- 
Julien Grall

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

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v5 00/16] Xen ARM DomU ACPI support
  2016-09-02  2:55 Shannon Zhao
@ 2016-09-02 14:31 ` Wei Liu
  2016-09-12 15:22 ` Julien Grall
  2016-09-13 11:56 ` Julien Grall
  2 siblings, 0 replies; 20+ messages in thread
From: Wei Liu @ 2016-09-02 14:31 UTC (permalink / raw)
  To: Shannon Zhao
  Cc: sstabellini, wei.liu2, ian.jackson, peter.huangpeng, xen-devel,
	julien.grall, shannon.zhao, boris.ostrovsky

Thanks for posting.

I go over all the patches and I think this series is in good shape. I
will defer most of the table construction code to ARM maintainers.

Wei.

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

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [PATCH v5 00/16] Xen ARM DomU ACPI support
@ 2016-09-02  2:55 Shannon Zhao
  2016-09-02 14:31 ` Wei Liu
                   ` (2 more replies)
  0 siblings, 3 replies; 20+ messages in thread
From: Shannon Zhao @ 2016-09-02  2:55 UTC (permalink / raw)
  To: xen-devel
  Cc: sstabellini, wei.liu2, ian.jackson, peter.huangpeng,
	julien.grall, shannon.zhao, boris.ostrovsky

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

This series can be fetched from:
https://git.linaro.org/people/shannon.zhao/xen.git  domu_acpi_v5

Changes since v4:
* make changes in tools/configure.ac instead of tools/configure
* add libxl_arm_no_acpi.c for no acpi build
* add a function to get the acpi table size and use it to set maxmem
* drop HVM_PARAM_CALLBACK_TYPE_PPI_MASK and update hvm_set_callback_via
* add libxl__arch_domain_build_info_acpi_setdefault to set b_info->acpi
  default value separately
* update ACPI_OEM_ID
* set gtdt->counter_block_addresss and gtdt->counter_read_block_address
* add a BUILD_BUG_ON to check if GUEST_MAX_VCPUS >= MAX_VIRT_CPUS

Changes since v3:
* use goto style error handle
* unify configuration option for ACPI
* use extended_checksum instead of checksum in RSDP table
* only require iasl on arm64
* count acpi tables size for maxmem

Changes since v2:
* return error for 32bit domain with acpi enabled
* include actypes.h to reuse the definitions
* rename libxl_arm_acpi.h to libxl_arm.h
* use ACPI_MADT_ENABLED
* rebased on top of Boris's ACPI branch to reuse mk_dsdt.c

Changes since v1:
* move ACPI tables generation codes to a new file
* use static asl file to generate DSDT table and include processor
  device objects
* assign a non-RAM map for ACPI blob
* use existing ACPI table definitions under xen/include/acpi/
* add a configuration for user to enable/disable ACPI generation
* calculate the ACPI table checksum

Shannon Zhao (16):
  tools/libxl: Add an unified configuration option for ACPI
  libxl/arm: prepare for constructing ACPI tables
  libxl/arm: Generate static ACPI DSDT table
  libxl/arm: Estimate the size of ACPI tables
  libxl/arm: Construct ACPI RSDP table
  libxl/arm: Construct ACPI XSDT table
  libxl/arm: Construct ACPI GTDT table
  libxl/arm: Factor MPIDR computing codes out as a helper
  libxl/arm: Construct ACPI MADT table
  libxl/arm: Construct ACPI FADT table
  libxl/arm: Construct ACPI DSDT table
  libxl/arm: Factor finalise_one_memory_node as a gerneric function
  libxl/arm: Add ACPI module
  public/hvm/params.h: Add macros for HVM_PARAM_CALLBACK_TYPE_PPI
  libxl/arm: Initialize domain param HVM_PARAM_CALLBACK_IRQ
  libxl/arm: Add the size of ACPI tables to maxmem

 docs/man/xl.cfg.pod.5.in           |   1 +
 docs/misc/arm/device-tree/acpi.txt |  24 +++
 tools/configure.ac                 |   2 +-
 tools/libacpi/Makefile             |  13 +-
 tools/libacpi/mk_dsdt.c            |  27 ++-
 tools/libxl/Makefile               |  10 +
 tools/libxl/libxl_arch.h           |   6 +-
 tools/libxl/libxl_arm.c            | 101 +++++++--
 tools/libxl/libxl_arm.h            |  48 +++++
 tools/libxl/libxl_arm_acpi.c       | 409 +++++++++++++++++++++++++++++++++++++
 tools/libxl/libxl_arm_no_acpi.c    |  40 ++++
 tools/libxl/libxl_create.c         |   4 +-
 tools/libxl/libxl_dm.c             |   4 +-
 tools/libxl/libxl_dom.c            |   2 +-
 tools/libxl/libxl_internal.h       |   6 +
 tools/libxl/libxl_types.idl        |   4 +
 tools/libxl/libxl_x86.c            |   8 +-
 tools/libxl/xl_cmdimpl.c           |   2 +-
 xen/arch/arm/domain.c              |   1 +
 xen/arch/arm/domain_build.c        |   8 +-
 xen/arch/x86/hvm/irq.c             |   2 +-
 xen/include/public/arch-arm.h      |   7 +
 xen/include/public/hvm/params.h    |   3 +
 23 files changed, 705 insertions(+), 27 deletions(-)
 create mode 100644 docs/misc/arm/device-tree/acpi.txt
 create mode 100644 tools/libxl/libxl_arm.h
 create mode 100644 tools/libxl/libxl_arm_acpi.c
 create mode 100644 tools/libxl/libxl_arm_no_acpi.c

-- 
2.0.4



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

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2016-09-15 13:46 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-15  2:17 [PATCH v5 00/16] Xen ARM DomU ACPI support Boris Ostrovsky
2016-09-15  8:58 ` Julien Grall
2016-09-15 12:35   ` Boris Ostrovsky
2016-09-15 13:46     ` Julien Grall
  -- strict thread matches above, loose matches on Subject: below --
2016-09-02  2:55 Shannon Zhao
2016-09-02 14:31 ` 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
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

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.