qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [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 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-13 23:15 [Qemu-devel] [PATCH v9 00/24] Generate ACPI v5.1 tables and expose them to guest over fw_cfg on ARM liang yan
  -- strict thread matches above, loose matches on Subject: below --
2015-10-09 22:34 liang yan
2015-10-10  0:37 ` Laszlo Ersek
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).