* [PATCH v8 00/10] acpi: i386 tweaks
@ 2020-06-11 7:29 Gerd Hoffmann
2020-06-11 7:29 ` [PATCH v8 01/10] qtest: allow DSDT acpi table changes Gerd Hoffmann
` (9 more replies)
0 siblings, 10 replies; 18+ messages in thread
From: Gerd Hoffmann @ 2020-06-11 7:29 UTC (permalink / raw)
To: qemu-devel
Cc: Laurent Vivier, Kevin Wolf, Thomas Huth, Eduardo Habkost,
qemu-block, Michael S. Tsirkin, Max Reitz, Paolo Bonzini,
Gerd Hoffmann, Marc-André Lureau, Igor Mammedov, John Snow,
Richard Henderson
First batch of microvm patches, some generic acpi stuff.
Split the acpi-build.c monster, specifically split the
pc and q35 and pci bits into a separate file which we
can skip building at some point in the future.
v2 changes: leave acpi-build.c largely as-is, move useful
bits to other places to allow them being reused, specifically:
* move isa device generator functions to individual isa devices.
* move fw_cfg generator function to fw_cfg.c
v3 changes: fix rtc, support multiple lpt devices.
v4 changes:
* drop merged patches.
* split rtc crs change to separata patch.
* added two cleanup patches.
* picked up ack & review tags.
v5 changes:
* add comment for rtc crs update.
* add even more cleanup patches.
* picked up ack & review tags.
v6 changes:
* floppy: move cmos_get_fd_drive_type.
* picked up ack & review tags.
v7 changes:
* rebased to mst/pci branch, resolved stubs conflict.
* dropped patches already queued up in mst/pci.
* added missing sign-off.
* picked up ack & review tags.
v8 changes:
* (re-)add patch to allow acpi table changes
take care,
Gerd
Gerd Hoffmann (10):
qtest: allow DSDT acpi table changes
acpi: move aml builder code for floppy device
floppy: make isa_fdc_get_drive_max_chs static
floppy: move cmos_get_fd_drive_type() from pc
acpi: move aml builder code for i8042 (kbd+mouse) device
acpi: factor out fw_cfg_add_acpi_dsdt()
acpi: simplify build_isa_devices_aml()
acpi: drop serial/parallel enable bits from dsdt
acpi: drop build_piix4_pm()
acpi: q35: drop _SB.PCI0.ISA.LPCD opregion.
hw/i386/fw_cfg.h | 1 +
include/hw/block/fdc.h | 3 +-
include/hw/i386/pc.h | 1 -
tests/qtest/bios-tables-test-allowed-diff.h | 17 ++
hw/block/fdc.c | 111 +++++++++-
hw/i386/acpi-build.c | 211 +-------------------
hw/i386/fw_cfg.c | 28 +++
hw/i386/pc.c | 25 ---
hw/input/pckbd.c | 31 +++
stubs/cmos.c | 7 +
stubs/Makefile.objs | 1 +
11 files changed, 201 insertions(+), 235 deletions(-)
create mode 100644 stubs/cmos.c
--
2.18.4
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH v8 01/10] qtest: allow DSDT acpi table changes
2020-06-11 7:29 [PATCH v8 00/10] acpi: i386 tweaks Gerd Hoffmann
@ 2020-06-11 7:29 ` Gerd Hoffmann
2020-06-11 9:18 ` Michael S. Tsirkin
2020-06-11 7:29 ` [PATCH v8 02/10] acpi: move aml builder code for floppy device Gerd Hoffmann
` (8 subsequent siblings)
9 siblings, 1 reply; 18+ messages in thread
From: Gerd Hoffmann @ 2020-06-11 7:29 UTC (permalink / raw)
To: qemu-devel
Cc: Laurent Vivier, Kevin Wolf, Thomas Huth, Eduardo Habkost,
qemu-block, Michael S. Tsirkin, Max Reitz, Paolo Bonzini,
Gerd Hoffmann, Marc-André Lureau, Igor Mammedov, John Snow,
Richard Henderson
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
tests/qtest/bios-tables-test-allowed-diff.h | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
index dfb8523c8bf4..6a052c50447a 100644
--- a/tests/qtest/bios-tables-test-allowed-diff.h
+++ b/tests/qtest/bios-tables-test-allowed-diff.h
@@ -1 +1,18 @@
/* List of comma-separated changed AML files to ignore */
+"tests/data/acpi/pc/DSDT",
+"tests/data/acpi/pc/DSDT.acpihmat",
+"tests/data/acpi/pc/DSDT.bridge",
+"tests/data/acpi/pc/DSDT.cphp",
+"tests/data/acpi/pc/DSDT.dimmpxm",
+"tests/data/acpi/pc/DSDT.ipmikcs",
+"tests/data/acpi/pc/DSDT.memhp",
+"tests/data/acpi/pc/DSDT.numamem",
+"tests/data/acpi/q35/DSDT",
+"tests/data/acpi/q35/DSDT.acpihmat",
+"tests/data/acpi/q35/DSDT.bridge",
+"tests/data/acpi/q35/DSDT.cphp",
+"tests/data/acpi/q35/DSDT.dimmpxm",
+"tests/data/acpi/q35/DSDT.ipmibt",
+"tests/data/acpi/q35/DSDT.memhp",
+"tests/data/acpi/q35/DSDT.mmio64",
+"tests/data/acpi/q35/DSDT.numamem",
--
2.18.4
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v8 02/10] acpi: move aml builder code for floppy device
2020-06-11 7:29 [PATCH v8 00/10] acpi: i386 tweaks Gerd Hoffmann
2020-06-11 7:29 ` [PATCH v8 01/10] qtest: allow DSDT acpi table changes Gerd Hoffmann
@ 2020-06-11 7:29 ` Gerd Hoffmann
2020-06-11 8:22 ` Philippe Mathieu-Daudé
2020-06-11 7:29 ` [PATCH v8 03/10] floppy: make isa_fdc_get_drive_max_chs static Gerd Hoffmann
` (7 subsequent siblings)
9 siblings, 1 reply; 18+ messages in thread
From: Gerd Hoffmann @ 2020-06-11 7:29 UTC (permalink / raw)
To: qemu-devel
Cc: Laurent Vivier, Kevin Wolf, Thomas Huth, Eduardo Habkost,
qemu-block, Michael S. Tsirkin, Max Reitz, Paolo Bonzini,
Gerd Hoffmann, Marc-André Lureau, Igor Mammedov, John Snow,
Richard Henderson
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
---
hw/block/fdc.c | 83 ++++++++++++++++++++++++++++++++++++++++++++
hw/i386/acpi-build.c | 83 --------------------------------------------
stubs/cmos.c | 7 ++++
stubs/Makefile.objs | 1 +
4 files changed, 91 insertions(+), 83 deletions(-)
create mode 100644 stubs/cmos.c
diff --git a/hw/block/fdc.c b/hw/block/fdc.c
index c5fb9d6ece77..b4d2eaf66dcd 100644
--- a/hw/block/fdc.c
+++ b/hw/block/fdc.c
@@ -32,6 +32,8 @@
#include "qapi/error.h"
#include "qemu/error-report.h"
#include "qemu/timer.h"
+#include "hw/i386/pc.h"
+#include "hw/acpi/aml-build.h"
#include "hw/irq.h"
#include "hw/isa/isa.h"
#include "hw/qdev-properties.h"
@@ -2765,6 +2767,85 @@ void isa_fdc_get_drive_max_chs(FloppyDriveType type,
(*maxc)--;
}
+static Aml *build_fdinfo_aml(int idx, FloppyDriveType type)
+{
+ Aml *dev, *fdi;
+ uint8_t maxc, maxh, maxs;
+
+ isa_fdc_get_drive_max_chs(type, &maxc, &maxh, &maxs);
+
+ dev = aml_device("FLP%c", 'A' + idx);
+
+ aml_append(dev, aml_name_decl("_ADR", aml_int(idx)));
+
+ fdi = aml_package(16);
+ aml_append(fdi, aml_int(idx)); /* Drive Number */
+ aml_append(fdi,
+ aml_int(cmos_get_fd_drive_type(type))); /* Device Type */
+ /*
+ * the values below are the limits of the drive, and are thus independent
+ * of the inserted media
+ */
+ aml_append(fdi, aml_int(maxc)); /* Maximum Cylinder Number */
+ aml_append(fdi, aml_int(maxs)); /* Maximum Sector Number */
+ aml_append(fdi, aml_int(maxh)); /* Maximum Head Number */
+ /*
+ * SeaBIOS returns the below values for int 0x13 func 0x08 regardless of
+ * the drive type, so shall we
+ */
+ aml_append(fdi, aml_int(0xAF)); /* disk_specify_1 */
+ aml_append(fdi, aml_int(0x02)); /* disk_specify_2 */
+ aml_append(fdi, aml_int(0x25)); /* disk_motor_wait */
+ aml_append(fdi, aml_int(0x02)); /* disk_sector_siz */
+ aml_append(fdi, aml_int(0x12)); /* disk_eot */
+ aml_append(fdi, aml_int(0x1B)); /* disk_rw_gap */
+ aml_append(fdi, aml_int(0xFF)); /* disk_dtl */
+ aml_append(fdi, aml_int(0x6C)); /* disk_formt_gap */
+ aml_append(fdi, aml_int(0xF6)); /* disk_fill */
+ aml_append(fdi, aml_int(0x0F)); /* disk_head_sttl */
+ aml_append(fdi, aml_int(0x08)); /* disk_motor_strt */
+
+ aml_append(dev, aml_name_decl("_FDI", fdi));
+ return dev;
+}
+
+static void fdc_isa_build_aml(ISADevice *isadev, Aml *scope)
+{
+ Aml *dev;
+ Aml *crs;
+ int i;
+
+#define ACPI_FDE_MAX_FD 4
+ uint32_t fde_buf[5] = {
+ 0, 0, 0, 0, /* presence of floppy drives #0 - #3 */
+ cpu_to_le32(2) /* tape presence (2 == never present) */
+ };
+
+ crs = aml_resource_template();
+ aml_append(crs, aml_io(AML_DECODE16, 0x03F2, 0x03F2, 0x00, 0x04));
+ aml_append(crs, aml_io(AML_DECODE16, 0x03F7, 0x03F7, 0x00, 0x01));
+ aml_append(crs, aml_irq_no_flags(6));
+ aml_append(crs,
+ aml_dma(AML_COMPATIBILITY, AML_NOTBUSMASTER, AML_TRANSFER8, 2));
+
+ dev = aml_device("FDC0");
+ aml_append(dev, aml_name_decl("_HID", aml_eisaid("PNP0700")));
+ aml_append(dev, aml_name_decl("_CRS", crs));
+
+ for (i = 0; i < MIN(MAX_FD, ACPI_FDE_MAX_FD); i++) {
+ FloppyDriveType type = isa_fdc_get_drive_type(isadev, i);
+
+ if (type < FLOPPY_DRIVE_TYPE_NONE) {
+ fde_buf[i] = cpu_to_le32(1); /* drive present */
+ aml_append(dev, build_fdinfo_aml(i, type));
+ }
+ }
+ aml_append(dev, aml_name_decl("_FDE",
+ aml_buffer(sizeof(fde_buf), (uint8_t *)fde_buf)));
+
+ aml_append(scope, dev);
+}
+
static const VMStateDescription vmstate_isa_fdc ={
.name = "fdc",
.version_id = 2,
@@ -2798,11 +2879,13 @@ static Property isa_fdc_properties[] = {
static void isabus_fdc_class_init(ObjectClass *klass, void *data)
{
DeviceClass *dc = DEVICE_CLASS(klass);
+ ISADeviceClass *isa = ISA_DEVICE_CLASS(klass);
dc->realize = isabus_fdc_realize;
dc->fw_name = "fdc";
dc->reset = fdctrl_external_reset_isa;
dc->vmsd = &vmstate_isa_fdc;
+ isa->build_aml = fdc_isa_build_aml;
device_class_set_props(dc, isa_fdc_properties);
set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
}
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index 473cbdfffd05..7726d5c0f7cb 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -937,85 +937,6 @@ static void build_hpet_aml(Aml *table)
aml_append(table, scope);
}
-static Aml *build_fdinfo_aml(int idx, FloppyDriveType type)
-{
- Aml *dev, *fdi;
- uint8_t maxc, maxh, maxs;
-
- isa_fdc_get_drive_max_chs(type, &maxc, &maxh, &maxs);
-
- dev = aml_device("FLP%c", 'A' + idx);
-
- aml_append(dev, aml_name_decl("_ADR", aml_int(idx)));
-
- fdi = aml_package(16);
- aml_append(fdi, aml_int(idx)); /* Drive Number */
- aml_append(fdi,
- aml_int(cmos_get_fd_drive_type(type))); /* Device Type */
- /*
- * the values below are the limits of the drive, and are thus independent
- * of the inserted media
- */
- aml_append(fdi, aml_int(maxc)); /* Maximum Cylinder Number */
- aml_append(fdi, aml_int(maxs)); /* Maximum Sector Number */
- aml_append(fdi, aml_int(maxh)); /* Maximum Head Number */
- /*
- * SeaBIOS returns the below values for int 0x13 func 0x08 regardless of
- * the drive type, so shall we
- */
- aml_append(fdi, aml_int(0xAF)); /* disk_specify_1 */
- aml_append(fdi, aml_int(0x02)); /* disk_specify_2 */
- aml_append(fdi, aml_int(0x25)); /* disk_motor_wait */
- aml_append(fdi, aml_int(0x02)); /* disk_sector_siz */
- aml_append(fdi, aml_int(0x12)); /* disk_eot */
- aml_append(fdi, aml_int(0x1B)); /* disk_rw_gap */
- aml_append(fdi, aml_int(0xFF)); /* disk_dtl */
- aml_append(fdi, aml_int(0x6C)); /* disk_formt_gap */
- aml_append(fdi, aml_int(0xF6)); /* disk_fill */
- aml_append(fdi, aml_int(0x0F)); /* disk_head_sttl */
- aml_append(fdi, aml_int(0x08)); /* disk_motor_strt */
-
- aml_append(dev, aml_name_decl("_FDI", fdi));
- return dev;
-}
-
-static Aml *build_fdc_device_aml(ISADevice *fdc)
-{
- int i;
- Aml *dev;
- Aml *crs;
-
-#define ACPI_FDE_MAX_FD 4
- uint32_t fde_buf[5] = {
- 0, 0, 0, 0, /* presence of floppy drives #0 - #3 */
- cpu_to_le32(2) /* tape presence (2 == never present) */
- };
-
- dev = aml_device("FDC0");
- aml_append(dev, aml_name_decl("_HID", aml_eisaid("PNP0700")));
-
- crs = aml_resource_template();
- aml_append(crs, aml_io(AML_DECODE16, 0x03F2, 0x03F2, 0x00, 0x04));
- aml_append(crs, aml_io(AML_DECODE16, 0x03F7, 0x03F7, 0x00, 0x01));
- aml_append(crs, aml_irq_no_flags(6));
- aml_append(crs,
- aml_dma(AML_COMPATIBILITY, AML_NOTBUSMASTER, AML_TRANSFER8, 2));
- aml_append(dev, aml_name_decl("_CRS", crs));
-
- for (i = 0; i < MIN(MAX_FD, ACPI_FDE_MAX_FD); i++) {
- FloppyDriveType type = isa_fdc_get_drive_type(fdc, i);
-
- if (type < FLOPPY_DRIVE_TYPE_NONE) {
- fde_buf[i] = cpu_to_le32(1); /* drive present */
- aml_append(dev, build_fdinfo_aml(i, type));
- }
- }
- aml_append(dev, aml_name_decl("_FDE",
- aml_buffer(sizeof(fde_buf), (uint8_t *)fde_buf)));
-
- return dev;
-}
-
static Aml *build_kbd_device_aml(void)
{
Aml *dev;
@@ -1054,7 +975,6 @@ static Aml *build_mouse_device_aml(void)
static void build_isa_devices_aml(Aml *table)
{
- ISADevice *fdc = pc_find_fdc0();
bool ambiguous;
Aml *scope = aml_scope("_SB.PCI0.ISA");
@@ -1062,9 +982,6 @@ static void build_isa_devices_aml(Aml *table)
aml_append(scope, build_kbd_device_aml());
aml_append(scope, build_mouse_device_aml());
- if (fdc) {
- aml_append(scope, build_fdc_device_aml(fdc));
- }
if (ambiguous) {
error_report("Multiple ISA busses, unable to define IPMI ACPI data");
diff --git a/stubs/cmos.c b/stubs/cmos.c
new file mode 100644
index 000000000000..416cbe4055ff
--- /dev/null
+++ b/stubs/cmos.c
@@ -0,0 +1,7 @@
+#include "qemu/osdep.h"
+#include "hw/i386/pc.h"
+
+int cmos_get_fd_drive_type(FloppyDriveType fd0)
+{
+ return 0;
+}
diff --git a/stubs/Makefile.objs b/stubs/Makefile.objs
index c1e43ac68f87..df2cbfe68ca0 100644
--- a/stubs/Makefile.objs
+++ b/stubs/Makefile.objs
@@ -1,4 +1,5 @@
stub-obj-y += blk-commit-all.o
+stub-obj-y += cmos.o
stub-obj-y += cpu-get-clock.o
stub-obj-y += cpu-get-icount.o
stub-obj-y += dump.o
--
2.18.4
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v8 03/10] floppy: make isa_fdc_get_drive_max_chs static
2020-06-11 7:29 [PATCH v8 00/10] acpi: i386 tweaks Gerd Hoffmann
2020-06-11 7:29 ` [PATCH v8 01/10] qtest: allow DSDT acpi table changes Gerd Hoffmann
2020-06-11 7:29 ` [PATCH v8 02/10] acpi: move aml builder code for floppy device Gerd Hoffmann
@ 2020-06-11 7:29 ` Gerd Hoffmann
2020-06-11 7:29 ` [PATCH v8 04/10] floppy: move cmos_get_fd_drive_type() from pc Gerd Hoffmann
` (6 subsequent siblings)
9 siblings, 0 replies; 18+ messages in thread
From: Gerd Hoffmann @ 2020-06-11 7:29 UTC (permalink / raw)
To: qemu-devel
Cc: Laurent Vivier, Kevin Wolf, Thomas Huth, Eduardo Habkost,
qemu-block, Michael S. Tsirkin, Max Reitz, Paolo Bonzini,
Gerd Hoffmann, Marc-André Lureau, Igor Mammedov, John Snow,
Richard Henderson
acpi aml generator needs this, but it is in floppy code now
so we can make the function static.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Acked-by: John Snow <jsnow@redhat.com>
---
include/hw/block/fdc.h | 2 --
hw/block/fdc.c | 4 ++--
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/include/hw/block/fdc.h b/include/hw/block/fdc.h
index c15ff4c62315..5d71cf972268 100644
--- a/include/hw/block/fdc.h
+++ b/include/hw/block/fdc.h
@@ -16,7 +16,5 @@ void sun4m_fdctrl_init(qemu_irq irq, hwaddr io_base,
DriveInfo **fds, qemu_irq *fdc_tc);
FloppyDriveType isa_fdc_get_drive_type(ISADevice *fdc, int i);
-void isa_fdc_get_drive_max_chs(FloppyDriveType type,
- uint8_t *maxc, uint8_t *maxh, uint8_t *maxs);
#endif
diff --git a/hw/block/fdc.c b/hw/block/fdc.c
index b4d2eaf66dcd..8024c822cea3 100644
--- a/hw/block/fdc.c
+++ b/hw/block/fdc.c
@@ -2744,8 +2744,8 @@ FloppyDriveType isa_fdc_get_drive_type(ISADevice *fdc, int i)
return isa->state.drives[i].drive;
}
-void isa_fdc_get_drive_max_chs(FloppyDriveType type,
- uint8_t *maxc, uint8_t *maxh, uint8_t *maxs)
+static void isa_fdc_get_drive_max_chs(FloppyDriveType type, uint8_t *maxc,
+ uint8_t *maxh, uint8_t *maxs)
{
const FDFormat *fdf;
--
2.18.4
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v8 04/10] floppy: move cmos_get_fd_drive_type() from pc
2020-06-11 7:29 [PATCH v8 00/10] acpi: i386 tweaks Gerd Hoffmann
` (2 preceding siblings ...)
2020-06-11 7:29 ` [PATCH v8 03/10] floppy: make isa_fdc_get_drive_max_chs static Gerd Hoffmann
@ 2020-06-11 7:29 ` Gerd Hoffmann
2020-06-11 7:29 ` [PATCH v8 05/10] acpi: move aml builder code for i8042 (kbd+mouse) device Gerd Hoffmann
` (5 subsequent siblings)
9 siblings, 0 replies; 18+ messages in thread
From: Gerd Hoffmann @ 2020-06-11 7:29 UTC (permalink / raw)
To: qemu-devel
Cc: Laurent Vivier, Kevin Wolf, Thomas Huth, Eduardo Habkost,
qemu-block, Michael S. Tsirkin, Max Reitz, Paolo Bonzini,
Gerd Hoffmann, Marc-André Lureau, Igor Mammedov, John Snow,
Richard Henderson
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Acked-by: John Snow <jsnow@redhat.com>
---
include/hw/block/fdc.h | 1 +
include/hw/i386/pc.h | 1 -
hw/block/fdc.c | 26 +++++++++++++++++++++++++-
hw/i386/pc.c | 25 -------------------------
4 files changed, 26 insertions(+), 27 deletions(-)
diff --git a/include/hw/block/fdc.h b/include/hw/block/fdc.h
index 5d71cf972268..479cebc0a330 100644
--- a/include/hw/block/fdc.h
+++ b/include/hw/block/fdc.h
@@ -16,5 +16,6 @@ void sun4m_fdctrl_init(qemu_irq irq, hwaddr io_base,
DriveInfo **fds, qemu_irq *fdc_tc);
FloppyDriveType isa_fdc_get_drive_type(ISADevice *fdc, int i);
+int cmos_get_fd_drive_type(FloppyDriveType fd0);
#endif
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index 8d764f965cd3..5e3b19ab78fc 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -176,7 +176,6 @@ typedef void (*cpu_set_smm_t)(int smm, void *arg);
void pc_i8259_create(ISABus *isa_bus, qemu_irq *i8259_irqs);
ISADevice *pc_find_fdc0(void);
-int cmos_get_fd_drive_type(FloppyDriveType fd0);
/* port92.c */
#define PORT92_A20_LINE "a20"
diff --git a/hw/block/fdc.c b/hw/block/fdc.c
index 8024c822cea3..ea0fb8ee15b9 100644
--- a/hw/block/fdc.c
+++ b/hw/block/fdc.c
@@ -32,7 +32,6 @@
#include "qapi/error.h"
#include "qemu/error-report.h"
#include "qemu/timer.h"
-#include "hw/i386/pc.h"
#include "hw/acpi/aml-build.h"
#include "hw/irq.h"
#include "hw/isa/isa.h"
@@ -2809,6 +2808,31 @@ static Aml *build_fdinfo_aml(int idx, FloppyDriveType type)
return dev;
}
+int cmos_get_fd_drive_type(FloppyDriveType fd0)
+{
+ int val;
+
+ switch (fd0) {
+ case FLOPPY_DRIVE_TYPE_144:
+ /* 1.44 Mb 3"5 drive */
+ val = 4;
+ break;
+ case FLOPPY_DRIVE_TYPE_288:
+ /* 2.88 Mb 3"5 drive */
+ val = 5;
+ break;
+ case FLOPPY_DRIVE_TYPE_120:
+ /* 1.2 Mb 5"5 drive */
+ val = 2;
+ break;
+ case FLOPPY_DRIVE_TYPE_NONE:
+ default:
+ val = 0;
+ break;
+ }
+ return val;
+}
+
static void fdc_isa_build_aml(ISADevice *isadev, Aml *scope)
{
Aml *dev;
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 2128f3d6fe8b..c5db7be6d8b1 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -385,31 +385,6 @@ static uint64_t ioportF0_read(void *opaque, hwaddr addr, unsigned size)
#define REG_EQUIPMENT_BYTE 0x14
-int cmos_get_fd_drive_type(FloppyDriveType fd0)
-{
- int val;
-
- switch (fd0) {
- case FLOPPY_DRIVE_TYPE_144:
- /* 1.44 Mb 3"5 drive */
- val = 4;
- break;
- case FLOPPY_DRIVE_TYPE_288:
- /* 2.88 Mb 3"5 drive */
- val = 5;
- break;
- case FLOPPY_DRIVE_TYPE_120:
- /* 1.2 Mb 5"5 drive */
- val = 2;
- break;
- case FLOPPY_DRIVE_TYPE_NONE:
- default:
- val = 0;
- break;
- }
- return val;
-}
-
static void cmos_init_hd(ISADevice *s, int type_ofs, int info_ofs,
int16_t cylinders, int8_t heads, int8_t sectors)
{
--
2.18.4
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v8 05/10] acpi: move aml builder code for i8042 (kbd+mouse) device
2020-06-11 7:29 [PATCH v8 00/10] acpi: i386 tweaks Gerd Hoffmann
` (3 preceding siblings ...)
2020-06-11 7:29 ` [PATCH v8 04/10] floppy: move cmos_get_fd_drive_type() from pc Gerd Hoffmann
@ 2020-06-11 7:29 ` Gerd Hoffmann
2020-06-11 7:29 ` [PATCH v8 06/10] acpi: factor out fw_cfg_add_acpi_dsdt() Gerd Hoffmann
` (4 subsequent siblings)
9 siblings, 0 replies; 18+ messages in thread
From: Gerd Hoffmann @ 2020-06-11 7:29 UTC (permalink / raw)
To: qemu-devel
Cc: Laurent Vivier, Kevin Wolf, Thomas Huth, Eduardo Habkost,
qemu-block, Michael S. Tsirkin, Max Reitz, Paolo Bonzini,
Gerd Hoffmann, Marc-André Lureau, Igor Mammedov, John Snow,
Richard Henderson
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
---
hw/i386/acpi-build.c | 39 ---------------------------------------
hw/input/pckbd.c | 31 +++++++++++++++++++++++++++++++
2 files changed, 31 insertions(+), 39 deletions(-)
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index 7726d5c0f7cb..9fed13a27333 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -937,42 +937,6 @@ static void build_hpet_aml(Aml *table)
aml_append(table, scope);
}
-static Aml *build_kbd_device_aml(void)
-{
- Aml *dev;
- Aml *crs;
-
- dev = aml_device("KBD");
- aml_append(dev, aml_name_decl("_HID", aml_eisaid("PNP0303")));
-
- aml_append(dev, aml_name_decl("_STA", aml_int(0xf)));
-
- crs = aml_resource_template();
- aml_append(crs, aml_io(AML_DECODE16, 0x0060, 0x0060, 0x01, 0x01));
- aml_append(crs, aml_io(AML_DECODE16, 0x0064, 0x0064, 0x01, 0x01));
- aml_append(crs, aml_irq_no_flags(1));
- aml_append(dev, aml_name_decl("_CRS", crs));
-
- return dev;
-}
-
-static Aml *build_mouse_device_aml(void)
-{
- Aml *dev;
- Aml *crs;
-
- dev = aml_device("MOU");
- aml_append(dev, aml_name_decl("_HID", aml_eisaid("PNP0F13")));
-
- aml_append(dev, aml_name_decl("_STA", aml_int(0xf)));
-
- crs = aml_resource_template();
- aml_append(crs, aml_irq_no_flags(12));
- aml_append(dev, aml_name_decl("_CRS", crs));
-
- return dev;
-}
-
static void build_isa_devices_aml(Aml *table)
{
bool ambiguous;
@@ -980,9 +944,6 @@ static void build_isa_devices_aml(Aml *table)
Aml *scope = aml_scope("_SB.PCI0.ISA");
Object *obj = object_resolve_path_type("", TYPE_ISA_BUS, &ambiguous);
- aml_append(scope, build_kbd_device_aml());
- aml_append(scope, build_mouse_device_aml());
-
if (ambiguous) {
error_report("Multiple ISA busses, unable to define IPMI ACPI data");
} else if (!obj) {
diff --git a/hw/input/pckbd.c b/hw/input/pckbd.c
index 60a41303203a..29d633ca9478 100644
--- a/hw/input/pckbd.c
+++ b/hw/input/pckbd.c
@@ -26,6 +26,7 @@
#include "qemu/log.h"
#include "hw/isa/isa.h"
#include "migration/vmstate.h"
+#include "hw/acpi/aml-build.h"
#include "hw/input/ps2.h"
#include "hw/irq.h"
#include "hw/input/i8042.h"
@@ -561,12 +562,42 @@ static void i8042_realizefn(DeviceState *dev, Error **errp)
qemu_register_reset(kbd_reset, s);
}
+static void i8042_build_aml(ISADevice *isadev, Aml *scope)
+{
+ Aml *kbd;
+ Aml *mou;
+ Aml *crs;
+
+ crs = aml_resource_template();
+ aml_append(crs, aml_io(AML_DECODE16, 0x0060, 0x0060, 0x01, 0x01));
+ aml_append(crs, aml_io(AML_DECODE16, 0x0064, 0x0064, 0x01, 0x01));
+ aml_append(crs, aml_irq_no_flags(1));
+
+ kbd = aml_device("KBD");
+ aml_append(kbd, aml_name_decl("_HID", aml_eisaid("PNP0303")));
+ aml_append(kbd, aml_name_decl("_STA", aml_int(0xf)));
+ aml_append(kbd, aml_name_decl("_CRS", crs));
+
+ crs = aml_resource_template();
+ aml_append(crs, aml_irq_no_flags(12));
+
+ mou = aml_device("MOU");
+ aml_append(mou, aml_name_decl("_HID", aml_eisaid("PNP0F13")));
+ aml_append(mou, aml_name_decl("_STA", aml_int(0xf)));
+ aml_append(mou, aml_name_decl("_CRS", crs));
+
+ aml_append(scope, kbd);
+ aml_append(scope, mou);
+}
+
static void i8042_class_initfn(ObjectClass *klass, void *data)
{
DeviceClass *dc = DEVICE_CLASS(klass);
+ ISADeviceClass *isa = ISA_DEVICE_CLASS(klass);
dc->realize = i8042_realizefn;
dc->vmsd = &vmstate_kbd_isa;
+ isa->build_aml = i8042_build_aml;
set_bit(DEVICE_CATEGORY_INPUT, dc->categories);
}
--
2.18.4
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v8 06/10] acpi: factor out fw_cfg_add_acpi_dsdt()
2020-06-11 7:29 [PATCH v8 00/10] acpi: i386 tweaks Gerd Hoffmann
` (4 preceding siblings ...)
2020-06-11 7:29 ` [PATCH v8 05/10] acpi: move aml builder code for i8042 (kbd+mouse) device Gerd Hoffmann
@ 2020-06-11 7:29 ` Gerd Hoffmann
2020-06-11 7:29 ` [PATCH v8 07/10] acpi: simplify build_isa_devices_aml() Gerd Hoffmann
` (3 subsequent siblings)
9 siblings, 0 replies; 18+ messages in thread
From: Gerd Hoffmann @ 2020-06-11 7:29 UTC (permalink / raw)
To: qemu-devel
Cc: Laurent Vivier, Kevin Wolf, Thomas Huth, Eduardo Habkost,
qemu-block, Michael S. Tsirkin, Max Reitz, Paolo Bonzini,
Gerd Hoffmann, Marc-André Lureau, Igor Mammedov, John Snow,
Richard Henderson
Add helper function to add fw_cfg device,
also move code to hw/i386/fw_cfg.c.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
---
hw/i386/fw_cfg.h | 1 +
hw/i386/acpi-build.c | 24 +-----------------------
hw/i386/fw_cfg.c | 28 ++++++++++++++++++++++++++++
3 files changed, 30 insertions(+), 23 deletions(-)
diff --git a/hw/i386/fw_cfg.h b/hw/i386/fw_cfg.h
index 9e742787792b..275f15c1c5e8 100644
--- a/hw/i386/fw_cfg.h
+++ b/hw/i386/fw_cfg.h
@@ -25,5 +25,6 @@ FWCfgState *fw_cfg_arch_create(MachineState *ms,
uint16_t apic_id_limit);
void fw_cfg_build_smbios(MachineState *ms, FWCfgState *fw_cfg);
void fw_cfg_build_feature_control(MachineState *ms, FWCfgState *fw_cfg);
+void fw_cfg_add_acpi_dsdt(Aml *scope, FWCfgState *fw_cfg);
#endif
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index 9fed13a27333..86be45eea17c 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -1759,30 +1759,8 @@ build_dsdt(GArray *table_data, BIOSLinker *linker,
/* create fw_cfg node, unconditionally */
{
- /* when using port i/o, the 8-bit data register *always* overlaps
- * with half of the 16-bit control register. Hence, the total size
- * of the i/o region used is FW_CFG_CTL_SIZE; when using DMA, the
- * DMA control register is located at FW_CFG_DMA_IO_BASE + 4 */
- uint8_t io_size = object_property_get_bool(OBJECT(x86ms->fw_cfg),
- "dma_enabled", NULL) ?
- ROUND_UP(FW_CFG_CTL_SIZE, 4) + sizeof(dma_addr_t) :
- FW_CFG_CTL_SIZE;
-
scope = aml_scope("\\_SB.PCI0");
- dev = aml_device("FWCF");
-
- aml_append(dev, aml_name_decl("_HID", aml_string("QEMU0002")));
-
- /* device present, functioning, decoding, not shown in UI */
- aml_append(dev, aml_name_decl("_STA", aml_int(0xB)));
-
- crs = aml_resource_template();
- aml_append(crs,
- aml_io(AML_DECODE16, FW_CFG_IO_BASE, FW_CFG_IO_BASE, 0x01, io_size)
- );
- aml_append(dev, aml_name_decl("_CRS", crs));
-
- aml_append(scope, dev);
+ fw_cfg_add_acpi_dsdt(scope, x86ms->fw_cfg);
aml_append(dsdt, scope);
}
diff --git a/hw/i386/fw_cfg.c b/hw/i386/fw_cfg.c
index da60ada59462..c55abfb01abb 100644
--- a/hw/i386/fw_cfg.c
+++ b/hw/i386/fw_cfg.c
@@ -15,6 +15,7 @@
#include "qemu/osdep.h"
#include "sysemu/numa.h"
#include "hw/acpi/acpi.h"
+#include "hw/acpi/aml-build.h"
#include "hw/firmware/smbios.h"
#include "hw/i386/fw_cfg.h"
#include "hw/timer/hpet.h"
@@ -179,3 +180,30 @@ void fw_cfg_build_feature_control(MachineState *ms, FWCfgState *fw_cfg)
*val = cpu_to_le64(feature_control_bits | FEATURE_CONTROL_LOCKED);
fw_cfg_add_file(fw_cfg, "etc/msr_feature_control", val, sizeof(*val));
}
+
+void fw_cfg_add_acpi_dsdt(Aml *scope, FWCfgState *fw_cfg)
+{
+ /*
+ * when using port i/o, the 8-bit data register *always* overlaps
+ * with half of the 16-bit control register. Hence, the total size
+ * of the i/o region used is FW_CFG_CTL_SIZE; when using DMA, the
+ * DMA control register is located at FW_CFG_DMA_IO_BASE + 4
+ */
+ Object *obj = OBJECT(fw_cfg);
+ uint8_t io_size = object_property_get_bool(obj, "dma_enabled", NULL) ?
+ ROUND_UP(FW_CFG_CTL_SIZE, 4) + sizeof(dma_addr_t) :
+ FW_CFG_CTL_SIZE;
+ Aml *dev = aml_device("FWCF");
+ Aml *crs = aml_resource_template();
+
+ aml_append(dev, aml_name_decl("_HID", aml_string("QEMU0002")));
+
+ /* device present, functioning, decoding, not shown in UI */
+ aml_append(dev, aml_name_decl("_STA", aml_int(0xB)));
+
+ aml_append(crs,
+ aml_io(AML_DECODE16, FW_CFG_IO_BASE, FW_CFG_IO_BASE, 0x01, io_size));
+
+ aml_append(dev, aml_name_decl("_CRS", crs));
+ aml_append(scope, dev);
+}
--
2.18.4
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v8 07/10] acpi: simplify build_isa_devices_aml()
2020-06-11 7:29 [PATCH v8 00/10] acpi: i386 tweaks Gerd Hoffmann
` (5 preceding siblings ...)
2020-06-11 7:29 ` [PATCH v8 06/10] acpi: factor out fw_cfg_add_acpi_dsdt() Gerd Hoffmann
@ 2020-06-11 7:29 ` Gerd Hoffmann
2020-06-11 7:29 ` [PATCH v8 08/10] acpi: drop serial/parallel enable bits from dsdt Gerd Hoffmann
` (2 subsequent siblings)
9 siblings, 0 replies; 18+ messages in thread
From: Gerd Hoffmann @ 2020-06-11 7:29 UTC (permalink / raw)
To: qemu-devel
Cc: Laurent Vivier, Kevin Wolf, Thomas Huth, Eduardo Habkost,
qemu-block, Michael S. Tsirkin, Max Reitz, Paolo Bonzini,
Gerd Hoffmann, Marc-André Lureau, Igor Mammedov, John Snow,
Richard Henderson
x86 machines can have a single ISA bus only.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
hw/i386/acpi-build.c | 15 +++++----------
1 file changed, 5 insertions(+), 10 deletions(-)
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index 86be45eea17c..c8e47700fc53 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -940,19 +940,14 @@ static void build_hpet_aml(Aml *table)
static void build_isa_devices_aml(Aml *table)
{
bool ambiguous;
-
- Aml *scope = aml_scope("_SB.PCI0.ISA");
Object *obj = object_resolve_path_type("", TYPE_ISA_BUS, &ambiguous);
+ Aml *scope;
- if (ambiguous) {
- error_report("Multiple ISA busses, unable to define IPMI ACPI data");
- } else if (!obj) {
- error_report("No ISA bus, unable to define IPMI ACPI data");
- } else {
- build_acpi_ipmi_devices(scope, BUS(obj), "\\_SB.PCI0.ISA");
- isa_build_aml(ISA_BUS(obj), scope);
- }
+ assert(obj && !ambiguous);
+ scope = aml_scope("_SB.PCI0.ISA");
+ build_acpi_ipmi_devices(scope, BUS(obj), "\\_SB.PCI0.ISA");
+ isa_build_aml(ISA_BUS(obj), scope);
aml_append(table, scope);
}
--
2.18.4
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v8 08/10] acpi: drop serial/parallel enable bits from dsdt
2020-06-11 7:29 [PATCH v8 00/10] acpi: i386 tweaks Gerd Hoffmann
` (6 preceding siblings ...)
2020-06-11 7:29 ` [PATCH v8 07/10] acpi: simplify build_isa_devices_aml() Gerd Hoffmann
@ 2020-06-11 7:29 ` Gerd Hoffmann
2020-06-11 7:29 ` [PATCH v8 09/10] acpi: drop build_piix4_pm() Gerd Hoffmann
2020-06-11 7:29 ` [PATCH v8 10/10] acpi: q35: drop _SB.PCI0.ISA.LPCD opregion Gerd Hoffmann
9 siblings, 0 replies; 18+ messages in thread
From: Gerd Hoffmann @ 2020-06-11 7:29 UTC (permalink / raw)
To: qemu-devel
Cc: Laurent Vivier, Kevin Wolf, Thomas Huth, Eduardo Habkost,
qemu-block, Michael S. Tsirkin, Max Reitz, Paolo Bonzini,
Gerd Hoffmann, Marc-André Lureau, Igor Mammedov, John Snow,
Richard Henderson
The _STA methods for COM+LPT used to reference them,
but that isn't the case any more.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
---
hw/i386/acpi-build.c | 23 -----------------------
1 file changed, 23 deletions(-)
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index c8e47700fc53..750fcf9baa37 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -1316,15 +1316,6 @@ static void build_q35_isa_bridge(Aml *table)
aml_append(field, aml_named_field("LPTD", 2));
aml_append(dev, field);
- aml_append(dev, aml_operation_region("LPCE", AML_PCI_CONFIG,
- aml_int(0x82), 0x02));
- /* enable bits */
- field = aml_field("LPCE", AML_ANY_ACC, AML_NOLOCK, AML_PRESERVE);
- aml_append(field, aml_named_field("CAEN", 1));
- aml_append(field, aml_named_field("CBEN", 1));
- aml_append(field, aml_named_field("LPEN", 1));
- aml_append(dev, field);
-
aml_append(scope, dev);
aml_append(table, scope);
}
@@ -1348,7 +1339,6 @@ static void build_piix4_isa_bridge(Aml *table)
{
Aml *dev;
Aml *scope;
- Aml *field;
scope = aml_scope("_SB.PCI0");
dev = aml_device("ISA");
@@ -1357,19 +1347,6 @@ static void build_piix4_isa_bridge(Aml *table)
/* PIIX PCI to ISA irq remapping */
aml_append(dev, aml_operation_region("P40C", AML_PCI_CONFIG,
aml_int(0x60), 0x04));
- /* enable bits */
- field = aml_field("^PX13.P13C", AML_ANY_ACC, AML_NOLOCK, AML_PRESERVE);
- /* Offset(0x5f),, 7, */
- aml_append(field, aml_reserved_field(0x2f8));
- aml_append(field, aml_reserved_field(7));
- aml_append(field, aml_named_field("LPEN", 1));
- /* Offset(0x67),, 3, */
- aml_append(field, aml_reserved_field(0x38));
- aml_append(field, aml_reserved_field(3));
- aml_append(field, aml_named_field("CAEN", 1));
- aml_append(field, aml_reserved_field(3));
- aml_append(field, aml_named_field("CBEN", 1));
- aml_append(dev, field);
aml_append(scope, dev);
aml_append(table, scope);
--
2.18.4
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v8 09/10] acpi: drop build_piix4_pm()
2020-06-11 7:29 [PATCH v8 00/10] acpi: i386 tweaks Gerd Hoffmann
` (7 preceding siblings ...)
2020-06-11 7:29 ` [PATCH v8 08/10] acpi: drop serial/parallel enable bits from dsdt Gerd Hoffmann
@ 2020-06-11 7:29 ` Gerd Hoffmann
2020-06-11 9:28 ` Philippe Mathieu-Daudé
2020-06-11 7:29 ` [PATCH v8 10/10] acpi: q35: drop _SB.PCI0.ISA.LPCD opregion Gerd Hoffmann
9 siblings, 1 reply; 18+ messages in thread
From: Gerd Hoffmann @ 2020-06-11 7:29 UTC (permalink / raw)
To: qemu-devel
Cc: Laurent Vivier, Kevin Wolf, Thomas Huth, Eduardo Habkost,
qemu-block, Michael S. Tsirkin, Max Reitz, Paolo Bonzini,
Gerd Hoffmann, Marc-André Lureau, Igor Mammedov, John Snow,
Richard Henderson
The _SB.PCI0.PX13.P13C opregion (holds isa device enable bits)
is not used any more, remove it from DSDT.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Igor Mammedow <imammedo@redhat.com>
---
hw/i386/acpi-build.c | 16 ----------------
1 file changed, 16 deletions(-)
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index 750fcf9baa37..02cf4199c2e9 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -1320,21 +1320,6 @@ static void build_q35_isa_bridge(Aml *table)
aml_append(table, scope);
}
-static void build_piix4_pm(Aml *table)
-{
- Aml *dev;
- Aml *scope;
-
- scope = aml_scope("_SB.PCI0");
- dev = aml_device("PX13");
- aml_append(dev, aml_name_decl("_ADR", aml_int(0x00010003)));
-
- aml_append(dev, aml_operation_region("P13C", AML_PCI_CONFIG,
- aml_int(0x00), 0xff));
- aml_append(scope, dev);
- aml_append(table, scope);
-}
-
static void build_piix4_isa_bridge(Aml *table)
{
Aml *dev;
@@ -1486,7 +1471,6 @@ build_dsdt(GArray *table_data, BIOSLinker *linker,
aml_append(dsdt, sb_scope);
build_hpet_aml(dsdt);
- build_piix4_pm(dsdt);
build_piix4_isa_bridge(dsdt);
build_isa_devices_aml(dsdt);
build_piix4_pci_hotplug(dsdt);
--
2.18.4
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v8 10/10] acpi: q35: drop _SB.PCI0.ISA.LPCD opregion.
2020-06-11 7:29 [PATCH v8 00/10] acpi: i386 tweaks Gerd Hoffmann
` (8 preceding siblings ...)
2020-06-11 7:29 ` [PATCH v8 09/10] acpi: drop build_piix4_pm() Gerd Hoffmann
@ 2020-06-11 7:29 ` Gerd Hoffmann
2020-06-11 8:27 ` Philippe Mathieu-Daudé
9 siblings, 1 reply; 18+ messages in thread
From: Gerd Hoffmann @ 2020-06-11 7:29 UTC (permalink / raw)
To: qemu-devel
Cc: Laurent Vivier, Kevin Wolf, Thomas Huth, Eduardo Habkost,
qemu-block, Michael S. Tsirkin, Max Reitz, Paolo Bonzini,
Gerd Hoffmann, Marc-André Lureau, Igor Mammedov, John Snow,
Richard Henderson
Seems to be unused.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
---
hw/i386/acpi-build.c | 11 -----------
1 file changed, 11 deletions(-)
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index 02cf4199c2e9..d93ea40c58b9 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -1296,7 +1296,6 @@ static void build_q35_isa_bridge(Aml *table)
{
Aml *dev;
Aml *scope;
- Aml *field;
scope = aml_scope("_SB.PCI0");
dev = aml_device("ISA");
@@ -1306,16 +1305,6 @@ static void build_q35_isa_bridge(Aml *table)
aml_append(dev, aml_operation_region("PIRQ", AML_PCI_CONFIG,
aml_int(0x60), 0x0C));
- aml_append(dev, aml_operation_region("LPCD", AML_PCI_CONFIG,
- aml_int(0x80), 0x02));
- field = aml_field("LPCD", AML_ANY_ACC, AML_NOLOCK, AML_PRESERVE);
- aml_append(field, aml_named_field("COMA", 3));
- aml_append(field, aml_reserved_field(1));
- aml_append(field, aml_named_field("COMB", 3));
- aml_append(field, aml_reserved_field(1));
- aml_append(field, aml_named_field("LPTD", 2));
- aml_append(dev, field);
-
aml_append(scope, dev);
aml_append(table, scope);
}
--
2.18.4
^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH v8 02/10] acpi: move aml builder code for floppy device
2020-06-11 7:29 ` [PATCH v8 02/10] acpi: move aml builder code for floppy device Gerd Hoffmann
@ 2020-06-11 8:22 ` Philippe Mathieu-Daudé
0 siblings, 0 replies; 18+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-06-11 8:22 UTC (permalink / raw)
To: Gerd Hoffmann, qemu-devel
Cc: Laurent Vivier, Kevin Wolf, Thomas Huth, Eduardo Habkost,
qemu-block, Michael S. Tsirkin, Max Reitz, Igor Mammedov,
Marc-André Lureau, Paolo Bonzini, John Snow,
Richard Henderson
On 6/11/20 9:29 AM, Gerd Hoffmann wrote:
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
> hw/block/fdc.c | 83 ++++++++++++++++++++++++++++++++++++++++++++
> hw/i386/acpi-build.c | 83 --------------------------------------------
> stubs/cmos.c | 7 ++++
> stubs/Makefile.objs | 1 +
> 4 files changed, 91 insertions(+), 83 deletions(-)
> create mode 100644 stubs/cmos.c
>
> diff --git a/hw/block/fdc.c b/hw/block/fdc.c
> index c5fb9d6ece77..b4d2eaf66dcd 100644
> --- a/hw/block/fdc.c
> +++ b/hw/block/fdc.c
> @@ -32,6 +32,8 @@
> #include "qapi/error.h"
> #include "qemu/error-report.h"
> #include "qemu/timer.h"
> +#include "hw/i386/pc.h"
> +#include "hw/acpi/aml-build.h"
> #include "hw/irq.h"
> #include "hw/isa/isa.h"
> #include "hw/qdev-properties.h"
> @@ -2765,6 +2767,85 @@ void isa_fdc_get_drive_max_chs(FloppyDriveType type,
> (*maxc)--;
> }
>
> +static Aml *build_fdinfo_aml(int idx, FloppyDriveType type)
> +{
> + Aml *dev, *fdi;
> + uint8_t maxc, maxh, maxs;
> +
> + isa_fdc_get_drive_max_chs(type, &maxc, &maxh, &maxs);
> +
> + dev = aml_device("FLP%c", 'A' + idx);
> +
> + aml_append(dev, aml_name_decl("_ADR", aml_int(idx)));
> +
> + fdi = aml_package(16);
> + aml_append(fdi, aml_int(idx)); /* Drive Number */
> + aml_append(fdi,
> + aml_int(cmos_get_fd_drive_type(type))); /* Device Type */
> + /*
> + * the values below are the limits of the drive, and are thus independent
> + * of the inserted media
> + */
> + aml_append(fdi, aml_int(maxc)); /* Maximum Cylinder Number */
> + aml_append(fdi, aml_int(maxs)); /* Maximum Sector Number */
> + aml_append(fdi, aml_int(maxh)); /* Maximum Head Number */
> + /*
> + * SeaBIOS returns the below values for int 0x13 func 0x08 regardless of
> + * the drive type, so shall we
> + */
> + aml_append(fdi, aml_int(0xAF)); /* disk_specify_1 */
> + aml_append(fdi, aml_int(0x02)); /* disk_specify_2 */
> + aml_append(fdi, aml_int(0x25)); /* disk_motor_wait */
> + aml_append(fdi, aml_int(0x02)); /* disk_sector_siz */
> + aml_append(fdi, aml_int(0x12)); /* disk_eot */
> + aml_append(fdi, aml_int(0x1B)); /* disk_rw_gap */
> + aml_append(fdi, aml_int(0xFF)); /* disk_dtl */
> + aml_append(fdi, aml_int(0x6C)); /* disk_formt_gap */
> + aml_append(fdi, aml_int(0xF6)); /* disk_fill */
> + aml_append(fdi, aml_int(0x0F)); /* disk_head_sttl */
> + aml_append(fdi, aml_int(0x08)); /* disk_motor_strt */
> +
> + aml_append(dev, aml_name_decl("_FDI", fdi));
> + return dev;
> +}
> +
> +static void fdc_isa_build_aml(ISADevice *isadev, Aml *scope)
> +{
> + Aml *dev;
> + Aml *crs;
> + int i;
> +
> +#define ACPI_FDE_MAX_FD 4
> + uint32_t fde_buf[5] = {
> + 0, 0, 0, 0, /* presence of floppy drives #0 - #3 */
> + cpu_to_le32(2) /* tape presence (2 == never present) */
> + };
> +
> + crs = aml_resource_template();
> + aml_append(crs, aml_io(AML_DECODE16, 0x03F2, 0x03F2, 0x00, 0x04));
> + aml_append(crs, aml_io(AML_DECODE16, 0x03F7, 0x03F7, 0x00, 0x01));
> + aml_append(crs, aml_irq_no_flags(6));
> + aml_append(crs,
> + aml_dma(AML_COMPATIBILITY, AML_NOTBUSMASTER, AML_TRANSFER8, 2));
> +
> + dev = aml_device("FDC0");
> + aml_append(dev, aml_name_decl("_HID", aml_eisaid("PNP0700")));
> + aml_append(dev, aml_name_decl("_CRS", crs));
> +
> + for (i = 0; i < MIN(MAX_FD, ACPI_FDE_MAX_FD); i++) {
> + FloppyDriveType type = isa_fdc_get_drive_type(isadev, i);
> +
> + if (type < FLOPPY_DRIVE_TYPE_NONE) {
> + fde_buf[i] = cpu_to_le32(1); /* drive present */
> + aml_append(dev, build_fdinfo_aml(i, type));
> + }
> + }
> + aml_append(dev, aml_name_decl("_FDE",
> + aml_buffer(sizeof(fde_buf), (uint8_t *)fde_buf)));
> +
> + aml_append(scope, dev);
> +}
> +
> static const VMStateDescription vmstate_isa_fdc ={
> .name = "fdc",
> .version_id = 2,
> @@ -2798,11 +2879,13 @@ static Property isa_fdc_properties[] = {
> static void isabus_fdc_class_init(ObjectClass *klass, void *data)
> {
> DeviceClass *dc = DEVICE_CLASS(klass);
> + ISADeviceClass *isa = ISA_DEVICE_CLASS(klass);
>
> dc->realize = isabus_fdc_realize;
> dc->fw_name = "fdc";
> dc->reset = fdctrl_external_reset_isa;
> dc->vmsd = &vmstate_isa_fdc;
> + isa->build_aml = fdc_isa_build_aml;
> device_class_set_props(dc, isa_fdc_properties);
> set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
> }
> diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> index 473cbdfffd05..7726d5c0f7cb 100644
> --- a/hw/i386/acpi-build.c
> +++ b/hw/i386/acpi-build.c
> @@ -937,85 +937,6 @@ static void build_hpet_aml(Aml *table)
> aml_append(table, scope);
> }
>
> -static Aml *build_fdinfo_aml(int idx, FloppyDriveType type)
> -{
> - Aml *dev, *fdi;
> - uint8_t maxc, maxh, maxs;
> -
> - isa_fdc_get_drive_max_chs(type, &maxc, &maxh, &maxs);
> -
> - dev = aml_device("FLP%c", 'A' + idx);
> -
> - aml_append(dev, aml_name_decl("_ADR", aml_int(idx)));
> -
> - fdi = aml_package(16);
> - aml_append(fdi, aml_int(idx)); /* Drive Number */
> - aml_append(fdi,
> - aml_int(cmos_get_fd_drive_type(type))); /* Device Type */
> - /*
> - * the values below are the limits of the drive, and are thus independent
> - * of the inserted media
> - */
> - aml_append(fdi, aml_int(maxc)); /* Maximum Cylinder Number */
> - aml_append(fdi, aml_int(maxs)); /* Maximum Sector Number */
> - aml_append(fdi, aml_int(maxh)); /* Maximum Head Number */
> - /*
> - * SeaBIOS returns the below values for int 0x13 func 0x08 regardless of
> - * the drive type, so shall we
> - */
> - aml_append(fdi, aml_int(0xAF)); /* disk_specify_1 */
> - aml_append(fdi, aml_int(0x02)); /* disk_specify_2 */
> - aml_append(fdi, aml_int(0x25)); /* disk_motor_wait */
> - aml_append(fdi, aml_int(0x02)); /* disk_sector_siz */
> - aml_append(fdi, aml_int(0x12)); /* disk_eot */
> - aml_append(fdi, aml_int(0x1B)); /* disk_rw_gap */
> - aml_append(fdi, aml_int(0xFF)); /* disk_dtl */
> - aml_append(fdi, aml_int(0x6C)); /* disk_formt_gap */
> - aml_append(fdi, aml_int(0xF6)); /* disk_fill */
> - aml_append(fdi, aml_int(0x0F)); /* disk_head_sttl */
> - aml_append(fdi, aml_int(0x08)); /* disk_motor_strt */
> -
> - aml_append(dev, aml_name_decl("_FDI", fdi));
> - return dev;
> -}
> -
> -static Aml *build_fdc_device_aml(ISADevice *fdc)
> -{
> - int i;
> - Aml *dev;
> - Aml *crs;
> -
> -#define ACPI_FDE_MAX_FD 4
> - uint32_t fde_buf[5] = {
> - 0, 0, 0, 0, /* presence of floppy drives #0 - #3 */
> - cpu_to_le32(2) /* tape presence (2 == never present) */
> - };
> -
> - dev = aml_device("FDC0");
> - aml_append(dev, aml_name_decl("_HID", aml_eisaid("PNP0700")));
> -
> - crs = aml_resource_template();
> - aml_append(crs, aml_io(AML_DECODE16, 0x03F2, 0x03F2, 0x00, 0x04));
> - aml_append(crs, aml_io(AML_DECODE16, 0x03F7, 0x03F7, 0x00, 0x01));
> - aml_append(crs, aml_irq_no_flags(6));
> - aml_append(crs,
> - aml_dma(AML_COMPATIBILITY, AML_NOTBUSMASTER, AML_TRANSFER8, 2));
> - aml_append(dev, aml_name_decl("_CRS", crs));
> -
> - for (i = 0; i < MIN(MAX_FD, ACPI_FDE_MAX_FD); i++) {
> - FloppyDriveType type = isa_fdc_get_drive_type(fdc, i);
> -
> - if (type < FLOPPY_DRIVE_TYPE_NONE) {
> - fde_buf[i] = cpu_to_le32(1); /* drive present */
> - aml_append(dev, build_fdinfo_aml(i, type));
> - }
> - }
> - aml_append(dev, aml_name_decl("_FDE",
> - aml_buffer(sizeof(fde_buf), (uint8_t *)fde_buf)));
> -
> - return dev;
> -}
> -
> static Aml *build_kbd_device_aml(void)
> {
> Aml *dev;
> @@ -1054,7 +975,6 @@ static Aml *build_mouse_device_aml(void)
>
> static void build_isa_devices_aml(Aml *table)
> {
> - ISADevice *fdc = pc_find_fdc0();
> bool ambiguous;
>
> Aml *scope = aml_scope("_SB.PCI0.ISA");
> @@ -1062,9 +982,6 @@ static void build_isa_devices_aml(Aml *table)
>
> aml_append(scope, build_kbd_device_aml());
> aml_append(scope, build_mouse_device_aml());
> - if (fdc) {
> - aml_append(scope, build_fdc_device_aml(fdc));
> - }
>
> if (ambiguous) {
> error_report("Multiple ISA busses, unable to define IPMI ACPI data");
> diff --git a/stubs/cmos.c b/stubs/cmos.c
> new file mode 100644
> index 000000000000..416cbe4055ff
> --- /dev/null
> +++ b/stubs/cmos.c
> @@ -0,0 +1,7 @@
> +#include "qemu/osdep.h"
> +#include "hw/i386/pc.h"
> +
> +int cmos_get_fd_drive_type(FloppyDriveType fd0)
> +{
> + return 0;
> +}
> diff --git a/stubs/Makefile.objs b/stubs/Makefile.objs
> index c1e43ac68f87..df2cbfe68ca0 100644
> --- a/stubs/Makefile.objs
> +++ b/stubs/Makefile.objs
> @@ -1,4 +1,5 @@
> stub-obj-y += blk-commit-all.o
> +stub-obj-y += cmos.o
> stub-obj-y += cpu-get-clock.o
> stub-obj-y += cpu-get-icount.o
> stub-obj-y += dump.o
>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v8 10/10] acpi: q35: drop _SB.PCI0.ISA.LPCD opregion.
2020-06-11 7:29 ` [PATCH v8 10/10] acpi: q35: drop _SB.PCI0.ISA.LPCD opregion Gerd Hoffmann
@ 2020-06-11 8:27 ` Philippe Mathieu-Daudé
2020-06-11 8:31 ` Philippe Mathieu-Daudé
0 siblings, 1 reply; 18+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-06-11 8:27 UTC (permalink / raw)
To: Gerd Hoffmann, qemu-devel
Cc: Laurent Vivier, Kevin Wolf, Thomas Huth, Eduardo Habkost,
qemu-block, Michael S. Tsirkin, Max Reitz, Igor Mammedov,
Marc-André Lureau, Paolo Bonzini, John Snow,
Richard Henderson
Hi Gerd,
On 6/11/20 9:29 AM, Gerd Hoffmann wrote:
> Seems to be unused.
>
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> Reviewed-by: Igor Mammedov <imammedo@redhat.com>
> ---
> hw/i386/acpi-build.c | 11 -----------
> 1 file changed, 11 deletions(-)
>
> diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> index 02cf4199c2e9..d93ea40c58b9 100644
> --- a/hw/i386/acpi-build.c
> +++ b/hw/i386/acpi-build.c
> @@ -1296,7 +1296,6 @@ static void build_q35_isa_bridge(Aml *table)
> {
> Aml *dev;
> Aml *scope;
> - Aml *field;
>
> scope = aml_scope("_SB.PCI0");
> dev = aml_device("ISA");
> @@ -1306,16 +1305,6 @@ static void build_q35_isa_bridge(Aml *table)
> aml_append(dev, aml_operation_region("PIRQ", AML_PCI_CONFIG,
> aml_int(0x60), 0x0C));
>
> - aml_append(dev, aml_operation_region("LPCD", AML_PCI_CONFIG,
> - aml_int(0x80), 0x02));
> - field = aml_field("LPCD", AML_ANY_ACC, AML_NOLOCK, AML_PRESERVE);
> - aml_append(field, aml_named_field("COMA", 3));
> - aml_append(field, aml_reserved_field(1));
> - aml_append(field, aml_named_field("COMB", 3));
> - aml_append(field, aml_reserved_field(1));
> - aml_append(field, aml_named_field("LPTD", 2));
> - aml_append(dev, field);
> -
> aml_append(scope, dev);
> aml_append(table, scope);
> }
>
I'm a bit confused, isn't it use to describe these
devices?
(qemu) info qtree
bus: main-system-bus
type System
dev: q35-pcihost, id ""
bus: pcie.0
type PCIE
dev: ICH9-LPC, id ""
gpio-out "gsi" 24
class ISA bridge, addr 00:1f.0, pci id 8086:2918 (sub 1af4:1100)
bus: isa.0
type ISA
dev: port92, id ""
gpio-out "a20" 1
dev: vmmouse, id ""
dev: vmport, id ""
dev: isa-parallel, id ""
index = 0 (0x0)
iobase = 888 (0x378)
irq = 7 (0x7)
chardev = "parallel0"
isa irq 7
dev: isa-serial, id ""
index = 1 (0x1)
iobase = 760 (0x2f8)
irq = 3 (0x3)
chardev = "serial1"
wakeup = 0 (0x0)
isa irq 3
dev: isa-serial, id ""
index = 0 (0x0)
iobase = 1016 (0x3f8)
irq = 4 (0x4)
chardev = "serial0"
wakeup = 0 (0x0)
isa irq 4
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v8 10/10] acpi: q35: drop _SB.PCI0.ISA.LPCD opregion.
2020-06-11 8:27 ` Philippe Mathieu-Daudé
@ 2020-06-11 8:31 ` Philippe Mathieu-Daudé
2020-06-11 9:12 ` Michael S. Tsirkin
0 siblings, 1 reply; 18+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-06-11 8:31 UTC (permalink / raw)
To: Gerd Hoffmann, qemu-devel
Cc: Laurent Vivier, Kevin Wolf, Thomas Huth, Eduardo Habkost,
qemu-block, Michael S. Tsirkin, Max Reitz, Igor Mammedov,
Marc-André Lureau, Paolo Bonzini, John Snow,
Richard Henderson
On 6/11/20 10:27 AM, Philippe Mathieu-Daudé wrote:
> Hi Gerd,
>
> On 6/11/20 9:29 AM, Gerd Hoffmann wrote:
>> Seems to be unused.
>>
>> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
>> Reviewed-by: Igor Mammedov <imammedo@redhat.com>
>> ---
>> hw/i386/acpi-build.c | 11 -----------
>> 1 file changed, 11 deletions(-)
>>
>> diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
>> index 02cf4199c2e9..d93ea40c58b9 100644
>> --- a/hw/i386/acpi-build.c
>> +++ b/hw/i386/acpi-build.c
>> @@ -1296,7 +1296,6 @@ static void build_q35_isa_bridge(Aml *table)
>> {
>> Aml *dev;
>> Aml *scope;
>> - Aml *field;
>>
>> scope = aml_scope("_SB.PCI0");
>> dev = aml_device("ISA");
>> @@ -1306,16 +1305,6 @@ static void build_q35_isa_bridge(Aml *table)
>> aml_append(dev, aml_operation_region("PIRQ", AML_PCI_CONFIG,
>> aml_int(0x60), 0x0C));
>>
>> - aml_append(dev, aml_operation_region("LPCD", AML_PCI_CONFIG,
>> - aml_int(0x80), 0x02));
>> - field = aml_field("LPCD", AML_ANY_ACC, AML_NOLOCK, AML_PRESERVE);
>> - aml_append(field, aml_named_field("COMA", 3));
>> - aml_append(field, aml_reserved_field(1));
>> - aml_append(field, aml_named_field("COMB", 3));
>> - aml_append(field, aml_reserved_field(1));
>> - aml_append(field, aml_named_field("LPTD", 2));
>> - aml_append(dev, field);
>> -
>> aml_append(scope, dev);
>> aml_append(table, scope);
>> }
>>
>
> I'm a bit confused, isn't it use to describe these
> devices?
>
> (qemu) info qtree
> bus: main-system-bus
> type System
> dev: q35-pcihost, id ""
> bus: pcie.0
> type PCIE
> dev: ICH9-LPC, id ""
> gpio-out "gsi" 24
> class ISA bridge, addr 00:1f.0, pci id 8086:2918 (sub 1af4:1100)
> bus: isa.0
> type ISA
> dev: port92, id ""
> gpio-out "a20" 1
> dev: vmmouse, id ""
> dev: vmport, id ""
> dev: isa-parallel, id ""
> index = 0 (0x0)
> iobase = 888 (0x378)
> irq = 7 (0x7)
> chardev = "parallel0"
> isa irq 7
> dev: isa-serial, id ""
> index = 1 (0x1)
> iobase = 760 (0x2f8)
> irq = 3 (0x3)
> chardev = "serial1"
> wakeup = 0 (0x0)
> isa irq 3
> dev: isa-serial, id ""
> index = 0 (0x0)
> iobase = 1016 (0x3f8)
> irq = 4 (0x4)
> chardev = "serial0"
> wakeup = 0 (0x0)
> isa irq 4
>
Ah, this patch complements the previous "acpi: drop serial/parallel
enable bits from dsdt", right? Maybe better to include this change
with the build_q35_isa_bridge() part. Like in a single patch:
"acpi: q35: drop lpc/serial/parallel enable bits from dsdt"
Then keep the PIIX part of the patches.
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v8 10/10] acpi: q35: drop _SB.PCI0.ISA.LPCD opregion.
2020-06-11 8:31 ` Philippe Mathieu-Daudé
@ 2020-06-11 9:12 ` Michael S. Tsirkin
2020-06-11 9:25 ` Philippe Mathieu-Daudé
0 siblings, 1 reply; 18+ messages in thread
From: Michael S. Tsirkin @ 2020-06-11 9:12 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: Laurent Vivier, Kevin Wolf, Thomas Huth, Eduardo Habkost,
qemu-block, Igor Mammedov, qemu-devel, Max Reitz, Gerd Hoffmann,
Marc-André Lureau, Paolo Bonzini, John Snow,
Richard Henderson
On Thu, Jun 11, 2020 at 10:31:01AM +0200, Philippe Mathieu-Daudé wrote:
> On 6/11/20 10:27 AM, Philippe Mathieu-Daudé wrote:
> > Hi Gerd,
> >
> > On 6/11/20 9:29 AM, Gerd Hoffmann wrote:
> >> Seems to be unused.
> >>
> >> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> >> Reviewed-by: Igor Mammedov <imammedo@redhat.com>
> >> ---
> >> hw/i386/acpi-build.c | 11 -----------
> >> 1 file changed, 11 deletions(-)
> >>
> >> diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> >> index 02cf4199c2e9..d93ea40c58b9 100644
> >> --- a/hw/i386/acpi-build.c
> >> +++ b/hw/i386/acpi-build.c
> >> @@ -1296,7 +1296,6 @@ static void build_q35_isa_bridge(Aml *table)
> >> {
> >> Aml *dev;
> >> Aml *scope;
> >> - Aml *field;
> >>
> >> scope = aml_scope("_SB.PCI0");
> >> dev = aml_device("ISA");
> >> @@ -1306,16 +1305,6 @@ static void build_q35_isa_bridge(Aml *table)
> >> aml_append(dev, aml_operation_region("PIRQ", AML_PCI_CONFIG,
> >> aml_int(0x60), 0x0C));
> >>
> >> - aml_append(dev, aml_operation_region("LPCD", AML_PCI_CONFIG,
> >> - aml_int(0x80), 0x02));
> >> - field = aml_field("LPCD", AML_ANY_ACC, AML_NOLOCK, AML_PRESERVE);
> >> - aml_append(field, aml_named_field("COMA", 3));
> >> - aml_append(field, aml_reserved_field(1));
> >> - aml_append(field, aml_named_field("COMB", 3));
> >> - aml_append(field, aml_reserved_field(1));
> >> - aml_append(field, aml_named_field("LPTD", 2));
> >> - aml_append(dev, field);
> >> -
> >> aml_append(scope, dev);
> >> aml_append(table, scope);
> >> }
> >>
> >
> > I'm a bit confused, isn't it use to describe these
> > devices?
> >
> > (qemu) info qtree
> > bus: main-system-bus
> > type System
> > dev: q35-pcihost, id ""
> > bus: pcie.0
> > type PCIE
> > dev: ICH9-LPC, id ""
> > gpio-out "gsi" 24
> > class ISA bridge, addr 00:1f.0, pci id 8086:2918 (sub 1af4:1100)
> > bus: isa.0
> > type ISA
> > dev: port92, id ""
> > gpio-out "a20" 1
> > dev: vmmouse, id ""
> > dev: vmport, id ""
> > dev: isa-parallel, id ""
> > index = 0 (0x0)
> > iobase = 888 (0x378)
> > irq = 7 (0x7)
> > chardev = "parallel0"
> > isa irq 7
> > dev: isa-serial, id ""
> > index = 1 (0x1)
> > iobase = 760 (0x2f8)
> > irq = 3 (0x3)
> > chardev = "serial1"
> > wakeup = 0 (0x0)
> > isa irq 3
> > dev: isa-serial, id ""
> > index = 0 (0x0)
> > iobase = 1016 (0x3f8)
> > irq = 4 (0x4)
> > chardev = "serial0"
> > wakeup = 0 (0x0)
> > isa irq 4
> >
>
> Ah, this patch complements the previous "acpi: drop serial/parallel
> enable bits from dsdt", right? Maybe better to include this change
> with the build_q35_isa_bridge() part. Like in a single patch:
> "acpi: q35: drop lpc/serial/parallel enable bits from dsdt"
>
> Then keep the PIIX part of the patches.
Don't see why really.
--
MST
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v8 01/10] qtest: allow DSDT acpi table changes
2020-06-11 7:29 ` [PATCH v8 01/10] qtest: allow DSDT acpi table changes Gerd Hoffmann
@ 2020-06-11 9:18 ` Michael S. Tsirkin
0 siblings, 0 replies; 18+ messages in thread
From: Michael S. Tsirkin @ 2020-06-11 9:18 UTC (permalink / raw)
To: Gerd Hoffmann
Cc: Laurent Vivier, Kevin Wolf, Thomas Huth, Eduardo Habkost,
qemu-block, qemu-devel, Max Reitz, Paolo Bonzini,
Marc-André Lureau, Igor Mammedov, John Snow,
Richard Henderson
On Thu, Jun 11, 2020 at 09:29:10AM +0200, Gerd Hoffmann wrote:
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
OK, thanks! What is still missing is resulting ASL
differences in the expected files for reviewers.
See ./tests/qtest/bios-tables-test.c step 7.
I'm working on a tool that will show the changes
more easily so they can be included with each
change, but that will do for now.
Thanks and sorry about all the bureaucracy.
> ---
> tests/qtest/bios-tables-test-allowed-diff.h | 17 +++++++++++++++++
> 1 file changed, 17 insertions(+)
>
> diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
> index dfb8523c8bf4..6a052c50447a 100644
> --- a/tests/qtest/bios-tables-test-allowed-diff.h
> +++ b/tests/qtest/bios-tables-test-allowed-diff.h
> @@ -1 +1,18 @@
> /* List of comma-separated changed AML files to ignore */
> +"tests/data/acpi/pc/DSDT",
> +"tests/data/acpi/pc/DSDT.acpihmat",
> +"tests/data/acpi/pc/DSDT.bridge",
> +"tests/data/acpi/pc/DSDT.cphp",
> +"tests/data/acpi/pc/DSDT.dimmpxm",
> +"tests/data/acpi/pc/DSDT.ipmikcs",
> +"tests/data/acpi/pc/DSDT.memhp",
> +"tests/data/acpi/pc/DSDT.numamem",
> +"tests/data/acpi/q35/DSDT",
> +"tests/data/acpi/q35/DSDT.acpihmat",
> +"tests/data/acpi/q35/DSDT.bridge",
> +"tests/data/acpi/q35/DSDT.cphp",
> +"tests/data/acpi/q35/DSDT.dimmpxm",
> +"tests/data/acpi/q35/DSDT.ipmibt",
> +"tests/data/acpi/q35/DSDT.memhp",
> +"tests/data/acpi/q35/DSDT.mmio64",
> +"tests/data/acpi/q35/DSDT.numamem",
> --
> 2.18.4
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v8 10/10] acpi: q35: drop _SB.PCI0.ISA.LPCD opregion.
2020-06-11 9:12 ` Michael S. Tsirkin
@ 2020-06-11 9:25 ` Philippe Mathieu-Daudé
0 siblings, 0 replies; 18+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-06-11 9:25 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: Laurent Vivier, Kevin Wolf, Thomas Huth, Eduardo Habkost,
qemu-block, Igor Mammedov, qemu-devel, Max Reitz, Gerd Hoffmann,
Marc-André Lureau, Paolo Bonzini, John Snow,
Richard Henderson
On 6/11/20 11:12 AM, Michael S. Tsirkin wrote:
> On Thu, Jun 11, 2020 at 10:31:01AM +0200, Philippe Mathieu-Daudé wrote:
>> On 6/11/20 10:27 AM, Philippe Mathieu-Daudé wrote:
>>> Hi Gerd,
>>>
>>> On 6/11/20 9:29 AM, Gerd Hoffmann wrote:
>>>> Seems to be unused.
>>>>
>>>> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
>>>> Reviewed-by: Igor Mammedov <imammedo@redhat.com>
>>>> ---
>>>> hw/i386/acpi-build.c | 11 -----------
>>>> 1 file changed, 11 deletions(-)
>>>>
>>>> diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
>>>> index 02cf4199c2e9..d93ea40c58b9 100644
>>>> --- a/hw/i386/acpi-build.c
>>>> +++ b/hw/i386/acpi-build.c
>>>> @@ -1296,7 +1296,6 @@ static void build_q35_isa_bridge(Aml *table)
>>>> {
>>>> Aml *dev;
>>>> Aml *scope;
>>>> - Aml *field;
>>>>
>>>> scope = aml_scope("_SB.PCI0");
>>>> dev = aml_device("ISA");
>>>> @@ -1306,16 +1305,6 @@ static void build_q35_isa_bridge(Aml *table)
>>>> aml_append(dev, aml_operation_region("PIRQ", AML_PCI_CONFIG,
>>>> aml_int(0x60), 0x0C));
>>>>
>>>> - aml_append(dev, aml_operation_region("LPCD", AML_PCI_CONFIG,
>>>> - aml_int(0x80), 0x02));
>>>> - field = aml_field("LPCD", AML_ANY_ACC, AML_NOLOCK, AML_PRESERVE);
>>>> - aml_append(field, aml_named_field("COMA", 3));
>>>> - aml_append(field, aml_reserved_field(1));
>>>> - aml_append(field, aml_named_field("COMB", 3));
>>>> - aml_append(field, aml_reserved_field(1));
>>>> - aml_append(field, aml_named_field("LPTD", 2));
>>>> - aml_append(dev, field);
>>>> -
>>>> aml_append(scope, dev);
>>>> aml_append(table, scope);
>>>> }
>>>>
>>>
>>> I'm a bit confused, isn't it use to describe these
>>> devices?
>>>
>>> (qemu) info qtree
>>> bus: main-system-bus
>>> type System
>>> dev: q35-pcihost, id ""
>>> bus: pcie.0
>>> type PCIE
>>> dev: ICH9-LPC, id ""
>>> gpio-out "gsi" 24
>>> class ISA bridge, addr 00:1f.0, pci id 8086:2918 (sub 1af4:1100)
>>> bus: isa.0
>>> type ISA
>>> dev: port92, id ""
>>> gpio-out "a20" 1
>>> dev: vmmouse, id ""
>>> dev: vmport, id ""
>>> dev: isa-parallel, id ""
>>> index = 0 (0x0)
>>> iobase = 888 (0x378)
>>> irq = 7 (0x7)
>>> chardev = "parallel0"
>>> isa irq 7
>>> dev: isa-serial, id ""
>>> index = 1 (0x1)
>>> iobase = 760 (0x2f8)
>>> irq = 3 (0x3)
>>> chardev = "serial1"
>>> wakeup = 0 (0x0)
>>> isa irq 3
>>> dev: isa-serial, id ""
>>> index = 0 (0x0)
>>> iobase = 1016 (0x3f8)
>>> irq = 4 (0x4)
>>> chardev = "serial0"
>>> wakeup = 0 (0x0)
>>> isa irq 4
>>>
>>
>> Ah, this patch complements the previous "acpi: drop serial/parallel
>> enable bits from dsdt", right? Maybe better to include this change
>> with the build_q35_isa_bridge() part. Like in a single patch:
>> "acpi: q35: drop lpc/serial/parallel enable bits from dsdt"
>>
>> Then keep the PIIX part of the patches.
>
> Don't see why really.
OK, no problem on my side. Series fully reviewed!
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v8 09/10] acpi: drop build_piix4_pm()
2020-06-11 7:29 ` [PATCH v8 09/10] acpi: drop build_piix4_pm() Gerd Hoffmann
@ 2020-06-11 9:28 ` Philippe Mathieu-Daudé
0 siblings, 0 replies; 18+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-06-11 9:28 UTC (permalink / raw)
To: Gerd Hoffmann, qemu-devel
Cc: Laurent Vivier, Kevin Wolf, Thomas Huth, Eduardo Habkost,
qemu-block, Michael S. Tsirkin, Max Reitz, Igor Mammedov,
Marc-André Lureau, Paolo Bonzini, John Snow,
Richard Henderson
On 6/11/20 9:29 AM, Gerd Hoffmann wrote:
> The _SB.PCI0.PX13.P13C opregion (holds isa device enable bits)
> is not used any more, remove it from DSDT.
Maybe:
"is not used any more (see previous commit), remove it from DSDT."
(if Michael can do the change when applying if you agree).
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
>
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> Reviewed-by: Igor Mammedow <imammedo@redhat.com>
> ---
> hw/i386/acpi-build.c | 16 ----------------
> 1 file changed, 16 deletions(-)
>
> diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> index 750fcf9baa37..02cf4199c2e9 100644
> --- a/hw/i386/acpi-build.c
> +++ b/hw/i386/acpi-build.c
> @@ -1320,21 +1320,6 @@ static void build_q35_isa_bridge(Aml *table)
> aml_append(table, scope);
> }
>
> -static void build_piix4_pm(Aml *table)
> -{
> - Aml *dev;
> - Aml *scope;
> -
> - scope = aml_scope("_SB.PCI0");
> - dev = aml_device("PX13");
> - aml_append(dev, aml_name_decl("_ADR", aml_int(0x00010003)));
> -
> - aml_append(dev, aml_operation_region("P13C", AML_PCI_CONFIG,
> - aml_int(0x00), 0xff));
> - aml_append(scope, dev);
> - aml_append(table, scope);
> -}
> -
> static void build_piix4_isa_bridge(Aml *table)
> {
> Aml *dev;
> @@ -1486,7 +1471,6 @@ build_dsdt(GArray *table_data, BIOSLinker *linker,
> aml_append(dsdt, sb_scope);
>
> build_hpet_aml(dsdt);
> - build_piix4_pm(dsdt);
> build_piix4_isa_bridge(dsdt);
> build_isa_devices_aml(dsdt);
> build_piix4_pci_hotplug(dsdt);
>
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2020-06-11 9:29 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-11 7:29 [PATCH v8 00/10] acpi: i386 tweaks Gerd Hoffmann
2020-06-11 7:29 ` [PATCH v8 01/10] qtest: allow DSDT acpi table changes Gerd Hoffmann
2020-06-11 9:18 ` Michael S. Tsirkin
2020-06-11 7:29 ` [PATCH v8 02/10] acpi: move aml builder code for floppy device Gerd Hoffmann
2020-06-11 8:22 ` Philippe Mathieu-Daudé
2020-06-11 7:29 ` [PATCH v8 03/10] floppy: make isa_fdc_get_drive_max_chs static Gerd Hoffmann
2020-06-11 7:29 ` [PATCH v8 04/10] floppy: move cmos_get_fd_drive_type() from pc Gerd Hoffmann
2020-06-11 7:29 ` [PATCH v8 05/10] acpi: move aml builder code for i8042 (kbd+mouse) device Gerd Hoffmann
2020-06-11 7:29 ` [PATCH v8 06/10] acpi: factor out fw_cfg_add_acpi_dsdt() Gerd Hoffmann
2020-06-11 7:29 ` [PATCH v8 07/10] acpi: simplify build_isa_devices_aml() Gerd Hoffmann
2020-06-11 7:29 ` [PATCH v8 08/10] acpi: drop serial/parallel enable bits from dsdt Gerd Hoffmann
2020-06-11 7:29 ` [PATCH v8 09/10] acpi: drop build_piix4_pm() Gerd Hoffmann
2020-06-11 9:28 ` Philippe Mathieu-Daudé
2020-06-11 7:29 ` [PATCH v8 10/10] acpi: q35: drop _SB.PCI0.ISA.LPCD opregion Gerd Hoffmann
2020-06-11 8:27 ` Philippe Mathieu-Daudé
2020-06-11 8:31 ` Philippe Mathieu-Daudé
2020-06-11 9:12 ` Michael S. Tsirkin
2020-06-11 9:25 ` Philippe Mathieu-Daudé
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.