Re: [Qemu-devel] [PATCH V10 5/9] hw/arm/virt: add pvpanic device in virt acpi table
On Wed, Nov 28, 2018 at 08:12:48PM +0800, Peng Hao wrote: > Add pvpanic device in virt acpi table, so when kenrel command line > uses acpi=force, kernel can get info from acpi table. > > Signed-off-by: Peng Hao > --- > hw/arm/virt-acpi-build.c | 15 +++ > 1 file changed, 15 insertions(+) > > diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c > index 5785fb6..2adba60 100644 > --- a/hw/arm/virt-acpi-build.c > +++ b/hw/arm/virt-acpi-build.c > @@ -84,6 +84,20 @@ static void acpi_dsdt_add_uart(Aml *scope, const > MemMapEntry *uart_memmap, > aml_append(scope, dev); > } > > +static void acpi_dsdt_add_pvpanic(Aml *scope, const MemMapEntry > *pvpanic_memmap) > +{ > +Aml *dev = aml_device("PEVT"); > +aml_append(dev, aml_name_decl("_HID", aml_string("QEMU0001"))); > +aml_append(dev, aml_name_decl("_UID", aml_int(0))); > + > +Aml *crs = aml_resource_template(); > +aml_append(crs, aml_memory32_fixed(pvpanic_memmap->base, > + pvpanic_memmap->size, > AML_READ_WRITE)); > + > +aml_append(dev, aml_name_decl("_CRS", crs)); > +aml_append(scope, dev); > +} > + > static void acpi_dsdt_add_fw_cfg(Aml *scope, const MemMapEntry > *fw_cfg_memmap) > { > Aml *dev = aml_device("FWCF"); > @@ -771,6 +785,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker, > VirtMachineState *vms) > acpi_dsdt_add_uart(scope, [VIRT_UART], > (irqmap[VIRT_UART] + ARM_SPI_BASE)); > acpi_dsdt_add_flash(scope, [VIRT_FLASH]); > +acpi_dsdt_add_pvpanic(scope, [VIRT_PVPANIC]); > acpi_dsdt_add_fw_cfg(scope, [VIRT_FW_CFG]); > acpi_dsdt_add_virtio(scope, [VIRT_MMIO], > (irqmap[VIRT_MMIO] + ARM_SPI_BASE), > NUM_VIRTIO_TRANSPORTS); > -- > 1.8.3.1 > > Reviewed-by: Andrew Jones
Re: [Qemu-devel] [PATCH V10 5/9] hw/arm/virt: add pvpanic device in virt acpi table
On Wed, 28 Nov 2018 at 03:50, Peng Hao wrote: > > Add pvpanic device in virt acpi table, so when kenrel command line typo: "kernel". I'll leave it to the ACPI experts to review the meat of this patch. > uses acpi=force, kernel can get info from acpi table. > > Signed-off-by: Peng Hao > --- > hw/arm/virt-acpi-build.c | 15 +++ > 1 file changed, 15 insertions(+) > > diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c > index 5785fb6..2adba60 100644 > --- a/hw/arm/virt-acpi-build.c > +++ b/hw/arm/virt-acpi-build.c > @@ -84,6 +84,20 @@ static void acpi_dsdt_add_uart(Aml *scope, const > MemMapEntry *uart_memmap, > aml_append(scope, dev); > } > > +static void acpi_dsdt_add_pvpanic(Aml *scope, const MemMapEntry > *pvpanic_memmap) > +{ > +Aml *dev = aml_device("PEVT"); > +aml_append(dev, aml_name_decl("_HID", aml_string("QEMU0001"))); > +aml_append(dev, aml_name_decl("_UID", aml_int(0))); > + > +Aml *crs = aml_resource_template(); > +aml_append(crs, aml_memory32_fixed(pvpanic_memmap->base, > + pvpanic_memmap->size, > AML_READ_WRITE)); > + > +aml_append(dev, aml_name_decl("_CRS", crs)); > +aml_append(scope, dev); > +} > + > static void acpi_dsdt_add_fw_cfg(Aml *scope, const MemMapEntry > *fw_cfg_memmap) > { > Aml *dev = aml_device("FWCF"); > @@ -771,6 +785,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker, > VirtMachineState *vms) > acpi_dsdt_add_uart(scope, [VIRT_UART], > (irqmap[VIRT_UART] + ARM_SPI_BASE)); > acpi_dsdt_add_flash(scope, [VIRT_FLASH]); > +acpi_dsdt_add_pvpanic(scope, [VIRT_PVPANIC]); > acpi_dsdt_add_fw_cfg(scope, [VIRT_FW_CFG]); > acpi_dsdt_add_virtio(scope, [VIRT_MMIO], > (irqmap[VIRT_MMIO] + ARM_SPI_BASE), > NUM_VIRTIO_TRANSPORTS); > -- > 1.8.3.1 > thanks -- PMM
[Qemu-devel] [PATCH V10 5/9] hw/arm/virt: add pvpanic device in virt acpi table
Add pvpanic device in virt acpi table, so when kenrel command line uses acpi=force, kernel can get info from acpi table. Signed-off-by: Peng Hao --- hw/arm/virt-acpi-build.c | 15 +++ 1 file changed, 15 insertions(+) diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c index 5785fb6..2adba60 100644 --- a/hw/arm/virt-acpi-build.c +++ b/hw/arm/virt-acpi-build.c @@ -84,6 +84,20 @@ static void acpi_dsdt_add_uart(Aml *scope, const MemMapEntry *uart_memmap, aml_append(scope, dev); } +static void acpi_dsdt_add_pvpanic(Aml *scope, const MemMapEntry *pvpanic_memmap) +{ +Aml *dev = aml_device("PEVT"); +aml_append(dev, aml_name_decl("_HID", aml_string("QEMU0001"))); +aml_append(dev, aml_name_decl("_UID", aml_int(0))); + +Aml *crs = aml_resource_template(); +aml_append(crs, aml_memory32_fixed(pvpanic_memmap->base, + pvpanic_memmap->size, AML_READ_WRITE)); + +aml_append(dev, aml_name_decl("_CRS", crs)); +aml_append(scope, dev); +} + static void acpi_dsdt_add_fw_cfg(Aml *scope, const MemMapEntry *fw_cfg_memmap) { Aml *dev = aml_device("FWCF"); @@ -771,6 +785,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) acpi_dsdt_add_uart(scope, [VIRT_UART], (irqmap[VIRT_UART] + ARM_SPI_BASE)); acpi_dsdt_add_flash(scope, [VIRT_FLASH]); +acpi_dsdt_add_pvpanic(scope, [VIRT_PVPANIC]); acpi_dsdt_add_fw_cfg(scope, [VIRT_FW_CFG]); acpi_dsdt_add_virtio(scope, [VIRT_MMIO], (irqmap[VIRT_MMIO] + ARM_SPI_BASE), NUM_VIRTIO_TRANSPORTS); -- 1.8.3.1