Skip to content

Keep the firmware DSDT to avoid stale GNVS addresses - #19

Merged
seankd3 merged 2 commits into
mainfrom
t3/drop-static-dsdt
Nov 7, 2026
Merged

seankd3 merged 2 commits into
mainfrom
t3/drop-static-dsdt

Conversation

@seankd3

@seankd3 seankd3 commented Nov 7, 2026 •

Copy link
Copy Markdown
Owner

After an EC reset on H7607BA.300, the firmware moved GNVS from 0x86f50000 to 0x86f70000. The copied DSDT still used the old address. ACPI exposed only six of twenty CPU devices, and CPUFreq could not initialize. The retained original and current firmware DSDTs differ only in that address byte and the checksum.

Keep the native DSDT on each boot. The existing acpi_osi="!Windows 2022" option already supplies the SSPM behavior that the DSDT patch provided. Remove the DSDT builder, input/output pins, archive member, installation and package payload. Keep the pinned ASUS SSDT transformation. Verify that the early ACPI archive contains only that SSDT, including when an extra table uses a different filename extension. Preserve the legacy DSDT checkpoint path for rollback compatibility.

Validation:

  • All 48 offline tests pass, in normal and PYTHONOPTIMIZE=1 mode. The new regression checks fail against 29c045b, where the duplicate-name bug was reproduced.
  • ACPICA 20260408 rebuilt the override from this machine's original ASUS SSDT, without a DSDT dump. The resulting SSDT remains SHA-256 9b28ffc14c19f8b7ea2278de88ff9ec070f5f70401107d81fef067a916aa9695.
  • The SSDT-only production archive is SHA-256 68420c5248a237b01267bf8713867f53358252d0d3935fb09c0e66b02c39153e.
  • A separate UKI for the installed 7.3.0-26 kernel passes the updated verifier with that kernel's release/package identity. Its other initrd members, its compressed main payload, the kernel, the modules and the command line match the original.

Runtime evidence on the corrected image (kernel 7.3.0-26, NVIDIA 620.70.06, firmware DSDT OEM revision 4, retained ASUS SSDT):

  • All 20 ACPI CPU devices report status 15 with a physical node. All 20 CPPC directories and all 20 CPUFreq policies exist, before and after load.
  • A continuous FP32 cuBLAS run lasted 900.691 s. 1793 NVML samples cover the span; the largest gap is 0.645 s. All seven NVML status codes are 0, AC stayed online, and the warmup and end checks found 0 mismatches in 66 sampled outputs each.
  • SM clock min/median/max is 1430/2034/2424 MHz. Median throughput is 11,025 GFLOP/s. Maximum GPU temperature is 73 C.
  • From 772 s to the end, NVML reports reason 0x4 (SW power cap) in every sample. In that window the SM median falls to 1839 MHz but throughput rises to 14,848 GFLOP/s. This PR does not explain that change. It also does not show 3 GHz sustained clocks.
  • An initramfs rebuilt for 7.3.0-26 with the SSDT-only hook has the same early archive list as the booted image, with only kernel/firmware/acpi/SSDT.aml at the pinned SHA-256.

Token change: code -366, tests +756, docs +115 (about 4 characters a token). The test and doc growth was in the commit that both review passes accepted.

Part of #3

🤖 Generated with Claude Code

@seankd3
seankd3 marked this pull request as ready for review November 7, 2026 15:33
@seankd3
seankd3 merged commit 492d7e5 into main Nov 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant