All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: qemu-devel@nongnu.org
Cc: Peter Maydell <peter.maydell@linaro.org>,
	Ani Sinha <ani@anisinha.ca>, Gerd Hoffmann <kraxel@redhat.com>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	Sergio Lopez <slp@redhat.com>
Subject: [PULL 02/86] hw/i386/e820: remove legacy reserved entries for e820
Date: Mon, 31 Oct 2022 08:50:46 -0400	[thread overview]
Message-ID: <20221031124928.128475-3-mst@redhat.com> (raw)
In-Reply-To: <20221031124928.128475-1-mst@redhat.com>

From: Ani Sinha <ani@anisinha.ca>

e820 reserved entries were used before the dynamic entries with fw config files
were intoduced. Please see the following change:
7d67110f2d9a6("pc: add etc/e820 fw_cfg file")

Identical support was introduced into seabios as well with the following commit:
ce39bd4031820 ("Add support for etc/e820 fw_cfg file")

Both the above commits are now quite old. QEMU machines 1.7 and newer no longer
use the reserved entries. Seabios uses fw config files and
dynamic e820 entries by default and only falls back to using reserved entries
when it has to work with old qemu (versions earlier than 1.7). Please see
functions qemu_cfg_e820() and qemu_early_e820(). It is safe to remove legacy
FW_CFG_E820_TABLE and associated code now as QEMU 7.0 has deprecated i440fx
machines 1.7 and older. It would be incredibly rare to run the latest qemu
version with a very old version of seabios that did not support fw config files
for e820.

As far as I could see, edk2/ovfm never supported reserved entries and uses fw
config files from the beginning. So there should be no incompatibilities with
ovfm as well.

CC: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Ani Sinha <ani@anisinha.ca>
Acked-by: Gerd Hoffmann <kraxel@redhat.com>
Message-Id: <20220831045311.33083-1-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/i386/e820_memory_layout.h |  8 --------
 hw/i386/fw_cfg.h             |  1 -
 hw/i386/e820_memory_layout.c | 20 +-------------------
 hw/i386/fw_cfg.c             |  3 ---
 hw/i386/microvm.c            |  2 --
 5 files changed, 1 insertion(+), 33 deletions(-)

diff --git a/hw/i386/e820_memory_layout.h b/hw/i386/e820_memory_layout.h
index 04f93780f9..7c239aa033 100644
--- a/hw/i386/e820_memory_layout.h
+++ b/hw/i386/e820_memory_layout.h
@@ -16,20 +16,12 @@
 #define E820_NVS        4
 #define E820_UNUSABLE   5
 
-#define E820_NR_ENTRIES 16
-
 struct e820_entry {
     uint64_t address;
     uint64_t length;
     uint32_t type;
 } QEMU_PACKED __attribute((__aligned__(4)));
 
-struct e820_table {
-    uint32_t count;
-    struct e820_entry entry[E820_NR_ENTRIES];
-} QEMU_PACKED __attribute((__aligned__(4)));
-
-extern struct e820_table e820_reserve;
 extern struct e820_entry *e820_table;
 
 int e820_add_entry(uint64_t address, uint64_t length, uint32_t type);
diff --git a/hw/i386/fw_cfg.h b/hw/i386/fw_cfg.h
index 275f15c1c5..86ca7c1c0c 100644
--- a/hw/i386/fw_cfg.h
+++ b/hw/i386/fw_cfg.h
@@ -17,7 +17,6 @@
 #define FW_CFG_ACPI_TABLES      (FW_CFG_ARCH_LOCAL + 0)
 #define FW_CFG_SMBIOS_ENTRIES   (FW_CFG_ARCH_LOCAL + 1)
 #define FW_CFG_IRQ0_OVERRIDE    (FW_CFG_ARCH_LOCAL + 2)
-#define FW_CFG_E820_TABLE       (FW_CFG_ARCH_LOCAL + 3)
 #define FW_CFG_HPET             (FW_CFG_ARCH_LOCAL + 4)
 
 FWCfgState *fw_cfg_arch_create(MachineState *ms,
diff --git a/hw/i386/e820_memory_layout.c b/hw/i386/e820_memory_layout.c
index bcf9eaf837..06970ac44a 100644
--- a/hw/i386/e820_memory_layout.c
+++ b/hw/i386/e820_memory_layout.c
@@ -11,29 +11,11 @@
 #include "e820_memory_layout.h"
 
 static size_t e820_entries;
-struct e820_table e820_reserve;
 struct e820_entry *e820_table;
 
 int e820_add_entry(uint64_t address, uint64_t length, uint32_t type)
 {
-    int index = le32_to_cpu(e820_reserve.count);
-    struct e820_entry *entry;
-
-    if (type != E820_RAM) {
-        /* old FW_CFG_E820_TABLE entry -- reservations only */
-        if (index >= E820_NR_ENTRIES) {
-            return -EBUSY;
-        }
-        entry = &e820_reserve.entry[index++];
-
-        entry->address = cpu_to_le64(address);
-        entry->length = cpu_to_le64(length);
-        entry->type = cpu_to_le32(type);
-
-        e820_reserve.count = cpu_to_le32(index);
-    }
-
-    /* new "etc/e820" file -- include ram too */
+    /* new "etc/e820" file -- include ram and reserved entries */
     e820_table = g_renew(struct e820_entry, e820_table, e820_entries + 1);
     e820_table[e820_entries].address = cpu_to_le64(address);
     e820_table[e820_entries].length = cpu_to_le64(length);
diff --git a/hw/i386/fw_cfg.c b/hw/i386/fw_cfg.c
index a283785a8d..72a42f3c66 100644
--- a/hw/i386/fw_cfg.c
+++ b/hw/i386/fw_cfg.c
@@ -36,7 +36,6 @@ const char *fw_cfg_arch_key_name(uint16_t key)
         {FW_CFG_ACPI_TABLES, "acpi_tables"},
         {FW_CFG_SMBIOS_ENTRIES, "smbios_entries"},
         {FW_CFG_IRQ0_OVERRIDE, "irq0_override"},
-        {FW_CFG_E820_TABLE, "e820_table"},
         {FW_CFG_HPET, "hpet"},
     };
 
@@ -127,8 +126,6 @@ FWCfgState *fw_cfg_arch_create(MachineState *ms,
 #endif
     fw_cfg_add_i32(fw_cfg, FW_CFG_IRQ0_OVERRIDE, 1);
 
-    fw_cfg_add_bytes(fw_cfg, FW_CFG_E820_TABLE,
-                     &e820_reserve, sizeof(e820_reserve));
     fw_cfg_add_file(fw_cfg, "etc/e820", e820_table,
                     sizeof(struct e820_entry) * e820_get_num_entries());
 
diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c
index ffd1884100..170a331e3f 100644
--- a/hw/i386/microvm.c
+++ b/hw/i386/microvm.c
@@ -324,8 +324,6 @@ static void microvm_memory_init(MicrovmMachineState *mms)
     fw_cfg_add_i16(fw_cfg, FW_CFG_MAX_CPUS, machine->smp.max_cpus);
     fw_cfg_add_i64(fw_cfg, FW_CFG_RAM_SIZE, (uint64_t)machine->ram_size);
     fw_cfg_add_i32(fw_cfg, FW_CFG_IRQ0_OVERRIDE, 1);
-    fw_cfg_add_bytes(fw_cfg, FW_CFG_E820_TABLE,
-                     &e820_reserve, sizeof(e820_reserve));
     fw_cfg_add_file(fw_cfg, "etc/e820", e820_table,
                     sizeof(struct e820_entry) * e820_get_num_entries());
 
-- 
MST



  parent reply	other threads:[~2022-10-31 12:52 UTC|newest]

Thread overview: 113+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-31 12:50 [PULL 00/86] pci,pc,virtio: features, tests, fixes, cleanups Michael S. Tsirkin
2022-10-31 12:50 ` [PULL 01/86] bios-tables-test: do not ignore allowed diff list Michael S. Tsirkin
2022-10-31 13:25   ` Ani Sinha
2022-10-31 15:01     ` Michael S. Tsirkin
2022-10-31 12:50 ` Michael S. Tsirkin [this message]
2022-10-31 12:50 ` [PULL 03/86] tests/acpi: allow SSDT changes Michael S. Tsirkin
2022-10-31 12:50 ` [PULL 04/86] acpi/ssdt: Fix aml_or() and aml_and() in if clause Michael S. Tsirkin
2022-10-31 12:50 ` [PULL 05/86] acpi/nvdimm: define macro for NVDIMM Device _DSM Michael S. Tsirkin
2022-10-31 12:50 ` [PULL 06/86] acpi/nvdimm: Implement ACPI NVDIMM Label Methods Michael S. Tsirkin
2022-10-31 12:51 ` [PULL 07/86] test/acpi/bios-tables-test: SSDT: update golden master binaries Michael S. Tsirkin
2022-10-31 12:51 ` [PULL 08/86] virtio-crypto: Support asynchronous mode Michael S. Tsirkin
2022-10-31 12:51 ` [PULL 09/86] crypto: Support DER encodings Michael S. Tsirkin
2022-10-31 12:51 ` [PULL 10/86] crypto: Support export akcipher to pkcs8 Michael S. Tsirkin
2022-10-31 12:51 ` [PULL 11/86] cryptodev: Add a lkcf-backend for cryptodev Michael S. Tsirkin
2022-10-31 12:51 ` [PULL 12/86] acpi/tests/avocado/bits: initial commit of test scripts that are run by biosbits Michael S. Tsirkin
2022-10-31 12:51 ` [PULL 13/86] acpi/tests/avocado/bits: disable acpi PSS tests that are failing in biosbits Michael S. Tsirkin
2022-10-31 12:51 ` [PULL 14/86] acpi/tests/avocado/bits: add biosbits config file for running bios tests Michael S. Tsirkin
2022-10-31 12:51 ` [PULL 15/86] acpi/tests/avocado/bits: add acpi and smbios avocado tests that uses biosbits Michael S. Tsirkin
2022-10-31 12:51 ` [PULL 16/86] acpi/tests/avocado/bits/doc: add a doc file to describe the acpi bits test Michael S. Tsirkin
2022-10-31 12:51 ` [PULL 17/86] MAINTAINERS: add myself as the maintainer for acpi biosbits avocado tests Michael S. Tsirkin
2022-10-31 12:51 ` [PULL 18/86] hw/smbios: add core_count2 to smbios table type 4 Michael S. Tsirkin
2022-10-31 12:51 ` [PULL 19/86] bios-tables-test: teach test to use smbios 3.0 tables Michael S. Tsirkin
2022-10-31 12:51 ` [PULL 20/86] tests/acpi: allow changes for core_count2 test Michael S. Tsirkin
2022-10-31 12:51 ` [PULL 21/86] bios-tables-test: add test for number of cores > 255 Michael S. Tsirkin
2022-11-01 13:52   ` Jonathan Cameron via
2022-11-01 13:55     ` Ani Sinha
2022-11-02 12:51       ` Ani Sinha
2022-11-01 14:07     ` Igor Mammedov
2022-10-31 12:51 ` [PULL 22/86] tests/acpi: update tables for new core count test Michael S. Tsirkin
2022-10-31 12:51 ` [PULL 23/86] tests/acpi: virt: allow acpi MADT and FADT changes Michael S. Tsirkin
2022-10-31 12:51 ` [PULL 24/86] acpi: fadt: support revision 6.0 of the ACPI specification Michael S. Tsirkin
2022-10-31 12:51 ` [PULL 25/86] acpi: arm/virt: madt: bump to revision 4 accordingly to ACPI 6.0 Errata A Michael S. Tsirkin
2022-10-31 12:51 ` [PULL 26/86] tests/acpi: virt: update ACPI MADT and FADT binaries Michael S. Tsirkin
2022-10-31 12:52 ` [PULL 27/86] hw/pci: PCIe Data Object Exchange emulation Michael S. Tsirkin
2022-10-31 12:52 ` [PULL 28/86] hw/mem/cxl-type3: Add MSIX support Michael S. Tsirkin
2022-10-31 12:52 ` [PULL 29/86] hw/cxl/cdat: CXL CDAT Data Object Exchange implementation Michael S. Tsirkin
2022-10-31 12:52 ` [PULL 30/86] hw/mem/cxl-type3: Add CXL CDAT Data Object Exchange Michael S. Tsirkin
2022-10-31 12:52 ` [PULL 31/86] hw/pci-bridge/cxl-upstream: Add a CDAT table access DOE Michael S. Tsirkin
2022-10-31 12:52 ` [PULL 32/86] tests/qtest/cxl-test: Remove temporary directories after testing Michael S. Tsirkin
2022-10-31 12:52 ` [PULL 33/86] vhost: Change the sequence of device start Michael S. Tsirkin
2022-10-31 12:52 ` [PULL 34/86] vhost-user: Support vhost_dev_start Michael S. Tsirkin
2022-10-31 12:52 ` [PULL 35/86] hw/virtio/virtio-iommu-pci: Enforce the device is plugged on the root bus Michael S. Tsirkin
2022-10-31 12:52 ` [PULL 36/86] virtio: re-order vm_running and use_started checks Michael S. Tsirkin
2022-10-31 12:52 ` [PULL 37/86] virtio: introduce __virtio_queue_reset() Michael S. Tsirkin
2022-10-31 12:52 ` [PULL 38/86] virtio: introduce virtio_queue_reset() Michael S. Tsirkin
2022-10-31 12:52 ` [PULL 39/86] virtio: introduce virtio_queue_enable() Michael S. Tsirkin
2022-10-31 12:52 ` [PULL 40/86] virtio: core: vq reset feature negotation support Michael S. Tsirkin
2022-10-31 12:52 ` [PULL 41/86] virtio-pci: support queue reset Michael S. Tsirkin
2022-10-31 12:52 ` [PULL 42/86] virtio-pci: support queue enable Michael S. Tsirkin
2022-10-31 12:52 ` [PULL 43/86] vhost: expose vhost_virtqueue_start() Michael S. Tsirkin
2022-10-31 12:52 ` [PULL 44/86] vhost: expose vhost_virtqueue_stop() Michael S. Tsirkin
2022-10-31 12:52 ` [PULL 45/86] vhost-net: vhost-kernel: introduce vhost_net_virtqueue_reset() Michael S. Tsirkin
2022-10-31 12:52 ` [PULL 46/86] vhost-net: vhost-kernel: introduce vhost_net_virtqueue_restart() Michael S. Tsirkin
2022-10-31 12:52 ` [PULL 47/86] virtio-net: introduce flush_or_purge_queued_packets() Michael S. Tsirkin
2022-10-31 12:52 ` [PULL 48/86] virtio-net: support queue reset Michael S. Tsirkin
2022-10-31 12:53 ` [PULL 49/86] virtio-net: support queue_enable Michael S. Tsirkin
2022-10-31 12:53 ` [PULL 50/86] vhost: vhost-kernel: enable vq reset feature Michael S. Tsirkin
2022-10-31 12:53 ` [PULL 51/86] virtio-net: " Michael S. Tsirkin
2022-10-31 12:53 ` [PULL 52/86] virtio-rng-pci: Allow setting nvectors, so we can use MSI-X Michael S. Tsirkin
2022-10-31 12:53 ` [PULL 53/86] vhost-user: Fix out of order vring host notification handling Michael S. Tsirkin
2022-10-31 12:53 ` [PULL 54/86] acpi: pc: vga: use AcpiDevAmlIf interface to build VGA device descriptors Michael S. Tsirkin
2022-10-31 12:53 ` [PULL 55/86] tests: acpi: whitelist DSDT before generating PCI-ISA bridge AML automatically Michael S. Tsirkin
2022-10-31 12:53 ` [PULL 56/86] acpi: pc/q35: drop ad-hoc PCI-ISA bridge AML routines and let bus ennumeration generate AML Michael S. Tsirkin
2022-10-31 12:53 ` [PULL 57/86] tests: acpi: update expected DSDT after ISA bridge is moved directly under PCI host bridge Michael S. Tsirkin
2022-10-31 12:53 ` [PULL 58/86] tests: acpi: whitelist DSDT before generating ICH9_SMB AML automatically Michael S. Tsirkin
2022-10-31 12:53 ` [PULL 59/86] acpi: add get_dev_aml_func() helper Michael S. Tsirkin
2022-10-31 12:53 ` [PULL 60/86] acpi: enumerate SMB bridge automatically along with other PCI devices Michael S. Tsirkin
2022-10-31 12:53 ` [PULL 61/86] tests: acpi: update expected blobs Michael S. Tsirkin
2022-10-31 12:53 ` [PULL 62/86] tests: acpi: pc/q35 whitelist DSDT before \_GPE cleanup Michael S. Tsirkin
2022-10-31 12:53 ` [PULL 63/86] acpi: pc/35: sanitize _GPE declaration order Michael S. Tsirkin
2022-10-31 12:53 ` [PULL 64/86] tests: acpi: update expected blobs Michael S. Tsirkin
2022-10-31 12:53 ` [PULL 65/86] hw/acpi/erst.c: Fix memory handling issues Michael S. Tsirkin
2022-10-31 12:53 ` [PULL 66/86] MAINTAINERS: Add qapi/virtio.json to section "virtio" Michael S. Tsirkin
2022-10-31 12:53 ` [PULL 67/86] qpci_device_enable: Allow for command bits hardwired to 0 Michael S. Tsirkin
2022-10-31 12:53 ` [PULL 68/86] hw/ide/piix: Ignore writes of hardwired PCI command register bits Michael S. Tsirkin
2022-11-04 16:36   ` Michael S. Tsirkin
2022-10-31 12:53 ` [PULL 69/86] msix: Assert that specified vector is in range Michael S. Tsirkin
2022-10-31 12:54 ` [PULL 70/86] hw/i386/pc.c: CXL Fixed Memory Window should not reserve e820 in bios Michael S. Tsirkin
2022-10-31 12:54 ` [PULL 71/86] hw/i386/acpi-build: Remove unused struct Michael S. Tsirkin
2022-10-31 12:54 ` [PULL 72/86] hw/i386/acpi-build: Resolve redundant attribute Michael S. Tsirkin
2022-10-31 12:54 ` [PULL 73/86] hw/i386/acpi-build: Resolve north rather than south bridges Michael S. Tsirkin
2022-10-31 12:54 ` [PULL 74/86] hmat acpi: Don't require initiator value in -numa Michael S. Tsirkin
2022-10-31 12:54 ` [PULL 75/86] tests: acpi: add and whitelist *.hmat-noinitiator expected blobs Michael S. Tsirkin
2022-10-31 12:54 ` [PULL 76/86] tests: acpi: q35: add test for hmat nodes without initiators Michael S. Tsirkin
2022-10-31 12:54 ` [PULL 77/86] tests: acpi: q35: update expected blobs *.hmat-noinitiators expected HMAT: Michael S. Tsirkin
2022-10-31 12:54 ` [PULL 78/86] tests: Add HMAT AArch64/virt empty table files Michael S. Tsirkin
2022-10-31 12:54 ` [PULL 79/86] hw/arm/virt: Enable HMAT on arm virt machine Michael S. Tsirkin
2022-10-31 12:54 ` [PULL 80/86] tests: acpi: aarch64/virt: add a test for hmat nodes with no initiators Michael S. Tsirkin
2022-10-31 12:54 ` [PULL 81/86] tests: virt: Update expected *.acpihmatvirt tables Michael S. Tsirkin
2022-10-31 12:54 ` [PULL 82/86] vfio: move implement of vfio_get_xlat_addr() to memory.c Michael S. Tsirkin
2022-10-31 12:54 ` [PULL 83/86] intel-iommu: don't warn guest errors when getting rid2pasid entry Michael S. Tsirkin
2022-10-31 12:54 ` [PULL 84/86] intel-iommu: drop VTDBus Michael S. Tsirkin
2022-10-31 12:54 ` [PULL 85/86] intel-iommu: convert VTD_PE_GET_FPD_ERR() to be a function Michael S. Tsirkin
2022-10-31 12:54 ` [PULL 86/86] intel-iommu: PASID support Michael S. Tsirkin
2022-10-31 15:03 ` [PULL 00/86] pci,pc,virtio: features, tests, fixes, cleanups Michael S. Tsirkin
2022-10-31 19:14 ` Stefan Hajnoczi
2022-10-31 19:19   ` Stefan Hajnoczi
2022-10-31 19:31     ` Michael S. Tsirkin
2022-10-31 19:35       ` Michael S. Tsirkin
2022-10-31 19:41         ` Michael S. Tsirkin
2022-10-31 19:57           ` Stefan Hajnoczi
2022-10-31 19:56 ` Stefan Hajnoczi
2022-10-31 20:06 ` Stefan Hajnoczi
2022-10-31 20:12   ` Stefan Hajnoczi
2022-10-31 20:36     ` Michael S. Tsirkin
2022-10-31 20:40       ` Stefan Hajnoczi
2022-11-01 10:32   ` HMAT patches failure (was Re: [PULL 00/86] pci,pc,virtio: features, tests, fixes, cleanups) Michael S. Tsirkin
2022-11-01 15:55     ` Jonathan Cameron via
2022-11-01 17:56       ` [PATCH 1/2] tests: q35: acpi: Fixup for tables in noinitiator test Hesham Almatary via
2022-11-01 17:56         ` [PATCH 2/2] tests: acpi: Fixup for tables in Arm HMAT series Hesham Almatary via
2022-11-01 13:48   ` [PATCH] fixup! bios-tables-test: add test for number of cores > 255 Igor Mammedov
2022-11-01 13:49     ` Stefan Hajnoczi
2022-11-01 13:25 ` [PULL 00/86] pci,pc,virtio: features, tests, fixes, cleanups Igor Mammedov

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=20221031124928.128475-3-mst@redhat.com \
    --to=mst@redhat.com \
    --cc=ani@anisinha.ca \
    --cc=eduardo@habkost.net \
    --cc=kraxel@redhat.com \
    --cc=marcel.apfelbaum@gmail.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=slp@redhat.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.