3.6 KiB
AXP313A / cpufreq candidate kernel
The production application version is intentionally unchanged. This directory describes the
separately named 6.1.31-matrix-axp313a1 kernel used to repair the WalnutPi ZeroW PMIC binding.
Source inputs are fixed to:
- WalnutPi Linux branch
6.1.31, commit30ff3fd5cf45417622b447a12e7a947402ffe34d. - Upstream MFD commit
75c8cb2f4cb218aaf4ea68cab08d6dbc96eeae15. - Upstream regulator commit
60fd7eb89670d2636ac3156881acbd103c6eba6a. - Upstream identifier fix
4628b804555773daa982d9578d89fe04fcdde374.
The build used the official GitHub archive named
walnutpi-linux-6.1.31-30ff3fd5.tar.gz; its measured SHA-256 is
8659bb3d64313c4693c3605374167a8145186e5c9d43eb771a52a7359699302f.
The fixed archive is registered at
发布更新相关/其他依赖/kernel-source/walnutpi-linux-6.1.31-30ff3fd5/ so the kernel can be
rebuilt without network access. It is a build input and is never copied into an IMG or OTA.
The exact production files accepted by the browser and real HUB75 GPIO tests are registered at
发布更新相关/其他依赖/aarch64-kernel/6.1.31-matrix-axp313a1/. Future IMG exports install this
precompiled payload and do not rebuild the kernel unless patches, DTS, or kernel configuration
change.
scripts/build_axp313a_kernel.sh accepts an already extracted source tree and a copy of the
running board's /boot/config-6.1.31. It never downloads dependencies. The three verbatim
upstream patches, the WalnutPi 6.1 reconciliation patch, and the board DTS patches are verified
against patches/SHA256SUMS before use. WalnutPi's branch already contains a partial AXP313A
backport, so the reconciliation patch asserts that baseline and completes the three pinned
upstream changes using the vendor kernel's older power-off API. The follow-up DTS patch keeps
the bootloader's DLDO1 VCC-IO rail explicitly always-on at 3.3V; DCDC3 remains at the measured
bootloader value of 1.10V so the candidate does not raise a non-CPU rail. The final local
build-only patch replaces a vendor UWE5622 Makefile's output-tree-relative include lookup with
Kbuild's $(srctree) path. It is required only so the unchanged board configuration can be
built in the isolated O= directory; it does not change driver logic. A second mechanical
build-only patch applies the same $(srctree) correction to the five Realtek module directories
identified in the first config audit. A third patch covers the separately enabled RTL8192EU
directory. A fourth covers the enabled CONFIG_88XXAU=m/RTL8812AU directory found by auditing
every vendor entry in the wireless parent Makefile, rather than only symbols prefixed RTL.
Its PHYDM include root is fixed in a separate final patch so each discovered build assumption
remains independently auditable. These patches do not change C source, feature selection, or
runtime paths. The RTL88x2CS CONFIG_RTL8822C branch has one additional TopDIR include fixed
to $(srctree) after the full module build reached that otherwise output-tree-relative file.
The install path is deliberately separate from the vendor kernel:
/boot/Image-matrix-axp313a1/boot/sun50i-h616-walnutpi-1b-matrix-axp313a1.dtb/boot/sun50i-h616-walnutpi-1b-emmc-matrix-axp313a1.dtb/lib/modules/6.1.31-matrix-axp313a1
The managed boot script consumes /boot/matrix-kernel-good once before each candidate boot.
Only matrix-axp313a-health.service recreates it after the kernel, AXP313A, cpufreq, application,
and HUB75 checks pass. If the candidate fails and reboots, the absent marker selects the original
Image and original DTB. Original boot files are retained as .matrix-original copies.