quirks: R16 + R22 — deferred documentation landing pads

R16 (memory configuration) and R22 (boot parameters)
are documented in QUIRKS-SYSTEM.md as deferred because
their Linux 7.1 source surface is entirely imperative
handler code, not data tables.

R16: drivers/pci/quirks.c MTRR section +
arch/x86/kernel/cpu/mtrr/amd.c + arch/x86/kernel/
amd_gart_64.c gart_fixup_northbridges() +
arch/x86/mm/numa.c numa_emulation[]. All imperative.

R22: arch/x86/kernel/tsc.c + arch/x86/kernel/hpet.c +
arch/x86/kernel/cpu/bugs.c + ~47 files with __setup /
early_param declarations (125 total entries). All
imperative (string, handler_fn) registrations.

This commit lands empty landing-pad TOML files
(95-mtrr-deferred.toml, 99-bootparams-deferred.toml)
that document why no data table is feasible and
reference the QUIRKS-SYSTEM.md follow-up plans. The
compiled-in tables (mtrr_quirk_table, bootparam_quirk_table)
are empty; runtime TOML is reserved for future rules
that do fit a data model.

Audit status as of 2026-06-07:
- R11, R12, R13, R14, R15, R17, R18, R19, R20, R21
  RESOLVED (data side lands; consumer wiring is
  follow-up per phase)
- R16, R22 DEFERRED (algorithmic / imperative; data-
  driven approach does not fit)
This commit is contained in:
2026-06-07 22:22:13 +03:00
parent d78aa7f391
commit d980dc2747
2 changed files with 65 additions and 0 deletions
@@ -0,0 +1,31 @@
# Memory configuration quirks (MTRR / PAT / NUMA) — DEFERRED.
#
# Phase R16 (2026-06-07) — this phase is documented as
# deferred in QUIRKS-SYSTEM.md. The Linux 7.1 sources
# covering this space are algorithmic handler functions,
# not data tables:
#
# - drivers/pci/quirks.c MTRR section:
# ~13 AMD K8 NB MTRR fixups + 6 AMD Fam10h +
# 6 AMD Fam15h + 1 AMD Fam16h DRAM scrub + 4 Intel
# MCH/RAS quirks. All are imperative functions that
# read/write northbridge MSRs at boot.
# - arch/x86/kernel/cpu/mtrr/amd.c: K6 WA, MTRR
# cleanup logic. Algorithmic.
# - arch/x86/kernel/amd_gart_64.c gart_fixup_northbridges():
# GART IOMMU disable for VIA. Algorithmic.
# - arch/x86/mm/numa.c numa_emulation[]: 2 DMI entries
# for HP ProLiant NUMA emulation.
#
# Converting these to a data table is not feasible because
# the imperative code reads/writes chipset-specific MSRs
# that have no data-driven representation.
#
# The compiled-in `mtrr_quirk_table` is empty; runtime
# TOML is reserved for future NUMA / GART-specific rules
# that do fit a data model. No entries land in this commit.
#
# Reference: see QUIRKS-SYSTEM.md § R16 for the full
# follow-up plan. The audit's estimated 5-7 days for R16
# is dominated by porting the imperative fixup code into
# the Red Bear kernel.
@@ -0,0 +1,34 @@
# Boot parameter quirks (kernel cmdline) — DEFERRED.
#
# Phase R22 (2026-06-07) — this phase is documented as
# deferred in QUIRKS-SYSTEM.md. The Linux 7.1 boot
# parameter system is imperative handler functions, not
# data tables:
#
# - arch/x86/kernel/tsc.c: `tsc=` (6 sub-options)
# - arch/x86/kernel/hpet.c: `hpet=`, `nohpet=`
# - drivers/clocksource/acpi_pm.c: `acpi_pm_good=`
# - arch/x86/kernel/cpu/bugs.c: 20+ parameters
# (spectre_v2=, mds=, tsx_async_abort=,
# mmio_stale_data=, l1d_flush=, srbds=,
# retbleed=, spec_ctrl=, ssbd=, mitigations=)
# - 47 files across arch/x86 with __setup /
# early_param declarations (125 total entries)
#
# Converting boot parameters to a data table is not
# feasible because each is a `(string, handler_fn)`
# registration that the kernel parses at boot. R22
# means implementing the `__setup` / `early_param`
# infrastructure in the Red Bear kernel, then porting
# the most critical ~8-10 parameter handlers:
# tsc=, hpet=, pmtmr=, pci=, acpi=, noapic,
# idle=, mitigations=.
#
# The compiled-in `bootparam_quirk_table` is empty;
# runtime TOML is reserved for future parameter-driven
# rules that do fit a data model. No entries land in
# this commit.
#
# Reference: see QUIRKS-SYSTEM.md § R22 for the full
# follow-up plan. The audit's estimated 3-4 days for R22
# is dominated by porting the imperative handler code.