* [Qemu-devel] [PATCH v9 00/24] Generate ACPI v5.1 tables and expose them to guest over fw_cfg on ARM
@ 2015-05-25 2:54 Shannon Zhao
2015-05-27 9:43 ` Igor Mammedov
0 siblings, 1 reply; 11+ messages in thread
From: Shannon Zhao @ 2015-05-25 2:54 UTC (permalink / raw)
To: qemu-devel, peter.maydell, pbonzini, christoffer.dall,
a.spyridakis, claudio.fontana, imammedo, hanjun.guo, mst, lersek,
alex.bennee
Cc: hangaohuai, zhaoshenglong, peter.huangpeng, shannon.zhao
From: Shannon Zhao <shannon.zhao@linaro.org>
This patch series generate seven ACPI 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_v9
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.
Now upstream kernel applies ACPI patchset, so we can boot it with ACPI,
while we need to apply patches[1] to make tty work, patch[2] to make
virtio-mmio work and apply patch[3] and the relevant patches to make PCI
devices works, e.g. virtio-net-pci, e1000.
On the other hand, you can directly use the Fedora Linux kernel from
following address:
https://git.fedorahosted.org/cgit/kernel-arm64.git/log/?h=devel
I've done test with following VM:
xp, windows2008, sles11 on X86
upstream kernel and Fedora Linux kernel on ARM64
In addtion, dump all the acpi tables, use iasl -d *.dat to convert to
*.asl and use iasl -tc *.asl to compile them to *.hex. No error appears.
If you want to test, you could get kernel Image from [4] which contains
uart, virtio-mmio, pci drivers, UEFI binary from [5] and Qemu command
line example from [6].
[1] http://git.linaro.org/leg/acpi/acpi.git/shortlog/refs/heads/acpi-sbsa
[2] http://git.linaro.org/leg/acpi/acpi.git/commit/57acba56d55e3fb521fd6ce767446459ef7a4943
[3] https://git.fedorahosted.org/cgit/kernel-arm64.git/commit/?h=devel&id=8cf58cbe94b982b680229e5b164231eea0ca2d11
[4] http://people.linaro.org/~shannon.zhao/ACPI_ARM/Image.gz
[5] http://people.linaro.org/~shannon.zhao/ACPI_ARM/QEMU_EFI.fd
[6] http://people.linaro.org/~shannon.zhao/ACPI_ARM/acpi_test.sh
changes since v8:
* remove empty _CRS in processor device node and use a define macro
for SPI base (Igor)
* Add some reviewd-bys from Igor and Alex
changes since v7:
* replace build_append_uint32 with 4 build_append_byte (Igor)
* Fix byte order of aml_unicode() (Igor)
* Use upper case for enum values and fix enums in aml-build.h (Michael)
* implement aml_interrupt() based on ACPI 5.0 (Igor)
* use separate assert (Laszlo)
* some doc comments fix (Igor & Michael)
changes since v6:
* add build_append_uint32 (Peter)
* drop some unnecessary headers and adjust the order of headers (Peter)
* drop struct AcpiDsdtInfo, AcpiMadtInfo, AcpiGtdtInfo, AcpiPcieInfo
and reuse MemMapEntry[] and irqmap[] (Peter)
* record PCI ranges info in MemMapEntry[], not calculate those (Peter)
* add a separate patch for splitting CONFIG_ACPI (Peter)
* use VMSTATE_BOOL (Alex)
changes since v5:
* Fix table version (Igor)
* only create CPU device objects for present CPUs (Igor)
* drop madt->local_apic_address and madt->flags (Igor)
* adjust implementation of ToUUID macro (Igor)
* Fix aml_buffer() (Michael & Igor)
* Fix aml_not()
changes since v4:
* use trace_* instead of DPRINTF (Igor & Alex)
* use standard QEMU style for structs (Michael)
* add "-no-acpi" option support for arm
* use extractNN for bits operation (Alex)
* use AmlReadAndWrite enum for rw flags (Igor)
* s/uint64_t/uint32_t/ (Igor)
* use enum for interrupt flag (Igor)
* simplify aml_device use in DSDT (Alex)
* share RSDT table generating code with x86 (Igor)
* remove unnecessary 1 in MCFG table generating code (Alex & Peter)
* use string for ToUUID macro (Igor)
* aml_or and aml_and use two args (Igor)
* add comments on UUID (Michael)
* change PCI MMIO region non-cacheable (Peter)
* fix wrong io map (Peter)
* add several reviewed-by's from Alex, thanks
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 (24):
hw/acpi/aml-build: Make enum values to be upper case to match coding
style
hw/arm/virt: Move common definitions to virt.h
hw/arm/virt: Record PCIe ranges in MemMapEntry array
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: Generate MCFG table
hw/acpi/aml-build: Make aml_buffer() definition consistent with the
spec
hw/acpi/aml-build: Add ToUUID macro
hw/acpi/aml-build: Add aml_or() term
hw/acpi/aml-build: Add aml_lnot() 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/acpi/aml-build: Add Unicode macro
hw/arm/virt-acpi-build: Add PCIe controller in ACPI DSDT table
ACPI: split CONFIG_ACPI into 4 pieces
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 | 231 ++++++++++++-
hw/arm/Makefile.objs | 1 +
hw/arm/virt-acpi-build.c | 644 +++++++++++++++++++++++++++++++++++
hw/arm/virt.c | 85 ++---
hw/i2c/Makefile.objs | 2 +-
hw/i386/acpi-build.c | 82 ++---
include/hw/acpi/acpi-defs.h | 210 +++++++++---
include/hw/acpi/aml-build.h | 127 +++++--
include/hw/arm/virt-acpi-build.h | 44 +++
include/hw/arm/virt.h | 64 ++++
qemu-options.hx | 2 +-
trace-events | 3 +
20 files changed, 1333 insertions(+), 186 deletions(-)
create mode 100644 hw/arm/virt-acpi-build.c
create mode 100644 include/hw/arm/virt-acpi-build.h
create mode 100644 include/hw/arm/virt.h
--
2.0.4
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH v9 00/24] Generate ACPI v5.1 tables and expose them to guest over fw_cfg on ARM
2015-05-25 2:54 Shannon Zhao
@ 2015-05-27 9:43 ` Igor Mammedov
2015-05-27 10:16 ` Michael S. Tsirkin
0 siblings, 1 reply; 11+ messages in thread
From: Igor Mammedov @ 2015-05-27 9:43 UTC (permalink / raw)
To: peter.maydell
Cc: hangaohuai, mst, a.spyridakis, claudio.fontana, qemu-devel,
peter.huangpeng, alex.bennee, hanjun.guo, Shannon Zhao, pbonzini,
lersek, christoffer.dall, shannon.zhao
On Mon, 25 May 2015 10:54:56 +0800
Shannon Zhao <zhaoshenglong@huawei.com> wrote:
> From: Shannon Zhao <shannon.zhao@linaro.org>
...
> Shannon Zhao (24):
> hw/acpi/aml-build: Make enum values to be upper case to match coding
> style
...
> hw/acpi/aml-build: Add aml_memory32_fixed() term
> hw/acpi/aml-build: Add aml_interrupt() term
...
> hw/acpi/aml-build: Make aml_buffer() definition consistent with the
> spec
> hw/acpi/aml-build: Add ToUUID macro
> hw/acpi/aml-build: Add aml_or() term
> hw/acpi/aml-build: Add aml_lnot() 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/acpi/aml-build: Add Unicode macro
> hw/arm/virt-acpi-build: Add PCIe controller in ACPI DSDT table
...
Peter could you apply following AML patches to master,
that would help to avoid conflicts with other series in flight
which are trying to extend AML API and make this and that series
smaller on respin.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH v9 00/24] Generate ACPI v5.1 tables and expose them to guest over fw_cfg on ARM
2015-05-27 9:43 ` Igor Mammedov
@ 2015-05-27 10:16 ` Michael S. Tsirkin
2015-05-27 11:58 ` Peter Maydell
0 siblings, 1 reply; 11+ messages in thread
From: Michael S. Tsirkin @ 2015-05-27 10:16 UTC (permalink / raw)
To: Igor Mammedov
Cc: peter.maydell, hangaohuai, a.spyridakis, claudio.fontana,
qemu-devel, peter.huangpeng, alex.bennee, hanjun.guo,
Shannon Zhao, pbonzini, lersek, christoffer.dall, shannon.zhao
On Wed, May 27, 2015 at 11:43:31AM +0200, Igor Mammedov wrote:
> On Mon, 25 May 2015 10:54:56 +0800
> Shannon Zhao <zhaoshenglong@huawei.com> wrote:
>
> > From: Shannon Zhao <shannon.zhao@linaro.org>
> ...
> > Shannon Zhao (24):
> > hw/acpi/aml-build: Make enum values to be upper case to match coding
> > style
> ...
> > hw/acpi/aml-build: Add aml_memory32_fixed() term
> > hw/acpi/aml-build: Add aml_interrupt() term
> ...
> > hw/acpi/aml-build: Make aml_buffer() definition consistent with the
> > spec
> > hw/acpi/aml-build: Add ToUUID macro
> > hw/acpi/aml-build: Add aml_or() term
> > hw/acpi/aml-build: Add aml_lnot() 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/acpi/aml-build: Add Unicode macro
> > hw/arm/virt-acpi-build: Add PCIe controller in ACPI DSDT table
> ...
>
> Peter could you apply following AML patches to master,
> that would help to avoid conflicts with other series in flight
> which are trying to extend AML API and make this and that series
> smaller on respin.
I'm fine with this, sent Reviewed-by tags.
Or if you want me to apply just AML patches in my tree, let me know.
--
MST
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH v9 00/24] Generate ACPI v5.1 tables and expose them to guest over fw_cfg on ARM
2015-05-27 10:16 ` Michael S. Tsirkin
@ 2015-05-27 11:58 ` Peter Maydell
2015-05-27 12:01 ` Michael S. Tsirkin
0 siblings, 1 reply; 11+ messages in thread
From: Peter Maydell @ 2015-05-27 11:58 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: hangaohuai, Alexander Spyridakis, Shannon Zhao, Claudio Fontana,
QEMU Developers, Huangpeng (Peter), Alex Bennée, Hanjun Guo,
Paolo Bonzini, Igor Mammedov, Laszlo Ersek, Christoffer Dall,
Shannon Zhao
On 27 May 2015 at 11:16, Michael S. Tsirkin <mst@redhat.com> wrote:
> On Wed, May 27, 2015 at 11:43:31AM +0200, Igor Mammedov wrote:
>> Peter could you apply following AML patches to master,
>> that would help to avoid conflicts with other series in flight
>> which are trying to extend AML API and make this and that series
>> smaller on respin.
>
> I'm fine with this, sent Reviewed-by tags.
> Or if you want me to apply just AML patches in my tree, let me know.
I would prefer a pull request with the relevant patches in them.
Directly applying patches to master requires that I personally
review and test them...
thanks
-- PMM
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH v9 00/24] Generate ACPI v5.1 tables and expose them to guest over fw_cfg on ARM
2015-05-27 11:58 ` Peter Maydell
@ 2015-05-27 12:01 ` Michael S. Tsirkin
2015-05-27 12:07 ` Peter Maydell
0 siblings, 1 reply; 11+ messages in thread
From: Michael S. Tsirkin @ 2015-05-27 12:01 UTC (permalink / raw)
To: Peter Maydell
Cc: hangaohuai, Alexander Spyridakis, Shannon Zhao, Claudio Fontana,
QEMU Developers, Huangpeng (Peter), Alex Bennée, Hanjun Guo,
Paolo Bonzini, Igor Mammedov, Laszlo Ersek, Christoffer Dall,
Shannon Zhao
On Wed, May 27, 2015 at 12:58:19PM +0100, Peter Maydell wrote:
> On 27 May 2015 at 11:16, Michael S. Tsirkin <mst@redhat.com> wrote:
> > On Wed, May 27, 2015 at 11:43:31AM +0200, Igor Mammedov wrote:
> >> Peter could you apply following AML patches to master,
> >> that would help to avoid conflicts with other series in flight
> >> which are trying to extend AML API and make this and that series
> >> smaller on respin.
> >
> > I'm fine with this, sent Reviewed-by tags.
> > Or if you want me to apply just AML patches in my tree, let me know.
>
> I would prefer a pull request with the relevant patches in them.
> Directly applying patches to master requires that I personally
> review and test them...
>
> thanks
> -- PMM
How about this: separate acpi patches, I'll apply them and send
pull request. Then you can review and merge arm patches at leasure.
--
MST
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH v9 00/24] Generate ACPI v5.1 tables and expose them to guest over fw_cfg on ARM
2015-05-27 12:01 ` Michael S. Tsirkin
@ 2015-05-27 12:07 ` Peter Maydell
2015-05-27 14:07 ` Michael S. Tsirkin
0 siblings, 1 reply; 11+ messages in thread
From: Peter Maydell @ 2015-05-27 12:07 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: hangaohuai, Alexander Spyridakis, Shannon Zhao, Claudio Fontana,
QEMU Developers, Huangpeng (Peter), Alex Bennée, Hanjun Guo,
Paolo Bonzini, Igor Mammedov, Laszlo Ersek, Christoffer Dall,
Shannon Zhao
On 27 May 2015 at 13:01, Michael S. Tsirkin <mst@redhat.com> wrote:
> How about this: separate acpi patches, I'll apply them and send
> pull request. Then you can review and merge arm patches at leasure.
As far as the ARM patches in this series are concerned, I'm
basically happy with them for a while now and have just been
waiting for the ACPI side to be reviewed...
-- PMM
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH v9 00/24] Generate ACPI v5.1 tables and expose them to guest over fw_cfg on ARM
2015-05-27 12:07 ` Peter Maydell
@ 2015-05-27 14:07 ` Michael S. Tsirkin
2015-05-28 14:46 ` Peter Maydell
0 siblings, 1 reply; 11+ messages in thread
From: Michael S. Tsirkin @ 2015-05-27 14:07 UTC (permalink / raw)
To: Peter Maydell
Cc: hangaohuai, Alexander Spyridakis, Shannon Zhao, Claudio Fontana,
QEMU Developers, Huangpeng (Peter), Alex Bennée, Hanjun Guo,
Paolo Bonzini, Igor Mammedov, Laszlo Ersek, Christoffer Dall,
Shannon Zhao
On Wed, May 27, 2015 at 01:07:23PM +0100, Peter Maydell wrote:
> On 27 May 2015 at 13:01, Michael S. Tsirkin <mst@redhat.com> wrote:
> > How about this: separate acpi patches, I'll apply them and send
> > pull request. Then you can review and merge arm patches at leasure.
>
> As far as the ARM patches in this series are concerned, I'm
> basically happy with them for a while now and have just been
> waiting for the ACPI side to be reviewed...
>
> -- PMM
OK I did that now.
How would you like it all merged?
Your tree?
--
MST
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH v9 00/24] Generate ACPI v5.1 tables and expose them to guest over fw_cfg on ARM
2015-05-27 14:07 ` Michael S. Tsirkin
@ 2015-05-28 14:46 ` Peter Maydell
0 siblings, 0 replies; 11+ messages in thread
From: Peter Maydell @ 2015-05-28 14:46 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: hangaohuai, Alexander Spyridakis, Shannon Zhao, Claudio Fontana,
QEMU Developers, Huangpeng (Peter), Alex Bennée, Hanjun Guo,
Paolo Bonzini, Igor Mammedov, Laszlo Ersek, Christoffer Dall,
Shannon Zhao
On 27 May 2015 at 15:07, Michael S. Tsirkin <mst@redhat.com> wrote:
> On Wed, May 27, 2015 at 01:07:23PM +0100, Peter Maydell wrote:
>> On 27 May 2015 at 13:01, Michael S. Tsirkin <mst@redhat.com> wrote:
>> > How about this: separate acpi patches, I'll apply them and send
>> > pull request. Then you can review and merge arm patches at leasure.
>>
>> As far as the ARM patches in this series are concerned, I'm
>> basically happy with them for a while now and have just been
>> waiting for the ACPI side to be reviewed...
> OK I did that now.
> How would you like it all merged?
> Your tree?
Seems easiest. Applied all to target-arm.next; expect a pull
request to go through tail end of this week or possibly Monday.
-- PMM
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH v9 00/24] Generate ACPI v5.1 tables and expose them to guest over fw_cfg on ARM
@ 2015-10-09 22:34 liang yan
2015-10-10 0:37 ` Laszlo Ersek
0 siblings, 1 reply; 11+ messages in thread
From: liang yan @ 2015-10-09 22:34 UTC (permalink / raw)
To: zhaoshenglong, shannon.zhao; +Cc: qemu-devel
Hello, Shannon,
> From: Shannon Zhao <address@hidden>
>
> This patch series generate seven ACPI 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_v9
>
> 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.
>
> Now upstream kernel applies ACPI patchset, so we can boot it with ACPI,
> while we need to apply patches[1] to make tty work, patch[2] to make
> virtio-mmio work and apply patch[3] and the relevant patches to make PCI
> devices works, e.g. virtio-net-pci, e1000.
> On the other hand, you can directly use the Fedora Linux kernel from
> following address:
> https://git.fedorahosted.org/cgit/kernel-arm64.git/log/?h=devel
>
> I've done test with following VM:
> xp, windows2008, sles11 on X86
> upstream kernel and Fedora Linux kernel on ARM64
>
> In addtion, dump all the acpi tables, use iasl -d *.dat to convert to
> *.asl and use iasl -tc *.asl to compile them to *.hex. No error appears.
>
> If you want to test, you could get kernel Image from [4] which contains
> uart, virtio-mmio, pci drivers, UEFI binary from [5] and Qemu command
> line example from [6].
I tested with your kernel and bios, all runs well. But when I try to
build a new debian(upstream) with your qemu patch and bios,
it always told me could find the right driver, or could not enable ACPI
from kernel command line. Do you have a full vm for fedora or
you just use the kernel there? Could you tell me more about your detail?
Thanks.
Also, we have our own EDK-II, and it could not work now, so I need to do
patches too. Do you mind to tell me how you build your QMEU.fd? Where
can I access those source code? Thanks.
Best,
Liang
> [1]http://git.linaro.org/leg/acpi/acpi.git/shortlog/refs/heads/acpi-sbsa
> [2]
> http://git.linaro.org/leg/acpi/acpi.git/commit/57acba56d55e3fb521fd6ce767446459ef7a4943
> [3]
> https://git.fedorahosted.org/cgit/kernel-arm64.git/commit/?h=devel&id=8cf58cbe94b982b680229e5b164231eea0ca2d11
> [4]http://people.linaro.org/~shannon.zhao/ACPI_ARM/Image.gz
> <http://people.linaro.org/%7Eshannon.zhao/ACPI_ARM/Image.gz>
> [5]http://people.linaro.org/~shannon.zhao/ACPI_ARM/QEMU_EFI.fd
> <http://people.linaro.org/%7Eshannon.zhao/ACPI_ARM/QEMU_EFI.fd>
> [6]http://people.linaro.org/~shannon.zhao/ACPI_ARM/acpi_test.sh
> <http://people.linaro.org/%7Eshannon.zhao/ACPI_ARM/acpi_test.sh>
>
> changes since v8:
> * remove empty _CRS in processor device node and use a define macro
> for SPI base (Igor)
> * Add some reviewd-bys from Igor and Alex
>
> changes since v7:
> * replace build_append_uint32 with 4 build_append_byte (Igor)
> * Fix byte order of aml_unicode() (Igor)
> * Use upper case for enum values and fix enums in aml-build.h (Michael)
> * implement aml_interrupt() based on ACPI 5.0 (Igor)
> * use separate assert (Laszlo)
> * some doc comments fix (Igor & Michael)
>
> changes since v6:
> * add build_append_uint32 (Peter)
> * drop some unnecessary headers and adjust the order of headers (Peter)
> * drop struct AcpiDsdtInfo, AcpiMadtInfo, AcpiGtdtInfo, AcpiPcieInfo
> and reuse MemMapEntry[] and irqmap[] (Peter)
> * record PCI ranges info in MemMapEntry[], not calculate those (Peter)
> * add a separate patch for splitting CONFIG_ACPI (Peter)
> * use VMSTATE_BOOL (Alex)
>
> changes since v5:
> * Fix table version (Igor)
> * only create CPU device objects for present CPUs (Igor)
> * drop madt->local_apic_address and madt->flags (Igor)
> * adjust implementation of ToUUID macro (Igor)
> * Fix aml_buffer() (Michael & Igor)
> * Fix aml_not()
>
> changes since v4:
> * use trace_* instead of DPRINTF (Igor & Alex)
> * use standard QEMU style for structs (Michael)
> * add "-no-acpi" option support for arm
> * use extractNN for bits operation (Alex)
> * use AmlReadAndWrite enum for rw flags (Igor)
> * s/uint64_t/uint32_t/ (Igor)
> * use enum for interrupt flag (Igor)
> * simplify aml_device use in DSDT (Alex)
> * share RSDT table generating code with x86 (Igor)
> * remove unnecessary 1 in MCFG table generating code (Alex & Peter)
> * use string for ToUUID macro (Igor)
> * aml_or and aml_and use two args (Igor)
> * add comments on UUID (Michael)
> * change PCI MMIO region non-cacheable (Peter)
> * fix wrong io map (Peter)
> * add several reviewed-by's from Alex, thanks
>
> 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 (24):
> hw/acpi/aml-build: Make enum values to be upper case to match coding
> style
> hw/arm/virt: Move common definitions to virt.h
> hw/arm/virt: Record PCIe ranges in MemMapEntry array
> 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: Generate MCFG table
> hw/acpi/aml-build: Make aml_buffer() definition consistent with the
> spec
> hw/acpi/aml-build: Add ToUUID macro
> hw/acpi/aml-build: Add aml_or() term
> hw/acpi/aml-build: Add aml_lnot() 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/acpi/aml-build: Add Unicode macro
> hw/arm/virt-acpi-build: Add PCIe controller in ACPI DSDT table
> ACPI: split CONFIG_ACPI into 4 pieces
> 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 | 231 ++++++++++++-
> hw/arm/Makefile.objs | 1 +
> hw/arm/virt-acpi-build.c | 644 +++++++++++++++++++++++++++++++++++
> hw/arm/virt.c | 85 ++---
> hw/i2c/Makefile.objs | 2 +-
> hw/i386/acpi-build.c | 82 ++---
> include/hw/acpi/acpi-defs.h | 210 +++++++++---
> include/hw/acpi/aml-build.h | 127 +++++--
> include/hw/arm/virt-acpi-build.h | 44 +++
> include/hw/arm/virt.h | 64 ++++
> qemu-options.hx | 2 +-
> trace-events | 3 +
> 20 files changed, 1333 insertions(+), 186 deletions(-)
> create mode 100644 hw/arm/virt-acpi-build.c
> create mode 100644 include/hw/arm/virt-acpi-build.h
> create mode 100644 include/hw/arm/virt.h
>
> --
> 2.0.4
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH v9 00/24] Generate ACPI v5.1 tables and expose them to guest over fw_cfg on ARM
2015-10-09 22:34 [Qemu-devel] [PATCH v9 00/24] Generate ACPI v5.1 tables and expose them to guest over fw_cfg on ARM liang yan
@ 2015-10-10 0:37 ` Laszlo Ersek
0 siblings, 0 replies; 11+ messages in thread
From: Laszlo Ersek @ 2015-10-10 0:37 UTC (permalink / raw)
To: liang yan, zhaoshenglong, shannon.zhao; +Cc: qemu-devel
On 10/10/15 00:34, liang yan wrote:
> Hello, Shannon,
>> From: Shannon Zhao <address@hidden>
>>
>> This patch series generate seven ACPI 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_v9
>>
>> 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.
>>
>> Now upstream kernel applies ACPI patchset, so we can boot it with ACPI,
>> while we need to apply patches[1] to make tty work, patch[2] to make
>> virtio-mmio work and apply patch[3] and the relevant patches to make PCI
>> devices works, e.g. virtio-net-pci, e1000.
>> On the other hand, you can directly use the Fedora Linux kernel from
>> following address:
>> https://git.fedorahosted.org/cgit/kernel-arm64.git/log/?h=devel
>>
>> I've done test with following VM:
>> xp, windows2008, sles11 on X86
>> upstream kernel and Fedora Linux kernel on ARM64
>>
>> In addtion, dump all the acpi tables, use iasl -d *.dat to convert to
>> *.asl and use iasl -tc *.asl to compile them to *.hex. No error appears.
>>
>> If you want to test, you could get kernel Image from [4] which contains
>> uart, virtio-mmio, pci drivers, UEFI binary from [5] and Qemu command
>> line example from [6].
> I tested with your kernel and bios, all runs well. But when I try to
> build a new debian(upstream) with your qemu patch and bios,
> it always told me could find the right driver, or could not enable ACPI
> from kernel command line. Do you have a full vm for fedora or
> you just use the kernel there? Could you tell me more about your detail?
> Thanks.
>
> Also, we have our own EDK-II, and it could not work now, so I need to do
> patches too. Do you mind to tell me how you build your QMEU.fd? Where
> can I access those source code? Thanks.
The relevant edk2 patches have been in the upstream repo for quite some
time now; you shouldn't need anything extra.
You can clone the repo from <https://github.com/tianocore/edk2.git>.
Build instructions are written up for example in the linaro wiki
<https://wiki.linaro.org/LEG/UEFIforQEMU>, but someone else asked about
the same just the other day on the edk2 mailing list, and I answered there:
http://news.gmane.org/find-root.php?message_id=5616C15C.2010606@redhat.com
Wrt. the QEMU command line, I recommend something like:
# recreate first flash drive from most recent firmware build
cat \
.../Build/ArmVirtQemu-AARCH64/DEBUG_GCC48/FV/QEMU_EFI.fd \
/dev/zero \
| head -c $((64 * 1024 * 1024)) >| flash0.img
# create second flash drive (varstore) if it doesn't exist
if ! [ -e flash1.img ]; then
head -c $((64 * 1024 * 1024)) /dev/zero > flash1.img
fi
# launch qemu (TCG)
.../qemu-system-aarch64 \
-nodefaults \
-nodefconfig \
-nographic \
\
-m 2048 \
-cpu cortex-a57 \
-M virt \
\
-drive if=pflash,format=raw,file=flash0.img,readonly \
-drive if=pflash,format=raw,file=flash1.img \
\
-chardev stdio,signal=off,mux=on,id=char0 \
-mon chardev=char0,mode=readline,default \
-serial chardev:char0 \
\
...
These commands are appropriate for a "persistent" virtual machine (ie.
one where you want to preserve the non-volatile UEFI variables from boot
to boot).
If you want to start again with an empty varstore, just delete
"flash1.img". (Normally, you'd only do that when also zapping the VM's
system disk.)
However, if you can (and are willing to) use libvirt, I certainly
recommend that you do. See eg.
<https://fedoraproject.org/wiki/Architectures/AArch64/Install_with_QEMU>
(although virt-install has become even more convenient since then).
HTH
Laszlo
>
>
> Best,
> Liang
>
>
>> [1]http://git.linaro.org/leg/acpi/acpi.git/shortlog/refs/heads/acpi-sbsa
>> [2]
>> http://git.linaro.org/leg/acpi/acpi.git/commit/57acba56d55e3fb521fd6ce767446459ef7a4943
>>
>> [3]
>> https://git.fedorahosted.org/cgit/kernel-arm64.git/commit/?h=devel&id=8cf58cbe94b982b680229e5b164231eea0ca2d11
>>
>> [4]http://people.linaro.org/~shannon.zhao/ACPI_ARM/Image.gz
>> <http://people.linaro.org/%7Eshannon.zhao/ACPI_ARM/Image.gz>
>> [5]http://people.linaro.org/~shannon.zhao/ACPI_ARM/QEMU_EFI.fd
>> <http://people.linaro.org/%7Eshannon.zhao/ACPI_ARM/QEMU_EFI.fd>
>> [6]http://people.linaro.org/~shannon.zhao/ACPI_ARM/acpi_test.sh
>> <http://people.linaro.org/%7Eshannon.zhao/ACPI_ARM/acpi_test.sh>
>>
>> changes since v8:
>> * remove empty _CRS in processor device node and use a define macro
>> for SPI base (Igor)
>> * Add some reviewd-bys from Igor and Alex
>>
>> changes since v7:
>> * replace build_append_uint32 with 4 build_append_byte (Igor)
>> * Fix byte order of aml_unicode() (Igor)
>> * Use upper case for enum values and fix enums in aml-build.h
>> (Michael)
>> * implement aml_interrupt() based on ACPI 5.0 (Igor)
>> * use separate assert (Laszlo)
>> * some doc comments fix (Igor & Michael)
>>
>> changes since v6:
>> * add build_append_uint32 (Peter)
>> * drop some unnecessary headers and adjust the order of headers
>> (Peter)
>> * drop struct AcpiDsdtInfo, AcpiMadtInfo, AcpiGtdtInfo, AcpiPcieInfo
>> and reuse MemMapEntry[] and irqmap[] (Peter)
>> * record PCI ranges info in MemMapEntry[], not calculate those (Peter)
>> * add a separate patch for splitting CONFIG_ACPI (Peter)
>> * use VMSTATE_BOOL (Alex)
>>
>> changes since v5:
>> * Fix table version (Igor)
>> * only create CPU device objects for present CPUs (Igor)
>> * drop madt->local_apic_address and madt->flags (Igor)
>> * adjust implementation of ToUUID macro (Igor)
>> * Fix aml_buffer() (Michael & Igor)
>> * Fix aml_not()
>>
>> changes since v4:
>> * use trace_* instead of DPRINTF (Igor & Alex)
>> * use standard QEMU style for structs (Michael)
>> * add "-no-acpi" option support for arm
>> * use extractNN for bits operation (Alex)
>> * use AmlReadAndWrite enum for rw flags (Igor)
>> * s/uint64_t/uint32_t/ (Igor)
>> * use enum for interrupt flag (Igor)
>> * simplify aml_device use in DSDT (Alex)
>> * share RSDT table generating code with x86 (Igor)
>> * remove unnecessary 1 in MCFG table generating code (Alex & Peter)
>> * use string for ToUUID macro (Igor)
>> * aml_or and aml_and use two args (Igor)
>> * add comments on UUID (Michael)
>> * change PCI MMIO region non-cacheable (Peter)
>> * fix wrong io map (Peter)
>> * add several reviewed-by's from Alex, thanks
>>
>> 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 (24):
>> hw/acpi/aml-build: Make enum values to be upper case to match coding
>> style
>> hw/arm/virt: Move common definitions to virt.h
>> hw/arm/virt: Record PCIe ranges in MemMapEntry array
>> 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: Generate MCFG table
>> hw/acpi/aml-build: Make aml_buffer() definition consistent with the
>> spec
>> hw/acpi/aml-build: Add ToUUID macro
>> hw/acpi/aml-build: Add aml_or() term
>> hw/acpi/aml-build: Add aml_lnot() 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/acpi/aml-build: Add Unicode macro
>> hw/arm/virt-acpi-build: Add PCIe controller in ACPI DSDT table
>> ACPI: split CONFIG_ACPI into 4 pieces
>> 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 | 231 ++++++++++++-
>> hw/arm/Makefile.objs | 1 +
>> hw/arm/virt-acpi-build.c | 644
>> +++++++++++++++++++++++++++++++++++
>> hw/arm/virt.c | 85 ++---
>> hw/i2c/Makefile.objs | 2 +-
>> hw/i386/acpi-build.c | 82 ++---
>> include/hw/acpi/acpi-defs.h | 210 +++++++++---
>> include/hw/acpi/aml-build.h | 127 +++++--
>> include/hw/arm/virt-acpi-build.h | 44 +++
>> include/hw/arm/virt.h | 64 ++++
>> qemu-options.hx | 2 +-
>> trace-events | 3 +
>> 20 files changed, 1333 insertions(+), 186 deletions(-)
>> create mode 100644 hw/arm/virt-acpi-build.c
>> create mode 100644 include/hw/arm/virt-acpi-build.h
>> create mode 100644 include/hw/arm/virt.h
>>
>> --
>> 2.0.4
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH v9 00/24] Generate ACPI v5.1 tables and expose them to guest over fw_cfg on ARM
@ 2015-10-13 23:15 liang yan
0 siblings, 0 replies; 11+ messages in thread
From: liang yan @ 2015-10-13 23:15 UTC (permalink / raw)
To: lersek; +Cc: qemu-devel
[-- Attachment #1: Type: text/plain, Size: 11005 bytes --]
Hello, Laszlo,
> On 10/10/15 00:34, liang yan wrote:
> >/Hello, Shannon,/
> >/> From: Shannon Zhao <address@hidden>/
> >/>/
> >/> This patch series generate seven ACPI 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_v9/
> >/>/
> >/> 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./
> >/>/
> >/> Now upstream kernel applies ACPI patchset, so we can boot it with ACPI,/
> >/> while we need to apply patches[1] to make tty work, patch[2] to make/
> >/> virtio-mmio work and apply patch[3] and the relevant patches to make
> PCI/
> >/> devices works, e.g. virtio-net-pci, e1000./
> >/> On the other hand, you can directly use the Fedora Linux kernel from/
> >/> following address:/
> >/> https://git.fedorahosted.org/cgit/kernel-arm64.git/log/?h=devel/
> >/>/
> >/> I've done test with following VM:/
> >/> xp, windows2008, sles11 on X86/
> >/> upstream kernel and Fedora Linux kernel on ARM64/
> >/>/
> >/> In addtion, dump all the acpi tables, use iasl -d *.dat to convert to/
> >/> *.asl and use iasl -tc *.asl to compile them to *.hex. No error
> appears./
> >/>/
> >/> If you want to test, you could get kernel Image from [4] which contains/
> >/> uart, virtio-mmio, pci drivers, UEFI binary from [5] and Qemu command/
> >/> line example from [6]./
> >/I tested with your kernel and bios, all runs well. But when I try to/
> >/build a new debian(upstream) with your qemu patch and bios,/
> >/it always told me could find the right driver, or could not enable ACPI/
> >/from kernel command line. Do you have a full vm for fedora or/
> >/you just use the kernel there? Could you tell me more about your detail?/
> >/Thanks./
> >//
> >/Also, we have our own EDK-II, and it could not work now, so I need to do/
> >/patches too. Do you mind to tell me how you build your QMEU.fd? Where/
> >/can I access those source code? Thanks./
>
> The relevant edk2 patches have been in the upstream repo for quite some
> time now; you shouldn't need anything extra.
I built a new QEMU.fd file, and it worked fine. Thanks for your reply.
Best,
Liang
> You can clone the repo from <https://github.com/tianocore/edk2.git>.
>
> Build instructions are written up for example in the linaro wiki
> <https://wiki.linaro.org/LEG/UEFIforQEMU>, but someone else asked about
> the same just the other day on the edk2 mailing list, and I answered there:
>
> http://news.gmane.org/address@hidden
>
> Wrt. the QEMU command line, I recommend something like:
>
> # recreate first flash drive from most recent firmware build
> cat \
> .../Build/ArmVirtQemu-AARCH64/DEBUG_GCC48/FV/QEMU_EFI.fd \
> /dev/zero \
> | head -c $((64 * 1024 * 1024)) >| flash0.img
>
> # create second flash drive (varstore) if it doesn't exist
> if ! [ -e flash1.img ]; then
> head -c $((64 * 1024 * 1024)) /dev/zero > flash1.img
> fi
>
> # launch qemu (TCG)
> .../qemu-system-aarch64 \
> -nodefaults \
> -nodefconfig \
> -nographic \
> \
> -m 2048 \
> -cpu cortex-a57 \
> -M virt \
> \
> -drive if=pflash,format=raw,file=flash0.img,readonly \
> -drive if=pflash,format=raw,file=flash1.img \
> \
> -chardev stdio,signal=off,mux=on,id=char0 \
> -mon chardev=char0,mode=readline,default \
> -serial chardev:char0 \
> \
> ...
>
> These commands are appropriate for a "persistent" virtual machine (ie.
> one where you want to preserve the non-volatile UEFI variables from boot
> to boot).
>
> If you want to start again with an empty varstore, just delete
> "flash1.img". (Normally, you'd only do that when also zapping the VM's
> system disk.)
>
> However, if you can (and are willing to) use libvirt, I certainly
> recommend that you do. See eg.
> <https://fedoraproject.org/wiki/Architectures/AArch64/Install_with_QEMU>
> (although virt-install has become even more convenient since then).
>
> HTH
> Laszlo
>
>
> >//
> >//
> >/Best,/
> >/Liang/
> >//
> >//
> >/>
> [1]http://git.linaro.org/leg/acpi/acpi.git/shortlog/refs/heads/acpi-sbsa/
> >/> [2]/
> >/>
> http://git.linaro.org/leg/acpi/acpi.git/commit/57acba56d55e3fb521fd6ce767446459ef7a4943/
> >/>/
> >/> [3]/
> >/>
> https://git.fedorahosted.org/cgit/kernel-arm64.git/commit/?h=devel&id=8cf58cbe94b982b680229e5b164231eea0ca2d11/
> >/>/
> >/> [4]http://people.linaro.org/~shannon.zhao/ACPI_ARM/Image.gz
> <http://people.linaro.org/%7Eshannon.zhao/ACPI_ARM/Image.gz>/
> >/> <http://people.linaro.org/%7Eshannon.zhao/ACPI_ARM/Image.gz>/
> >/> [5]http://people.linaro.org/~shannon.zhao/ACPI_ARM/QEMU_EFI.fd
> <http://people.linaro.org/%7Eshannon.zhao/ACPI_ARM/QEMU_EFI.fd>/
> >/> <http://people.linaro.org/%7Eshannon.zhao/ACPI_ARM/QEMU_EFI.fd>/
> >/> [6]http://people.linaro.org/~shannon.zhao/ACPI_ARM/acpi_test.sh
> <http://people.linaro.org/%7Eshannon.zhao/ACPI_ARM/acpi_test.sh>/
> >/> <http://people.linaro.org/%7Eshannon.zhao/ACPI_ARM/acpi_test.sh>/
> >/>/
> >/> changes since v8:/
> >/> * remove empty _CRS in processor device node and use a define macro/
> >/> for SPI base (Igor)/
> >/> * Add some reviewd-bys from Igor and Alex/
> >/>/
> >/> changes since v7:/
> >/> * replace build_append_uint32 with 4 build_append_byte (Igor)/
> >/> * Fix byte order of aml_unicode() (Igor)/
> >/> * Use upper case for enum values and fix enums in aml-build.h/
> >/> (Michael)/
> >/> * implement aml_interrupt() based on ACPI 5.0 (Igor)/
> >/> * use separate assert (Laszlo)/
> >/> * some doc comments fix (Igor & Michael)/
> >/>/
> >/> changes since v6:/
> >/> * add build_append_uint32 (Peter)/
> >/> * drop some unnecessary headers and adjust the order of headers/
> >/> (Peter)/
> >/> * drop struct AcpiDsdtInfo, AcpiMadtInfo, AcpiGtdtInfo, AcpiPcieInfo/
> >/> and reuse MemMapEntry[] and irqmap[] (Peter)/
> >/> * record PCI ranges info in MemMapEntry[], not calculate those (Peter)/
> >/> * add a separate patch for splitting CONFIG_ACPI (Peter)/
> >/> * use VMSTATE_BOOL (Alex)/
> >/>/
> >/> changes since v5:/
> >/> * Fix table version (Igor)/
> >/> * only create CPU device objects for present CPUs (Igor)/
> >/> * drop madt->local_apic_address and madt->flags (Igor)/
> >/> * adjust implementation of ToUUID macro (Igor)/
> >/> * Fix aml_buffer() (Michael & Igor)/
> >/> * Fix aml_not()/
> >/>/
> >/> changes since v4:/
> >/> * use trace_* instead of DPRINTF (Igor & Alex)/
> >/> * use standard QEMU style for structs (Michael)/
> >/> * add "-no-acpi" option support for arm/
> >/> * use extractNN for bits operation (Alex)/
> >/> * use AmlReadAndWrite enum for rw flags (Igor)/
> >/> * s/uint64_t/uint32_t/ (Igor)/
> >/> * use enum for interrupt flag (Igor)/
> >/> * simplify aml_device use in DSDT (Alex)/
> >/> * share RSDT table generating code with x86 (Igor)/
> >/> * remove unnecessary 1 in MCFG table generating code (Alex & Peter)/
> >/> * use string for ToUUID macro (Igor)/
> >/> * aml_or and aml_and use two args (Igor)/
> >/> * add comments on UUID (Michael)/
> >/> * change PCI MMIO region non-cacheable (Peter)/
> >/> * fix wrong io map (Peter)/
> >/> * add several reviewed-by's from Alex, thanks/
> >/>/
> >/> 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 (24):/
> >/> hw/acpi/aml-build: Make enum values to be upper case to match coding/
> >/> style/
> >/> hw/arm/virt: Move common definitions to virt.h/
> >/> hw/arm/virt: Record PCIe ranges in MemMapEntry array/
> >/> 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: Generate MCFG table/
> >/> hw/acpi/aml-build: Make aml_buffer() definition consistent with the/
> >/> spec/
> >/> hw/acpi/aml-build: Add ToUUID macro/
> >/> hw/acpi/aml-build: Add aml_or() term/
> >/> hw/acpi/aml-build: Add aml_lnot() 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/acpi/aml-build: Add Unicode macro/
> >/> hw/arm/virt-acpi-build: Add PCIe controller in ACPI DSDT table/
> >/> ACPI: split CONFIG_ACPI into 4 pieces/
> >/> 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 | 231 ++++++++++++-/
> >/> hw/arm/Makefile.objs | 1 +/
> >/> hw/arm/virt-acpi-build.c | 644/
> >/> +++++++++++++++++++++++++++++++++++/
> >/> hw/arm/virt.c | 85 ++---/
> >/> hw/i2c/Makefile.objs | 2 +-/
> >/> hw/i386/acpi-build.c | 82 ++---/
> >/> include/hw/acpi/acpi-defs.h | 210 +++++++++---/
> >/> include/hw/acpi/aml-build.h | 127 +++++--/
> >/> include/hw/arm/virt-acpi-build.h | 44 +++/
> >/> include/hw/arm/virt.h | 64 ++++/
> >/> qemu-options.hx | 2 +-/
> >/> trace-events | 3 +/
> >/> 20 files changed, 1333 insertions(+), 186 deletions(-)/
> >/> create mode 100644 hw/arm/virt-acpi-build.c/
> >/> create mode 100644 include/hw/arm/virt-acpi-build.h/
> >/> create mode 100644 include/hw/arm/virt.h/
> >/>/
> >/> -- /
> >/> 2.0.4/
> >//
[-- Attachment #2: Type: text/html, Size: 15394 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2015-10-13 23:16 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-09 22:34 [Qemu-devel] [PATCH v9 00/24] Generate ACPI v5.1 tables and expose them to guest over fw_cfg on ARM liang yan
2015-10-10 0:37 ` Laszlo Ersek
-- strict thread matches above, loose matches on Subject: below --
2015-10-13 23:15 liang yan
2015-05-25 2:54 Shannon Zhao
2015-05-27 9:43 ` Igor Mammedov
2015-05-27 10:16 ` Michael S. Tsirkin
2015-05-27 11:58 ` Peter Maydell
2015-05-27 12:01 ` Michael S. Tsirkin
2015-05-27 12:07 ` Peter Maydell
2015-05-27 14:07 ` Michael S. Tsirkin
2015-05-28 14:46 ` Peter Maydell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).