From patchwork Tue Nov 21 18:36:34 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bjorn Helgaas X-Patchwork-Id: 16880 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:2b07:b0:403:3b70:6f57 with SMTP id io7csp836093vqb; Tue, 21 Nov 2023 10:37:15 -0800 (PST) X-Google-Smtp-Source: AGHT+IEdPdaqfWgvQtFnw5DbGtbRJoWAOOjHRKUVhIgOzCXNLLrJKEYTANzA0LTsM2LBUS/dPtkF X-Received: by 2002:a05:6871:e40c:b0:1e9:d8a4:5523 with SMTP id py12-20020a056871e40c00b001e9d8a45523mr144347oac.41.1700591835579; Tue, 21 Nov 2023 10:37:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1700591835; cv=none; d=google.com; s=arc-20160816; b=clW2mXfIV4w+FZbAowMyeJ4JAes22qg590dexyTo4sa8UhlI/6bOTqPty7YwME7BV0 tGP9PVbeYCpSBjFt7ltCpzUgZea/LjEgPg3zYQlWWkfWmlrQFE8v9D4HtbrlZyS5EWzy LzAuOAPdMhY58eA9+FCWMC7zUsG+PyUNl3aMdxcLzpAE3p6P1yEhcXJZeTrxSaLL9Pir 2cFWYdw4WJPQqumVoy+Gb/zVSXznmZpDXABGCy9cTi9OWKuijMjQmEJr5D25qpap+lxa EEySgcfKD9ZWYJA1V0UyLbDPgLk7nk7E1TuX6iMwp0X17RaCTkcOYTXEF+f7tFiBWafA Jogg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=aJOj+8hYYQfawpekCVeEtyZvBk8GwnofJAt0wV18i2E=; fh=KVY+YYgWJTdaCaCkMOn84+9OqSlvR5lnFCfeohFAf40=; b=pbH9XGQA8DrfDEz9j2jmGKLwIOQg0w5AMBN92ysISCRcfU24P567WYZajqp+lbSRia TYHnn7JX9O04tuLV1wFCVeB77W0usY4/YDI73JKk1KYKtnmFcA8gHFBTn+65hb1pDUEX ai7plakEeCag6raXg0xcAUcJQlCVA7SG9g9rLXK/EJtjbzxkdK6A5GZZGYdiH1BSO3Qo iRd9LerN6V7EQPjQuoAhxjzZzprvpNRjNfDFoCKRh6m7Pragc5tboJaOigMba16AzTSv 7cnacbjm9Q7vNsYslCLkNXva8TdGJTVxwE3D0HQVyG+1/0IlZeBynmyYPVtHEsXNUl75 dirw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=pikMlQn3; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from groat.vger.email (groat.vger.email. [23.128.96.35]) by mx.google.com with ESMTPS id y29-20020a056a00181d00b006cb75e0f91bsi6779301pfa.45.2023.11.21.10.37.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Nov 2023 10:37:15 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) client-ip=23.128.96.35; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=pikMlQn3; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by groat.vger.email (Postfix) with ESMTP id E9FE380C8DE8; Tue, 21 Nov 2023 10:37:06 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at groat.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233573AbjKUSgz (ORCPT + 99 others); Tue, 21 Nov 2023 13:36:55 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56502 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231131AbjKUSgy (ORCPT ); Tue, 21 Nov 2023 13:36:54 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AFF6E9E for ; Tue, 21 Nov 2023 10:36:50 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0859FC433C7; Tue, 21 Nov 2023 18:36:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1700591810; bh=iUIz/SwdoSJeQb7e6Gxw95AuLdR6o8t7aa9vIVBVcl8=; h=From:To:Cc:Subject:Date:From; b=pikMlQn3Oj8RTANE4jzV/LDOk/isKXa2rIbLdcmxJsx1Fd84N6Hs23H/1PtdFQFa8 jgm2HYGPtOPCohu0G0EcSrk+wmjSoKhI2SSZSlLwYUgAFbq5s3uVlQ6Fb94yZuKjEn ctjlmkItYi2GuBXgRx9B9PlNgdUGVh8kVnGAx7nBQJ4+Ise7fvComSyuG5Ipfir0AF C/WCfYG1QbW5bVVM7sOv8HHqfd23Mqbjx/NmZgX3a+9g9j4sHZcOQ2r8uaGVSF/p8g ZuUIX8EX1iErDf3MtAH6CGVW/d5mZ5M02Xoa24W59Zd9SIB12WzOOQKDa/nSXJl59V PnK80iVt2d6Cg== From: Bjorn Helgaas To: linux-pci@vger.kernel.org Cc: Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H . Peter Anvin" , "Rafael J . Wysocki" , Dan Williams , Kan Liang , Tony Luck , Giovanni Cabiddu , Yunying Sun , Tomasz Pala , Sebastian Manciulea , linux-kernel@vger.kernel.org, Bjorn Helgaas Subject: [PATCH 0/9] x86/pci: Work around lack of ECAM space reservation Date: Tue, 21 Nov 2023 12:36:34 -0600 Message-Id: <20231121183643.249006-1-helgaas@kernel.org> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Spam-Status: No, score=-1.2 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on groat.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (groat.vger.email [0.0.0.0]); Tue, 21 Nov 2023 10:37:07 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1783199784591338438 X-GMAIL-MSGID: 1783199784591338438 From: Bjorn Helgaas The ECAM space described in the ACPI MCFG table should be reserved via a PNP0C02 _CRS method, per PCI Firmware spec (r3.3, sec 4.1.2). Some platforms (at least Supermicro X9DRi-LN4+, HP Proliant ML30 Gen9) do not include these PNP0C02 reservations, and at the same time, they *do* include that space in the PNP0A03 host bridge windows, which makes it available for assignment to PCI devices. In this case, we treat the ECAM space as valid (after fd3a8cff4d4a ("x86/pci: Treat EfiMemoryMappedIO as reservation of ECAM space")), but there was no actual reservation to prevent assignment to PCI devices. This series adds that reservation to prevent assigning ECAM space to PCI BARs, adds more debug logging, changes "MMCONFIG" to "ECAM" to match the spec terminology, and cleans up some coding style. I propose to merge this via the PCI tree for v6.8. Bjorn Helgaas (9): x86/pci: Reserve ECAM if BIOS didn't include it in PNP0C02 _CRS x86/pci: Reword ECAM EfiMemoryMappedIO logging to avoid 'reserved' x86/pci: Add MCFG debug logging x86/pci: Rename 'MMCONFIG' to 'ECAM', use pr_fmt x86/pci: Rename acpi_mcfg_check_entry() to acpi_mcfg_valid_entry() x86/pci: Rename pci_mmcfg_check_reserved() to pci_mmcfg_reserved() x86/pci: Comment pci_mmconfig_insert() obscure MCFG dependency x86/pci: Return pci_mmconfig_add() failure early x86/pci: Reorder pci_mmcfg_arch_map() definition before calls arch/x86/pci/acpi.c | 3 + arch/x86/pci/mmconfig-shared.c | 178 ++++++++++++++++++--------------- arch/x86/pci/mmconfig_32.c | 2 +- arch/x86/pci/mmconfig_64.c | 42 ++++---- 4 files changed, 120 insertions(+), 105 deletions(-)