All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Salter <msalter@redhat.com>
To: Shannon Zhao <zhaoshenglong@huawei.com>
Cc: peter.maydell@linaro.org, hangaohuai@huawei.com, mst@redhat.com,
	a.spyridakis@virtualopensystems.com, claudio.fontana@huawei.com,
	qemu-devel@nongnu.org, peter.huangpeng@huawei.com,
	hanjun.guo@linaro.org, imammedo@redhat.com, pbonzini@redhat.com,
	lersek@redhat.com, christoffer.dall@linaro.org,
	shannon.zhao@linaro.org
Subject: Re: [Qemu-devel] [PATCH v4 00/20] Generate ACPI v5.1 tables and expose it to guest over fw_cfg on ARM
Date: Mon, 06 Apr 2015 14:47:32 -0400	[thread overview]
Message-ID: <1428346052.2973.26.camel@deneb.redhat.com> (raw)
In-Reply-To: <1428055432-12120-1-git-send-email-zhaoshenglong@huawei.com>

On Fri, 2015-04-03 at 18:03 +0800, Shannon Zhao wrote:
> From: Shannon Zhao <shannon.zhao@linaro.org>
> 
> This patch series generate six ACPI v5.1 tables for machine virt on ARM.
> The set of generated tables are:
> - RSDP
> - RSDT
> - MADT
> - GTDT
> - FADT
> - DSDT
> - MCFG (For PCIe host bridge)
> 
> These tables are created dynamically using the function of aml-build.c,
> taking into account the needed information passed from the virt machine model.
> When the generation is finalized, it use fw_cfg to expose the tables to guest.
> 
> You can fetch this from following repo:
> 	http://git.linaro.org/people/shannon.zhao/qemu.git  ACPI_ARM_v4
> 
> And this patchset refers to Alexander Spyridakis's patches which are sent to
> qemu-devel mailing list before.
> 	http://lists.gnu.org/archive/html/qemu-devel/2014-10/msg03987.html
> 
> Thanks to Laszlo's work on UEFI (ArmVirtualizationQemu) supporting downloading
> ACPI tables over fw_cfg, we now can use ACPI in VM. I have done following vm
> startup test:
> 
> xp, windows2008, sles11 on X86
> Fedora Linux kernel on ARM64
> 
> Note:
> As upstream kernel doesn't support ACPI PCI host bridge on ARM64, so I use the
> Fedora Linux kernel from following address:
> 	https://git.fedorahosted.org/cgit/kernel-arm64.git/log/?h=devel
> But maybe this has a bug which cause unsuccessfully initializing BAR, therefore
> virtio-pci can't work. I apply the following patch and the virtio-pci, e1000
> work well.
> 
> diff --git a/arch/arm64/kernel/pci.c b/arch/arm64/kernel/pci.c
> index 8456e72..32f8869 100644
> --- a/arch/arm64/kernel/pci.c
> +++ b/arch/arm64/kernel/pci.c
> @@ -240,7 +240,7 @@ static acpi_status setup_resource(struct acpi_resource *acpi_res, void *data)
>                 if (pci_remap_iospace(res, start) < 0)
>                         return AE_OK;
> 
> -               info->res_offset[info->res_num] = port - addr.address.minimum;
> +               info->res_offset[info->res_num] = port;
>         } else
>                 info->res_offset[info->res_num] = addr.address.translation_offset;

I don't think this is right. What does the working devicetree node look
like? What does the non-working PCIe table entry look like? What is the
range of PCI bus ioport addresses supported by the virtual device and
what CPU physical range is used to access that PCI ioport range?

> changes since v3:
>   * rebase on upstream qemu
>   * fix _HID of CPU (Heyi Guo)
>   * Add PCIe host bridge
>   
> changes since v2:
>   * rebase on Igor Mammedov's new branch ASL_API_v3
>   * use rsdt instead of xsdt according to Igor Mammedov's suggestion
> 
> changes since v1:
>   * fix bug found by Laszlo
>   * move common helpers into dedictated file and change generating
>     table order according to Igor's comments
>   * fix copyright and function name according to Michael's comments
> 
> 
> Shannon Zhao (20):
>   hw/i386: Move ACPI header definitions in an arch-independent location
>   hw/i386/acpi-build: move generic acpi building helpers into dedictated
>     file
>   hw/arm/virt-acpi-build: Basic framework for building ACPI tables on
>     ARM
>   hw/acpi/aml-build: Add aml_memory32_fixed() term
>   hw/acpi/aml-build: Add aml_interrupt() term
>   hw/arm/virt-acpi-build: Generation of DSDT table for virt devices
>   hw/arm/virt-acpi-build: Generate FADT table and update ACPI headers
>   hw/arm/virt-acpi-build: Generate MADT table
>   hw/arm/virt-acpi-build: Generate GTDT table
>   hw/arm/virt-acpi-build: Generate RSDT table
>   hw/arm/virt-acpi-build: Generate RSDP table
>   hw/arm/virt-acpi-build: Add PCIe info and generate MCFG table
>   hw/acpi/aml-build: Add ToUUID macro
>   hw/acpi/aml-build: Add aml_or() term
>   hw/acpi/aml-build: Add aml_not() term
>   hw/acpi/aml-build: Add aml_else() term
>   hw/acpi/aml-build: Add aml_create_dword_field() term
>   hw/acpi/aml-build: Add aml_dword_io() term
>   hw/arm/virt-acpi-build: Add PCIe controller in ACPI DSDT table
>   hw/arm/virt: Enable dynamic generation of ACPI v5.1 tables
> 
>  default-configs/arm-softmmu.mak      |   1 +
>  default-configs/i386-softmmu.mak     |   3 +
>  default-configs/mips-softmmu.mak     |   3 +
>  default-configs/mips64-softmmu.mak   |   3 +
>  default-configs/mips64el-softmmu.mak |   3 +
>  default-configs/mipsel-softmmu.mak   |   3 +
>  default-configs/x86_64-softmmu.mak   |   3 +
>  hw/acpi/Makefile.objs                |   5 +-
>  hw/acpi/aml-build.c                  | 189 +++++++++-
>  hw/arm/Makefile.objs                 |   1 +
>  hw/arm/virt-acpi-build.c             | 678 +++++++++++++++++++++++++++++++++++
>  hw/arm/virt.c                        |  78 +++-
>  hw/i2c/Makefile.objs                 |   2 +-
>  hw/i386/acpi-build.c                 |  81 +----
>  hw/i386/acpi-defs.h                  | 368 -------------------
>  include/hw/acpi/acpi-defs.h          | 479 +++++++++++++++++++++++++
>  include/hw/acpi/aml-build.h          |  45 ++-
>  include/hw/arm/virt-acpi-build.h     |  79 ++++
>  tests/bios-tables-test.c             |   2 +-
>  19 files changed, 1564 insertions(+), 462 deletions(-)
>  create mode 100644 hw/arm/virt-acpi-build.c
>  delete mode 100644 hw/i386/acpi-defs.h
>  create mode 100644 include/hw/acpi/acpi-defs.h
>  create mode 100644 include/hw/arm/virt-acpi-build.h
> 

  parent reply	other threads:[~2015-04-06 18:47 UTC|newest]

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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1428346052.2973.26.camel@deneb.redhat.com \
    --to=msalter@redhat.com \
    --cc=a.spyridakis@virtualopensystems.com \
    --cc=christoffer.dall@linaro.org \
    --cc=claudio.fontana@huawei.com \
    --cc=hangaohuai@huawei.com \
    --cc=hanjun.guo@linaro.org \
    --cc=imammedo@redhat.com \
    --cc=lersek@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.huangpeng@huawei.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=shannon.zhao@linaro.org \
    --cc=zhaoshenglong@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.