From nobody Sat Jan 3 18:48:57 2026 X-Original-To: dev-commits-src-main@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 4dk8jP6Czqz6MgHL for ; Sat, 03 Jan 2026 18:48:57 +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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4dk8jP34wHz3KGh for ; Sat, 03 Jan 2026 18:48:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1767466137; 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=z7HE/GjcCx5COrecG/uaitgMOufi1gqAc/zMG+n2Q7c=; b=IvQGvoXevA+DXW9SdfWbMOyoG4umCfirV10Tou7ixfYx50jYxRXHtNiiEOtKJcX8MVdEH/ N8sAdai82nWFjY7Tlp5s2UdvuFs/BZoI716YTk4fYFCQiSsIcRKmBGDHRGJsZWkP2aRAfh kYZoELkhWA/iOG+E1Whajd0/TtMUjjARowX7gw4VQgy5XVSB9D9VLwOgZRldlGW2gzerXx 56g8VXKGpoXf94frAnnOCUgl3jdFQ0/YpdZ47vhpgdIyWzoYbmCiUVofPfCcM+QyilGvLb T/Edu2Do82GOsHIWu3RggYV0a4InkRm2J17q4IT12JLhyVPRP5OEO8slCRO8DQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1767466137; 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=z7HE/GjcCx5COrecG/uaitgMOufi1gqAc/zMG+n2Q7c=; b=Swjk1n7VK2e0UIzOF/nzS6v9ea/sI4zc5tJjhooPp8iHhK7bbAjT6Fjgka4PNqrrGgeEt8 UQmYtCMYQeyAKgDgqDaHn8mAl1xESu8h8fAZai52qCnv2JAHcb1ANn0l+G8vicciah/Ncw E1T3WDO+qyXPJcHtCmPKneQWVJxXHN6OwzXLV8C6sqspCw2MnNtz6x7KCJ+/Z8PflL5Zpj zI8pzyRgW0J+e+aW65dEz7EA0h2mGH3zjtxs9UG/O14g/ipMxtFXq6AQcF0nHF/G33Wtzs ZLwIkE2iJuhIhq5g9mTxB4ZcY1DyiEQxsKtWNJZ3SEuba2eZQj57s/8IPXvl0w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1767466137; a=rsa-sha256; cv=none; b=DDDbKpeE1J8aks6Vk0vO4laYIwzN2wpfw1XlJy+brc2KqQoqTPKXK3+RX/1UywPhOvi3vR crj8NEGIDxBJ8V1v/+k1M4CXT8Kw0PcKMdY2mEL5ewVY3YS8pO8WAEx42omaSGoF2MzS47 IO11T6tvuu4jiVXOZFUNH/FdAMfCejlOAhBfdBOYSKq4l7FCwswMhvfzv2dyOlRI2031Nz 2fRx7agxcxlb+c/TQE2akdD12sG5WDUw8It1YUdsqYlRh1TKpOarrpGEHAY8W+w59UcWdR i/OG9TtxSpxmkPF6Zafo9zeHzPjF0zEt8u9mxl1ux4M8q8Tg6bK4XSzWw7V64A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4dk8jP1mF5z1FYH for ; Sat, 03 Jan 2026 18:48:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 341cb by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 03 Jan 2026 18:48:57 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Cc: Abdelkader Boudih From: Adrian Chadd Subject: git: 2a7c4685b769 - main - asmc: improve asmc_dumpall to read actual SMC key count List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: adrian X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2a7c4685b7693bfa15e2bd4d5e82905a368b0030 Auto-Submitted: auto-generated Date: Sat, 03 Jan 2026 18:48:57 +0000 Message-Id: <69596499.341cb.1bdb76bc@gitrepo.freebsd.org> The branch main has been updated by adrian: URL: https://cgit.FreeBSD.org/src/commit/?id=2a7c4685b7693bfa15e2bd4d5e82905a368b0030 commit 2a7c4685b7693bfa15e2bd4d5e82905a368b0030 Author: Abdelkader Boudih AuthorDate: 2026-01-03 18:33:11 +0000 Commit: Adrian Chadd CommitDate: 2026-01-03 18:35:53 +0000 asmc: improve asmc_dumpall to read actual SMC key count The asmc_dumpall debug function previously used a hardcoded loop limit of 0x100 (256) keys with a "XXX magic number" comment. This change improves asmc_dumpall to: * Read the actual number of keys from the ASMC_NKEYS SMC key * Print the key count being dumped for better debugging output * Loop only up to the actual key count (e.g., 297 on Mac Mini 5,1) This provides more accurate debug output and removes the magic number. Tested on Mac Mini 5,1 (FreeBSD 16.0-CURRENT): * Rebuild kernel with DEBUG enabled in asmc driver * Boot with new kernel * Verify dmesg shows "asmc_dumpall: dumping 297 keys" (or actual count) * Verify all 297 keys are dumped Differential Revision: https://reviews.freebsd.org/D54436 Reviewed by: markj, adrian --- sys/dev/asmc/asmc.c | 25 +++++++++++++++++-------- sys/dev/asmc/asmcvar.h | 1 + 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/sys/dev/asmc/asmc.c b/sys/dev/asmc/asmc.c index d99c1d56e67c..bdb8ca7831c4 100644 --- a/sys/dev/asmc/asmc.c +++ b/sys/dev/asmc/asmc.c @@ -823,10 +823,16 @@ asmc_resume(device_t dev) #ifdef DEBUG void asmc_dumpall(device_t dev) { + struct asmc_softc *sc = device_get_softc(dev); int i; - /* XXX magic number */ - for (i=0; i < 0x100; i++) + if (sc->sc_nkeys == 0) { + device_printf(dev, "asmc_dumpall: key count not available\n"); + return; + } + + device_printf(dev, "asmc_dumpall: dumping %d keys\n", sc->sc_nkeys); + for (i = 0; i < sc->sc_nkeys; i++) asmc_key_dump(dev, i); } #endif @@ -914,12 +920,15 @@ nosms: sc->sc_nfan = ASMC_MAXFANS; } - if (bootverbose) { - /* - * The number of keys is a 32 bit buffer - */ - asmc_key_read(dev, ASMC_NKEYS, buf, 4); - device_printf(dev, "number of keys: %d\n", ntohl(*(uint32_t*)buf)); + /* + * Read and cache the number of SMC keys (32 bit buffer) + */ + if (asmc_key_read(dev, ASMC_NKEYS, buf, 4) == 0) { + sc->sc_nkeys = be32dec(buf); + if (bootverbose) + device_printf(dev, "number of keys: %d\n", sc->sc_nkeys); + } else { + sc->sc_nkeys = 0; } #ifdef DEBUG diff --git a/sys/dev/asmc/asmcvar.h b/sys/dev/asmc/asmcvar.h index d40dc1e7c8ff..b6d8686d9670 100644 --- a/sys/dev/asmc/asmcvar.h +++ b/sys/dev/asmc/asmcvar.h @@ -33,6 +33,7 @@ struct asmc_softc { device_t sc_dev; struct mtx sc_mtx; int sc_nfan; + int sc_nkeys; int16_t sms_rest_x; int16_t sms_rest_y; int16_t sms_rest_z;