All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v4 00/20] Generate ACPI v5.1 tables and expose it to guest over fw_cfg on ARM
@ 2015-04-03 10:03 Shannon Zhao
  2015-04-03 10:03 ` [Qemu-devel] [PATCH v4 01/20] hw/i386: Move ACPI header definitions in an arch-independent location Shannon Zhao
                   ` (21 more replies)
  0 siblings, 22 replies; 90+ messages in thread
From: Shannon Zhao @ 2015-04-03 10:03 UTC (permalink / raw)
  To: qemu-devel, peter.maydell, pbonzini, christoffer.dall,
	a.spyridakis, claudio.fontana, imammedo, hanjun.guo, mst, lersek,
	msalter
  Cc: hangaohuai, shannon.zhao, peter.huangpeng, zhaoshenglong

From: Shannon Zhao <shannon.zhao@linaro.org>

This patch series generate six ACPI v5.1 tables for machine virt on ARM.
The set of generated tables are:
- RSDP
- RSDT
- MADT
- GTDT
- FADT
- DSDT
- MCFG (For PCIe host bridge)

These tables are created dynamically using the function of aml-build.c,
taking into account the needed information passed from the virt machine model.
When the generation is finalized, it use fw_cfg to expose the tables to guest.

You can fetch this from following repo:
	http://git.linaro.org/people/shannon.zhao/qemu.git  ACPI_ARM_v4

And this patchset refers to Alexander Spyridakis's patches which are sent to
qemu-devel mailing list before.
	http://lists.gnu.org/archive/html/qemu-devel/2014-10/msg03987.html

Thanks to Laszlo's work on UEFI (ArmVirtualizationQemu) supporting downloading
ACPI tables over fw_cfg, we now can use ACPI in VM. I have done following vm
startup test:

xp, windows2008, sles11 on X86
Fedora Linux kernel on ARM64

Note:
As upstream kernel doesn't support ACPI PCI host bridge on ARM64, so I use the
Fedora Linux kernel from following address:
	https://git.fedorahosted.org/cgit/kernel-arm64.git/log/?h=devel
But maybe this has a bug which cause unsuccessfully initializing BAR, therefore
virtio-pci can't work. I apply the following patch and the virtio-pci, e1000
work well.

diff --git a/arch/arm64/kernel/pci.c b/arch/arm64/kernel/pci.c
index 8456e72..32f8869 100644
--- a/arch/arm64/kernel/pci.c
+++ b/arch/arm64/kernel/pci.c
@@ -240,7 +240,7 @@ static acpi_status setup_resource(struct acpi_resource *acpi_res, void *data)
                if (pci_remap_iospace(res, start) < 0)
                        return AE_OK;

-               info->res_offset[info->res_num] = port - addr.address.minimum;
+               info->res_offset[info->res_num] = port;
        } else
                info->res_offset[info->res_num] = addr.address.translation_offset;

changes since v3:
  * rebase on upstream qemu
  * fix _HID of CPU (Heyi Guo)
  * Add PCIe host bridge
  
changes since v2:
  * rebase on Igor Mammedov's new branch ASL_API_v3
  * use rsdt instead of xsdt according to Igor Mammedov's suggestion

changes since v1:
  * fix bug found by Laszlo
  * move common helpers into dedictated file and change generating
    table order according to Igor's comments
  * fix copyright and function name according to Michael's comments


Shannon Zhao (20):
  hw/i386: Move ACPI header definitions in an arch-independent location
  hw/i386/acpi-build: move generic acpi building helpers into dedictated
    file
  hw/arm/virt-acpi-build: Basic framework for building ACPI tables on
    ARM
  hw/acpi/aml-build: Add aml_memory32_fixed() term
  hw/acpi/aml-build: Add aml_interrupt() term
  hw/arm/virt-acpi-build: Generation of DSDT table for virt devices
  hw/arm/virt-acpi-build: Generate FADT table and update ACPI headers
  hw/arm/virt-acpi-build: Generate MADT table
  hw/arm/virt-acpi-build: Generate GTDT table
  hw/arm/virt-acpi-build: Generate RSDT table
  hw/arm/virt-acpi-build: Generate RSDP table
  hw/arm/virt-acpi-build: Add PCIe info and generate MCFG table
  hw/acpi/aml-build: Add ToUUID macro
  hw/acpi/aml-build: Add aml_or() term
  hw/acpi/aml-build: Add aml_not() term
  hw/acpi/aml-build: Add aml_else() term
  hw/acpi/aml-build: Add aml_create_dword_field() term
  hw/acpi/aml-build: Add aml_dword_io() term
  hw/arm/virt-acpi-build: Add PCIe controller in ACPI DSDT table
  hw/arm/virt: Enable dynamic generation of ACPI v5.1 tables

 default-configs/arm-softmmu.mak      |   1 +
 default-configs/i386-softmmu.mak     |   3 +
 default-configs/mips-softmmu.mak     |   3 +
 default-configs/mips64-softmmu.mak   |   3 +
 default-configs/mips64el-softmmu.mak |   3 +
 default-configs/mipsel-softmmu.mak   |   3 +
 default-configs/x86_64-softmmu.mak   |   3 +
 hw/acpi/Makefile.objs                |   5 +-
 hw/acpi/aml-build.c                  | 189 +++++++++-
 hw/arm/Makefile.objs                 |   1 +
 hw/arm/virt-acpi-build.c             | 678 +++++++++++++++++++++++++++++++++++
 hw/arm/virt.c                        |  78 +++-
 hw/i2c/Makefile.objs                 |   2 +-
 hw/i386/acpi-build.c                 |  81 +----
 hw/i386/acpi-defs.h                  | 368 -------------------
 include/hw/acpi/acpi-defs.h          | 479 +++++++++++++++++++++++++
 include/hw/acpi/aml-build.h          |  45 ++-
 include/hw/arm/virt-acpi-build.h     |  79 ++++
 tests/bios-tables-test.c             |   2 +-
 19 files changed, 1564 insertions(+), 462 deletions(-)
 create mode 100644 hw/arm/virt-acpi-build.c
 delete mode 100644 hw/i386/acpi-defs.h
 create mode 100644 include/hw/acpi/acpi-defs.h
 create mode 100644 include/hw/arm/virt-acpi-build.h

-- 
2.0.4

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

end of thread, other threads:[~2015-04-15 10:52 UTC | newest]

Thread overview: 90+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-03 10:03 [Qemu-devel] [PATCH v4 00/20] Generate ACPI v5.1 tables and expose it to guest over fw_cfg on ARM Shannon Zhao
2015-04-03 10:03 ` [Qemu-devel] [PATCH v4 01/20] hw/i386: Move ACPI header definitions in an arch-independent location Shannon Zhao
2015-04-15  2:26   ` Shannon Zhao
2015-04-03 10:03 ` [Qemu-devel] [PATCH v4 02/20] hw/i386/acpi-build: move generic acpi building helpers into dedictated file Shannon Zhao
2015-04-03 10:03 ` [Qemu-devel] [PATCH v4 03/20] hw/arm/virt-acpi-build: Basic framework for building ACPI tables on ARM Shannon Zhao
2015-04-08 14:37   ` Alex Bennée
2015-04-09  5:43     ` Shannon Zhao
2015-04-03 10:03 ` [Qemu-devel] [PATCH v4 04/20] hw/acpi/aml-build: Add aml_memory32_fixed() term Shannon Zhao
2015-04-08 14:54   ` Alex Bennée
2015-04-08 18:42     ` Michael S. Tsirkin
2015-04-09  9:27       ` Alex Bennée
2015-04-09  5:46     ` Shannon Zhao
2015-04-09 12:42   ` Igor Mammedov
2015-04-10  5:49     ` Shannon Zhao
2015-04-03 10:03 ` [Qemu-devel] [PATCH v4 05/20] hw/acpi/aml-build: Add aml_interrupt() term Shannon Zhao
2015-04-08 14:57   ` Alex Bennée
2015-04-09  6:09     ` Shannon Zhao
2015-04-09  9:54       ` Igor Mammedov
2015-04-10  5:50         ` Shannon Zhao
2015-04-03 10:03 ` [Qemu-devel] [PATCH v4 06/20] hw/arm/virt-acpi-build: Generation of DSDT table for virt devices Shannon Zhao
2015-04-09  9:51   ` Alex Bennée
2015-04-09 13:03     ` Igor Mammedov
2015-04-10  5:59       ` Shannon Zhao
2015-04-10  7:35         ` Igor Mammedov
2015-04-10  5:57     ` Shannon Zhao
2015-04-03 10:03 ` [Qemu-devel] [PATCH v4 07/20] hw/arm/virt-acpi-build: Generate FADT table and update ACPI headers Shannon Zhao
2015-04-08 18:53   ` Michael S. Tsirkin
2015-04-09  2:55     ` Shannon Zhao
2015-04-03 10:03 ` [Qemu-devel] [PATCH v4 08/20] hw/arm/virt-acpi-build: Generate MADT table Shannon Zhao
2015-04-09 12:33   ` Alex Bennée
2015-04-03 10:03 ` [Qemu-devel] [PATCH v4 09/20] hw/arm/virt-acpi-build: Generate GTDT table Shannon Zhao
2015-04-09 12:42   ` Alex Bennée
2015-04-10  6:01     ` Shannon Zhao
2015-04-03 10:03 ` [Qemu-devel] [PATCH v4 10/20] hw/arm/virt-acpi-build: Generate RSDT table Shannon Zhao
2015-04-09 12:50   ` Alex Bennée
2015-04-09 13:17     ` Igor Mammedov
2015-04-09 13:27       ` Peter Maydell
2015-04-09 13:51         ` Igor Mammedov
2015-04-09 13:59           ` Peter Maydell
2015-04-09 14:43             ` Igor Mammedov
2015-04-09 16:00             ` Laszlo Ersek
2015-04-09 16:03               ` Peter Maydell
2015-04-09 16:21                 ` Laszlo Ersek
2015-04-03 10:03 ` [Qemu-devel] [PATCH v4 11/20] hw/arm/virt-acpi-build: Generate RSDP table Shannon Zhao
2015-04-09 14:45   ` Alex Bennée
2015-04-03 10:03 ` [Qemu-devel] [PATCH v4 12/20] hw/arm/virt-acpi-build: Add PCIe info and generate MCFG table Shannon Zhao
2015-04-09 15:54   ` Alex Bennée
2015-04-09 16:00     ` Peter Maydell
2015-04-10  6:04       ` Shannon Zhao
2015-04-03 10:03 ` [Qemu-devel] [PATCH v4 13/20] hw/acpi/aml-build: Add ToUUID macro Shannon Zhao
2015-04-09 13:22   ` Igor Mammedov
2015-04-10  6:10     ` Shannon Zhao
2015-04-10  7:40       ` Igor Mammedov
2015-04-03 10:03 ` [Qemu-devel] [PATCH v4 14/20] hw/acpi/aml-build: Add aml_or() term Shannon Zhao
2015-04-09 13:35   ` Igor Mammedov
2015-04-10  6:15     ` Shannon Zhao
2015-04-10  7:46       ` Igor Mammedov
2015-04-10  8:04         ` Shannon Zhao
2015-04-03 10:03 ` [Qemu-devel] [PATCH v4 15/20] hw/acpi/aml-build: Add aml_not() term Shannon Zhao
2015-04-13 15:56   ` Alex Bennée
2015-04-03 10:03 ` [Qemu-devel] [PATCH v4 16/20] hw/acpi/aml-build: Add aml_else() term Shannon Zhao
2015-04-13 15:55   ` Alex Bennée
2015-04-14  2:25     ` Shannon Zhao
2015-04-14  5:56     ` Michael S. Tsirkin
2015-04-14  6:38       ` Shannon Zhao
2015-04-14 10:15         ` Igor Mammedov
2015-04-03 10:03 ` [Qemu-devel] [PATCH v4 17/20] hw/acpi/aml-build: Add aml_create_dword_field() term Shannon Zhao
2015-04-13 15:55   ` Alex Bennée
2015-04-03 10:03 ` [Qemu-devel] [PATCH v4 18/20] hw/acpi/aml-build: Add aml_dword_io() term Shannon Zhao
2015-04-13 15:56   ` Alex Bennée
2015-04-03 10:03 ` [Qemu-devel] [PATCH v4 19/20] hw/arm/virt-acpi-build: Add PCIe controller in ACPI DSDT table Shannon Zhao
2015-04-13 15:58   ` Alex Bennée
2015-04-14  1:10     ` Shannon Zhao
2015-04-14  9:30       ` Peter Maydell
2015-04-14  9:55         ` Shannon Zhao
2015-04-14  9:59           ` Michael S. Tsirkin
2015-04-14 10:13             ` Shannon Zhao
2015-04-03 10:03 ` [Qemu-devel] [PATCH v4 20/20] hw/arm/virt: Enable dynamic generation of ACPI v5.1 tables Shannon Zhao
2015-04-06 18:47 ` [Qemu-devel] [PATCH v4 00/20] Generate ACPI v5.1 tables and expose it to guest over fw_cfg on ARM Mark Salter
2015-04-07  2:43   ` Shannon Zhao
2015-04-07  9:19     ` Peter Maydell
2015-04-07  9:32       ` Michael S. Tsirkin
2015-04-07  9:43         ` Peter Maydell
2015-04-07 11:50       ` Shannon Zhao
2015-04-07 12:07     ` Peter Maydell
2015-04-07 12:18       ` Shannon Zhao
2015-04-07 13:35       ` Igor Mammedov
2015-04-08 18:50         ` Michael S. Tsirkin
2015-04-15 10:10 ` Michael S. Tsirkin
2015-04-15 10:51   ` Shannon Zhao

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.