From nobody Sun May 5 05:01:15 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1650429636; cv=none; d=zohomail.com; s=zohoarc; b=ZLrpq5D6Zk2SyOpSAE5kBVhP3TLAeLMj473cIYTawICwZDAkZzYpQzyoSCaz27NL/DS/YVd5YSxP5wT2FaoSq8FtJBIwRq3doXeFqEoQANNbrh+B1P6cafNdGkA4EtgsbxfsgTRYh1B5isXC5Uk97eVfabo5CldJ6uN64r+n/hI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1650429636; h=Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=pgP71pYBztRqit0i6RL2WmB5E/Aq2jO12ieki3/XDQ4=; b=jo9pFNF9C4948YmG3OMRTXIoqbCGfL9OTnm1ju2ouWRdOl05lsJ5plkN1HGknxcL7ZzlpAQ/1wqh3XVtxINSa5NCq+8XUBXKQ2GuSIkbcb9u108gNWid/WbAyu/Az+ay0c/ADstiyRtiU+H0FdpTGkzPMVq3N1TObQI8kRmGZVA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1650429636299800.5314972328006; Tue, 19 Apr 2022 21:40:36 -0700 (PDT) Received: from localhost ([::1]:56170 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nh28n-0006mh-T5 for importer@patchew.org; Wed, 20 Apr 2022 00:40:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52284) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nh27d-00066h-4f for qemu-devel@nongnu.org; Wed, 20 Apr 2022 00:39:21 -0400 Received: from mail-pj1-x1036.google.com ([2607:f8b0:4864:20::1036]:54159) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nh27b-0002PU-5m for qemu-devel@nongnu.org; Wed, 20 Apr 2022 00:39:20 -0400 Received: by mail-pj1-x1036.google.com with SMTP id bx5so808419pjb.3 for ; Tue, 19 Apr 2022 21:39:17 -0700 (PDT) Received: from anisinha-lenovo.ba.nuagenetworks.net ([203.163.244.2]) by smtp.googlemail.com with ESMTPSA id h13-20020a056a00230d00b004f427ffd485sm19955754pfh.143.2022.04.19.21.39.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 Apr 2022 21:39:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=anisinha-ca.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=pgP71pYBztRqit0i6RL2WmB5E/Aq2jO12ieki3/XDQ4=; b=34zi/g3MeF6t4zt9kQ9nUjvVjJ+8PRJshfQnPepSrS3c2LgNaB+Mrwvw0mPIw/KtPz XUnaB0cVtWJPXUXJRWpMVRFxvyPwH7XbSmwSJQKogPtEgMLW73FvBbYB09p+LS9qxHy7 rkp/6GU2EMnVHlW70Zh6hQZ80cAMaX0VQ4kOIJTV4RwXULoahAJTfutqBtdRD+2XXiDu mvmutEEXMD8benrOh4wII7JT08LExzJDDCl4OpYCJlX/MWu1R16bteN4BmGq4DAM92RD gLkh4aGU+gfKDPa1C9Bw3gHs31T2IRs06sy5meVVdwq4NjlxFMZjPQ3yV6S4vGPB8gfQ b0CQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=pgP71pYBztRqit0i6RL2WmB5E/Aq2jO12ieki3/XDQ4=; b=oMKbp69vyDL5mmu8hkgwzWlPHa0ZDZH40byEdq1aOT7SGAAbYUWuAO/Gadfc6L60Vl iB3Ombbc2QiI6LsShCreffkkYNhMoixNNJBfyveRcD+2eK5nHaIYnzSDrKUEIQ8tSkLR lssWBPjNm3xQZFmyMlhfyZWC6Z9TWfTSfRsKQnHZ0z9yTSmHAA4xgQSax3XqUbxyvkY2 VdLykPtCEO2aeMMmwq+PH3QNX7q6tw1E6uGyVbXkUzoPXFbqOb8Lhkfx9bNBidm3zQQh H4U+PIimUaOALOsvt4KB3Ib51oP0z5OKLqhFr7y7WzXXA01CfFZTWGUV4uPq2Z8HNEFA h0QQ== X-Gm-Message-State: AOAM531vqlQSqeteSmZm441sLn5lfOknp8QmjBE30XqxJqKr9YqExTsV lVRn2cyUv5lyXoX80buzojVajQ== X-Google-Smtp-Source: ABdhPJw6hsQ4BeEw2Yi2eUCUyIE2Hs+YEsh7gweAc2Z4eOZp4p7g0/zAMur95lA2lE/YlXLOfZsTog== X-Received: by 2002:a17:90b:4b4e:b0:1d2:fe21:4ce5 with SMTP id mi14-20020a17090b4b4e00b001d2fe214ce5mr2219513pjb.241.1650429555814; Tue, 19 Apr 2022 21:39:15 -0700 (PDT) From: Ani Sinha To: Paolo Bonzini , Richard Henderson , Eduardo Habkost , "Michael S. Tsirkin" , Marcel Apfelbaum , Sergio Lopez Subject: [PATCH] hw/i386/e820: remove legacy reserved entries for e820 Date: Wed, 20 Apr 2022 10:09:04 +0530 Message-Id: <20220420043904.1225153-1-ani@anisinha.ca> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::1036; envelope-from=ani@anisinha.ca; helo=mail-pj1-x1036.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Ani Sinha , Gerd Hoffmann , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @anisinha-ca.20210112.gappssmtp.com) X-ZM-MESSAGEID: 1650429638677100001 Content-Type: text/plain; charset="utf-8" e820 reserved entries were used before the dynamic entries with fw config f= iles 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 co= mmit: ce39bd4031820 ("Add support for etc/e820 fw_cfg file") Both the above commits are now quite old. QEMU machines 1.7 and newer no lo= nger use the reserved entries. Seabios uses fw config files and dynamic e820 entries by default and only falls back to using reserved entri= es 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 f= iles 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 wi= th ovfm as well. CC: Gerd Hoffmann Signed-off-by: Ani Sinha Acked-by: Gerd Hoffmann --- hw/i386/e820_memory_layout.c | 20 +------------------- hw/i386/e820_memory_layout.h | 8 -------- hw/i386/fw_cfg.c | 3 --- hw/i386/fw_cfg.h | 1 - hw/i386/microvm.c | 2 -- 5 files changed, 1 insertion(+), 33 deletions(-) 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" =20 static size_t e820_entries; -struct e820_table e820_reserve; struct e820_entry *e820_table; =20 int e820_add_entry(uint64_t address, uint64_t length, uint32_t type) { - int index =3D le32_to_cpu(e820_reserve.count); - struct e820_entry *entry; - - if (type !=3D E820_RAM) { - /* old FW_CFG_E820_TABLE entry -- reservations only */ - if (index >=3D E820_NR_ENTRIES) { - return -EBUSY; - } - entry =3D &e820_reserve.entry[index++]; - - entry->address =3D cpu_to_le64(address); - entry->length =3D cpu_to_le64(length); - entry->type =3D cpu_to_le32(type); - - e820_reserve.count =3D cpu_to_le32(index); - } - - /* new "etc/e820" file -- include ram too */ + /* new "etc/e820" file -- include ram and reserved entries */ e820_table =3D g_renew(struct e820_entry, e820_table, e820_entries + 1= ); e820_table[e820_entries].address =3D cpu_to_le64(address); e820_table[e820_entries].length =3D cpu_to_le64(length); diff --git a/hw/i386/e820_memory_layout.h b/hw/i386/e820_memory_layout.h index 2a0ceb8b9c..daf41cc4b4 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 =20 -#define E820_NR_ENTRIES 16 - struct e820_entry { uint64_t address; uint64_t length; uint32_t type; } QEMU_PACKED __attribute((__aligned__(4))); =20 -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; =20 int e820_add_entry(uint64_t address, uint64_t length, uint32_t type); 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"}, }; =20 @@ -127,8 +126,6 @@ FWCfgState *fw_cfg_arch_create(MachineState *ms, #endif fw_cfg_add_i32(fw_cfg, FW_CFG_IRQ0_OVERRIDE, 1); =20 - 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()); =20 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) =20 FWCfgState *fw_cfg_arch_create(MachineState *ms, diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c index 4b3b1dd262..f2101e7293 100644 --- a/hw/i386/microvm.c +++ b/hw/i386/microvm.c @@ -324,8 +324,6 @@ static void microvm_memory_init(MicrovmMachineState *mm= s) 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()); =20 --=20 2.25.1