From nobody Fri Sep 04 23:07:38 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4hcBvH1xxcz6qSB4 for ; Fri, 04 Sep 2026 23:07:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "YR2" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hcBvG4kl7z3mbP for ; Fri, 04 Sep 2026 23:07:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1788563258; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=o8bWKcBRG/vXMqZ0p6ubqo0sJvmOZhqc+MaGBpNwV0M=; b=T5hd8+RhYrwQpUZqXX2exh1bT7ZCuHDKU0+wEzoCW3Bxg96+SAzFnSWVH9j5gNUpkEXxK1 pc8xqS1fXKVosRnNkSokvuL+vLcb7Z7G2Pt0TWAevadQHRbP/rVF5TRiI75+CI5mUEy6Wt irH5c8OSaMlXzqGH3xTyqbibal4sqDvsleZkilLKz7/RSfIvgjJcTPTOxIw5FGZLwG/woQ etQGX5EvRKQgTlLTJwDIS1bn154vZyAjds63YH/247GaYBKYXe1/SWJifaNPWGcH9N4KEd L5sGxnghY5XCu7oJrqon76dKMk5fp3aqkH6UIGh5T59Zqh36Z1AYy4qS2lk2HA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1788563258; a=rsa-sha256; cv=none; b=c9AAk24efZzkxIEEIfU48yXcorZlQiXXdj7lXzpz3X3IJgma0qIwlAz1GA1CPxBWt8MDKZ X3ghdrL+MtT3U8jbg1LxIDCH5nd3uaf4O0XKtgQvW5Ctr0E6GnGKprdh40rS7R6C+Fv4kH 18c2N/PPnky8CZ5NXQ5XiFaRzhdmu4I7SWmGhGjjZp8Hi1Flu72mTaaWzISD3lO+szWiNF 0NL1TuYdXaczheqkFsNYy4yisig7iHWG92UsoD8T/dInsGFF+4Lb0rlGiznDyTEyJXZJ6C Gg9wBDTsjnZEePI+ztXGQBKyEGfsDjwdcq4+5Pe0+yehq4snbuhghJhc4d0Kxw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1788563258; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=o8bWKcBRG/vXMqZ0p6ubqo0sJvmOZhqc+MaGBpNwV0M=; b=LW5+msNPQNInpH3mA1mPixsLHtOnBLwQKklFK0L9kkRl76KoGPDTescjK9EhvYTJk6qgoc VZvIoG/CaR0JAXNpiA+x+bucPKT/7xnAmZwJS2PryoSjMX2KcJNPOrDD+dhMGP5SoCsPdy ffB5aex96w0h83/tSSn2SAA2FlXVaDMJuYJyUfD5ELGc4VzhW+w5eZ4v9MwAhAfGKodZiB xrIlmaX9IegRq7YNTFybBEthjeCfbJ+sk+++4qCtClOTtC7kfbVJNvyNy5Ru5j7nnLSQMi b1OK0Gz/WudTHHYHPiRfcdiNQecgsps19hwLdq/2XYbVHvpHKDUUWdpME1DHvg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hcBvG3lKZz5C5 for ; Fri, 04 Sep 2026 23:07:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 44f12 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 04 Sep 2026 23:07:38 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Abdelkader Boudih From: Enji Cooper Subject: git: 6f16db3a0953 - stable/15 - asmc: prefer MMIO backend over PIO when both are present List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ngie X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 6f16db3a09536c3bd18ca4c967bd8f048920f001 Auto-Submitted: auto-generated Date: Fri, 04 Sep 2026 23:07:38 +0000 Message-Id: <6a9b4f3a.44f12.3456ee45@gitrepo.freebsd.org> The branch stable/15 has been updated by ngie: URL: https://cgit.FreeBSD.org/src/commit/?id=6f16db3a09536c3bd18ca4c967bd8f048920f001 commit 6f16db3a09536c3bd18ca4c967bd8f048920f001 Author: Abdelkader Boudih AuthorDate: 2026-08-17 03:12:00 +0000 Commit: Enji Cooper CommitDate: 2026-09-04 23:07:01 +0000 asmc: prefer MMIO backend over PIO when both are present T2, T1, and some pre-T1 Macs advertise a legacy PIO range in the SMC ACPI _CRS alongside a live MMIO window, but the silicon behind the PIO range is bogus. Try MMIO first, validate via LDKN >= 2, fall back to PIO if that fails or no MMIO resource is present. Drop "(T2)" from the backend message since MMIO isn't T2-exclusive. MFC: 1 week Reviewed by: ngie Differential Revision: https://reviews.freebsd.org/D58839 (cherry picked from commit 37826269b41b46c72264191d35b09baf24e055b9) --- sys/dev/asmc/asmc.c | 18 ++++++++++-------- sys/dev/asmc/asmcmmio.c | 2 +- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/sys/dev/asmc/asmc.c b/sys/dev/asmc/asmc.c index d55c585419fb..80412b9c8daf 100644 --- a/sys/dev/asmc/asmc.c +++ b/sys/dev/asmc/asmc.c @@ -427,25 +427,22 @@ asmc_probe(device_t dev) } /* - * Try PIO first; fall back to MMIO for T2 Macs. + * Try MMIO first; the legacy PIO range can be claimable but dead. + * Fall back to PIO if MMIO probe fails or the resource is absent. */ static int asmc_try_probe(device_t dev) { struct asmc_softc *sc = device_get_softc(dev); - sc->sc_ioport = bus_alloc_resource_any(dev, SYS_RES_IOPORT, - &sc->sc_rid_port, RF_ACTIVE); - if (sc->sc_ioport != NULL) - return (0); - sc->sc_rid_mem = 0; sc->sc_iomem = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &sc->sc_rid_mem, RF_ACTIVE); if (sc->sc_iomem != NULL) { if (asmc_mmio_probe(dev) == 0) { sc->sc_is_mmio = true; - device_printf(dev, "using MMIO backend (T2)\n"); + if (bootverbose) + device_printf(dev, "using MMIO backend\n"); return (0); } bus_release_resource(dev, SYS_RES_MEMORY, @@ -453,7 +450,12 @@ asmc_try_probe(device_t dev) sc->sc_iomem = NULL; } - device_printf(dev, "unable to allocate IO port\n"); + sc->sc_ioport = bus_alloc_resource_any(dev, SYS_RES_IOPORT, + &sc->sc_rid_port, RF_ACTIVE); + if (sc->sc_ioport != NULL) + return (0); + + device_printf(dev, "unable to allocate IO port or MMIO\n"); return (ENOMEM); } diff --git a/sys/dev/asmc/asmcmmio.c b/sys/dev/asmc/asmcmmio.c index 237e8ec4ed52..4981822c4723 100644 --- a/sys/dev/asmc/asmcmmio.c +++ b/sys/dev/asmc/asmcmmio.c @@ -292,7 +292,7 @@ asmc_mmio_probe(device_t dev) return (ENXIO); } - device_printf(dev, "MMIO: LDKN=%d, T2 SMC detected\n", ldkn); + device_printf(dev, "MMIO: LDKN=%d, MMIO-capable SMC detected\n", ldkn); sc->sc_is_t2 = 1; return (0);