From nobody Fri Dec 19 18:46:36 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of seabios.org designates 78.46.105.101 as permitted sender) client-ip=78.46.105.101; envelope-from=seabios-bounces@seabios.org; helo=coreboot.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of seabios.org designates 78.46.105.101 as permitted sender) smtp.mailfrom=seabios-bounces@seabios.org; dmarc=fail(p=none dis=none) header.from=flygoat.com Return-Path: Received: from coreboot.org (mail.coreboot.org [78.46.105.101]) by mx.zohomail.com with SMTPS id 1748430204121866.5273552541051; Wed, 28 May 2025 04:03:24 -0700 (PDT) Received: from authenticated-user (PRIMARY_HOSTNAME [PUBLIC_IP]) by coreboot.org (Postfix) with ESMTPA id D983D4025D; Wed, 28 May 2025 11:03:19 +0000 (UTC) Received: from authenticated-user (PRIMARY_HOSTNAME [PUBLIC_IP]) (fout-a4-smtp.messagingengine.com [103.168.172.147]) by coreboot.org (Postfix) with ESMTP id B27F74025B for ; Wed, 28 May 2025 11:02:59 +0000 (UTC) Received: from authenticated-user (PRIMARY_HOSTNAME [PUBLIC_IP]) [10.202.2.41]) by mailfout.phl.internal (Postfix) with ESMTP id 3EEEE138043A; Wed, 28 May 2025 07:02:58 -0400 (EDT) Received: from authenticated-user (PRIMARY_HOSTNAME [PUBLIC_IP]) by phl-compute-01.internal (MEProxy); Wed, 28 May 2025 07:02:58 -0400 Received: from authenticated-user (PRIMARY_HOSTNAME [PUBLIC_IP]) 28 May 2025 07:02:56 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=flygoat.com; h= cc:cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:message-id:mime-version:reply-to :subject:subject:to:to; s=fm2; t=1748430178; x=1748516578; bh=n9 sey6avdtScOvMm12TalJSuxD5uaIDD6fakHFviQSk=; b=pF0B7GWD1rzyB9KSaU o/jSmVeVfmLVPGz86vIlpE2F/qqzsMrEbV/2UMvndYU4JyvqF9bVxxvRKntn0zNA JOVnrnZU78Gu47uzIGv/lZYuqdR/88Mcd34biqlnTTxgLqv+04aqBFVu97wTLc2q HNCBtqbrKblnBo/SM32Ieb7YTTR0Cg+UpyxBDbQ94Ygb8UJCrE8IKxjp1i0BAwLf YlhLjcgn7LYC3s+Uex1Ad4wWRWkOKd8yW1aoqDNZ/87/3VOr/5b1SRTBbPLC3ZRM U9BMazdh2Q81Ma5BmA0m4+Zo1CcQdyo+VT2of0N49GU6dJaOyBCMUcHyrXAiEPjA kHSw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:message-id:mime-version:reply-to:subject :subject:to:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1748430178; x=1748516578; bh=n9sey6avdtScOvMm12TalJSuxD5u aIDD6fakHFviQSk=; b=g39F13kbLhIvCrTrNlUVcMBghoggcKWteiQWFbQAupVJ 0igF2jH1X/qezO1hWtgEIYJ5Izps87r4oDRKXi63af8z+sHZCJGOZPxPIy/7ZLkH JUpB1mWDcXdjCE9L4iWXBklH1ymx0EuAaXtMhsO74lNiBRC+VO2lfcZnuJr0dA0l dPKhT9zSOEV5/G/sCrwXyVakTIdfnzuRo2BlgH4TsWNJHNJxc7vYmxjElj8POyMF yFV1+ssgqLSzpahXY2fxWNosulsrQC11ZHFwp9Ja6ARB6MDG4zxeCUOKouNr2P7L /TH2N2IdCdVtCp9W5E8J5EbLjdISqmTqxZvWnzJHfA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtddtgddvfedtleculddtuddrgeefvddrtd dtmdcutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpggft fghnshhusghstghrihgsvgdpuffrtefokffrpgfnqfghnecuuegrihhlohhuthemuceftd dtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefhfffugggtgffk vfevofesthejredtredtjeenucfhrhhomheplfhirgiguhhnucgjrghnghcuoehjihgrgi hunhdrhigrnhhgsehflhihghhorghtrdgtohhmqeenucggtffrrghtthgvrhhnpeevtdek hfelieegveffhfeuiefhgfdvvdeijeevhfdugeekjeelfeffjedvjeekfeenucffohhmrg hinheptghorhgvsghoohhtrdhorhhgpdhgihhthhhusgdrtghomhdpkhgvrhhnvghlrdho rhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepjh hirgiguhhnrdihrghnghesfhhlhihgohgrthdrtghomhdpnhgspghrtghpthhtohepfedp mhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepshgvrggsihhoshesshgvrggsihhosh drohhrghdprhgtphhtthhopehjihgrgihunhdrhigrnhhgsehflhihghhorghtrdgtohhm pdhrtghpthhtohepphhmvghniigvlhesmhholhhgvghnrdhmphhgrdguvg X-ME-Proxy: Feedback-ID: ifd894703:Fastmail From: Jiaxun Yang Date: Wed, 28 May 2025 12:02:49 +0100 MIME-Version: 1.0 Message-Id: <20250528-ahci-v2-1-9d7310217ca2@flygoat.com> X-B4-Tracking: v=1; b=H4sIAFjtNmgC/22MQQ6DIBAAv2I4l0bQNdBT/9F4QFx1k1YMGFJj+ HvRW5seZzKZnQX0hIHdip15jBTIzRnkpWB2MvOInPrMTJYSSpCSm8kSV8Y2lda6K1XNcrp4HOh 9bh5t5onC6vx2XqM47M8gCi44GrRQdY0QPdyH5zY6s16tex3HP7nRPQoNCurhO29TSh99G7duy QAAAA== X-Change-ID: 20250522-ahci-8ac63999b084 To: seabios@seabios.org X-Developer-Signature: v=1; a=openpgp-sha256; l=2334; i=jiaxun.yang@flygoat.com; h=from:subject:message-id; bh=RHRfpGK8o1uAjs/+uyG2NYEQwedMU7sWWBbciLeR90c=; b=owGbwMvMwCXmXMhTe71c8zDjabUkhgyztwkXVPIEDnKY1pdxSBTacKXM1u9YZ3h++vYaYxn9Y +/YD7N3lLIwiHExyIopsoQIKPVtaLy44PqDrD8wc1iZQIYwcHEKwETeTmNkOP3PRFDOYEnr9/ro i88THcQTvu5ourb6Zd7Twl6B6RPmH2H4pzbXbbLNattz3lcZeK1mt0dWOxp2TSt8+0ZucpjXY93 nnAA= X-Developer-Key: i=jiaxun.yang@flygoat.com; a=openpgp; fpr=980379BEFEBFBF477EA04EF9C111949073FC0F67 Message-ID-Hash: WSMZKVO2QMSFZWO46J4Y5KHU7MPLMYJ3 X-Message-ID-Hash: WSMZKVO2QMSFZWO46J4Y5KHU7MPLMYJ3 X-MailFrom: jiaxun.yang@flygoat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-seabios.seabios.org-0; header-match-seabios.seabios.org-1; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Jiaxun Yang , Paul Menzel X-Mailman-Version: 3.3.11b1 Precedence: list Subject: [SeaBIOS] [PATCH v2] ahci: Fix hangs due to controller reset List-Id: SeaBIOS mailing list Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Content-Transfer-Encoding: quoted-printable Authentication-Results: coreboot.org; auth=pass smtp.auth=mailman@coreboot.org smtp.mailfrom=seabios-bounces@seabios.org X-Spamd-Bar: / X-ZM-MESSAGEID: 1748430206945116600 Content-Type: text/plain; charset="utf-8" After adding AHCI controller reset functionality there are multiple reports on AHCI booting regression. As per my experiments on various machines, to reset controller properly it is necessary to poll HOST_CTL_RESET bit until it's clear. It is also required to read back HOST_CTL after changing HOST_CTL_AHCI_EN bits to ensure the controller has accepted write. Tested on ASMedia ASM1061, Intel H61 native SATA and AMD Phoenix native SATA. Link: https://mail.coreboot.org/hyperkitty/list/seabios@seabios.org/thread/= RDNRKWBN4N5XQX2TQMM5P4WZ2OOPPNAM/ Link: https://github.com/FlyGoat/csmwrap/issues/14 Fixes: 8863cbbd15a7 ("ahci: add controller reset") Signed-off-by: Jiaxun Yang Acked-by: Paul Menzel Reviewed-by: Paul Menzel --- To: seabios@seabios.org --- Changes in v2: - Commit message (Paul Menzel) - Link to v1: https://lore.kernel.org/r/20250522-ahci-v1-1-a9de195854f5@fly= goat.com --- src/hw/ahci.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/hw/ahci.c b/src/hw/ahci.c index 2285d33d4ae21335e5222ab04608685b5bff3763..7e7a03ddd010d53fa439c8ca495= 05a2da00241f4 100644 --- a/src/hw/ahci.c +++ b/src/hw/ahci.c @@ -660,8 +660,23 @@ ahci_controller_setup(struct pci_device *pci) =20 pci_enable_busmaster(pci); =20 - ahci_ctrl_writel(ctrl, HOST_CTL, HOST_CTL_RESET); - ahci_ctrl_writel(ctrl, HOST_CTL, HOST_CTL_AHCI_EN); + u32 val =3D ahci_ctrl_readl(ctrl, HOST_CTL); + ahci_ctrl_writel(ctrl, HOST_CTL, val | HOST_CTL_RESET); + u32 end =3D timer_calc(AHCI_RESET_TIMEOUT); + for (;;) { + val =3D ahci_ctrl_readl(ctrl, HOST_CTL); + if (!(val & HOST_CTL_RESET)) + break; + if (timer_check(end)) { + warn_timeout(); + dprintf(1, "AHCI: controller reset failed\n"); + free(ctrl); + return; + } + yield(); + } + ahci_ctrl_writel(ctrl, HOST_CTL, val | HOST_CTL_AHCI_EN); + (void)ahci_ctrl_readl(ctrl, HOST_CTL); /* Flush */ =20 ctrl->caps =3D ahci_ctrl_readl(ctrl, HOST_CAP); ctrl->ports =3D ahci_ctrl_readl(ctrl, HOST_PORTS_IMPL); --- base-commit: 9029a010ec413e6c3c0eb52c29c252a5b9a9f774 change-id: 20250522-ahci-8ac63999b084 Best regards, --=20 Jiaxun Yang _______________________________________________ SeaBIOS mailing list -- seabios@seabios.org To unsubscribe send an email to seabios-leave@seabios.org