From ce30ba39bbb04c87eac3e27a0ff44a32f70b0258 Mon Sep 17 00:00:00 2001 From: Naeem Malik Date: Sat, 31 Oct 2026 16:52:26 +0530 Subject: [PATCH] drm/asahi: g15: admit a third J516C GPU firmware TEXT (125f0497) Two J516C MacBook Pro 16" M3 Max owners (issue #289) load a GPU firmware whose TEXT digest is 125f0497c7904fde... (sha256 125f0497c7904fde87b05a9264a88cf03bdb3572a1715cec91bd0f9b78245544, TEXT 0x64000, DATA 0x140000, marker 0x5cf28). The driver refuses it and the Mac falls back to llvmpipe. Add it as a third FirmwareBuild, written like the two existing J516C entries and still gated to the J516C. The entry name and the comment record where the digest was measured; they do not claim a distinct firmware build. Evidence from #289: with the digest accepted through asahi.g15_accept_text_prefix, glxinfo reports Apple M3 Max (G15C B2), and a GLES compute run shows 0 mismatches and no faults in dmesg. This branch boots on a J516C M3 Max in the Mac lab (job j1031-185713-2fe6, 3 of 3 tests pass, GPU probed). That Mac loads the macOS 14.7 stub firmware, so the new digest itself was not exercised there. Assisted-by: Claude:claude-opus-5-5 Signed-off-by: Naeem Malik --- drivers/gpu/drm/asahi/g15/hw/t6031.rs | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/asahi/g15/hw/t6031.rs b/drivers/gpu/drm/asahi/g15/hw/t6031.rs index 8bac33989db648..2e052fe196ebcf 100644 --- a/drivers/gpu/drm/asahi/g15/hw/t6031.rs +++ b/drivers/gpu/drm/asahi/g15/hw/t6031.rs @@ -129,10 +129,12 @@ pub(crate) const CONFIG: Config = Config { version: 0x07041100, counts: 0x0021040a, }], - // The stubs the boot chains of this J516C leave loaded (RTKit-2419.140.12): the macOS 14.7 - // chain's and the macOS 14.8 boot volume's. Same segment sizes and marker; the layout, board - // images and initdata below do not depend on which one is loaded. A further build can be - // admitted for one boot with `g15_accept_text_prefix`, which logs its digest. + // The stubs the boot chains of J516Cs leave loaded (RTKit-2419.140.12): the macOS 14.7 + // chain's, the macOS 14.8 boot volume's and a third TEXT seen on two further J516Cs (omacom + // /linux-aurora#289). Same segment sizes and marker; the layout, board images and initdata + // below do not depend on which one is loaded. The names say where a digest was measured, + // not that it identifies one build. A further digest can be admitted for one boot with + // `g15_accept_text_prefix`, which logs it. firmware: &[ FirmwareBuild { name: "macOS 14.7 stub firmware (iBoot-10151.140.19.700.2), J516C", @@ -158,6 +160,21 @@ pub(crate) const CONFIG: Config = Config { 0x9d, 0x6b, 0xcd, 0xa0, 0x26, 0xcf, ], }, + // Two J516Cs (iBoot2 iBoot-10151.140.19.700.2, OS firmware 14.7; iBoot1 mBoot-20457.1.29 + // and mBoot-20457.41.3) load this TEXT. On the second, 10 boots, glxinfo on the M3 Max + // renderer and a GLES compute job with no mismatches, no GPU faults (#289). + FirmwareBuild { + name: "J516C stub firmware, TEXT 125f0497 (seen with iBoot-10151.140.19.700.2)", + machine: None, + text_size: 0x64000, + data_size: 0x140000, + marker: 0x5cf28, + text_sha256: [ + 0x12, 0x5f, 0x04, 0x97, 0xc7, 0x90, 0x4f, 0xde, 0x87, 0xb0, 0x5a, 0x92, 0x64, + 0xa8, 0x8c, 0xf0, 0x3b, 0xdb, 0x35, 0x72, 0xa1, 0x71, 0x5c, 0xec, 0x91, 0xbd, + 0x0f, 0x9b, 0x78, 0x24, 0x55, 0x44, + ], + }, ], // The reference words and measured layout belong to the J516C, not // every T6031 board (in particular, not the 14-inch J514C).