Re: [Xen-devel] [PATCH v4 00/16] Xen ARM DomU ACPI support
Hi Wei, On 24/08/2016 08:58, Wei Liu wrote: On Tue, Aug 16, 2016 at 06:24:57PM +0800, Shannon Zhao wrote: From: Shannon ZhaoThe 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_v4 Thanks for posting this version and sorry for the late review. I've skimmed the whole series and pointed out things I think should be improved. I will leave reviewing all the table building code to ARM maintainers. I looked at the tables, they look good to me. Although, I made few comments on various place. Cheers, -- Julien Grall ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] [PATCH v4 00/16] Xen ARM DomU ACPI support
On 2016/8/24 20:58, Wei Liu wrote: > On Tue, Aug 16, 2016 at 06:24:57PM +0800, Shannon Zhao wrote: >> > From: Shannon Zhao>> > >> > 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_v4 >> > > Thanks for posting this version and sorry for the late review. > > I've skimmed the whole series and pointed out things I think should be > improved. I will leave reviewing all the table building code to ARM > maintainers. Ok, thanks a lot for your help. -- Shannon ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] [PATCH v4 00/16] Xen ARM DomU ACPI support
On Tue, Aug 16, 2016 at 06:24:57PM +0800, Shannon Zhao wrote: > From: Shannon Zhao> > 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_v4 > Thanks for posting this version and sorry for the late review. I've skimmed the whole series and pointed out things I think should be improved. I will leave reviewing all the table building code to ARM maintainers. Wei. ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
[Xen-devel] [PATCH v4 00/16] Xen ARM DomU ACPI support
From: Shannon ZhaoThe 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_v4 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/misc/arm/device-tree/acpi.txt | 24 +++ tools/configure| 2 +- tools/libacpi/Makefile | 15 +- tools/libacpi/mk_dsdt.c| 51 -- tools/libxl/Makefile | 7 + tools/libxl/libxl_arm.c| 87 +++-- tools/libxl/libxl_arm.h| 55 ++ tools/libxl/libxl_arm_acpi.c | 365 + tools/libxl/libxl_create.c | 9 +- tools/libxl/libxl_dm.c | 6 +- tools/libxl/libxl_types.idl| 4 + tools/libxl/xl_cmdimpl.c | 2 +- xen/arch/arm/domain_build.c| 8 +- xen/include/public/arch-arm.h | 7 + xen/include/public/hvm/params.h| 4 + 15 files changed, 612 insertions(+), 34 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 -- 2.0.4 ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel