From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:32874) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YfJVP-0005kS-86 for qemu-devel@nongnu.org; Mon, 06 Apr 2015 22:44:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YfJVL-0003oa-0a for qemu-devel@nongnu.org; Mon, 06 Apr 2015 22:44:47 -0400 Received: from szxga02-in.huawei.com ([119.145.14.65]:1917) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YfJVK-0003mv-5j for qemu-devel@nongnu.org; Mon, 06 Apr 2015 22:44:42 -0400 Message-ID: <55234469.9060404@huawei.com> Date: Tue, 7 Apr 2015 10:43:53 +0800 From: Shannon Zhao MIME-Version: 1.0 References: <1428055432-12120-1-git-send-email-zhaoshenglong@huawei.com> <1428346052.2973.26.camel@deneb.redhat.com> In-Reply-To: <1428346052.2973.26.camel@deneb.redhat.com> Content-Type: multipart/mixed; boundary="------------090809000203040209070308" Subject: Re: [Qemu-devel] [PATCH v4 00/20] Generate ACPI v5.1 tables and expose it to guest over fw_cfg on ARM List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Mark Salter 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 --------------090809000203040209070308 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit On 2015/4/7 2:47, Mark Salter wrote: > On Fri, 2015-04-03 at 18:03 +0800, Shannon Zhao wrote: >> > From: Shannon Zhao >> > >> > 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? > Hi Mark, I just pick up the related part of the dts and acpi table. I think at this case the pci bus address and cpu physical address is 1:1 mapped. The dts node is: ranges = <0x1000000 0x0 0x0 0x0 0x3eff0000 0x0 0x10000 0x2000000 0x0 0x10000000 0x0 0x10000000 0x0 0x2eff0000>; reg = <0x0 0x3f000000 0x0 0x1000000>; bus-range = <0x0 0xf>; The ACPI table entry: Method (_CBA, 0, NotSerialized) // _CBA: Configuration Base Address { Return (0x3F000000) } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Name (RBUF, ResourceTemplate () { WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, 0x0000, // Granularity 0x0000, // Range Minimum 0x000F, // Range Maximum 0x0000, // Translation Offset 0x0010, // Length ,, ) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x10000000, // Range Minimum 0x3EFF0000, // Range Maximum 0x00000000, // Translation Offset 0x2EFF0000, // Length ,, , AddressRangeMemory, TypeStatic) DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 0x00000000, // Granularity 0x3EFF0000, // Range Minimum 0x3F000000, // Range Maximum 0x00000000, // Translation Offset 0x00010000, // Length ,, , TypeStatic) }) Return(RBUF) } -- Thanks, Shannon --------------090809000203040209070308 Content-Type: text/plain; charset="gb18030"; name="dts-pcie" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="dts-pcie" ICAgICAgICBwY2llQDEwMDAwMDAwIHsKICAgICAgICAgICAgICAgIGludGVycnVwdC1tYXAt bWFzayA9IDwweDE4MDAgMHgwIDB4MCAweDc+OwogICAgICAgICAgICAgICAgaW50ZXJydXB0 LW1hcCA9IDwweDAgMHgwIDB4MCAweDEgMHg4MDAxIDB4MCAweDMgMHg0IDB4MCAweDAgMHgw IDB4MiAweDgwMDEgMHgwIDB4NCAweDQgMHgwIDB4MCAweDAgMHgzIDB4ODAwMSAweDAgMHg1 IDB4NCAweDAgMHgwIDB4MCAweDQgMHg4MDAxIDB4MCAweDYgMHg0IDB4ODAwIDB4MCAweDAg MHgxIDB4ODAwMSAweDAgMHg0IDB4NCAweDgwMCAweDAgMHgwIDB4MiAweDgwMDEgMHgwIDB4 NSAweDQgMHg4MDAgMHgwIDB4MCAweDMgMHg4MDAxIDB4MCAweDYgMHg0IDB4ODAwIDB4MCAw eDAgMHg0IDB4ODAwMSAweDAgMHgzIDB4NCAweDEwMDAgMHgwIDB4MCAweDEgMHg4MDAxIDB4 MCAweDUgMHg0IDB4MTAwMCAweDAgMHgwIDB4MiAweDgwMDEgMHgwIDB4NiAweDQgMHgxMDAw IDB4MCAweDAgMHgzIDB4ODAwMSAweDAgMHgzIDB4NCAweDEwMDAgMHgwIDB4MCAweDQgMHg4 MDAxIDB4MCAweDQgMHg0IDB4MTgwMCAweDAgMHgwIDB4MSAweDgwMDEgMHgwIDB4NiAweDQg MHgxODAwIDB4MCAweDAgMHgyIDB4ODAwMSAweDAgMHgzIDB4NCAweDE4MDAgMHgwIDB4MCAw eDMgMHg4MDAxIDB4MCAweDQgMHg0IDB4MTgwMCAweDAgMHgwIDB4NCAweDgwMDEgMHgwIDB4 NSAweDQ+OwogICAgICAgICAgICAgICAgI2ludGVycnVwdC1jZWxscyA9IDwweDE+OwogICAg ICAgICAgICAgICAgcmFuZ2VzID0gPDB4MTAwMDAwMCAweDAgMHgwIDB4MCAweDNlZmYwMDAw IDB4MCAweDEwMDAwIAoJCQkgIDB4MjAwMDAwMCAweDAgMHgxMDAwMDAwMCAweDAgMHgxMDAw MDAwMCAweDAgMHgyZWZmMDAwMD47CiAgICAgICAgICAgICAgICByZWcgPSA8MHgwIDB4M2Yw MDAwMDAgMHgwIDB4MTAwMDAwMD47CiAgICAgICAgICAgICAgICBidXMtcmFuZ2UgPSA8MHgw IDB4Zj47CiAgICAgICAgICAgICAgICAjc2l6ZS1jZWxscyA9IDwweDI+OwogICAgICAgICAg ICAgICAgI2FkZHJlc3MtY2VsbHMgPSA8MHgzPjsKICAgICAgICAgICAgICAgIGRldmljZV90 eXBlID0gInBjaSI7CiAgICAgICAgICAgICAgICBjb21wYXRpYmxlID0gInBjaS1ob3N0LWVj YW0tZ2VuZXJpYyI7CiAgICAgICAgfTsK --------------090809000203040209070308 Content-Type: text/plain; charset="gb18030"; name="ACPI-PCIe-entry" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="ACPI-PCIe-entry" ICAgICAgICBEZXZpY2UgKFBDSTApDQogICAgICAgIHsNCiAgICAgICAgICAgIE5hbWUgKF9I SUQsICJQTlAwQTA4IikgIC8vIF9ISUQ6IEhhcmR3YXJlIElEDQogICAgICAgICAgICBOYW1l IChfQ0lELCAiUE5QMEEwMyIpICAvLyBfQ0lEOiBDb21wYXRpYmxlIElEDQogICAgICAgICAg ICBOYW1lIChfU0VHLCBaZXJvKSAgLy8gX1NFRzogUENJIFNlZ21lbnQNCiAgICAgICAgICAg IE5hbWUgKF9CQk4sIFplcm8pICAvLyBfQkJOOiBCSU9TIEJ1cyBOdW1iZXINCiAgICAgICAg ICAgIE5hbWUgKF9VSUQsICJQQ0kwIikgIC8vIF9VSUQ6IFVuaXF1ZSBJRA0KICAgICAgICAg ICAgTmFtZSAoX1NUUiwgIlBDSWUgMCBEZXZpY2UiKSAgLy8gX1NUUjogRGVzY3JpcHRpb24g U3RyaW5nDQoNCiAgICAgICAgICAgIE1ldGhvZCAoX0NCQSwgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9DQkE6IENvbmZpZ3VyYXRpb24gQmFzZSBBZGRyZXNzDQogICAgICAgICAgICB7DQog ICAgICAgICAgICAgICAgUmV0dXJuICgweDNGMDAwMDAwKQ0KICAgICAgICAgICAgfQ0KDQog ICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBD dXJyZW50IFJlc291cmNlIFNldHRpbmdzDQogICAgICAgICAgICB7DQogICAgICAgICAgICAg ICAgTmFtZSAoUkJVRiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQ0KICAgICAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICAgICAgV29yZEJ1c051bWJlciAoUmVzb3VyY2VQcm9kdWNlciwg TWluRml4ZWQsIE1heEZpeGVkLCBQb3NEZWNvZGUsDQogICAgICAgICAgICAgICAgICAgICAg ICAweDAwMDAsICAgICAgICAgICAgIC8vIEdyYW51bGFyaXR5DQogICAgICAgICAgICAgICAg ICAgICAgICAweDAwMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0NCiAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAwRiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQ0K ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwLCAgICAgICAgICAgICAvLyBUcmFuc2xh dGlvbiBPZmZzZXQNCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMCwgICAgICAgICAg ICAgLy8gTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAsLCApDQogICAgICAgICAg ICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1p bkZpeGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxlLCBSZWFkV3JpdGUsDQogICAgICAgICAgICAg ICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEdyYW51bGFyaXR5DQogICAgICAg ICAgICAgICAgICAgICAgICAweDEwMDAwMDAwLCAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0N CiAgICAgICAgICAgICAgICAgICAgICAgIDB4M0VGRjAwMDAsICAgICAgICAgLy8gUmFuZ2Ug TWF4aW11bQ0KICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAv LyBUcmFuc2xhdGlvbiBPZmZzZXQNCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MkVGRjAw MDAsICAgICAgICAgLy8gTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAsLCAsIEFk ZHJlc3NSYW5nZU1lbW9yeSwgVHlwZVN0YXRpYykNCiAgICAgICAgICAgICAgICAgICAgRFdv cmRJTyAoUmVzb3VyY2VQcm9kdWNlciwgTWluRml4ZWQsIE1heEZpeGVkLCBQb3NEZWNvZGUs IEVudGlyZVJhbmdlLA0KICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAg ICAgICAvLyBHcmFudWxhcml0eQ0KICAgICAgICAgICAgICAgICAgICAgICAgMHgzRUZGMDAw MCwgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtDQogICAgICAgICAgICAgICAgICAgICAgICAw eDNGMDAwMDAwLCAgICAgICAgIC8vIFJhbmdlIE1heGltdW0NCiAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0DQogICAg ICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwLCAgICAgICAgIC8vIExlbmd0aA0KICAg ICAgICAgICAgICAgICAgICAgICAgLCwgLCBUeXBlU3RhdGljKQ0KICAgICAgICAgICAgICAg IH0pDQoJCQkJUmV0dXJuKFJCVUYpDQoJCQl9DQoJCX0= --------------090809000203040209070308--