Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp1764528pxp; Mon, 7 Mar 2022 01:45:34 -0800 (PST) X-Google-Smtp-Source: ABdhPJzDEoRz5HH3x2F/Pnmu8An7RM0yUvvkGdwm34/Vsr1N3Nm49bEBUac/2AKoZYZ3+yX63Wzv X-Received: by 2002:a50:934b:0:b0:410:befb:cfd0 with SMTP id n11-20020a50934b000000b00410befbcfd0mr10266413eda.27.1646646334201; Mon, 07 Mar 2022 01:45:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646646334; cv=none; d=google.com; s=arc-20160816; b=EZal5aCBVb7kq+ao9PIdokx05QdsoJmEod/czkzjZuh1qX7gP03c+OZzdQVhFhZ2Jf HkOjiNGo7KXkIQkAuvoNVPrfCpF2wMu3IpPq+W6LrXv4Eepb6lQKXxSRhcHSOxJjDqoQ 6kuVUXrfov1cnUkZRs+LnOhv486qpRh3WGP1qUPUw+WPiNR4OWiOuZRw7VR1BQD84iQo /MnuXVDaoTIxnAMBVLsLOzOVDTPvNLrq8tFrBpeZlecjr+AjzZf8hS6c+hxT+jL3Kgh7 FeZv6srAJcHOOD0z9lLKc/wlh2h62hFT4t4HOqe5YNcq/gYMbVxP7NvirYPX8txk/Fp8 KHgw== 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:dkim-signature; bh=LC0j3/G2hKvPK3P9v7Jsob3YP1xJDOoZkhPu00702s4=; b=lyAUKACIvFw9cP+rYGIvVL9HBZ00YEuogrIwRepFkSBLWBbnzUxGqqSBCMr9z0QQnO WDONiSx3dSLK7fnAUhGpj7tvtEc5/5GaF/khNoQX7qMYC8ZtKtdEaBXCerqZJDxsztXt DP4PNsIGbAu+rFqBFAYSi2gc6/grbuNLFVZOX8KwBhgqDdfUbI3S7NAp3q5AekIVVuXn O46znyw3XegP07mZXzwAxGC8dtZ5FOIrnkMJuGWRbcCQVttSJvoPkqJzVFPhg6Y2aNNB XT2wIj+HTmLZeCcEx1Uzxg7QkWKetJh7AQ18Odp/tY5GYp6toHcfFsWIc7IZQRH4IpoY 9Wjg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@yotsuba.nl header.s=fm2 header.b=QPTYcE4l; dkim=pass header.i=@messagingengine.com header.s=fm2 header.b="Yay/FmVJ"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u4-20020a17090657c400b0068a84fe9bfesi7194357ejr.317.2022.03.07.01.45.11; Mon, 07 Mar 2022 01:45:34 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@yotsuba.nl header.s=fm2 header.b=QPTYcE4l; dkim=pass header.i=@messagingengine.com header.s=fm2 header.b="Yay/FmVJ"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234995AbiCGD0w (ORCPT + 99 others); Sun, 6 Mar 2022 22:26:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54980 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233660AbiCGD0v (ORCPT ); Sun, 6 Mar 2022 22:26:51 -0500 X-Greylist: delayed 518 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Sun, 06 Mar 2022 19:25:58 PST Received: from wnew1-smtp.messagingengine.com (wnew1-smtp.messagingengine.com [64.147.123.26]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 914F95D5F3 for ; Sun, 6 Mar 2022 19:25:58 -0800 (PST) Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailnew.west.internal (Postfix) with ESMTP id 85BCB2B0024D; Sun, 6 Mar 2022 22:17:17 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Sun, 06 Mar 2022 22:17:18 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yotsuba.nl; h=cc :cc:content-transfer-encoding:date:date:from:from:in-reply-to :message-id:mime-version:reply-to:sender:subject:subject:to:to; s=fm2; bh=LC0j3/G2hKvPK3P9v7Jsob3YP1xJDOoZkhPu00702s4=; b=QPTYc E4lBWiR740zuP/i60F10qhDc1am8plxYD/7WQYz4BBt6pBGPt/etw7bjGqy4lmOG EDfAmZ9dIPUNTuklrE/XHnt6Ag1xaIXQ+geGFsvWjgSjM/XOrYe5ehzGWKdE4Twt cTsJ5lM3fQX5BBD/vq+nfW3pLMBNt3VCWwept2TbZnHqO9zKE2bkh6AsFD6+Of88 88WP6T4cdByGqBu/YvQ1MDrFeK3RohU5mXdhtB8r7IRu9bU1bcpnjq9/WNw1rYjG qdzFAeA88S1ITo3R8Kx/qzz8C8PNcuvofgo9B1WjI9noZiAoofr39xWB4rlvmBE1 zR6tgi7ihpOJs8+aw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding:date:date :from:from:in-reply-to:message-id:mime-version:reply-to:sender :subject:subject:to:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm2; bh=LC0j3/G2hKvPK3P9v7Jsob3YP1xJD OoZkhPu00702s4=; b=Yay/FmVJlDDIGi6wv7Px8BgByxqqqwxrkj621ZIewzHx0 IkrM4mw57T/tB3idZ0M2hddtZnrZW8fAnnNN36GQ5gAeXoMydQ/VZLevMCeRXSe6 H2HgdPgFIR9ZxDsTmWCIA/WIyYujZ+G3s+uVidum00Sb4rEz0VWtIiwXcQSsz9O9 2B9vp3eCFYn4rZyIc079GTfMfhdG6bC4AfcrGQ8mNff/LtJC4utBWqraSE8Dnv+C VA1gEMQYnb//k1TCDYqbDMhHFRgRu4DYBhQiZeKxo8wnphnvf51HiPsPax294CJy GIR+G4R8wbDC+8K8apQ/s3fmQl4S3Izk7WsBzTjZQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvvddruddufedgheeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufffkffoggfgsedtkeertdertddtnecuhfhrohhmpeforghrkhcuvehi lhhishhsvghnuceomhgrrhhkseihohhtshhusggrrdhnlheqnecuggftrfgrthhtvghrnh epheduveehtdelfeekgfejudevhffghfehvdetffehgfelteelheelgefftdffudehnecu vehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhkse ihohhtshhusggrrdhnlh X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 6 Mar 2022 22:17:14 -0500 (EST) From: Mark Cilissen To: linux-acpi@vger.kernel.org, x86@kernel.org, linux-kernel@vger.kernel.org Cc: Hans de Goede , "Rafael J. Wysocki" , Len Brown , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , Mark Cilissen , kernel test robot Subject: [PATCH v3] ACPI / x86: Work around broken XSDT on Advantech DAC-BJ01 board Date: Mon, 7 Mar 2022 04:16:58 +0100 Message-Id: <20220307031658.81285-1-mark@yotsuba.nl> X-Mailer: git-send-email 2.28.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_PASS, 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 lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On this board the ACPI RSDP structure points to both a RSDT and an XSDT, but the XSDT points to a truncated FADT. This causes all sorts of trouble and usually a complete failure to boot after the following error occurs: ACPI Error: Unsupported address space: 0x20 (*/hwregs-*) ACPI Error: AE_SUPPORT, Unable to initialize fixed events (*/evevent-*) ACPI: Unable to start ACPI Interpreter This leaves the ACPI implementation in such a broken state that subsequent kernel subsystem initialisations go wrong, resulting in among others mismapped PCI memory, SATA and USB enumeration failures, and freezes. As this is an older embedded platform that will likely never see any BIOS updates to address this issue and its default shipping OS only complies to ACPI 1.0, work around this by forcing `acpi=rsdt`. This patch, applied on top of Linux 5.10.102, was confirmed on real hardware to fix the issue. Signed-off-by: Mark Cilissen Cc: stable@vger.kernel.org Reviewed-by: Hans de Goede --- v3: - Change DMI matching criteria as per Hans's suggestion v2: - Reduce DMI match count to 4 to not overflow dmi_system_id structure Reported-by: kernel test robot - Change board ident to correct name - Fix small style issue - Fix up subject as per Rafael's changes --- arch/x86/kernel/acpi/boot.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c index 5b6d1a95776f..0d01e7f5078c 100644 --- a/arch/x86/kernel/acpi/boot.c +++ b/arch/x86/kernel/acpi/boot.c @@ -1328,6 +1328,17 @@ static int __init disable_acpi_pci(const struct dmi_system_id *d) return 0; } +static int __init disable_acpi_xsdt(const struct dmi_system_id *d) +{ + if (!acpi_force) { + pr_notice("%s detected: force use of acpi=rsdt\n", d->ident); + acpi_gbl_do_not_use_xsdt = TRUE; + } else { + pr_notice("Warning: DMI blacklist says broken, but acpi XSDT forced\n"); + } + return 0; +} + static int __init dmi_disable_acpi(const struct dmi_system_id *d) { if (!acpi_force) { @@ -1451,6 +1462,19 @@ static const struct dmi_system_id acpi_dmi_table[] __initconst = { DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 360"), }, }, + /* + * Boxes that need ACPI XSDT use disabled due to corrupted tables + */ + { + .callback = disable_acpi_xsdt, + .ident = "Advantech DAC-BJ01", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "NEC"), + DMI_MATCH(DMI_PRODUCT_NAME, "Bearlake CRB Board"), + DMI_MATCH(DMI_BIOS_VERSION, "V1.12"), + DMI_MATCH(DMI_BIOS_DATE, "02/01/2011"), + }, + }, {} }; base-commit: 038101e6b2cd5c55f888f85db42ea2ad3aecb4b6 -- 2.28.0