Compare commits

...

32 Commits

Author SHA1 Message Date
fa93fe06c4 README: bump to v1.13.2-k6.12.47-1, list new patches
Some checks failed
Check Upstream Updates / check-and-build (push) Failing after 58s
- Talos version badge: v1.12.4 → v1.13.2
- Image-tag example + upgrade-command example: v1.13.2-k6.12.47-1
- Add patches 0006 (grub EFI upgrade fallback), 0007 (acquire.go STATE
  wait for slow-init eMMC) and 0008 (imager --insecure for Overlay) to
  the patches table
- Note the slow-eMMC tolerance + canonical 3-CP validation in the
  "Reliable in-place upgrades" roadmap row
2026-05-25 21:43:58 -04:00
56960b09a8 Merge branch 'talos-v1.13.2-bump' for v1.13.2-k6.12.47-1 release
All checks were successful
Build Talos CM5 Image / build (push) Successful in 1h1m23s
Brings the Talos v1.13.2 / pkgs v1.13.0 bump and three Talos patches:
- 0006 grub EFI-at-/boot fallback for BOOT-less SBC Upgrade path
- 0007 acquire.go wait for STATE on slow-init disks (CM5 eMMC) — fixes
  the post-upgrade maintenance-mode regression on CM5 hardware
- 0008 imager respect --insecure for Overlay assets (build-tool fix)

Validated 2026-05-25 via a canonical 3-CP rolling upgrade on a freshly
flashed home-test cluster: .94/.95/.96 upgraded sequentially from v1.12.4
to v1.13.2-7, each came back stage=running with config preserved and
k8s Ready within ~5 min, no manual remediation, etcd quorum maintained.
2026-05-25 20:05:24 -04:00
19625ba8c0 patches: add 0008 imager respect --insecure for Overlay assets
The imager's `--insecure` flag covered BaseInstaller, ImageCache, and
SystemExtensions but not the Overlay or OverlayInstaller ContainerAssets.
When pulling those from a plain-HTTP local registry (e.g. for offline
or development builds), they always tried HTTPS and failed with
"http: server gave HTTP response to HTTPS client" even with the flag set.

This patch sets `ForceInsecure: cmdFlags.Insecure` on both overlay
asset references, matching how the other Inputs are handled.

Build-tool only — no effect on the running Talos OS. Lets `gmake installer`
work end-to-end against an insecure registry like 192.133.7.111:5001.
2026-05-25 20:04:38 -04:00
40bfac268d patches: add 0007 acquire.go wait for STATE on slow-init disks (CM5 eMMC)
After upgrade kexec into v1.13.2, CM5 eMMC takes ~2m13s between the SDHCI
controller registering and mmc0 actually becoming usable. The Talos config
acquire state machine (`acquire.go::stateDisk`) checks STATE in the first
seconds of boot, sees `VolumePhaseMissing`, and transitions one-way to
`stateEmbedded` -> `stateMaintenanceEnter`. When STATE later becomes
ready, the state machine doesn't re-enter `stateDisk`, so the node stays
in maintenance forever despite the on-disk config.yaml being intact.

This patch makes stateDisk tolerate transient phase=missing for up to
5 minutes (stateMissingDiskTimeout) before falling through to embedded.
A 5-second ticker on the outer Run loop ensures the timeout can fire
even when no further volume-status events arrive (e.g. truly missing
STATE on a fresh install).

Validated 2026-05-25 via canonical 3-CP rolling upgrade on a freshly
flashed v1.12.4 home-test cluster: all 3 blades upgraded sequentially
to v1.13.2-7 (this patch), each came back stage=running with config
loaded automatically and k8s Ready within ~5 min, no manual remediation.
See doc-compute-blade-kubernetes/talos-upgrade-validation/session-2026-05-25/E2E-VALIDATED.md.

Fast-init hardware sees no change — STATE reaches ready within seconds
and the existing path runs.
2026-05-25 20:04:30 -04:00
8fada1ebfe patches: restore 0006 grub EFI-at-/boot fallback for BOOT-less SBC Upgrade
This patch file mirrors a commit that already existed in checkouts/talos
(`a50511de7` — "grub: EFI-at-/boot fallback for BOOT-less SBC layout in
Upgrade path") but was never landed back into patches/siderolabs/talos/.
Extracted with `git format-patch` from the checkout so subsequent
`make patches` runs reproduce the same tree on a fresh clone.

Complements 0005 by handling the Upgrade code-path (in addition to the
fresh-install code-path 0005 already covers) for SBC layouts that don't
have a separate BOOT partition.
2026-05-25 20:04:17 -04:00
d84ddc491a talos: restore modules-arm64.txt patch; metal step needs --network=host
Two complementary fixes after end-to-end local installer build:

1. New talos/0001 patch — Replace hack/modules-arm64.txt with the
   intersection of upstream's initramfs list and our RPi 6.12.47
   build's actual modules (155 entries, down from upstream's 241).
   Initramfs target was failing with exit 123 in xargs install -D
   because upstream lists modules our kernel doesn't build (SATA,
   HID device drivers, some upstream-only crypto helpers).

2. Makefile: add --network=host to the metal docker run.
   The installer step already had it, but the metal step did not.
   For local-registry builds (REGISTRY=127.0.0.1:5001), the imager
   container needs --network=host to reach the host's registry to
   pull the overlay image when generating the raw disk image.
   Harmless on CI (no behavioural change against docker.io).

Validated locally end-to-end:
- kernel image:    234MB  (RPi 6.12.47 with RP1 driver support)
- overlay image:    9.7MB (U-Boot + firmware + DTBs)
- imager image:   346MB
- installer-base: 105MB
- installer:      ~100MB
- metal-arm64.raw.zst: 94MB (final flashable disk image)
2026-05-18 19:03:12 -04:00
18fed4ec51 pkgs config-arm64: add missing RP1 symbols to fix kernel link
The v1.13.2 rebase of pkgs 0001 only restored some RP1-related kernel
options (PINCTRL_RP1, COMMON_CLK_RP1, PINCTRL_BCM2712) because those
hunks happened to apply cleanly against upstream v1.13.0's 6.18.24-era
config-arm64. Several others were silently dropped, causing:

    ld.lld: error: undefined symbol: rp1_get_platform

at the vmlinux link step (~19 min into local kernel build).

Re-added:
- CONFIG_MFD_RP1=y                 (defines rp1_get_platform)
- CONFIG_COMMON_CLK_RP1_SDIO=y
- CONFIG_FB_BCM2708=y              (RPi framebuffer)
- CONFIG_PWM_PIO_RP1=y             (RPi PWM via PIO)
- CONFIG_PWM_BRCMSTB=y             (was "not set")

Local build now succeeds: svrnty/talos-rpi5-kernel:v1.13.0-local
loaded into local Docker (234MB).
2026-05-18 18:43:22 -04:00
9638fb44f1 Bump to Talos v1.13.2 / pkgs v1.13.0
- Makefile: TALOS_VERSION v1.12.4 -> v1.13.2, PKG_VERSION v1.12.0 -> v1.13.0
- siderolabs/talos 0001 (modules-arm64.txt): removed; hack/modules-arm64.txt
  is a CI assertion file with no build-time references. Will be regenerated
  from a real RPi 6.12.47 kernel build as a follow-up.
- siderolabs/talos 0005 (BOOT partition GRUB): rebased onto v1.13.2's
  Install/Upgrade refactor. installEFI struct field is gone upstream; ported
  the BOOT-partition probe + EFI-at-/boot fallback to work with the new
  efiFound local var and added a bootFromEFI struct field for runGrubInstall.
- siderolabs/pkgs 0001: rebased onto v1.13.0. Kernel config header bumped
  to 6.12.47. config-arm64 not fully regenerated for RPi 6.12.47 yet -- some
  upstream v1.13 6.18.x symbols (LIBIE_ADMINQ, IDPF, etc) remain in the file
  but the kernel's Kconfig silently drops unknown options during build.
2026-05-18 17:20:29 -04:00
Mathias Beaulieu-Duncan
e1d9add5aa Use dedicated talos-rpi5 runner label for workflows
Some checks failed
Check Upstream Updates / check-and-build (push) Failing after 1s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 18:27:07 -05:00
118ef4dcc9 Add serial console support, remove wrong debug UART patch
Some checks failed
Check Upstream Updates / check-and-build (push) Failing after 6s
Enable GPIO UART0 on Pi5/CM5 via dtoverlay=uart0-pi5 in
configTxtAppend. Remove the old 0002 patch that targeted the
debug UART (ttyAMA10) — Compute Blade uses GPIO 14/15 (ttyAMA0).
Renumber overlay patches (old 0003 becomes 0002).

Update README with tested serial console docs: wiring diagram,
even parity config, 3.3V requirement, and read-only limitation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 14:04:39 -05:00
f604f468b7 Add Gitea releases badge to README
All checks were successful
Check Upstream Updates / check-and-build (push) Successful in 5s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 16:57:01 -05:00
d260fe20ab Add reference architecture for production CM5 clusters
Document recommended storage layouts per node role:
- Control planes: NVMe boot for fast etcd I/O
- Postgres/storage: eMMC boot + NVMe data at /var/mnt/data
- Compute workers: eMMC only, stateless

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 16:53:19 -05:00
4e867e2055 Fix boot failure: remove duplicate config.txt section headers
All checks were successful
Build Talos CM5 Image / build (push) Successful in 3m38s
The [pi5]/[all] section headers in configTxtAppend created duplicate
sections when concatenated with the overlay's base config.txt, which
already ends with [pi5]/[all]. The RPi firmware parser choked on the
duplicate headers, preventing NVMe boot on fresh installs.

Remove the section headers — dtparam and overclock settings now land
under the existing [all] scope from the base config.txt.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 13:00:54 -05:00
d4a55c670c Apply SBC overlay upgrade fix, add PCIe Gen 3 docs
All checks were successful
Build Talos CM5 Image / build (push) Successful in 3m11s
Check Upstream Updates / check-and-build (push) Successful in 5s
Apply overlay patch 0003 (EFI mount path detection for SBC layouts)
in the build so upgrades write firmware/config.txt to the correct
path. Update README with patch 0003, PCIe Gen 3 in features list,
and expanded PCIe Gen 3 instructions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 14:29:17 -05:00
5152b6cb44 Simplify config: use configTxtAppend, drop SBC overlay patch
All checks were successful
Build Talos CM5 Image / build (push) Successful in 2m41s
Check Upstream Updates / check-and-build (push) Successful in 5s
Config.txt is set correctly at flash time. Upgrades via talosctl
don't override firmware config (overlay writes to wrong path on
SBC layout, which is harmless). Users who need custom config.txt
set it once during initial flash.

- Use configTxtAppend with PCIe Gen 3 + overclock
- Put dtparam=pciex1_gen=3 in [pi5] section
- Remove patch 0003 (SBC overlay upgrade fix) — too risky,
  deleted GRUB's BOOTAA64.EFI in v8
- Remove full configTxt replacement mode

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 16:47:42 -05:00
338a2c0021 Fix SBC overlay upgrade: preserve GRUB, enable PCIe Gen 3
All checks were successful
Build Talos CM5 Image / build (push) Successful in 2m58s
The v8 overlay patch deleted /boot/EFI/ to clean up stale firmware,
but this also removed GRUB's BOOTAA64.EFI, bricking the node.

Fix: keep SBC layout detection (write to /boot/ not /boot/EFI/) but
remove the os.RemoveAll that destroyed GRUB. Stale firmware files in
/boot/EFI/ are harmless.

Re-enable PCIe Gen 3 (dtparam=pciex1_gen=3) and full configTxt mode,
now that the overlay installer correctly writes to the EFI partition
root on SBC layouts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 15:50:52 -05:00
b5201f7906 Revert PCIe Gen 3 config: restore safe defaults for public image
All checks were successful
Build Talos CM5 Image / build (push) Successful in 2m55s
Check Upstream Updates / check-and-build (push) Successful in 4s
The PCIe Gen 3 changes (dtparam=pciex1_gen=3, full configTxt
replacement, SBC overlay upgrade fix) caused boot failures during
talosctl upgrade on CM5 nodes. Revert to the pre-Gen3 state:
- configTxtAppend (overclock only) instead of full configTxt replacement
- Remove 0003 overlay patch application (kept in patches/ for future use)

PCIe Gen 3 support will be re-added after root cause analysis.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 20:27:37 -05:00
91d86de629 Fix SBC overlay upgrade + simplify PCIe Gen 3 config
All checks were successful
Build Talos CM5 Image / build (push) Successful in 3m22s
Two fixes in one:

1. SBC overlay upgrade path: the overlay installer was always writing
   to /boot/EFI, but on SBC layouts (no BOOT partition) the GRUB code
   mounts EFI at /boot. Config.txt and firmware ended up in a stale
   /boot/EFI/ subdirectory, invisible to the firmware. The installer
   now detects the SBC layout and writes to the correct location.

2. PCIe Gen 3: dtparam=pciex1_gen=3 works on CM5 (the DT overrides
   exist), so the custom pcie-gen3.dtbo overlay is unnecessary.
   Simplified to just use dtparam in config.txt.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 19:45:39 -05:00
3cfbe794f7 Fix PCIe Gen 3 on CM5: custom DT overlay for missing pciex1 alias
All checks were successful
Build Talos CM5 Image / build (push) Successful in 3m20s
The CM5 DTB (bcm2712-rpi-cm5-cm5io.dtb) lacks the pciex1 alias that
the Pi 5 DTB provides, making dtparam=pciex1_gen=3 silently fail.

Add a custom device tree overlay (pcie-gen3.dtbo) that targets
/axi/pcie@1000110000 directly to set max-link-speed = <3>. The overlay
is embedded in the SBC installer and written to /boot/EFI/overlays/
during install/upgrade.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 19:08:26 -05:00
a9cc56e315 Fix PCIe Gen 3: move dtparam into [pi5] section of config.txt
All checks were successful
Build Talos CM5 Image / build (push) Successful in 2m53s
The dtparam=pciex1_gen=3 was being appended after the [all] section,
but RPi firmware requires PCIe dtparams in the [pi5] section.
Switch from configTxtAppend to full configTxt replacement to control
section ordering. Also add dtparam=pciex1 to explicitly enable the
external PCIe link.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 18:45:05 -05:00
66a3d11984 Enable PCIe Gen 3 for NVMe: ~800 MB/s vs ~375 MB/s Gen 2
All checks were successful
Build Talos CM5 Image / build (push) Successful in 3m25s
Adds dtparam=pciex1_gen=3 to config.txt overlay. Benchmarked Gen 2 baseline
on all 3 pg nodes showing consistent ~375 MB/s write throughput, bottlenecked
by the Gen 2 x1 lane limit.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 18:09:30 -05:00
754f49c562 Update README: bump example tag to v1.12.4-k6.12.47-4
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 13:51:17 -05:00
4fed64844a Fix GRUB patch: skip sd-boot probe on arm64 for first upgrade
All checks were successful
Build Talos CM5 Image / build (push) Successful in 4m50s
On fresh SBC images, the EFI partition has sd-boot UKI files but no
GRUB config. During upgrade, Probe() found sd-boot and used it, which
failed because RPi5/CM5 firmware lacks EFI SetVariableRT support.

Add arm64 guard to Probe(): when no GRUB config is found, skip sd-boot
probing and return a fresh GRUB config. This transitions from sd-boot
to GRUB on the first upgrade from a fresh flash.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 13:50:42 -05:00
8c562c7155 Update README: NVMe boot tested on Compute Blade
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 13:18:24 -05:00
fc020410f1 Update README: in-place upgrades tested, add patches table
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 12:40:13 -05:00
ca36438d12 Add GRUB SBC upgrade patch: handle missing BOOT partition
All checks were successful
Build Talos CM5 Image / build (push) Successful in 3m15s
Patch 0005 fixes talosctl upgrade on SBC layouts (RPi5/CM5) where
the disk has no separate BOOT (XFS) partition — only EFI (VFAT).
Falls back to mounting EFI at /boot for probe, install, and revert.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 11:37:05 -05:00
6cffb4e311 Add opentree fallback patch for RPi downstream kernel (<6.15)
All checks were successful
Build Talos CM5 Image / build (push) Successful in 2m56s
Check Upstream Updates / check-and-build (push) Successful in 4s
Talos assumes bare metal kernels support open_tree on anonymous FS
(added in 6.15). The RPi downstream kernel (6.12.x) does not, causing
shadow bind mount failures for /etc files and cascading network init
failures. This patch removes the InContainer() gate so the capability
check runs on all platforms.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 14:25:03 -05:00
Mathias Beaulieu-Duncan
5c81953278 Fix modules patch: ip6_gre.ko not in RPi downstream kernel
All checks were successful
Build Talos CM5 Image / build (push) Successful in 3m17s
ip6_gre.ko exists in Talos upstream module list (v1.12.4) but not
in the RPi downstream kernel build. Only add it to the removal side
of the patch, not our custom module list.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 10:55:45 -05:00
Mathias Beaulieu-Duncan
a4e934a4e9 Fix CI PATH: prepend GNU sed via GITHUB_PATH instead of replacing PATH
Some checks failed
Build Talos CM5 Image / build (push) Failing after 28s
The hardcoded job-level PATH env wiped out nvm/node, breaking
actions/checkout. Use GITHUB_PATH to prepend GNU sed's gnubin
directory while preserving the runner's inherited PATH.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 10:54:34 -05:00
Mathias Beaulieu-Duncan
6c75585c0a Bump upstream: v1.12.4-k6.12.47-1
Some checks failed
Build Talos CM5 Image / build (push) Failing after 1s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 10:53:12 -05:00
Mathias Beaulieu-Duncan
37f9292ef1 Update arm64 modules patch for Talos v1.12.4 (add ip6_gre)
Talos v1.12.4 added kernel/net/ipv6/ip6_gre.ko to modules-arm64.txt.
Update our patch to match. Also silence gmake checkouts-clean stdout
in auto-update.sh to prevent it leaking into GITHUB_OUTPUT.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 10:50:45 -05:00
Mathias Beaulieu-Duncan
dc37b435c3 Fix GNU sed PATH in CI workflows for macOS runner
BSD sed on macOS requires `sed -i ''` but auto-update.sh uses GNU
`sed -i` syntax. The workflows installed gnu-sed via Homebrew but
never added it to PATH, causing "invalid command code M" failures.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 10:45:46 -05:00
17 changed files with 1200 additions and 815 deletions

View File

@ -18,7 +18,7 @@ on:
jobs: jobs:
build: build:
runs-on: [self-hosted, macos] runs-on: talos-rpi5
timeout-minutes: 180 timeout-minutes: 180
steps: steps:
@ -33,6 +33,7 @@ jobs:
for pkg in make gnu-sed crane; do for pkg in make gnu-sed crane; do
brew list --formula "$pkg" &>/dev/null || brew install "$pkg" brew list --formula "$pkg" &>/dev/null || brew install "$pkg"
done done
echo "/opt/homebrew/opt/gnu-sed/libexec/gnubin" >> "$GITHUB_PATH"
gmake --version | head -1 gmake --version | head -1
- name: Set up Docker Buildx - name: Set up Docker Buildx

View File

@ -13,7 +13,7 @@ on:
jobs: jobs:
check-and-build: check-and-build:
runs-on: [self-hosted, macos] runs-on: talos-rpi5
timeout-minutes: 15 timeout-minutes: 15
steps: steps:
@ -27,6 +27,7 @@ jobs:
for pkg in make gnu-sed crane jq; do for pkg in make gnu-sed crane jq; do
brew list --formula "$pkg" &>/dev/null || brew install "$pkg" brew list --formula "$pkg" &>/dev/null || brew install "$pkg"
done done
echo "/opt/homebrew/opt/gnu-sed/libexec/gnubin" >> "$GITHUB_PATH"
- name: Check for upstream updates - name: Check for upstream updates
id: check id: check

View File

@ -11,8 +11,8 @@
# make release # Tag and push release images # make release # Tag and push release images
# make clean # Remove checkouts and build artifacts # make clean # Remove checkouts and build artifacts
PKG_VERSION = v1.12.0 PKG_VERSION = v1.13.0
TALOS_VERSION = v1.12.3 TALOS_VERSION = v1.13.2
SBCOVERLAY_VERSION = main SBCOVERLAY_VERSION = main
# Prefer GNU coreutils (macOS: brew install gnu-sed coreutils) # Prefer GNU coreutils (macOS: brew install gnu-sed coreutils)
@ -193,7 +193,7 @@ installer:
$(ATTESTATION_ARGS) \ $(ATTESTATION_ARGS) \
-t $(INSTALLER_IMAGE):$(TALOS_TAG) --push - && \ -t $(INSTALLER_IMAGE):$(TALOS_TAG) --push - && \
docker \ docker \
run --rm -t -v ./_out:/out -v /dev:/dev --privileged \ run --rm -t -v ./_out:/out -v /dev:/dev --privileged --network=host \
$(IMAGER_IMAGE):$(TALOS_TAG) \ $(IMAGER_IMAGE):$(TALOS_TAG) \
metal --arch arm64 \ metal --arch arm64 \
--base-installer-image="$(INSTALLER_IMAGE):$(TALOS_TAG)" \ --base-installer-image="$(INSTALLER_IMAGE):$(TALOS_TAG)" \

159
README.md
View File

@ -2,6 +2,7 @@
Custom Talos Linux images for Raspberry Pi 5 / CM5 on Compute Blade hardware. Custom Talos Linux images for Raspberry Pi 5 / CM5 on Compute Blade hardware.
<a href="https://git.openharbor.io/svrnty/talos-rpi5/releases" target="_blank"><img src="https://img.shields.io/badge/releases-Gitea-green?logo=gitea&logoColor=white" alt="Gitea Releases"></a>
<a href="https://hub.docker.com/r/svrnty/talos-rpi5" target="_blank"><img src="https://img.shields.io/docker/v/svrnty/talos-rpi5?sort=semver&label=talos-rpi5&logo=docker&arch=arm64" alt="Docker Hub"></a> <a href="https://hub.docker.com/r/svrnty/talos-rpi5" target="_blank"><img src="https://img.shields.io/docker/v/svrnty/talos-rpi5?sort=semver&label=talos-rpi5&logo=docker&arch=arm64" alt="Docker Hub"></a>
<a href="https://hub.docker.com/r/svrnty/talos-rpi5" target="_blank"><img src="https://img.shields.io/docker/pulls/svrnty/talos-rpi5?logo=docker" alt="Docker Pulls"></a> <a href="https://hub.docker.com/r/svrnty/talos-rpi5" target="_blank"><img src="https://img.shields.io/docker/pulls/svrnty/talos-rpi5?logo=docker" alt="Docker Pulls"></a>
<a href="https://hub.docker.com/r/svrnty/talos-rpi5" target="_blank"><img src="https://img.shields.io/docker/image-size/svrnty/talos-rpi5?sort=semver&logo=docker&arch=arm64" alt="Docker Image Size"></a> <a href="https://hub.docker.com/r/svrnty/talos-rpi5" target="_blank"><img src="https://img.shields.io/docker/image-size/svrnty/talos-rpi5?sort=semver&logo=docker&arch=arm64" alt="Docker Image Size"></a>
@ -12,7 +13,7 @@ The official Talos Image Factory does not support CM5 — the mainline kernel la
| Component | Version | | Component | Version |
|-----------|---------| |-----------|---------|
| Talos Linux | <a href="https://github.com/siderolabs/talos" target="_blank"><img src="https://img.shields.io/badge/talos-v1.12.3-blue?logo=kubernetes&logoColor=white" alt="Talos version"></a> | | Talos Linux | <a href="https://github.com/siderolabs/talos" target="_blank"><img src="https://img.shields.io/badge/talos-v1.13.2-blue?logo=kubernetes&logoColor=white" alt="Talos version"></a> |
| RPi Kernel | <a href="https://github.com/raspberrypi/linux" target="_blank"><img src="https://img.shields.io/badge/kernel-6.12.47-blue?logo=linux&logoColor=white" alt="Kernel version"></a> | | RPi Kernel | <a href="https://github.com/raspberrypi/linux" target="_blank"><img src="https://img.shields.io/badge/kernel-6.12.47-blue?logo=linux&logoColor=white" alt="Kernel version"></a> |
| iscsi-tools | <a href="https://github.com/siderolabs/extensions" target="_blank"><img src="https://img.shields.io/badge/iscsi--tools-v0.1.6-blue?logo=docker" alt="iscsi-tools version"></a> | | iscsi-tools | <a href="https://github.com/siderolabs/extensions" target="_blank"><img src="https://img.shields.io/badge/iscsi--tools-v0.1.6-blue?logo=docker" alt="iscsi-tools version"></a> |
| util-linux-tools | <a href="https://github.com/siderolabs/extensions" target="_blank"><img src="https://img.shields.io/badge/util--linux--tools-2.40.4-blue?logo=docker" alt="util-linux-tools version"></a> | | util-linux-tools | <a href="https://github.com/siderolabs/extensions" target="_blank"><img src="https://img.shields.io/badge/util--linux--tools-2.40.4-blue?logo=docker" alt="util-linux-tools version"></a> |
@ -25,13 +26,13 @@ Release images are published to <a href="https://hub.docker.com/r/svrnty/talos-r
v<talos>-k<kernel>-<revision> v<talos>-k<kernel>-<revision>
``` ```
For example: `v1.12.3-k6.12.47-2` For example: `v1.13.2-k6.12.47-1`
| Segment | Meaning | | Segment | Meaning |
|---------|---------| |---------|---------|
| `v1.12.3` | Upstream Talos Linux version | | `v1.13.2` | Upstream Talos Linux version |
| `k6.12.47` | RPi downstream kernel version | | `k6.12.47` | RPi downstream kernel version |
| `2` | Build revision (bumped for config/patch changes on the same upstream versions) | | `1` | Build revision (bumped for config/patch changes on the same upstream versions) |
## Usage ## Usage
@ -47,29 +48,62 @@ zstd -d metal-arm64.raw.zst -o metal-arm64.raw
### Upgrade an existing node ### Upgrade an existing node
```bash ```bash
talosctl upgrade --image docker.io/svrnty/talos-rpi5:v1.12.3-k6.12.47-2 talosctl upgrade --image docker.io/svrnty/talos-rpi5:v1.13.2-k6.12.47-1 --nodes <node-ip>
``` ```
> **Note:** In-place upgrades use GRUB with `--no-nvram` to work around the RPi5/CM5 `SetVariableRT` firmware limitation. This patch is included but not yet tested in production — re-flashing the disk image is the proven fallback. In-place upgrades are fully supported. The image includes patches to force GRUB with `--no-nvram` on arm64 (working around the RPi5/CM5 `SetVariableRT` firmware limitation) and to handle the SBC EFI-only disk layout (no separate BOOT partition).
```bash
# Fallback: re-flash method
zstd -d metal-arm64.raw.zst -o metal-arm64.raw
# Flash to eMMC/SD via your preferred tool
```
### What's included ### What's included
- RPi downstream kernel with CM5/RP1 support (4K page size, aligned with upstream Talos) - RPi downstream kernel with CM5/RP1 support (4K page size, aligned with upstream Talos)
- GRUB bootloader with `--no-nvram` for reliable `talosctl upgrade` on RPi5/CM5 - GRUB bootloader with `--no-nvram` for reliable `talosctl upgrade` on RPi5/CM5
- SBC EFI-only boot layout support (probe, install, revert all fall back to EFI partition when BOOT partition is absent)
- Fallback to classic bind mounts on kernels without `open_tree` support (Linux <6.15)
- Overclock: 2.6GHz (`arm_freq=2600`, `over_voltage_delta=50000`, `arm_boost=1`) - Overclock: 2.6GHz (`arm_freq=2600`, `over_voltage_delta=50000`, `arm_boost=1`)
- PCIe Gen 3 enabled for NVMe (~800 MB/s, via `dtparam=pciex1_gen=3` in `config.txt`)
- Serial console on GPIO UART0 (`dtoverlay=uart0-pi5`, 115200 baud, even parity)
- Extensions: `iscsi-tools`, `util-linux-tools` - Extensions: `iscsi-tools`, `util-linux-tools`
## Known issues ## Known issues
### ~~No serial console output after boot~~ (Fixed) ### Serial console (read-only)
The overlay was using `console=ttyAMA0` (GPIO 14/15 UART) but the RPi5/CM5 debug UART is `ttyAMA10`. Fixed by switching to `console=ttyAMA10,115200` and adding `earlycon=pl011,0x107d001000,115200n8` for early boot output. Also added `[pi5] enable_uart=0` to `config.txt` to match upstream and avoid U-Boot compatibility issues. The serial console outputs kernel logs, boot messages, and panic traces over GPIO UART0 (`ttyAMA0`) at 115200 baud with **even parity**. Talos Linux has no interactive shell — the console is **read-only** and cannot accept input.
On Pi5/CM5, GPIO 14/15 are not mapped to UART by default (unlike Pi4). The `dtoverlay=uart0-pi5` device tree overlay is required and is applied via `configTxtAppend` (after `disable-bt` and `disable-wifi` — ordering matters).
#### Wiring (Compute Blade)
Connect a **3.3V** USB-to-UART adapter to the front UART header (3-pin: GND, RX, TX). Only two wires are needed for read-only monitoring:
```
USB-UART Adapter Compute Blade (Front UART)
┌──────────────┐ ┌──────────────┐
│ GND ├──────────┤ GND │
│ RX ├──────────┤ TX │
│ TX │ │ RX │
└──────────────┘ └──────────────┘
3.3V logic 3.3V GPIO
```
- **Adapter RX** connects to **Blade TX** (adapter receives data from the blade)
- **GND** to **GND** (common ground reference)
- Adapter TX is not needed for read-only monitoring (Talos has no shell to send input to)
> **Warning:** CM5 GPIO is **3.3V only**. A 5V logic adapter will crash or damage the board.
Tested with: [USB to TTL Serial Cable (FT232RNL)](https://www.pishop.ca/product/usb-to-ttl-serial-cable-for-raspberry-pi-5-debugging-ft232rnl-chip/) set to 3.3V mode.
#### Reading the console
```bash
# macOS — use screen with even parity
screen /dev/cu.usbserial-XXXXXXXX 115200,,cse
# Linux — configure with stty, then read with cat
stty -F /dev/ttyUSB0 115200 cs8 parenb -parodd
cat /dev/ttyUSB0
```
*Upstream: <a href="https://github.com/talos-rpi5/talos-builder/issues/4" target="_blank">talos-builder#4</a>* *Upstream: <a href="https://github.com/talos-rpi5/talos-builder/issues/4" target="_blank">talos-builder#4</a>*
@ -79,18 +113,35 @@ Talos ignores the `machine.install.disk` config field on SBC platforms. You **mu
*Upstream: <a href="https://github.com/talos-rpi5/talos-builder/issues/22" target="_blank">talos-builder#22</a>* *Upstream: <a href="https://github.com/talos-rpi5/talos-builder/issues/22" target="_blank">talos-builder#22</a>*
## Patches
| Patch | Target | Description |
|-------|--------|-------------|
| `0001` (pkgs) | Kernel | RPi downstream kernel 6.12.x with CM5/RP1 device tree and driver support |
| `0001` (talos) | Modules | arm64 kernel module list for RPi downstream kernel |
| `0002` (talos) | GRUB | `--no-nvram` for `grub-install` on arm64 (U-Boot lacks EFI `SetVariable`) |
| `0003` (talos) | Bootloader | Force GRUB over sd-boot on arm64 (sd-boot crashes without EFI runtime) |
| `0004` (talos) | Runtime | Fallback to classic bind mounts on kernels without `open_tree` (Linux <6.15) |
| `0005` (talos) | GRUB | Handle missing BOOT partition for SBC EFI-only disk layouts (install path) |
| `0006` (talos) | GRUB | EFI-at-/boot fallback for BOOT-less SBC layouts on the upgrade path |
| `0007` (talos) | Config | Wait up to 5 min for STATE volume on slow-init disks (CM5 eMMC) — prevents maintenance-mode fall-through on `talosctl upgrade` |
| `0008` (talos) | Imager | Respect `--insecure` flag for Overlay and OverlayInstaller assets (build-tool only) |
| `0001` (overlay) | Toolchain | Bump Go to 1.24.13 (CVE fix) |
| `0002` (overlay) | Upgrade | Detect EFI mount path for SBC layouts (no BOOT partition) |
## Roadmap ## Roadmap
This project targets production-ready Talos clusters on RPi5/CM5 hardware. This project targets production-ready Talos clusters on RPi5/CM5 hardware.
| Status | Milestone | Description | | Status | Milestone | Description |
|--------|-----------|-------------| |--------|-----------|-------------|
| Untested | **4K page size** | Aligned with upstream Talos kernel config. Reduces memory overhead and improves workload compatibility (Longhorn, jemalloc, F2FS, etc.). | | Tested | **4K page size** | Aligned with upstream Talos kernel config. Reduces memory overhead and improves workload compatibility (Longhorn, jemalloc, F2FS, etc.). |
| Untested | **Reliable in-place upgrades** | Force GRUB bootloader with `--no-nvram` on arm64 to work around the `SetVariableRT` firmware limitation (<a href="https://github.com/talos-rpi5/talos-builder/issues/21" target="_blank">talos-builder#21</a>). | | Tested | **Reliable in-place upgrades** | Force GRUB bootloader with `--no-nvram` on arm64, handle SBC EFI-only disk layout, tolerate slow eMMC init on CM5 (waits up to 5 min for STATE before falling back to maintenance). Verified end-to-end via canonical 3-CP rolling upgrade `v1.12.4 → v1.13.2`. |
| Untested | **Serial console fix** | Use correct debug UART (`ttyAMA10`) with `earlycon` for early boot output. | | Tested | **Kernel <6.15 compatibility** | Unconditional `open_tree` capability check — falls back to classic bind mounts on RPi downstream kernel 6.12.x. |
| Untested | **NVMe boot support** | `dd` image to NVMe + set EEPROM `BOOT_ORDER=0xf416` and `PCIE_PROBE=1`. Kernel has `CONFIG_BLK_DEV_NVME=y` built-in. | | Tested | **Serial console** | GPIO UART0 (`ttyAMA0`) via `dtoverlay=uart0-pi5`. Read-only output at 115200 baud, even parity. Verified on Compute Blade with FT232RNL adapter. |
| Tested | **NVMe boot support** | `dd` image to NVMe + set EEPROM `BOOT_ORDER=0xf416` and `PCIE_PROBE=1`. Verified on 1TB Kingston NVMe on Compute Blade. |
## NVMe boot (untested) ## NVMe boot
The kernel has NVMe built-in (`CONFIG_BLK_DEV_NVME=y`), so booting from NVMe should work by flashing the disk image directly and configuring the RPi5/CM5 EEPROM. The kernel has NVMe built-in (`CONFIG_BLK_DEV_NVME=y`), so booting from NVMe should work by flashing the disk image directly and configuring the RPi5/CM5 EEPROM.
@ -135,13 +186,79 @@ Power on. The RPi firmware should find the boot partition on NVMe, load U-Boot,
### Optional: enable PCIe Gen 3 ### Optional: enable PCIe Gen 3
Add to your `configTxtAppend` overlay option or directly to `config.txt` on the boot partition: PCIe Gen 3 doubles NVMe throughput (~400 MB/s → ~800 MB/s). Not officially certified by Raspberry Pi but stable on most NVMe drives.
**New installs** — PCIe Gen 3 is enabled by default in images built from this repo (`config.txt.append` includes `dtparam=pciex1_gen=3`).
**Existing nodes** — After a `talosctl upgrade`, the overlay rewrites `config.txt` with the baked-in settings (including PCIe Gen 3). If you need to enable it manually on an older image:
1. Power off the node and remove the NVMe drive
2. Connect via USB adapter and mount the first (EFI) partition
3. Add to `config.txt` under the `[pi5]` section:
```ini ```ini
dtparam=pciex1_gen=3 dtparam=pciex1_gen=3
``` ```
4. Unmount, reinstall the drive, and power on
This doubles throughput (~400 MB/s Gen 2 to ~800 MB/s Gen 3). Not officially certified by Raspberry Pi but works on most NVMe drives. To verify after boot:
```bash
talosctl -n <ip> dmesg | grep -i pcie
# Look for "Gen 3" in the PCIe link speed output
```
## Reference architecture
Recommended storage layout for production Talos clusters on CM5 Compute Blade hardware. Each CM5 has a 32GB eMMC and an M.2 NVMe slot.
| Role | Boot disk | NVMe | EEPROM `BOOT_ORDER` | Rationale |
|------|-----------|------|---------------------|-----------|
| **Control plane** | NVMe | Talos OS | `0xf416` (NVMe first) | etcd lives on the STATE partition — NVMe gives ~800 MB/s sequential and ~50K random IOPS for fast consensus and snapshot I/O. |
| **Postgres / storage** | eMMC | Data (`/var/mnt/data`) | `0xf214` (eMMC first) | Talos OS on eMMC keeps `talosctl upgrade` away from the data drive. The full 1TB NVMe is dedicated to database storage via `machine.disks`. |
| **Compute workers** | eMMC | None | `0xf214` (eMMC first) | Stateless workloads — no local storage needed. eMMC is more than enough for Talos OS (~2.2GB used). |
### Storage configuration
**Control planes** — no extra config needed. Talos installs to the NVMe automatically when it's the boot disk.
**Postgres / storage nodes** — add `machine.disks` to mount the NVMe as a data volume:
```yaml
machine:
disks:
- device: /dev/nvme0n1
partitions:
- mountpoint: /var/mnt/data
```
Talos automatically partitions, formats (XFS), and mounts the NVMe on first boot. The data persists across `talosctl upgrade` since upgrades only touch the boot disk (eMMC).
**Compute workers** — no storage config needed.
### EEPROM setup
All CM5 modules require `PCIE_PROBE=1` for NVMe detection on Compute Blade (non-HAT+ carrier). Set via `rpiboot`:
```ini
# recovery/boot.conf
BOOT_ORDER=0xf416 # NVMe-first (control planes)
# or
BOOT_ORDER=0xf214 # eMMC-first (storage/compute workers)
PCIE_PROBE=1 # always required
```
### Overclock
All node types share the same overclock config (baked into the image via `config.txt.append`):
```ini
dtparam=pciex1_gen=3
dtoverlay=uart0-pi5
arm_freq=2600
over_voltage_delta=50000
arm_boost=1
```
Verified stable at 44.6°C max under full CPU + memory + disk stress across 10 nodes with Compute Blade heatsinks.
## Building ## Building

View File

@ -1,3 +1,8 @@
# Enable PCIe Gen 3 for NVMe (~800 MB/s vs ~400 MB/s Gen 2)
dtparam=pciex1_gen=3
# Enable GPIO UART0 (ttyAMA0) on Pi5/CM5 for serial console
# Must load AFTER disable-bt and disable-wifi overlays in config.txt
dtoverlay=uart0-pi5
# CM5 Overclock — 2.6GHz stable on Compute Blade with heatsink # CM5 Overclock — 2.6GHz stable on Compute Blade with heatsink
arm_freq=2600 arm_freq=2600
over_voltage_delta=50000 over_voltage_delta=50000

View File

@ -1,27 +1,27 @@
From d4788cfac4085fd281d2849cc740a9cbfd83a36b Mon Sep 17 00:00:00 2001 From d60ac2d35158faae78899da5f03479498ac6b317 Mon Sep 17 00:00:00 2001
From: Patrick Hunziker <patrick@hunziker.io> From: Mathias Beaulieu-Duncan <mathias@svrnty.io>
Date: Mon, 22 Sep 2025 18:47:02 +0200 Date: Sat, 14 Feb 2026 13:14:00 -0500
Subject: [PATCH] Patched for Raspberry Pi 5 Subject: [PATCH] Patched for Raspberry Pi 5
--- ---
Pkgfile | 8 +- Pkgfile | 8 +-
kernel/build/config-arm64 | 412 +++++++++++++++++++++++--------------- kernel/build/config-arm64 | 315 ++++++++++++++++++++++++++------------
kernel/build/pkg.yaml | 2 +- kernel/build/pkg.yaml | 2 +-
kernel/prepare/pkg.yaml | 6 +- kernel/prepare/pkg.yaml | 6 +-
4 files changed, 263 insertions(+), 165 deletions(-) 4 files changed, 222 insertions(+), 109 deletions(-)
diff --git a/Pkgfile b/Pkgfile diff --git a/Pkgfile b/Pkgfile
index 8799e13..209c74c 100644 index a272582..ce10086 100644
--- a/Pkgfile --- a/Pkgfile
+++ b/Pkgfile +++ b/Pkgfile
@@ -91,10 +91,10 @@ vars: @@ -97,10 +97,10 @@ vars:
kspp_sha256: 3e5f3ea80c6e82afd5550211d240daabf0676e900ca651b3a207c6946e04521d kspp_sha256: 640b25473f86557d082f680b0f57653a69f4146e97825673bf582f9a4c8b7739
kspp_sha512: 6ca9521dc15a5897b490a6e2a3e262f09922f0cbf03e1abba4819f9bdee36e2f08fb5acd7c6cb49d50fcd323cdf571222da42f934fa7d8f55c4fa69be5b2b545 kspp_sha512: 82dae1debbe94a3f82766a8cdbfe59ff8698d433175803458499b76c50b47b89e9280b677a9f16b2a44711badd6f4001aba951a41722a74dd51c03a18b8b9219
- # renovate: datasource=git-tags extractVersion=^v(?<version>.*)$ depName=git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git - # renovate: datasource=git-tags extractVersion=^v(?<version>.*)$ depName=git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
- linux_version: 6.17.7 - linux_version: 6.18.24
- linux_sha256: ddf2ea0d4439e1d57136be3623102af9458f601f5b1cb77e83246e88aea09d0e - linux_sha256: c207c557ce58103b4dda30e26da5203f3d8467c6dadc53d709f6d83ae1d1255f
- linux_sha512: f16f28c395374099ccf21d9df654a31746ed3f09376f7f9eca172579787b7b493d3878cb0a44348c2846bba93f7950f04b0e45235152860e4789fdd2aa9711cb - linux_sha512: ad734fae886272f0c22853c885f618711baa2128b6447d6b996c884a16781893b73c65f5cf58087637a44d33ced1e5ecff9ead2fbca0bbeb7686dbbd4628de98
+ # renovate: datasource=git-tags extractVersion=^v(?<version>.*)$ depName=https://github.com/raspberrypi/linux.git + # renovate: datasource=git-tags extractVersion=^v(?<version>.*)$ depName=https://github.com/raspberrypi/linux.git
+ linux_version: stable_20250916 + linux_version: stable_20250916
+ linux_sha256: 4639fe79697970b71cf708234b71d855a58ce5e28c377a4f7cf6ecbbe40647f3 + linux_sha256: 4639fe79697970b71cf708234b71d855a58ce5e28c377a4f7cf6ecbbe40647f3
@ -30,27 +30,18 @@ index 8799e13..209c74c 100644
# renovate: datasource=git-tags extractVersion=^libaio-(?<version>.*)$ depName=https://pagure.io/libaio.git # renovate: datasource=git-tags extractVersion=^libaio-(?<version>.*)$ depName=https://pagure.io/libaio.git
libaio_version: 0.3.113 libaio_version: 0.3.113
diff --git a/kernel/build/config-arm64 b/kernel/build/config-arm64 diff --git a/kernel/build/config-arm64 b/kernel/build/config-arm64
index 65b3647..7ba70c0 100644 index b095bcd..1aad7d4 100644
--- a/kernel/build/config-arm64 --- a/kernel/build/config-arm64
+++ b/kernel/build/config-arm64 +++ b/kernel/build/config-arm64
@@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
# #
# Automatically generated file; DO NOT EDIT. # Automatically generated file; DO NOT EDIT.
-# Linux/arm64 6.17.7 Kernel Configuration -# Linux/arm64 6.18.24 Kernel Configuration
+# Linux/arm64 6.12.47 Kernel Configuration +# Linux/arm64 6.12.47 Kernel Configuration
# #
CONFIG_CC_VERSION_TEXT="gcc (GCC) 15.2.0" CONFIG_CC_VERSION_TEXT="clang version 22.1.2"
CONFIG_CC_IS_GCC=y CONFIG_GCC_VERSION=0
@@ -22,7 +22,7 @@ CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y @@ -294,6 +294,7 @@ CONFIG_TRACEPOINTS=y
CONFIG_CC_HAS_COUNTED_BY=y
CONFIG_CC_HAS_MULTIDIMENSIONAL_NONSTRING=y
CONFIG_LD_CAN_USE_KEEP_IN_OVERLAY=y
-CONFIG_PAHOLE_VERSION=130
+CONFIG_PAHOLE_VERSION=129
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_TABLE_SORT=y
CONFIG_THREAD_INFO_IN_TASK=y
@@ -296,6 +296,7 @@ CONFIG_TRACEPOINTS=y
CONFIG_CRASH_RESERVE=y CONFIG_CRASH_RESERVE=y
CONFIG_VMCORE_INFO=y CONFIG_VMCORE_INFO=y
CONFIG_KEXEC_CORE=y CONFIG_KEXEC_CORE=y
@ -58,7 +49,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_KEXEC is not set # CONFIG_KEXEC is not set
CONFIG_KEXEC_FILE=y CONFIG_KEXEC_FILE=y
CONFIG_KEXEC_SIG=y CONFIG_KEXEC_SIG=y
@@ -660,7 +661,7 @@ CONFIG_CPU_FREQ_STAT=y @@ -665,7 +666,7 @@ CONFIG_CPU_FREQ_STAT=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
@ -67,7 +58,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
@@ -960,7 +961,7 @@ CONFIG_BLK_DEV_WRITE_MOUNTED=y @@ -976,7 +977,7 @@ CONFIG_BLK_DEV_WRITE_MOUNTED=y
# CONFIG_BLK_DEV_ZONED is not set # CONFIG_BLK_DEV_ZONED is not set
CONFIG_BLK_DEV_THROTTLING=y CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_WBT is not set # CONFIG_BLK_WBT is not set
@ -76,32 +67,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_BLK_CGROUP_FC_APPID is not set # CONFIG_BLK_CGROUP_FC_APPID is not set
# CONFIG_BLK_CGROUP_IOCOST is not set # CONFIG_BLK_CGROUP_IOCOST is not set
# CONFIG_BLK_CGROUP_IOPRIO is not set # CONFIG_BLK_CGROUP_IOPRIO is not set
@@ -1093,23 +1094,8 @@ CONFIG_COREDUMP=y @@ -1222,7 +1223,6 @@ CONFIG_ARCH_HAS_ZONE_DMA_SET=y
#
# Memory Management options
#
-CONFIG_ZPOOL=y
CONFIG_SWAP=y
-CONFIG_ZSWAP=y
-# CONFIG_ZSWAP_DEFAULT_ON is not set
-# CONFIG_ZSWAP_SHRINKER_DEFAULT_ON is not set
-# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set
-# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO is not set
-# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set
-# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set
-# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set
-CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD=y
-CONFIG_ZSWAP_COMPRESSOR_DEFAULT="zstd"
-CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC=y
-CONFIG_ZSWAP_ZPOOL_DEFAULT="zsmalloc"
-CONFIG_ZSMALLOC=y
-# CONFIG_ZSMALLOC_STAT is not set
-CONFIG_ZSMALLOC_CHAIN_SIZE=8
+# CONFIG_ZSWAP is not set
#
# Slab allocator options
@@ -1198,7 +1184,6 @@ CONFIG_ARCH_HAS_ZONE_DMA_SET=y
CONFIG_ZONE_DMA=y CONFIG_ZONE_DMA=y
CONFIG_ZONE_DMA32=y CONFIG_ZONE_DMA32=y
CONFIG_ZONE_DEVICE=y CONFIG_ZONE_DEVICE=y
@ -109,7 +75,7 @@ index 65b3647..7ba70c0 100644
CONFIG_GET_FREE_REGION=y CONFIG_GET_FREE_REGION=y
CONFIG_DEVICE_PRIVATE=y CONFIG_DEVICE_PRIVATE=y
CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y
@@ -1369,7 +1354,7 @@ CONFIG_NETLABEL=y @@ -1398,7 +1398,7 @@ CONFIG_NETLABEL=y
# CONFIG_MPTCP is not set # CONFIG_MPTCP is not set
CONFIG_NETWORK_SECMARK=y CONFIG_NETWORK_SECMARK=y
CONFIG_NET_PTP_CLASSIFY=y CONFIG_NET_PTP_CLASSIFY=y
@ -118,7 +84,7 @@ index 65b3647..7ba70c0 100644
CONFIG_NETFILTER=y CONFIG_NETFILTER=y
CONFIG_NETFILTER_ADVANCED=y CONFIG_NETFILTER_ADVANCED=y
CONFIG_BRIDGE_NETFILTER=y CONFIG_BRIDGE_NETFILTER=y
@@ -1431,8 +1416,7 @@ CONFIG_NF_TABLES_INET=y @@ -1460,8 +1460,7 @@ CONFIG_NF_TABLES_INET=y
CONFIG_NF_TABLES_NETDEV=y CONFIG_NF_TABLES_NETDEV=y
CONFIG_NFT_NUMGEN=y CONFIG_NFT_NUMGEN=y
CONFIG_NFT_CT=y CONFIG_NFT_CT=y
@ -128,7 +94,7 @@ index 65b3647..7ba70c0 100644
CONFIG_NFT_LOG=y CONFIG_NFT_LOG=y
CONFIG_NFT_LIMIT=y CONFIG_NFT_LIMIT=y
CONFIG_NFT_MASQ=y CONFIG_NFT_MASQ=y
@@ -2230,6 +2214,7 @@ CONFIG_TURRIS_MOX_RWTM=y @@ -2259,6 +2258,7 @@ CONFIG_TURRIS_MOX_RWTM=y
CONFIG_TURRIS_MOX_RWTM_KEYCTL=y CONFIG_TURRIS_MOX_RWTM_KEYCTL=y
# CONFIG_ARM_FFA_TRANSPORT is not set # CONFIG_ARM_FFA_TRANSPORT is not set
# CONFIG_GOOGLE_FIRMWARE is not set # CONFIG_GOOGLE_FIRMWARE is not set
@ -136,7 +102,7 @@ index 65b3647..7ba70c0 100644
# #
# EFI (Extensible Firmware Interface) Support # EFI (Extensible Firmware Interface) Support
@@ -2413,6 +2398,7 @@ CONFIG_OF_RESERVED_MEM=y @@ -2442,6 +2442,7 @@ CONFIG_OF_RESERVED_MEM=y
CONFIG_OF_RESOLVE=y CONFIG_OF_RESOLVE=y
CONFIG_OF_OVERLAY=y CONFIG_OF_OVERLAY=y
CONFIG_OF_NUMA=y CONFIG_OF_NUMA=y
@ -144,7 +110,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_PARPORT is not set # CONFIG_PARPORT is not set
CONFIG_PNP=y CONFIG_PNP=y
CONFIG_PNP_DEBUG_MESSAGES=y CONFIG_PNP_DEBUG_MESSAGES=y
@@ -2445,7 +2431,7 @@ CONFIG_BLK_DEV_UBLK=m @@ -2486,7 +2487,7 @@ CONFIG_BLK_DEV_UBLK=m
# #
CONFIG_NVME_AUTH=m CONFIG_NVME_AUTH=m
CONFIG_NVME_CORE=y CONFIG_NVME_CORE=y
@ -153,7 +119,7 @@ index 65b3647..7ba70c0 100644
CONFIG_NVME_MULTIPATH=y CONFIG_NVME_MULTIPATH=y
# CONFIG_NVME_VERBOSE_ERRORS is not set # CONFIG_NVME_VERBOSE_ERRORS is not set
CONFIG_NVME_HWMON=y CONFIG_NVME_HWMON=y
@@ -2471,6 +2457,7 @@ CONFIG_NVME_TARGET_AUTH=y @@ -2512,6 +2513,7 @@ CONFIG_NVME_TARGET_AUTH=y
# #
# Misc devices # Misc devices
# #
@ -161,7 +127,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_AD525X_DPOT is not set # CONFIG_AD525X_DPOT is not set
# CONFIG_DUMMY_IRQ is not set # CONFIG_DUMMY_IRQ is not set
# CONFIG_PHANTOM is not set # CONFIG_PHANTOM is not set
@@ -2480,7 +2467,7 @@ CONFIG_NVME_TARGET_AUTH=y @@ -2521,7 +2523,7 @@ CONFIG_NVME_TARGET_AUTH=y
# CONFIG_ICS932S401 is not set # CONFIG_ICS932S401 is not set
CONFIG_ENCLOSURE_SERVICES=y CONFIG_ENCLOSURE_SERVICES=y
# CONFIG_HI6421V600_IRQ is not set # CONFIG_HI6421V600_IRQ is not set
@ -170,7 +136,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_QCOM_COINCELL is not set # CONFIG_QCOM_COINCELL is not set
# CONFIG_QCOM_FASTRPC is not set # CONFIG_QCOM_FASTRPC is not set
# CONFIG_APDS9802ALS is not set # CONFIG_APDS9802ALS is not set
@@ -2504,6 +2491,8 @@ CONFIG_SRAM=y @@ -2545,6 +2547,8 @@ CONFIG_SRAM=y
# CONFIG_MARVELL_CN10K_DPI is not set # CONFIG_MARVELL_CN10K_DPI is not set
# CONFIG_MCHP_LAN966X_PCI is not set # CONFIG_MCHP_LAN966X_PCI is not set
# CONFIG_C2PORT is not set # CONFIG_C2PORT is not set
@ -179,7 +145,7 @@ index 65b3647..7ba70c0 100644
# #
# EEPROM support # EEPROM support
@@ -2581,7 +2570,7 @@ CONFIG_ISCSI_BOOT_SYSFS=y @@ -2623,7 +2627,7 @@ CONFIG_ISCSI_BOOT_SYSFS=y
# CONFIG_SCSI_BNX2X_FCOE is not set # CONFIG_SCSI_BNX2X_FCOE is not set
# CONFIG_BE2ISCSI is not set # CONFIG_BE2ISCSI is not set
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set # CONFIG_BLK_DEV_3W_XXXX_RAID is not set
@ -188,7 +154,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_SCSI_3W_9XXX is not set # CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_3W_SAS is not set # CONFIG_SCSI_3W_SAS is not set
# CONFIG_SCSI_ACARD is not set # CONFIG_SCSI_ACARD is not set
@@ -2599,13 +2588,13 @@ CONFIG_SCSI_HISI_SAS_PCI=m @@ -2641,13 +2645,13 @@ CONFIG_SCSI_HISI_SAS_PCI=m
# CONFIG_SCSI_ESAS2R is not set # CONFIG_SCSI_ESAS2R is not set
# CONFIG_MEGARAID_NEWGEN is not set # CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_LEGACY is not set # CONFIG_MEGARAID_LEGACY is not set
@ -205,7 +171,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_SCSI_HPTIOP is not set # CONFIG_SCSI_HPTIOP is not set
# CONFIG_SCSI_BUSLOGIC is not set # CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_MYRB is not set # CONFIG_SCSI_MYRB is not set
@@ -2655,7 +2644,7 @@ CONFIG_SATA_PMP=y @@ -2697,7 +2701,7 @@ CONFIG_SATA_PMP=y
# #
# Controllers with non-SFF native interface # Controllers with non-SFF native interface
# #
@ -214,7 +180,7 @@ index 65b3647..7ba70c0 100644
CONFIG_SATA_MOBILE_LPM_POLICY=0 CONFIG_SATA_MOBILE_LPM_POLICY=0
CONFIG_SATA_AHCI_PLATFORM=y CONFIG_SATA_AHCI_PLATFORM=y
# CONFIG_AHCI_BRCM is not set # CONFIG_AHCI_BRCM is not set
@@ -2702,7 +2691,7 @@ CONFIG_SATA_RCAR=y @@ -2744,7 +2748,7 @@ CONFIG_SATA_RCAR=y
# PATA SFF controllers with BMDMA # PATA SFF controllers with BMDMA
# #
# CONFIG_PATA_ALI is not set # CONFIG_PATA_ALI is not set
@ -223,7 +189,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_PATA_ARTOP is not set # CONFIG_PATA_ARTOP is not set
# CONFIG_PATA_ATIIXP is not set # CONFIG_PATA_ATIIXP is not set
# CONFIG_PATA_ATP867X is not set # CONFIG_PATA_ATP867X is not set
@@ -2717,17 +2706,17 @@ CONFIG_PATA_AMD=m @@ -2759,17 +2763,17 @@ CONFIG_PATA_AMD=m
# CONFIG_PATA_IT8213 is not set # CONFIG_PATA_IT8213 is not set
# CONFIG_PATA_IT821X is not set # CONFIG_PATA_IT821X is not set
# CONFIG_PATA_JMICRON is not set # CONFIG_PATA_JMICRON is not set
@ -244,7 +210,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_PATA_SERVERWORKS is not set # CONFIG_PATA_SERVERWORKS is not set
# CONFIG_PATA_SIL680 is not set # CONFIG_PATA_SIL680 is not set
# CONFIG_PATA_SIS is not set # CONFIG_PATA_SIS is not set
@@ -2762,7 +2751,7 @@ CONFIG_MD_RAID0=y @@ -2806,7 +2810,7 @@ CONFIG_MD_RAID0=y
CONFIG_MD_RAID1=y CONFIG_MD_RAID1=y
CONFIG_MD_RAID10=y CONFIG_MD_RAID10=y
CONFIG_MD_RAID456=m CONFIG_MD_RAID456=m
@ -253,7 +219,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_BCACHE_DEBUG is not set # CONFIG_BCACHE_DEBUG is not set
# CONFIG_BCACHE_ASYNC_REGISTRATION is not set # CONFIG_BCACHE_ASYNC_REGISTRATION is not set
CONFIG_BLK_DEV_DM_BUILTIN=y CONFIG_BLK_DEV_DM_BUILTIN=y
@@ -2890,7 +2879,7 @@ CONFIG_ATM_DRIVERS=y @@ -2935,7 +2939,7 @@ CONFIG_ATM_DRIVERS=y
# end of Distributed Switch Architecture drivers # end of Distributed Switch Architecture drivers
CONFIG_ETHERNET=y CONFIG_ETHERNET=y
@ -262,7 +228,7 @@ index 65b3647..7ba70c0 100644
CONFIG_NET_VENDOR_3COM=y CONFIG_NET_VENDOR_3COM=y
# CONFIG_VORTEX is not set # CONFIG_VORTEX is not set
# CONFIG_TYPHOON is not set # CONFIG_TYPHOON is not set
@@ -2918,7 +2907,7 @@ CONFIG_AMD_XGBE=y @@ -2963,7 +2967,7 @@ CONFIG_AMD_XGBE=y
CONFIG_NET_XGENE=y CONFIG_NET_XGENE=y
# CONFIG_NET_XGENE_V2 is not set # CONFIG_NET_XGENE_V2 is not set
CONFIG_NET_VENDOR_AQUANTIA=y CONFIG_NET_VENDOR_AQUANTIA=y
@ -271,7 +237,7 @@ index 65b3647..7ba70c0 100644
CONFIG_NET_VENDOR_ARC=y CONFIG_NET_VENDOR_ARC=y
# CONFIG_EMAC_ROCKCHIP is not set # CONFIG_EMAC_ROCKCHIP is not set
CONFIG_NET_VENDOR_ASIX=y CONFIG_NET_VENDOR_ASIX=y
@@ -2932,16 +2921,16 @@ CONFIG_ALX=m @@ -2977,16 +2981,16 @@ CONFIG_ALX=m
CONFIG_NET_VENDOR_BROADCOM=y CONFIG_NET_VENDOR_BROADCOM=y
# CONFIG_B44 is not set # CONFIG_B44 is not set
CONFIG_BCMGENET=y CONFIG_BCMGENET=y
@ -292,7 +258,7 @@ index 65b3647..7ba70c0 100644
CONFIG_BNXT_SRIOV=y CONFIG_BNXT_SRIOV=y
CONFIG_BNXT_FLOWER_OFFLOAD=y CONFIG_BNXT_FLOWER_OFFLOAD=y
# CONFIG_BNXT_DCB is not set # CONFIG_BNXT_DCB is not set
@@ -2957,7 +2946,7 @@ CONFIG_NET_VENDOR_CAVIUM=y @@ -3002,7 +3006,7 @@ CONFIG_NET_VENDOR_CAVIUM=y
# CONFIG_THUNDER_NIC_VF is not set # CONFIG_THUNDER_NIC_VF is not set
# CONFIG_THUNDER_NIC_BGX is not set # CONFIG_THUNDER_NIC_BGX is not set
# CONFIG_THUNDER_NIC_RGX is not set # CONFIG_THUNDER_NIC_RGX is not set
@ -301,7 +267,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_LIQUIDIO is not set # CONFIG_LIQUIDIO is not set
# CONFIG_LIQUIDIO_VF is not set # CONFIG_LIQUIDIO_VF is not set
CONFIG_NET_VENDOR_CHELSIO=y CONFIG_NET_VENDOR_CHELSIO=y
@@ -2970,7 +2959,7 @@ CONFIG_CHELSIO_T4VF=m @@ -3015,7 +3019,7 @@ CONFIG_CHELSIO_T4VF=m
CONFIG_CHELSIO_INLINE_CRYPTO=y CONFIG_CHELSIO_INLINE_CRYPTO=y
CONFIG_CHELSIO_IPSEC_INLINE=m CONFIG_CHELSIO_IPSEC_INLINE=m
CONFIG_NET_VENDOR_CISCO=y CONFIG_NET_VENDOR_CISCO=y
@ -310,52 +276,7 @@ index 65b3647..7ba70c0 100644
CONFIG_NET_VENDOR_CORTINA=y CONFIG_NET_VENDOR_CORTINA=y
# CONFIG_GEMINI_ETHERNET is not set # CONFIG_GEMINI_ETHERNET is not set
CONFIG_NET_VENDOR_DAVICOM=y CONFIG_NET_VENDOR_DAVICOM=y
@@ -3029,30 +3018,29 @@ CONFIG_NET_VENDOR_HUAWEI=y @@ -3114,7 +3118,7 @@ CONFIG_MVPP2=y
# CONFIG_HINIC3 is not set
CONFIG_NET_VENDOR_I825XX=y
CONFIG_NET_VENDOR_INTEL=y
-CONFIG_LIBETH=m
-CONFIG_LIBIE=m
-CONFIG_LIBIE_ADMINQ=m
-CONFIG_E100=m
-CONFIG_E1000=m
-CONFIG_E1000E=m
-CONFIG_IGB=m
+CONFIG_LIBETH=y
+CONFIG_LIBIE=y
+CONFIG_E100=y
+CONFIG_E1000=y
+CONFIG_E1000E=y
+CONFIG_IGB=y
CONFIG_IGB_HWMON=y
-CONFIG_IGBVF=m
-CONFIG_IXGBE=m
+CONFIG_IGBVF=y
+CONFIG_IXGBE=y
CONFIG_IXGBE_HWMON=y
# CONFIG_IXGBE_DCB is not set
CONFIG_IXGBE_IPSEC=y
-CONFIG_IXGBEVF=m
+CONFIG_IXGBEVF=y
CONFIG_IXGBEVF_IPSEC=y
-CONFIG_I40E=m
+CONFIG_I40E=y
# CONFIG_I40E_DCB is not set
-CONFIG_IAVF=m
-CONFIG_I40EVF=m
-CONFIG_ICE=m
+CONFIG_IAVF=y
+CONFIG_I40EVF=y
+CONFIG_ICE=y
CONFIG_ICE_HWMON=y
CONFIG_ICE_SWITCHDEV=y
# CONFIG_FM10K is not set
-CONFIG_IGC=m
+CONFIG_IGC=y
# CONFIG_IDPF is not set
# CONFIG_JME is not set
CONFIG_NET_VENDOR_ADI=y
@@ -3066,7 +3054,7 @@ CONFIG_MVPP2=y
# CONFIG_MVPP2_PTP is not set # CONFIG_MVPP2_PTP is not set
# CONFIG_PXA168_ETH is not set # CONFIG_PXA168_ETH is not set
# CONFIG_SKGE is not set # CONFIG_SKGE is not set
@ -364,7 +285,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_SKY2_DEBUG is not set # CONFIG_SKY2_DEBUG is not set
# CONFIG_OCTEONTX2_AF is not set # CONFIG_OCTEONTX2_AF is not set
# CONFIG_OCTEONTX2_PF is not set # CONFIG_OCTEONTX2_PF is not set
@@ -3147,15 +3135,15 @@ CONFIG_NET_VENDOR_PENSANDO=y @@ -3198,15 +3202,15 @@ CONFIG_NET_VENDOR_PENSANDO=y
# CONFIG_IONIC is not set # CONFIG_IONIC is not set
CONFIG_NET_VENDOR_QLOGIC=y CONFIG_NET_VENDOR_QLOGIC=y
# CONFIG_QLA3XXX is not set # CONFIG_QLA3XXX is not set
@ -383,7 +304,7 @@ index 65b3647..7ba70c0 100644
CONFIG_QED_FCOE=y CONFIG_QED_FCOE=y
CONFIG_NET_VENDOR_BROCADE=y CONFIG_NET_VENDOR_BROCADE=y
# CONFIG_BNA is not set # CONFIG_BNA is not set
@@ -3167,12 +3155,12 @@ CONFIG_NET_VENDOR_RDC=y @@ -3219,12 +3223,12 @@ CONFIG_NET_VENDOR_RDC=y
# CONFIG_R6040 is not set # CONFIG_R6040 is not set
CONFIG_NET_VENDOR_REALTEK=y CONFIG_NET_VENDOR_REALTEK=y
# CONFIG_8139CP is not set # CONFIG_8139CP is not set
@ -398,44 +319,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_RTASE is not set # CONFIG_RTASE is not set
CONFIG_NET_VENDOR_RENESAS=y CONFIG_NET_VENDOR_RENESAS=y
# CONFIG_SH_ETH is not set # CONFIG_SH_ETH is not set
@@ -3209,23 +3197,22 @@ CONFIG_SMSC911X=y @@ -3384,7 +3388,7 @@ CONFIG_TERANETICS_PHY=y
CONFIG_NET_VENDOR_SOCIONEXT=y
# CONFIG_SNI_NETSEC is not set
CONFIG_NET_VENDOR_STMICRO=y
-CONFIG_STMMAC_ETH=m
+CONFIG_STMMAC_ETH=y
# CONFIG_STMMAC_SELFTESTS is not set
-CONFIG_STMMAC_PLATFORM=m
-CONFIG_DWMAC_DWC_QOS_ETH=m
-CONFIG_DWMAC_GENERIC=m
-CONFIG_DWMAC_IPQ806X=m
+CONFIG_STMMAC_PLATFORM=y
+CONFIG_DWMAC_DWC_QOS_ETH=y
+CONFIG_DWMAC_GENERIC=y
+CONFIG_DWMAC_IPQ806X=y
# CONFIG_DWMAC_MEDIATEK is not set
-CONFIG_DWMAC_MESON=m
-CONFIG_DWMAC_QCOM_ETHQOS=m
-CONFIG_DWMAC_RENESAS_GBETH=m
-CONFIG_DWMAC_ROCKCHIP=m
-CONFIG_DWMAC_SUNXI=m
-CONFIG_DWMAC_SUN8I=m
-CONFIG_DWMAC_IMX8=m
+CONFIG_DWMAC_MESON=y
+CONFIG_DWMAC_QCOM_ETHQOS=y
+CONFIG_DWMAC_ROCKCHIP=y
+CONFIG_DWMAC_SUNXI=y
+CONFIG_DWMAC_SUN8I=y
+CONFIG_DWMAC_IMX8=y
# CONFIG_DWMAC_INTEL_PLAT is not set
-CONFIG_DWMAC_TEGRA=m
-CONFIG_STMMAC_PCI=m
+CONFIG_DWMAC_TEGRA=y
+CONFIG_STMMAC_PCI=y
CONFIG_NET_VENDOR_SUN=y
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
@@ -3330,7 +3317,7 @@ CONFIG_TERANETICS_PHY=y
CONFIG_DP83822_PHY=y CONFIG_DP83822_PHY=y
CONFIG_DP83TC811_PHY=y CONFIG_DP83TC811_PHY=y
CONFIG_DP83848_PHY=y CONFIG_DP83848_PHY=y
@ -444,16 +328,7 @@ index 65b3647..7ba70c0 100644
CONFIG_DP83869_PHY=y CONFIG_DP83869_PHY=y
# CONFIG_DP83TD510_PHY is not set # CONFIG_DP83TD510_PHY is not set
# CONFIG_DP83TG720_PHY is not set # CONFIG_DP83TG720_PHY is not set
@@ -3370,7 +3357,7 @@ CONFIG_MDIO_BUS_MUX_MMIOREG=y @@ -3433,7 +3437,7 @@ CONFIG_USB_NET_DRIVERS=y
#
# PCS device drivers
#
-CONFIG_PCS_XPCS=m
+CONFIG_PCS_XPCS=y
# end of PCS device drivers
# CONFIG_PPP is not set
@@ -3380,7 +3367,7 @@ CONFIG_USB_NET_DRIVERS=y
# CONFIG_USB_KAWETH is not set # CONFIG_USB_KAWETH is not set
CONFIG_USB_PEGASUS=y CONFIG_USB_PEGASUS=y
CONFIG_USB_RTL8150=y CONFIG_USB_RTL8150=y
@ -462,7 +337,7 @@ index 65b3647..7ba70c0 100644
CONFIG_USB_LAN78XX=y CONFIG_USB_LAN78XX=y
CONFIG_USB_USBNET=m CONFIG_USB_USBNET=m
CONFIG_USB_NET_AX8817X=m CONFIG_USB_NET_AX8817X=m
@@ -3430,7 +3417,7 @@ CONFIG_USB_RTL8153_ECM=m @@ -3483,7 +3487,7 @@ CONFIG_USB_RTL8153_ECM=m
# end of Wireless WAN # end of Wireless WAN
CONFIG_XEN_NETDEV_FRONTEND=y CONFIG_XEN_NETDEV_FRONTEND=y
@ -471,7 +346,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_FUJITSU_ES is not set # CONFIG_FUJITSU_ES is not set
CONFIG_USB4_NET=m CONFIG_USB4_NET=m
CONFIG_HYPERV_NET=y CONFIG_HYPERV_NET=y
@@ -3701,6 +3688,8 @@ CONFIG_HYPERV_KEYBOARD=y @@ -3756,6 +3760,8 @@ CONFIG_HYPERV_KEYBOARD=y
# #
# Character devices # Character devices
# #
@ -480,7 +355,7 @@ index 65b3647..7ba70c0 100644
CONFIG_TTY=y CONFIG_TTY=y
CONFIG_VT=y CONFIG_VT=y
CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_CONSOLE_TRANSLATIONS=y
@@ -3793,6 +3782,7 @@ CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y @@ -3848,6 +3854,7 @@ CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
CONFIG_SERIAL_MVEBU_UART=y CONFIG_SERIAL_MVEBU_UART=y
CONFIG_SERIAL_MVEBU_CONSOLE=y CONFIG_SERIAL_MVEBU_CONSOLE=y
# CONFIG_SERIAL_OWL is not set # CONFIG_SERIAL_OWL is not set
@ -488,7 +363,7 @@ index 65b3647..7ba70c0 100644
# end of Serial drivers # end of Serial drivers
CONFIG_SERIAL_MCTRL_GPIO=y CONFIG_SERIAL_MCTRL_GPIO=y
@@ -3868,6 +3858,7 @@ CONFIG_TCG_CRB=y @@ -3923,6 +3930,7 @@ CONFIG_TCG_CRB=y
# CONFIG_TCG_TIS_ST33ZP24_SPI is not set # CONFIG_TCG_TIS_ST33ZP24_SPI is not set
# CONFIG_XILLYBUS is not set # CONFIG_XILLYBUS is not set
# CONFIG_XILLYUSB is not set # CONFIG_XILLYUSB is not set
@ -496,7 +371,7 @@ index 65b3647..7ba70c0 100644
# end of Character devices # end of Character devices
# #
@@ -3877,7 +3868,7 @@ CONFIG_I2C=y @@ -3932,7 +3940,7 @@ CONFIG_I2C=y
CONFIG_ACPI_I2C_OPREGION=y CONFIG_ACPI_I2C_OPREGION=y
CONFIG_I2C_BOARDINFO=y CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_CHARDEV=y CONFIG_I2C_CHARDEV=y
@ -505,7 +380,7 @@ index 65b3647..7ba70c0 100644
# #
# Multiplexer I2C Chip support # Multiplexer I2C Chip support
@@ -3896,7 +3887,7 @@ CONFIG_I2C_MUX=m @@ -3951,7 +3959,7 @@ CONFIG_I2C_MUX=m
CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_SMBUS=y CONFIG_I2C_SMBUS=y
@ -514,7 +389,7 @@ index 65b3647..7ba70c0 100644
# #
# I2C Hardware Bus support # I2C Hardware Bus support
@@ -3906,6 +3897,7 @@ CONFIG_I2C_ALGOBIT=m @@ -3961,6 +3969,7 @@ CONFIG_I2C_ALGOBIT=m
# PC SMBus host controller drivers # PC SMBus host controller drivers
# #
CONFIG_I2C_CCGX_UCSI=y CONFIG_I2C_CCGX_UCSI=y
@ -522,7 +397,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_I2C_ALI1535 is not set # CONFIG_I2C_ALI1535 is not set
# CONFIG_I2C_ALI1563 is not set # CONFIG_I2C_ALI1563 is not set
# CONFIG_I2C_ALI15X3 is not set # CONFIG_I2C_ALI15X3 is not set
@@ -3913,7 +3905,7 @@ CONFIG_I2C_CCGX_UCSI=y @@ -3968,7 +3977,7 @@ CONFIG_I2C_CCGX_UCSI=y
# CONFIG_I2C_AMD8111 is not set # CONFIG_I2C_AMD8111 is not set
# CONFIG_I2C_AMD_MP2 is not set # CONFIG_I2C_AMD_MP2 is not set
# CONFIG_I2C_HIX5HD2 is not set # CONFIG_I2C_HIX5HD2 is not set
@ -531,7 +406,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_I2C_ISCH is not set # CONFIG_I2C_ISCH is not set
# CONFIG_I2C_PIIX4 is not set # CONFIG_I2C_PIIX4 is not set
# CONFIG_I2C_NFORCE2 is not set # CONFIG_I2C_NFORCE2 is not set
@@ -4029,7 +4021,7 @@ CONFIG_SPI_BCM_QSPI=y @@ -4085,7 +4094,7 @@ CONFIG_SPI_BCM_QSPI=y
# CONFIG_SPI_HISI_KUNPENG is not set # CONFIG_SPI_HISI_KUNPENG is not set
# CONFIG_SPI_HISI_SFC_V3XX is not set # CONFIG_SPI_HISI_SFC_V3XX is not set
# CONFIG_SPI_NXP_FLEXSPI is not set # CONFIG_SPI_NXP_FLEXSPI is not set
@ -540,7 +415,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_SPI_IMX is not set # CONFIG_SPI_IMX is not set
# CONFIG_SPI_FSL_SPI is not set # CONFIG_SPI_FSL_SPI is not set
# CONFIG_SPI_FSL_DSPI is not set # CONFIG_SPI_FSL_DSPI is not set
@@ -4046,6 +4038,7 @@ CONFIG_SPI_ORION=y @@ -4101,6 +4110,7 @@ CONFIG_SPI_ORION=y
CONFIG_SPI_PL022=y CONFIG_SPI_PL022=y
CONFIG_SPI_ROCKCHIP=y CONFIG_SPI_ROCKCHIP=y
# CONFIG_SPI_ROCKCHIP_SFC is not set # CONFIG_SPI_ROCKCHIP_SFC is not set
@ -548,7 +423,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_SPI_RSPI is not set # CONFIG_SPI_RSPI is not set
# CONFIG_SPI_RZV2H_RSPI is not set # CONFIG_SPI_RZV2H_RSPI is not set
# CONFIG_SPI_RZV2M_CSI is not set # CONFIG_SPI_RZV2M_CSI is not set
@@ -4142,7 +4135,7 @@ CONFIG_PINCTRL_AXP209=y @@ -4199,7 +4209,7 @@ CONFIG_PINCTRL_AXP209=y
CONFIG_PINCTRL_BM1880=y CONFIG_PINCTRL_BM1880=y
# CONFIG_PINCTRL_CY8C95X0 is not set # CONFIG_PINCTRL_CY8C95X0 is not set
CONFIG_PINCTRL_MAX77620=y CONFIG_PINCTRL_MAX77620=y
@ -557,17 +432,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_PINCTRL_MICROCHIP_SGPIO is not set # CONFIG_PINCTRL_MICROCHIP_SGPIO is not set
# CONFIG_PINCTRL_OCELOT is not set # CONFIG_PINCTRL_OCELOT is not set
CONFIG_PINCTRL_RK805=y CONFIG_PINCTRL_RK805=y
@@ -4152,7 +4145,9 @@ CONFIG_PINCTRL_SINGLE=y @@ -4395,6 +4405,7 @@ CONFIG_GPIO_GENERIC=y
# CONFIG_PINCTRL_STMFX is not set
# CONFIG_PINCTRL_SX150X is not set
CONFIG_PINCTRL_ZYNQMP=y
+CONFIG_PINCTRL_RP1=y
# CONFIG_PINCTRL_OWL is not set
+CONFIG_PINCTRL_BCM2712=y
CONFIG_PINCTRL_BCM2835=y
CONFIG_PINCTRL_IPROC_GPIO=y
CONFIG_PINCTRL_NS2_MUX=y
@@ -4332,6 +4327,7 @@ CONFIG_GPIO_GENERIC=y
# CONFIG_GPIO_AMDPT is not set # CONFIG_GPIO_AMDPT is not set
CONFIG_GPIO_RASPBERRYPI_EXP=y CONFIG_GPIO_RASPBERRYPI_EXP=y
CONFIG_GPIO_BCM_XGS_IPROC=y CONFIG_GPIO_BCM_XGS_IPROC=y
@ -575,7 +440,7 @@ index 65b3647..7ba70c0 100644
CONFIG_GPIO_BRCMSTB=y CONFIG_GPIO_BRCMSTB=y
# CONFIG_GPIO_CADENCE is not set # CONFIG_GPIO_CADENCE is not set
# CONFIG_GPIO_DAVINCI is not set # CONFIG_GPIO_DAVINCI is not set
@@ -4349,7 +4345,7 @@ CONFIG_GPIO_DWAPB=y @@ -4412,7 +4423,7 @@ CONFIG_GPIO_DWAPB=y
CONFIG_GPIO_MVEBU=y CONFIG_GPIO_MVEBU=y
CONFIG_GPIO_MXC=y CONFIG_GPIO_MXC=y
CONFIG_GPIO_PL061=y CONFIG_GPIO_PL061=y
@ -584,7 +449,7 @@ index 65b3647..7ba70c0 100644
CONFIG_GPIO_RCAR=y CONFIG_GPIO_RCAR=y
CONFIG_GPIO_ROCKCHIP=y CONFIG_GPIO_ROCKCHIP=y
CONFIG_GPIO_RTD=y CONFIG_GPIO_RTD=y
@@ -4388,6 +4384,7 @@ CONFIG_GPIO_PCA953X_IRQ=y @@ -4451,6 +4462,7 @@ CONFIG_GPIO_PCA953X_IRQ=y
# #
# MFD GPIO expanders # MFD GPIO expanders
# #
@ -592,7 +457,7 @@ index 65b3647..7ba70c0 100644
CONFIG_GPIO_MAX77620=y CONFIG_GPIO_MAX77620=y
# end of MFD GPIO expanders # end of MFD GPIO expanders
@@ -4457,6 +4454,7 @@ CONFIG_POWER_RESET_SYSCON=y @@ -4520,6 +4532,7 @@ CONFIG_POWER_RESET_SYSCON=y
CONFIG_POWER_SUPPLY=y CONFIG_POWER_SUPPLY=y
# CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_POWER_SUPPLY_DEBUG is not set
CONFIG_POWER_SUPPLY_HWMON=y CONFIG_POWER_SUPPLY_HWMON=y
@ -600,7 +465,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_GENERIC_ADC_BATTERY is not set # CONFIG_GENERIC_ADC_BATTERY is not set
# CONFIG_IP5XXX_POWER is not set # CONFIG_IP5XXX_POWER is not set
# CONFIG_TEST_POWER is not set # CONFIG_TEST_POWER is not set
@@ -4741,7 +4739,7 @@ CONFIG_AMLOGIC_THERMAL=y @@ -4804,7 +4817,7 @@ CONFIG_AMLOGIC_THERMAL=y
# Broadcom thermal drivers # Broadcom thermal drivers
# #
CONFIG_BCM2711_THERMAL=y CONFIG_BCM2711_THERMAL=y
@ -609,7 +474,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_BRCMSTB_THERMAL is not set # CONFIG_BRCMSTB_THERMAL is not set
CONFIG_BCM_NS_THERMAL=y CONFIG_BCM_NS_THERMAL=y
CONFIG_BCM_SR_THERMAL=y CONFIG_BCM_SR_THERMAL=y
@@ -4917,6 +4915,7 @@ CONFIG_MFD_MAX77620=y @@ -4983,6 +4996,7 @@ CONFIG_MFD_MAX77620=y
# CONFIG_MFD_QCOM_RPM is not set # CONFIG_MFD_QCOM_RPM is not set
CONFIG_MFD_SPMI_PMIC=y CONFIG_MFD_SPMI_PMIC=y
# CONFIG_MFD_SY7636A is not set # CONFIG_MFD_SY7636A is not set
@ -617,15 +482,15 @@ index 65b3647..7ba70c0 100644
# CONFIG_MFD_RDC321X is not set # CONFIG_MFD_RDC321X is not set
# CONFIG_MFD_RT4831 is not set # CONFIG_MFD_RT4831 is not set
# CONFIG_MFD_RT5033 is not set # CONFIG_MFD_RT5033 is not set
@@ -4980,6 +4979,7 @@ CONFIG_MFD_SYSCON=y @@ -5001,6 +5015,7 @@ CONFIG_MFD_RK8XX_SPI=y
# CONFIG_MFD_KHADAS_MCU is not set # CONFIG_MFD_STMPE is not set
# CONFIG_MFD_QCOM_PM8008 is not set CONFIG_MFD_SUN6I_PRCM=y
# CONFIG_MFD_INTEL_M10_BMC_SPI is not set CONFIG_MFD_SYSCON=y
+CONFIG_MFD_RP1=y +CONFIG_MFD_RP1=y
# CONFIG_MFD_RSMU_I2C is not set # CONFIG_MFD_TI_AM335X_TSCADC is not set
# CONFIG_MFD_RSMU_SPI is not set # CONFIG_MFD_LP3943 is not set
# end of Multifunction device drivers # CONFIG_MFD_LP8788 is not set
@@ -5046,6 +5046,7 @@ CONFIG_REGULATOR_QCOM_SPMI=y @@ -5118,6 +5133,7 @@ CONFIG_REGULATOR_QCOM_SPMI=y
# CONFIG_REGULATOR_RAA215300 is not set # CONFIG_REGULATOR_RAA215300 is not set
# CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set # CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set
# CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_V2 is not set # CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_V2 is not set
@ -633,7 +498,7 @@ index 65b3647..7ba70c0 100644
CONFIG_REGULATOR_RK808=y CONFIG_REGULATOR_RK808=y
# CONFIG_REGULATOR_RT4801 is not set # CONFIG_REGULATOR_RT4801 is not set
# CONFIG_REGULATOR_RT4803 is not set # CONFIG_REGULATOR_RT4803 is not set
@@ -5179,6 +5180,7 @@ CONFIG_V4L_MEM2MEM_DRIVERS=y @@ -5252,6 +5268,7 @@ CONFIG_V4L_MEM2MEM_DRIVERS=y
# #
# Atmel media platform drivers # Atmel media platform drivers
# #
@ -641,7 +506,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_VIDEO_BCM2835_UNICAM is not set # CONFIG_VIDEO_BCM2835_UNICAM is not set
# #
@@ -5241,6 +5243,7 @@ CONFIG_V4L_MEM2MEM_DRIVERS=y @@ -5314,6 +5331,7 @@ CONFIG_V4L_MEM2MEM_DRIVERS=y
# #
# Raspberry Pi media platform drivers # Raspberry Pi media platform drivers
# #
@ -649,7 +514,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_VIDEO_RASPBERRYPI_PISP_BE is not set # CONFIG_VIDEO_RASPBERRYPI_PISP_BE is not set
# CONFIG_VIDEO_RP1_CFE is not set # CONFIG_VIDEO_RP1_CFE is not set
@@ -5317,9 +5320,13 @@ CONFIG_VIDEOBUF2_VMALLOC=m @@ -5390,9 +5408,13 @@ CONFIG_VIDEOBUF2_VMALLOC=m
# CONFIG_VIDEO_THP7312 is not set # CONFIG_VIDEO_THP7312 is not set
# end of Camera ISPs # end of Camera ISPs
@ -664,7 +529,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_VIDEO_DW9714 is not set # CONFIG_VIDEO_DW9714 is not set
# CONFIG_VIDEO_DW9719 is not set # CONFIG_VIDEO_DW9719 is not set
# CONFIG_VIDEO_DW9768 is not set # CONFIG_VIDEO_DW9768 is not set
@@ -5388,6 +5395,7 @@ CONFIG_VIDEO_CAMERA_LENS=y @@ -5461,6 +5483,7 @@ CONFIG_VIDEO_CAMERA_LENS=y
# CONFIG_VIDEO_TW9903 is not set # CONFIG_VIDEO_TW9903 is not set
# CONFIG_VIDEO_TW9906 is not set # CONFIG_VIDEO_TW9906 is not set
# CONFIG_VIDEO_TW9910 is not set # CONFIG_VIDEO_TW9910 is not set
@ -672,7 +537,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_VIDEO_VPX3220 is not set # CONFIG_VIDEO_VPX3220 is not set
# #
@@ -5510,7 +5518,6 @@ CONFIG_DRM_DISPLAY_HDMI_HELPER=y @@ -5583,7 +5606,6 @@ CONFIG_DRM_DISPLAY_HDMI_HELPER=y
CONFIG_DRM_DISPLAY_HDMI_STATE_HELPER=y CONFIG_DRM_DISPLAY_HDMI_STATE_HELPER=y
CONFIG_DRM_TTM=m CONFIG_DRM_TTM=m
CONFIG_DRM_EXEC=m CONFIG_DRM_EXEC=m
@ -680,7 +545,7 @@ index 65b3647..7ba70c0 100644
CONFIG_DRM_BUDDY=m CONFIG_DRM_BUDDY=m
CONFIG_DRM_VRAM_HELPER=m CONFIG_DRM_VRAM_HELPER=m
CONFIG_DRM_TTM_HELPER=m CONFIG_DRM_TTM_HELPER=m
@@ -5629,6 +5636,7 @@ CONFIG_DRM_PANEL=y @@ -5702,6 +5724,7 @@ CONFIG_DRM_PANEL=y
# CONFIG_DRM_PANEL_ILITEK_ILI9341 is not set # CONFIG_DRM_PANEL_ILITEK_ILI9341 is not set
# CONFIG_DRM_PANEL_ILITEK_ILI9805 is not set # CONFIG_DRM_PANEL_ILITEK_ILI9805 is not set
# CONFIG_DRM_PANEL_ILITEK_ILI9806E is not set # CONFIG_DRM_PANEL_ILITEK_ILI9806E is not set
@ -688,7 +553,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set # CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set
# CONFIG_DRM_PANEL_ILITEK_ILI9882T is not set # CONFIG_DRM_PANEL_ILITEK_ILI9882T is not set
# CONFIG_DRM_PANEL_INNOLUX_EJ030NA is not set # CONFIG_DRM_PANEL_INNOLUX_EJ030NA is not set
@@ -5706,6 +5714,7 @@ CONFIG_DRM_PANEL_SIMPLE=y @@ -5780,6 +5803,7 @@ CONFIG_DRM_PANEL_SIMPLE=y
# CONFIG_DRM_PANEL_SUMMIT is not set # CONFIG_DRM_PANEL_SUMMIT is not set
# CONFIG_DRM_PANEL_SYNAPTICS_R63353 is not set # CONFIG_DRM_PANEL_SYNAPTICS_R63353 is not set
# CONFIG_DRM_PANEL_TDO_TL070WSH30 is not set # CONFIG_DRM_PANEL_TDO_TL070WSH30 is not set
@ -696,7 +561,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set # CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set
# CONFIG_DRM_PANEL_TPO_TPG110 is not set # CONFIG_DRM_PANEL_TPO_TPG110 is not set
@@ -5715,6 +5724,8 @@ CONFIG_DRM_PANEL_SIMPLE=y @@ -5789,6 +5813,8 @@ CONFIG_DRM_PANEL_SIMPLE=y
# CONFIG_DRM_PANEL_VISIONOX_RM69299 is not set # CONFIG_DRM_PANEL_VISIONOX_RM69299 is not set
# CONFIG_DRM_PANEL_VISIONOX_RM692E5 is not set # CONFIG_DRM_PANEL_VISIONOX_RM692E5 is not set
# CONFIG_DRM_PANEL_VISIONOX_VTDR6130 is not set # CONFIG_DRM_PANEL_VISIONOX_VTDR6130 is not set
@ -705,7 +570,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_DRM_PANEL_WIDECHIPS_WS2401 is not set # CONFIG_DRM_PANEL_WIDECHIPS_WS2401 is not set
# CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set
# end of Display Panels # end of Display Panels
@@ -5817,7 +5828,7 @@ CONFIG_DRM_MESON_DW_MIPI_DSI=y @@ -5894,7 +5920,7 @@ CONFIG_DRM_MESON_DW_MIPI_DSI=y
# CONFIG_DRM_XEN_FRONTEND is not set # CONFIG_DRM_XEN_FRONTEND is not set
# CONFIG_DRM_LIMA is not set # CONFIG_DRM_LIMA is not set
CONFIG_DRM_PANFROST=m CONFIG_DRM_PANFROST=m
@ -714,15 +579,15 @@ index 65b3647..7ba70c0 100644
# CONFIG_DRM_TIDSS is not set # CONFIG_DRM_TIDSS is not set
# CONFIG_DRM_GUD is not set # CONFIG_DRM_GUD is not set
# CONFIG_DRM_ST7571_I2C is not set # CONFIG_DRM_ST7571_I2C is not set
@@ -5834,6 +5845,7 @@ CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y @@ -5911,6 +5937,7 @@ CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
# Frame buffer Devices # Frame buffer Devices
# #
CONFIG_FB=y CONFIG_FB=y
+CONFIG_FB_BCM2708=y +CONFIG_FB_BCM2708=y
# CONFIG_FB_CIRRUS is not set # CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set # CONFIG_FB_PM2 is not set
# CONFIG_FB_IMX is not set # CONFIG_FB_CYBER2000 is not set
@@ -5875,6 +5887,7 @@ CONFIG_FB_HYPERV=y @@ -5951,6 +5978,7 @@ CONFIG_FB_HYPERV=y
CONFIG_FB_SIMPLE=y CONFIG_FB_SIMPLE=y
# CONFIG_FB_SSD1307 is not set # CONFIG_FB_SSD1307 is not set
# CONFIG_FB_SM712 is not set # CONFIG_FB_SM712 is not set
@ -730,7 +595,7 @@ index 65b3647..7ba70c0 100644
CONFIG_FB_CORE=y CONFIG_FB_CORE=y
CONFIG_FB_NOTIFY=y CONFIG_FB_NOTIFY=y
CONFIG_FB_DEVICE=y CONFIG_FB_DEVICE=y
@@ -5907,6 +5920,7 @@ CONFIG_BACKLIGHT_CLASS_DEVICE=y @@ -5983,6 +6011,7 @@ CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_KTD2801 is not set # CONFIG_BACKLIGHT_KTD2801 is not set
# CONFIG_BACKLIGHT_KTZ8866 is not set # CONFIG_BACKLIGHT_KTZ8866 is not set
# CONFIG_BACKLIGHT_PWM is not set # CONFIG_BACKLIGHT_PWM is not set
@ -738,7 +603,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_BACKLIGHT_QCOM_WLED is not set # CONFIG_BACKLIGHT_QCOM_WLED is not set
# CONFIG_BACKLIGHT_ADP8860 is not set # CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set # CONFIG_BACKLIGHT_ADP8870 is not set
@@ -5994,7 +6008,55 @@ CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER=y @@ -6071,7 +6100,55 @@ CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER=y
# CONFIG_SND_USB_VARIAX is not set # CONFIG_SND_USB_VARIAX is not set
CONFIG_SND_SOC=m CONFIG_SND_SOC=m
CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
@ -795,7 +660,7 @@ index 65b3647..7ba70c0 100644
# #
# Analog Devices # Analog Devices
@@ -6130,15 +6192,17 @@ CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y @@ -6207,15 +6284,17 @@ CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
# CONFIG_SND_MESON_G12A_TOACODEC is not set # CONFIG_SND_MESON_G12A_TOACODEC is not set
# CONFIG_SND_MESON_G12A_TOHDMITX is not set # CONFIG_SND_MESON_G12A_TOHDMITX is not set
# CONFIG_SND_SOC_MESON_T9015 is not set # CONFIG_SND_SOC_MESON_T9015 is not set
@ -816,7 +681,7 @@ index 65b3647..7ba70c0 100644
# #
# Renesas # Renesas
# #
@@ -6222,6 +6286,8 @@ CONFIG_SND_SOC_I2C_AND_SPI=m @@ -6299,6 +6378,8 @@ CONFIG_SND_SOC_I2C_AND_SPI=m
# CODEC drivers # CODEC drivers
# #
# CONFIG_SND_SOC_AC97_CODEC is not set # CONFIG_SND_SOC_AC97_CODEC is not set
@ -825,7 +690,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_SND_SOC_ADAU1372_I2C is not set # CONFIG_SND_SOC_ADAU1372_I2C is not set
# CONFIG_SND_SOC_ADAU1372_SPI is not set # CONFIG_SND_SOC_ADAU1372_SPI is not set
# CONFIG_SND_SOC_ADAU1373 is not set # CONFIG_SND_SOC_ADAU1373 is not set
@@ -6302,6 +6368,7 @@ CONFIG_SND_SOC_HDMI_CODEC=m @@ -6380,6 +6461,7 @@ CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC_ICS43432 is not set # CONFIG_SND_SOC_ICS43432 is not set
# CONFIG_SND_SOC_IDT821034 is not set # CONFIG_SND_SOC_IDT821034 is not set
# CONFIG_SND_SOC_INNO_RK3036 is not set # CONFIG_SND_SOC_INNO_RK3036 is not set
@ -833,7 +698,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_SND_SOC_MAX98088 is not set # CONFIG_SND_SOC_MAX98088 is not set
# CONFIG_SND_SOC_MAX98090 is not set # CONFIG_SND_SOC_MAX98090 is not set
# CONFIG_SND_SOC_MAX98357A is not set # CONFIG_SND_SOC_MAX98357A is not set
@@ -6432,6 +6499,7 @@ CONFIG_SND_SOC_HDMI_CODEC=m @@ -6512,6 +6594,7 @@ CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC_LPASS_VA_MACRO is not set # CONFIG_SND_SOC_LPASS_VA_MACRO is not set
# CONFIG_SND_SOC_LPASS_RX_MACRO is not set # CONFIG_SND_SOC_LPASS_RX_MACRO is not set
# CONFIG_SND_SOC_LPASS_TX_MACRO is not set # CONFIG_SND_SOC_LPASS_TX_MACRO is not set
@ -841,7 +706,7 @@ index 65b3647..7ba70c0 100644
# end of CODEC drivers # end of CODEC drivers
# #
@@ -6455,18 +6523,18 @@ CONFIG_HID_GENERIC=y @@ -6536,18 +6619,18 @@ CONFIG_HID_GENERIC=y
# #
# Special HID drivers # Special HID drivers
# #
@ -865,7 +730,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_HID_CORSAIR is not set # CONFIG_HID_CORSAIR is not set
# CONFIG_HID_COUGAR is not set # CONFIG_HID_COUGAR is not set
# CONFIG_HID_MACALLY is not set # CONFIG_HID_MACALLY is not set
@@ -6474,14 +6542,14 @@ CONFIG_HID_CHICONY=m @@ -6555,14 +6638,14 @@ CONFIG_HID_CHICONY=m
# CONFIG_HID_CMEDIA is not set # CONFIG_HID_CMEDIA is not set
# CONFIG_HID_CP2112 is not set # CONFIG_HID_CP2112 is not set
# CONFIG_HID_CREATIVE_SB0540 is not set # CONFIG_HID_CREATIVE_SB0540 is not set
@ -882,7 +747,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_HID_FT260 is not set # CONFIG_HID_FT260 is not set
# CONFIG_HID_GEMBIRD is not set # CONFIG_HID_GEMBIRD is not set
# CONFIG_HID_GFRM is not set # CONFIG_HID_GFRM is not set
@@ -6499,17 +6567,17 @@ CONFIG_HID_EZKEY=m @@ -6580,17 +6663,17 @@ CONFIG_HID_EZKEY=m
# CONFIG_HID_VIEWSONIC is not set # CONFIG_HID_VIEWSONIC is not set
# CONFIG_HID_VRC2 is not set # CONFIG_HID_VRC2 is not set
# CONFIG_HID_XIAOMI is not set # CONFIG_HID_XIAOMI is not set
@ -904,29 +769,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_HID_LOGITECH_DJ is not set # CONFIG_HID_LOGITECH_DJ is not set
# CONFIG_HID_LOGITECH_HIDPP is not set # CONFIG_HID_LOGITECH_HIDPP is not set
CONFIG_LOGITECH_FF=y CONFIG_LOGITECH_FF=y
@@ -6521,17 +6589,17 @@ CONFIG_LOGIWHEELS_FF=y @@ -6622,20 +6705,20 @@ CONFIG_HID_PETALYNX=m
# CONFIG_HID_MAYFLASH is not set
# CONFIG_HID_MEGAWORLD_FF is not set
CONFIG_HID_REDRAGON=y
-CONFIG_HID_MICROSOFT=m
-CONFIG_HID_MONTEREY=m
+CONFIG_HID_MICROSOFT=y
+CONFIG_HID_MONTEREY=y
# CONFIG_HID_MULTITOUCH is not set
# CONFIG_HID_NINTENDO is not set
# CONFIG_HID_NTI is not set
# CONFIG_HID_NTRIG is not set
# CONFIG_HID_ORTEK is not set
-CONFIG_HID_PANTHERLORD=m
+CONFIG_HID_PANTHERLORD=y
CONFIG_PANTHERLORD_FF=y
# CONFIG_HID_PENMOUNT is not set
-CONFIG_HID_PETALYNX=m
+CONFIG_HID_PETALYNX=y
# CONFIG_HID_PICOLCD is not set
# CONFIG_HID_PLANTRONICS is not set
# CONFIG_HID_PLAYSTATION is not set
@@ -6541,20 +6609,20 @@ CONFIG_HID_PETALYNX=m
# CONFIG_HID_RETRODE is not set # CONFIG_HID_RETRODE is not set
# CONFIG_HID_ROCCAT is not set # CONFIG_HID_ROCCAT is not set
# CONFIG_HID_SAITEK is not set # CONFIG_HID_SAITEK is not set
@ -950,7 +793,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_HID_TOPRE is not set # CONFIG_HID_TOPRE is not set
# CONFIG_HID_THINGM is not set # CONFIG_HID_THINGM is not set
# CONFIG_HID_THRUSTMASTER is not set # CONFIG_HID_THRUSTMASTER is not set
@@ -6653,6 +6721,7 @@ CONFIG_USB_OHCI_HCD_PLATFORM=y @@ -6734,6 +6817,7 @@ CONFIG_USB_OHCI_HCD_PLATFORM=y
# CONFIG_USB_SL811_HCD is not set # CONFIG_USB_SL811_HCD is not set
# CONFIG_USB_R8A66597_HCD is not set # CONFIG_USB_R8A66597_HCD is not set
# CONFIG_USB_RENESAS_USBHS_HCD is not set # CONFIG_USB_RENESAS_USBHS_HCD is not set
@ -958,7 +801,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_USB_HCD_TEST_MODE is not set # CONFIG_USB_HCD_TEST_MODE is not set
# CONFIG_USB_XEN_HCD is not set # CONFIG_USB_XEN_HCD is not set
CONFIG_USB_RENESAS_USBHS=y CONFIG_USB_RENESAS_USBHS=y
@@ -6761,13 +6830,13 @@ CONFIG_USB_SERIAL_GENERIC=y @@ -6843,13 +6927,13 @@ CONFIG_USB_SERIAL_GENERIC=y
# CONFIG_USB_SERIAL_AIRCABLE is not set # CONFIG_USB_SERIAL_AIRCABLE is not set
# CONFIG_USB_SERIAL_ARK3116 is not set # CONFIG_USB_SERIAL_ARK3116 is not set
# CONFIG_USB_SERIAL_BELKIN is not set # CONFIG_USB_SERIAL_BELKIN is not set
@ -975,7 +818,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_USB_SERIAL_VISOR is not set # CONFIG_USB_SERIAL_VISOR is not set
# CONFIG_USB_SERIAL_IPAQ is not set # CONFIG_USB_SERIAL_IPAQ is not set
# CONFIG_USB_SERIAL_IR is not set # CONFIG_USB_SERIAL_IR is not set
@@ -6788,7 +6857,7 @@ CONFIG_USB_SERIAL_FTDI_SIO=m @@ -6870,7 +6954,7 @@ CONFIG_USB_SERIAL_FTDI_SIO=m
# CONFIG_USB_SERIAL_MOS7840 is not set # CONFIG_USB_SERIAL_MOS7840 is not set
# CONFIG_USB_SERIAL_MXUPORT is not set # CONFIG_USB_SERIAL_MXUPORT is not set
# CONFIG_USB_SERIAL_NAVMAN is not set # CONFIG_USB_SERIAL_NAVMAN is not set
@ -984,7 +827,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_USB_SERIAL_OTI6858 is not set # CONFIG_USB_SERIAL_OTI6858 is not set
# CONFIG_USB_SERIAL_QCAUX is not set # CONFIG_USB_SERIAL_QCAUX is not set
# CONFIG_USB_SERIAL_QUALCOMM is not set # CONFIG_USB_SERIAL_QUALCOMM is not set
@@ -6992,31 +7061,32 @@ CONFIG_MMC_BLOCK_MINORS=32 @@ -7074,31 +7158,32 @@ CONFIG_MMC_BLOCK_MINORS=32
# #
# MMC/SD/SDIO Host Controller Drivers # MMC/SD/SDIO Host Controller Drivers
# #
@ -1029,7 +872,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_MMC_MXC is not set # CONFIG_MMC_MXC is not set
# CONFIG_MMC_TIFM_SD is not set # CONFIG_MMC_TIFM_SD is not set
CONFIG_MMC_SPI=y CONFIG_MMC_SPI=y
@@ -7046,8 +7116,8 @@ CONFIG_MMC_CQHCI=y @@ -7128,8 +7213,8 @@ CONFIG_MMC_CQHCI=y
# CONFIG_MMC_TOSHIBA_PCI is not set # CONFIG_MMC_TOSHIBA_PCI is not set
CONFIG_MMC_BCM2835=y CONFIG_MMC_BCM2835=y
# CONFIG_MMC_MTK is not set # CONFIG_MMC_MTK is not set
@ -1040,7 +883,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_MMC_SDHCI_AM654 is not set # CONFIG_MMC_SDHCI_AM654 is not set
# CONFIG_MMC_OWL is not set # CONFIG_MMC_OWL is not set
# CONFIG_SCSI_UFSHCD is not set # CONFIG_SCSI_UFSHCD is not set
@@ -7140,28 +7210,26 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=y @@ -7222,28 +7307,26 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
# #
# CONFIG_LEDS_TRIGGER_TRANSIENT is not set # CONFIG_LEDS_TRIGGER_TRANSIENT is not set
# CONFIG_LEDS_TRIGGER_CAMERA is not set # CONFIG_LEDS_TRIGGER_CAMERA is not set
@ -1073,7 +916,7 @@ index 65b3647..7ba70c0 100644
CONFIG_INFINIBAND_HNS_HIP08=m CONFIG_INFINIBAND_HNS_HIP08=m
CONFIG_INFINIBAND_IRDMA=m CONFIG_INFINIBAND_IRDMA=m
CONFIG_MLX4_INFINIBAND=m CONFIG_MLX4_INFINIBAND=m
@@ -7219,6 +7287,7 @@ CONFIG_RTC_INTF_DEV=y @@ -7302,6 +7385,7 @@ CONFIG_RTC_INTF_DEV=y
# CONFIG_RTC_DRV_ABB5ZES3 is not set # CONFIG_RTC_DRV_ABB5ZES3 is not set
# CONFIG_RTC_DRV_ABEOZ9 is not set # CONFIG_RTC_DRV_ABEOZ9 is not set
# CONFIG_RTC_DRV_ABX80X is not set # CONFIG_RTC_DRV_ABX80X is not set
@ -1081,7 +924,7 @@ index 65b3647..7ba70c0 100644
CONFIG_RTC_DRV_BRCMSTB=y CONFIG_RTC_DRV_BRCMSTB=y
CONFIG_RTC_DRV_DS1307=y CONFIG_RTC_DRV_DS1307=y
# CONFIG_RTC_DRV_DS1307_CENTURY is not set # CONFIG_RTC_DRV_DS1307_CENTURY is not set
@@ -7371,6 +7440,7 @@ CONFIG_PL330_DMA=y @@ -7454,6 +7538,7 @@ CONFIG_PL330_DMA=y
CONFIG_TEGRA186_GPC_DMA=y CONFIG_TEGRA186_GPC_DMA=y
CONFIG_TEGRA20_APB_DMA=y CONFIG_TEGRA20_APB_DMA=y
CONFIG_TEGRA210_ADMA=y CONFIG_TEGRA210_ADMA=y
@ -1089,7 +932,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_XGENE_DMA is not set # CONFIG_XGENE_DMA is not set
# CONFIG_XILINX_DMA is not set # CONFIG_XILINX_DMA is not set
# CONFIG_XILINX_XDMA is not set # CONFIG_XILINX_XDMA is not set
@@ -7459,17 +7529,17 @@ CONFIG_VMGENID=y @@ -7543,17 +7628,17 @@ CONFIG_VMGENID=y
# CONFIG_ARM_CCA_GUEST is not set # CONFIG_ARM_CCA_GUEST is not set
CONFIG_VIRTIO_ANCHOR=y CONFIG_VIRTIO_ANCHOR=y
CONFIG_VIRTIO=y CONFIG_VIRTIO=y
@ -1113,16 +956,15 @@ index 65b3647..7ba70c0 100644
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
CONFIG_VIRTIO_DMA_SHARED_BUFFER=y CONFIG_VIRTIO_DMA_SHARED_BUFFER=y
# CONFIG_VIRTIO_DEBUG is not set # CONFIG_VIRTIO_DEBUG is not set
@@ -7563,6 +7633,8 @@ CONFIG_COMMON_CLK=y @@ -7650,6 +7735,7 @@ CONFIG_COMMON_CLK=y
# CONFIG_COMMON_CLK_MAX77686 is not set
# CONFIG_COMMON_CLK_MAX9485 is not set # CONFIG_COMMON_CLK_MAX9485 is not set
CONFIG_COMMON_CLK_RK808=y CONFIG_COMMON_CLK_RK808=y
+CONFIG_COMMON_CLK_RP1=y CONFIG_COMMON_CLK_RP1=y
+CONFIG_COMMON_CLK_RP1_SDIO=y +CONFIG_COMMON_CLK_RP1_SDIO=y
CONFIG_COMMON_CLK_HI655X=y CONFIG_COMMON_CLK_HI655X=y
CONFIG_COMMON_CLK_SCMI=y CONFIG_COMMON_CLK_SCMI=y
CONFIG_COMMON_CLK_SCPI=y CONFIG_COMMON_CLK_SCPI=y
@@ -8065,6 +8137,8 @@ CONFIG_TEGRA_IOMMU_SMMU=y @@ -8171,6 +8257,8 @@ CONFIG_TEGRA_IOMMU_SMMU=y
# CONFIG_MTK_IOMMU is not set # CONFIG_MTK_IOMMU is not set
# CONFIG_VIRTIO_IOMMU is not set # CONFIG_VIRTIO_IOMMU is not set
# CONFIG_SPRD_IOMMU is not set # CONFIG_SPRD_IOMMU is not set
@ -1131,11 +973,10 @@ index 65b3647..7ba70c0 100644
# #
# Remoteproc drivers # Remoteproc drivers
@@ -8961,13 +9035,13 @@ CONFIG_PWM=y @@ -9079,8 +9167,9 @@ CONFIG_PWM=y
# CONFIG_PWM_ATMEL_TCB is not set
# CONFIG_PWM_AXI_PWMGEN is not set # CONFIG_PWM_AXI_PWMGEN is not set
CONFIG_PWM_BCM2835=y CONFIG_PWM_BCM2835=y
-CONFIG_PWM_BCM_IPROC=y CONFIG_PWM_BCM_IPROC=y
+CONFIG_PWM_PIO_RP1=y +CONFIG_PWM_PIO_RP1=y
# CONFIG_PWM_BERLIN is not set # CONFIG_PWM_BERLIN is not set
-# CONFIG_PWM_BRCMSTB is not set -# CONFIG_PWM_BRCMSTB is not set
@ -1143,12 +984,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_PWM_CLK is not set # CONFIG_PWM_CLK is not set
# CONFIG_PWM_DWC is not set # CONFIG_PWM_DWC is not set
# CONFIG_PWM_FSL_FTM is not set # CONFIG_PWM_FSL_FTM is not set
-# CONFIG_PWM_GPIO is not set @@ -9096,7 +9185,8 @@ CONFIG_PWM_MESON=y
+CONFIG_PWM_GPIO=y
# CONFIG_PWM_HIBVT is not set
# CONFIG_PWM_IMX1 is not set
# CONFIG_PWM_IMX27 is not set
@@ -8979,7 +9053,8 @@ CONFIG_PWM_MESON=y
# CONFIG_PWM_OMAP_DMTIMER is not set # CONFIG_PWM_OMAP_DMTIMER is not set
# CONFIG_PWM_PCA9685 is not set # CONFIG_PWM_PCA9685 is not set
CONFIG_PWM_RASPBERRYPI_POE=y CONFIG_PWM_RASPBERRYPI_POE=y
@ -1158,7 +994,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_PWM_RENESAS_TPU is not set # CONFIG_PWM_RENESAS_TPU is not set
CONFIG_PWM_ROCKCHIP=y CONFIG_PWM_ROCKCHIP=y
# CONFIG_PWM_SPRD is not set # CONFIG_PWM_SPRD is not set
@@ -9003,7 +9078,7 @@ CONFIG_ARM_GIC_V3_ITS=y @@ -9120,7 +9210,7 @@ CONFIG_ARM_GIC_V3_ITS=y
CONFIG_ARM_GIC_V5=y CONFIG_ARM_GIC_V5=y
CONFIG_IRQ_MSI_LIB=y CONFIG_IRQ_MSI_LIB=y
# CONFIG_AL_FIC is not set # CONFIG_AL_FIC is not set
@ -1167,7 +1003,7 @@ index 65b3647..7ba70c0 100644
CONFIG_BCM7038_L1_IRQ=y CONFIG_BCM7038_L1_IRQ=y
CONFIG_BCM7120_L2_IRQ=y CONFIG_BCM7120_L2_IRQ=y
CONFIG_BRCMSTB_L2_IRQ=y CONFIG_BRCMSTB_L2_IRQ=y
@@ -9212,6 +9287,7 @@ CONFIG_ARM64_BRBE=y @@ -9334,6 +9424,7 @@ CONFIG_ARM64_BRBE=y
# CONFIG_ARM_DMC620_PMU is not set # CONFIG_ARM_DMC620_PMU is not set
# CONFIG_MARVELL_CN10K_TAD_PMU is not set # CONFIG_MARVELL_CN10K_TAD_PMU is not set
# CONFIG_ALIBABA_UNCORE_DRW_PMU is not set # CONFIG_ALIBABA_UNCORE_DRW_PMU is not set
@ -1175,7 +1011,7 @@ index 65b3647..7ba70c0 100644
CONFIG_HISI_PMU=m CONFIG_HISI_PMU=m
CONFIG_HISI_PCIE_PMU=m CONFIG_HISI_PCIE_PMU=m
CONFIG_HNS3_PMU=m CONFIG_HNS3_PMU=m
@@ -9257,6 +9333,7 @@ CONFIG_NVMEM_LAYOUTS=y @@ -9379,6 +9470,7 @@ CONFIG_NVMEM_LAYOUTS=y
# CONFIG_NVMEM_LAYOUT_U_BOOT_ENV is not set # CONFIG_NVMEM_LAYOUT_U_BOOT_ENV is not set
# end of Layout Types # end of Layout Types
@ -1183,7 +1019,7 @@ index 65b3647..7ba70c0 100644
CONFIG_NVMEM_BCM_OCOTP=y CONFIG_NVMEM_BCM_OCOTP=y
# CONFIG_NVMEM_IMX_IIM is not set # CONFIG_NVMEM_IMX_IIM is not set
# CONFIG_NVMEM_IMX_OCOTP is not set # CONFIG_NVMEM_IMX_OCOTP is not set
@@ -9668,8 +9745,30 @@ CONFIG_INTEGRITY_TRUSTED_KEYRING=y @@ -9787,8 +9879,30 @@ CONFIG_INTEGRITY_TRUSTED_KEYRING=y
CONFIG_INTEGRITY_PLATFORM_KEYRING=y CONFIG_INTEGRITY_PLATFORM_KEYRING=y
CONFIG_LOAD_UEFI_KEYS=y CONFIG_LOAD_UEFI_KEYS=y
CONFIG_INTEGRITY_AUDIT=y CONFIG_INTEGRITY_AUDIT=y
@ -1216,7 +1052,7 @@ index 65b3647..7ba70c0 100644
# CONFIG_EVM is not set # CONFIG_EVM is not set
# CONFIG_DEFAULT_SECURITY_SELINUX is not set # CONFIG_DEFAULT_SECURITY_SELINUX is not set
# CONFIG_DEFAULT_SECURITY_APPARMOR is not set # CONFIG_DEFAULT_SECURITY_APPARMOR is not set
@@ -9868,7 +9967,7 @@ CONFIG_CRYPTO_LZO=y @@ -9985,7 +10099,7 @@ CONFIG_CRYPTO_LZO=y
# CONFIG_CRYPTO_842 is not set # CONFIG_CRYPTO_842 is not set
# CONFIG_CRYPTO_LZ4 is not set # CONFIG_CRYPTO_LZ4 is not set
# CONFIG_CRYPTO_LZ4HC is not set # CONFIG_CRYPTO_LZ4HC is not set
@ -1225,15 +1061,7 @@ index 65b3647..7ba70c0 100644
# end of Compression # end of Compression
# #
@@ -10046,7 +10145,6 @@ CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=y @@ -10238,7 +10352,6 @@ CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y
CONFIG_CRYPTO_LIB_CHACHA_GENERIC=y
CONFIG_CRYPTO_LIB_CHACHA=y
CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=y
-CONFIG_CRYPTO_LIB_CURVE25519_INTERNAL=y
CONFIG_CRYPTO_LIB_CURVE25519=y
CONFIG_CRYPTO_LIB_DES=y
CONFIG_CRYPTO_LIB_POLY1305_RSIZE=9
@@ -10123,7 +10221,6 @@ CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y
CONFIG_ARCH_HAS_FORCE_DMA_UNENCRYPTED=y CONFIG_ARCH_HAS_FORCE_DMA_UNENCRYPTED=y
CONFIG_SWIOTLB=y CONFIG_SWIOTLB=y
# CONFIG_SWIOTLB_DYNAMIC is not set # CONFIG_SWIOTLB_DYNAMIC is not set
@ -1241,19 +1069,11 @@ index 65b3647..7ba70c0 100644
CONFIG_DMA_NEED_SYNC=y CONFIG_DMA_NEED_SYNC=y
# CONFIG_DMA_RESTRICTED_POOL is not set # CONFIG_DMA_RESTRICTED_POOL is not set
CONFIG_DMA_NONCOHERENT_MMAP=y CONFIG_DMA_NONCOHERENT_MMAP=y
@@ -10276,6 +10373,7 @@ CONFIG_UBSAN_BOUNDS_STRICT=y
CONFIG_UBSAN_SHIFT=y
# CONFIG_UBSAN_DIV_ZERO is not set
# CONFIG_UBSAN_UNREACHABLE is not set
+CONFIG_UBSAN_SIGNED_WRAP=y
CONFIG_UBSAN_BOOL=y
CONFIG_UBSAN_ENUM=y
# CONFIG_UBSAN_ALIGNMENT is not set
diff --git a/kernel/build/pkg.yaml b/kernel/build/pkg.yaml diff --git a/kernel/build/pkg.yaml b/kernel/build/pkg.yaml
index f797dd4..b44030e 100644 index 40f25d5..b5f96ce 100644
--- a/kernel/build/pkg.yaml --- a/kernel/build/pkg.yaml
+++ b/kernel/build/pkg.yaml +++ b/kernel/build/pkg.yaml
@@ -27,7 +27,7 @@ steps: @@ -28,7 +28,7 @@ steps:
{{ else }} {{ else }}
- | - |
cd /src cd /src
@ -1263,11 +1083,11 @@ index f797dd4..b44030e 100644
cd /src cd /src
diff --git a/kernel/prepare/pkg.yaml b/kernel/prepare/pkg.yaml diff --git a/kernel/prepare/pkg.yaml b/kernel/prepare/pkg.yaml
index 6408110..b507e5d 100644 index 6c6e61d..5df67c3 100644
--- a/kernel/prepare/pkg.yaml --- a/kernel/prepare/pkg.yaml
+++ b/kernel/prepare/pkg.yaml +++ b/kernel/prepare/pkg.yaml
@@ -5,8 +5,8 @@ dependencies: @@ -6,8 +6,8 @@ dependencies:
- stage: base - image: "{{ .LLVM_IMAGE }}:{{ .TOOLS_REV }}"
steps: steps:
- sources: - sources:
- - url: https://cdn.kernel.org/pub/linux/kernel/v{{ regexReplaceAll "(\\d+)(.\\d+)(\\.\\d+)?$" .linux_version "${1}" }}.x/linux-{{ .linux_version }}.tar.xz - - url: https://cdn.kernel.org/pub/linux/kernel/v{{ regexReplaceAll "(\\d+)(.\\d+)(\\.\\d+)?$" .linux_version "${1}" }}.x/linux-{{ .linux_version }}.tar.xz
@ -1277,7 +1097,7 @@ index 6408110..b507e5d 100644
sha256: "{{ .linux_sha256 }}" sha256: "{{ .linux_sha256 }}"
sha512: "{{ .linux_sha512 }}" sha512: "{{ .linux_sha512 }}"
- url: https://github.com/a13xp0p0v/kernel-hardening-checker/archive/{{ .kspp_ref }}.tar.gz - url: https://github.com/a13xp0p0v/kernel-hardening-checker/archive/{{ .kspp_ref }}.tar.gz
@@ -18,7 +18,7 @@ steps: @@ -19,7 +19,7 @@ steps:
prepare: prepare:
- | - |
mkdir -p /src mkdir -p /src

View File

@ -1,414 +0,0 @@
From 808bd99557797a8175464184202ff4df7c324a55 Mon Sep 17 00:00:00 2001
From: Patrick Hunziker <patrick@hunziker.io>
Date: Sat, 8 Nov 2025 11:31:15 +0100
Subject: [PATCH] Patched for Raspberry Pi 5
---
hack/modules-arm64.txt | 367 ++++++++++++++++++-----------------------
1 file changed, 160 insertions(+), 207 deletions(-)
diff --git a/hack/modules-arm64.txt b/hack/modules-arm64.txt
index 3b11b7551..95c3ee669 100644
--- a/hack/modules-arm64.txt
+++ b/hack/modules-arm64.txt
@@ -1,237 +1,190 @@
-kernel/arch/arm64/lib/xor-neon.ko
+modules.builtin.bin
+modules.builtin.modinfo
+modules.builtin.alias.bin
+modules.dep.bin
+modules.alias
+modules.weakdep
+modules.order
+modules.symbols.bin
+modules.dep
+modules.alias.bin
+modules.softdep
+modules.symbols
+modules.devname
+kernel/crypto/xor.ko
+kernel/crypto/async_tx/async_xor.ko
kernel/crypto/async_tx/async_memcpy.ko
kernel/crypto/async_tx/async_pq.ko
kernel/crypto/async_tx/async_raid6_recov.ko
kernel/crypto/async_tx/async_tx.ko
-kernel/crypto/async_tx/async_xor.ko
-kernel/crypto/hkdf.ko
-kernel/crypto/xor.ko
-kernel/drivers/acpi/video.ko
-kernel/drivers/ata/ahci.ko
-kernel/drivers/ata/pata_amd.ko
-kernel/drivers/ata/pata_marvell.ko
-kernel/drivers/ata/pata_oldpiix.ko
-kernel/drivers/ata/pata_sch.ko
-kernel/drivers/block/nbd.ko
-kernel/drivers/block/ublk_drv.ko
+kernel/crypto/blake2b_generic.ko
+kernel/crypto/xxhash_generic.ko
+kernel/crypto/zstd.ko
+kernel/net/ipv4/ip_gre.ko
+kernel/net/tls/tls.ko
+kernel/net/openvswitch/vport-gre.ko
+kernel/drivers/infiniband/sw/rxe/rdma_rxe.ko
+kernel/drivers/infiniband/hw/mlx4/mlx4_ib.ko
+kernel/drivers/infiniband/hw/mlx5/mlx5_ib.ko
+kernel/drivers/infiniband/hw/hns/hns-roce-hw-v2.ko
+kernel/drivers/misc/bcm2835_smi.ko
kernel/drivers/crypto/tegra/tegra-se.ko
-kernel/drivers/gpu/drm/drm_buddy.ko
-kernel/drivers/gpu/drm/drm_exec.ko
-kernel/drivers/gpu/drm/drm_gpuvm.ko
-kernel/drivers/gpu/drm/drm_panel_backlight_quirks.ko
-kernel/drivers/gpu/drm/drm_suballoc_helper.ko
+kernel/drivers/acpi/video.ko
+kernel/drivers/gpu/drm/vc4/vc4.ko
kernel/drivers/gpu/drm/drm_ttm_helper.ko
-kernel/drivers/gpu/drm/drm_vram_helper.ko
-kernel/drivers/gpu/drm/hisilicon/hibmc/hibmc-drm.ko
+kernel/drivers/gpu/drm/ttm/ttm.ko
+kernel/drivers/gpu/drm/drm_suballoc_helper.ko
kernel/drivers/gpu/drm/scheduler/gpu-sched.ko
+kernel/drivers/gpu/drm/drm_buddy.ko
kernel/drivers/gpu/drm/tegra/tegra-drm.ko
-kernel/drivers/gpu/drm/ttm/ttm.ko
+kernel/drivers/gpu/drm/amd/amdxcp/amdxcp.ko
+kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
+kernel/drivers/gpu/drm/drm_vram_helper.ko
+kernel/drivers/gpu/drm/hisilicon/hibmc/hibmc-drm.ko
+kernel/drivers/gpu/drm/panfrost/panfrost.ko
+kernel/drivers/gpu/drm/display/drm_dp_aux_bus.ko
+kernel/drivers/gpu/drm/v3d/v3d.ko
+kernel/drivers/gpu/drm/drm_exec.ko
kernel/drivers/gpu/host1x/host1x.ko
-kernel/drivers/hid/hid-a4tech.ko
-kernel/drivers/hid/hid-apple.ko
-kernel/drivers/hid/hid-belkin.ko
-kernel/drivers/hid/hid-cherry.ko
-kernel/drivers/hid/hid-chicony.ko
-kernel/drivers/hid/hid-cypress.ko
-kernel/drivers/hid/hid-ezkey.ko
-kernel/drivers/hid/hid-gyration.ko
-kernel/drivers/hid/hid-ite.ko
-kernel/drivers/hid/hid-kensington.ko
-kernel/drivers/hid/hid-lg-g15.ko
-kernel/drivers/hid/hid-logitech.ko
-kernel/drivers/hid/hid-microsoft.ko
-kernel/drivers/hid/hid-monterey.ko
-kernel/drivers/hid/hid-petalynx.ko
-kernel/drivers/hid/hid-pl.ko
-kernel/drivers/hid/hid-samsung.ko
-kernel/drivers/hid/hid-sunplus.ko
-kernel/drivers/hid/hid-topseed.ko
-kernel/drivers/hwmon/i5k_amb.ko
-kernel/drivers/i2c/algos/i2c-algo-bit.ko
-kernel/drivers/i2c/busses/i2c-i801.ko
-kernel/drivers/i2c/i2c-mux.ko
-kernel/drivers/infiniband/core/ib_umad.ko
-kernel/drivers/infiniband/core/ib_uverbs.ko
-kernel/drivers/infiniband/core/rdma_ucm.ko
-kernel/drivers/infiniband/hw/hns/hns-roce-hw-v2.ko
-kernel/drivers/infiniband/hw/irdma/irdma.ko
-kernel/drivers/infiniband/hw/mlx4/mlx4_ib.ko
-kernel/drivers/infiniband/hw/mlx5/mlx5_ib.ko
-kernel/drivers/infiniband/sw/rxe/rdma_rxe.ko
-kernel/drivers/irqchip/irq-bcm2712-mip.ko
-kernel/drivers/irqchip/irq-imx-mu-msi.ko
-kernel/drivers/leds/led-class-multicolor.ko
-kernel/drivers/mailbox/bcm-flexrm-mailbox.ko
-kernel/drivers/md/bcache/bcache.ko
-kernel/drivers/md/dm-bio-prison.ko
-kernel/drivers/md/dm-cache-smq.ko
-kernel/drivers/md/dm-cache.ko
-kernel/drivers/md/dm-integrity.ko
-kernel/drivers/md/dm-multipath.ko
-kernel/drivers/md/dm-raid.ko
-kernel/drivers/md/dm-round-robin.ko
-kernel/drivers/md/dm-thin-pool.ko
-kernel/drivers/md/persistent-data/dm-persistent-data.ko
-kernel/drivers/md/raid456.ko
-kernel/drivers/misc/hpilo.ko
-kernel/drivers/mmc/host/sdhci_f_sdh30.ko
-kernel/drivers/mmc/host/sdhci-acpi.ko
-kernel/drivers/mmc/host/sdhci-brcmstb.ko
-kernel/drivers/mmc/host/sdhci-cadence.ko
-kernel/drivers/mmc/host/sdhci-iproc.ko
-kernel/drivers/mmc/host/sdhci-msm.ko
-kernel/drivers/mmc/host/sdhci-of-arasan.ko
-kernel/drivers/mmc/host/sdhci-of-dwcmshc.ko
-kernel/drivers/mmc/host/sdhci-of-esdhc.ko
-kernel/drivers/mmc/host/sdhci-pci.ko
-kernel/drivers/mmc/host/sdhci-pltfm.ko
-kernel/drivers/mmc/host/sdhci-tegra.ko
-kernel/drivers/mmc/host/sdhci-uhs2.ko
-kernel/drivers/mmc/host/sdhci-xenon-driver.ko
+kernel/drivers/nvme/host/nvme-rdma.ko
+kernel/drivers/nvme/target/nvme-loop.ko
+kernel/drivers/nvme/target/nvmet-fc.ko
+kernel/drivers/nvme/target/nvmet.ko
+kernel/drivers/nvme/target/nvmet-tcp.ko
+kernel/drivers/nvme/target/nvmet-rdma.ko
+kernel/drivers/nvme/common/nvme-auth.ko
+kernel/drivers/net/mdio/mdio-mux-meson-gxl.ko
+kernel/drivers/net/thunderbolt/thunderbolt_net.ko
kernel/drivers/net/ethernet/amazon/ena/ena.ko
-kernel/drivers/net/ethernet/aquantia/atlantic/atlantic.ko
kernel/drivers/net/ethernet/atheros/alx/alx.ko
-kernel/drivers/net/ethernet/broadcom/bnx2.ko
-kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko
-kernel/drivers/net/ethernet/broadcom/bnxt/bnxt_en.ko
-kernel/drivers/net/ethernet/broadcom/tg3.ko
-kernel/drivers/net/ethernet/cavium/common/cavium_ptp.ko
-kernel/drivers/net/ethernet/cisco/enic/enic.ko
kernel/drivers/net/ethernet/google/gve/gve.ko
-kernel/drivers/net/ethernet/hisilicon/hip04_eth.ko
+kernel/drivers/net/ethernet/sfc/sfc.ko
+kernel/drivers/net/ethernet/sfc/siena/sfc-siena.ko
+kernel/drivers/net/ethernet/mellanox/mlx4/mlx4_en.ko
+kernel/drivers/net/ethernet/mellanox/mlx4/mlx4_core.ko
+kernel/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.ko
+kernel/drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci.ko
+kernel/drivers/net/ethernet/mellanox/mlxsw/mlxsw_minimal.ko
+kernel/drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c.ko
+kernel/drivers/net/ethernet/mellanox/mlxsw/mlxsw_spectrum.ko
+kernel/drivers/net/ethernet/mellanox/mlxsw/mlxsw_core.ko
+kernel/drivers/net/ethernet/mellanox/mlxfw/mlxfw.ko
+kernel/drivers/net/ethernet/chelsio/cxgb4/cxgb4.ko
+kernel/drivers/net/ethernet/chelsio/cxgb3/cxgb3.ko
+kernel/drivers/net/ethernet/chelsio/inline_crypto/ch_ipsec/ch_ipsec.ko
+kernel/drivers/net/ethernet/chelsio/cxgb/cxgb.ko
+kernel/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf.ko
kernel/drivers/net/ethernet/hisilicon/hisi_femac.ko
-kernel/drivers/net/ethernet/hisilicon/hix5hd2_gmac.ko
-kernel/drivers/net/ethernet/hisilicon/hns_mdio.ko
+kernel/drivers/net/ethernet/hisilicon/hip04_eth.ko
kernel/drivers/net/ethernet/hisilicon/hns/hnae.ko
kernel/drivers/net/ethernet/hisilicon/hns/hns_dsaf.ko
kernel/drivers/net/ethernet/hisilicon/hns/hns_enet_drv.ko
-kernel/drivers/net/ethernet/hisilicon/hns3/hclge-common.ko
kernel/drivers/net/ethernet/hisilicon/hns3/hclge.ko
+kernel/drivers/net/ethernet/hisilicon/hns3/hns3.ko
kernel/drivers/net/ethernet/hisilicon/hns3/hclgevf.ko
kernel/drivers/net/ethernet/hisilicon/hns3/hnae3.ko
-kernel/drivers/net/ethernet/hisilicon/hns3/hns3.ko
-kernel/drivers/net/ethernet/intel/e100.ko
-kernel/drivers/net/ethernet/intel/e1000/e1000.ko
-kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko
-kernel/drivers/net/ethernet/intel/i40e/i40e.ko
-kernel/drivers/net/ethernet/intel/iavf/iavf.ko
-kernel/drivers/net/ethernet/intel/ice/ice.ko
-kernel/drivers/net/ethernet/intel/idpf/idpf.ko
-kernel/drivers/net/ethernet/intel/igb/igb.ko
-kernel/drivers/net/ethernet/intel/igbvf/igbvf.ko
-kernel/drivers/net/ethernet/intel/igc/igc.ko
-kernel/drivers/net/ethernet/intel/ixgbe/ixgbe.ko
-kernel/drivers/net/ethernet/intel/ixgbevf/ixgbevf.ko
-kernel/drivers/net/ethernet/intel/libeth/libeth_xdp.ko
-kernel/drivers/net/ethernet/intel/libeth/libeth.ko
-kernel/drivers/net/ethernet/intel/libie/libie_adminq.ko
-kernel/drivers/net/ethernet/intel/libie/libie_fwlog.ko
-kernel/drivers/net/ethernet/intel/libie/libie.ko
-kernel/drivers/net/ethernet/marvell/sky2.ko
-kernel/drivers/net/ethernet/mellanox/mlx4/mlx4_core.ko
-kernel/drivers/net/ethernet/mellanox/mlx4/mlx4_en.ko
-kernel/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.ko
-kernel/drivers/net/ethernet/mellanox/mlxfw/mlxfw.ko
-kernel/drivers/net/ethernet/mellanox/mlxsw/mlxsw_core.ko
-kernel/drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c.ko
-kernel/drivers/net/ethernet/mellanox/mlxsw/mlxsw_minimal.ko
-kernel/drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci.ko
-kernel/drivers/net/ethernet/mellanox/mlxsw/mlxsw_spectrum.ko
-kernel/drivers/net/ethernet/qlogic/qed/qed.ko
-kernel/drivers/net/ethernet/qlogic/qede/qede.ko
-kernel/drivers/net/ethernet/qlogic/qlcnic/qlcnic.ko
-kernel/drivers/net/ethernet/realtek/8139too.ko
-kernel/drivers/net/ethernet/realtek/r8169.ko
-kernel/drivers/net/ethernet/sfc/sfc.ko
-kernel/drivers/net/ethernet/sfc/siena/sfc-siena.ko
-kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.ko
-kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-generic.ko
-kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-imx.ko
-kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.ko
-kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-meson.ko
-kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.ko
-kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.ko
-kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-renesas-gbeth.ko
-kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.ko
-kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.ko
-kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-sunxi.ko
-kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-tegra.ko
-kernel/drivers/net/ethernet/stmicro/stmmac/stmmac-pci.ko
-kernel/drivers/net/ethernet/stmicro/stmmac/stmmac-platform.ko
-kernel/drivers/net/ethernet/stmicro/stmmac/stmmac.ko
-kernel/drivers/net/mdio.ko
-kernel/drivers/net/pcs/pcs_xpcs.ko
-kernel/drivers/net/phy/dp83867.ko
-kernel/drivers/net/usb/r8152.ko
-kernel/drivers/net/vmxnet3/vmxnet3.ko
+kernel/drivers/net/ethernet/hisilicon/hns3/hclge-common.ko
+kernel/drivers/net/ethernet/hisilicon/hns_mdio.ko
+kernel/drivers/net/ethernet/hisilicon/hix5hd2_gmac.ko
+kernel/drivers/net/phy/ax88796b.ko
+kernel/drivers/net/usb/sr9800.ko
+kernel/drivers/net/usb/rndis_host.ko
+kernel/drivers/net/usb/cdc_mbim.ko
+kernel/drivers/net/usb/zaurus.ko
+kernel/drivers/net/usb/kalmia.ko
+kernel/drivers/net/usb/usbnet.ko
+kernel/drivers/net/usb/dm9601.ko
+kernel/drivers/net/usb/plusb.ko
+kernel/drivers/net/usb/gl620a.ko
+kernel/drivers/net/usb/cdc_subset.ko
+kernel/drivers/net/usb/smsc75xx.ko
+kernel/drivers/net/usb/cx82310_eth.ko
+kernel/drivers/net/usb/mcs7830.ko
+kernel/drivers/net/usb/ch9200.ko
+kernel/drivers/net/usb/smsc95xx.ko
+kernel/drivers/net/usb/huawei_cdc_ncm.ko
+kernel/drivers/net/usb/r8153_ecm.ko
+kernel/drivers/net/usb/ax88179_178a.ko
+kernel/drivers/net/usb/cdc_eem.ko
+kernel/drivers/net/usb/sierra_net.ko
+kernel/drivers/net/usb/asix.ko
+kernel/drivers/net/usb/net1080.ko
+kernel/drivers/net/usb/cdc-phonet.ko
+kernel/drivers/net/usb/aqc111.ko
+kernel/drivers/net/usb/qmi_wwan.ko
+kernel/drivers/net/usb/sr9700.ko
+kernel/drivers/net/usb/lg-vl600.ko
+kernel/drivers/net/usb/int51x1.ko
+kernel/drivers/net/usb/cdc_ncm.ko
+kernel/drivers/net/usb/cdc_ether.ko
kernel/drivers/net/vrf.ko
-kernel/drivers/nvme/common/nvme-auth.ko
-kernel/drivers/nvme/host/nvme-rdma.ko
-kernel/drivers/nvme/host/nvme.ko
-kernel/drivers/nvme/target/nvme-loop.ko
-kernel/drivers/nvme/target/nvmet-fc.ko
-kernel/drivers/nvme/target/nvmet-rdma.ko
-kernel/drivers/nvme/target/nvmet-tcp.ko
-kernel/drivers/nvme/target/nvmet.ko
-kernel/drivers/perf/hisilicon/hisi_pcie_pmu.ko
-kernel/drivers/perf/hisilicon/hisi_uncore_cpa_pmu.ko
-kernel/drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.ko
-kernel/drivers/perf/hisilicon/hisi_uncore_hha_pmu.ko
-kernel/drivers/perf/hisilicon/hisi_uncore_l3c_pmu.ko
-kernel/drivers/perf/hisilicon/hisi_uncore_pa_pmu.ko
-kernel/drivers/perf/hisilicon/hisi_uncore_pmu.ko
-kernel/drivers/perf/hisilicon/hisi_uncore_sllc_pmu.ko
-kernel/drivers/perf/hisilicon/hisi_uncore_uc_pmu.ko
-kernel/drivers/perf/hisilicon/hns3_pmu.ko
+kernel/drivers/irqchip/irq-imx-mu-msi.ko
+kernel/drivers/input/misc/uinput.ko
+kernel/drivers/mailbox/bcm-flexrm-mailbox.ko
+kernel/drivers/hwmon/i5k_amb.ko
kernel/drivers/scsi/fcoe/libfcoe.ko
-kernel/drivers/scsi/hisi_sas/hisi_sas_main.ko
+kernel/drivers/scsi/mpi3mr/mpi3mr.ko
+kernel/drivers/scsi/qla2xxx/qla2xxx.ko
+kernel/drivers/scsi/lpfc/lpfc.ko
+kernel/drivers/scsi/qedf/qedf.ko
kernel/drivers/scsi/hisi_sas/hisi_sas_v1_hw.ko
-kernel/drivers/scsi/hisi_sas/hisi_sas_v2_hw.ko
+kernel/drivers/scsi/hisi_sas/hisi_sas_main.ko
kernel/drivers/scsi/hisi_sas/hisi_sas_v3_hw.ko
-kernel/drivers/scsi/hpsa.ko
+kernel/drivers/scsi/hisi_sas/hisi_sas_v2_hw.ko
kernel/drivers/scsi/libfc/libfc.ko
-kernel/drivers/scsi/lpfc/lpfc.ko
-kernel/drivers/scsi/megaraid/megaraid_sas.ko
-kernel/drivers/scsi/mpi3mr/mpi3mr.ko
-kernel/drivers/scsi/mpt3sas/mpt3sas.ko
-kernel/drivers/scsi/qedf/qedf.ko
-kernel/drivers/scsi/qla2xxx/qla2xxx.ko
-kernel/drivers/scsi/smartpqi/smartpqi.ko
-kernel/drivers/uio/uio_pci_generic.ko
-kernel/drivers/uio/uio.ko
-kernel/drivers/usb/serial/ch341.ko
-kernel/drivers/usb/serial/cp210x.ko
-kernel/drivers/usb/serial/ftdi_sio.ko
-kernel/drivers/usb/serial/pl2303.ko
-kernel/drivers/vdpa/mlx5/mlx5_vdpa.ko
-kernel/drivers/vdpa/octeon_ep/octep_vdpa.ko
-kernel/drivers/vdpa/solidrun/snet_vdpa.ko
-kernel/drivers/vdpa/vdpa_sim/vdpa_sim_blk.ko
-kernel/drivers/vdpa/vdpa_sim/vdpa_sim_net.ko
-kernel/drivers/vdpa/vdpa_sim/vdpa_sim.ko
-kernel/drivers/vdpa/vdpa_user/vduse.ko
-kernel/drivers/vdpa/vdpa.ko
-kernel/drivers/vdpa/virtio_pci/vp_vdpa.ko
-kernel/drivers/vfio/pci/vfio-pci-core.ko
+kernel/drivers/thunderbolt/thunderbolt.ko
kernel/drivers/vfio/pci/vfio-pci.ko
-kernel/drivers/vfio/vfio_iommu_type1.ko
+kernel/drivers/vfio/pci/vfio-pci-core.ko
kernel/drivers/vfio/vfio.ko
-kernel/drivers/vhost/vhost_vdpa.ko
-kernel/drivers/vhost/vringh.ko
-kernel/drivers/virtio/virtio_balloon.ko
-kernel/drivers/virtio/virtio_input.ko
-kernel/drivers/virtio/virtio_mmio.ko
-kernel/drivers/virtio/virtio_pci_legacy_dev.ko
-kernel/drivers/virtio/virtio_pci_modern_dev.ko
-kernel/drivers/virtio/virtio_pci.ko
-kernel/drivers/virtio/virtio_vdpa.ko
+kernel/drivers/vfio/vfio_iommu_type1.ko
+kernel/drivers/usb/class/cdc-wdm.ko
+kernel/drivers/usb/serial/usb_wwan.ko
+kernel/drivers/usb/serial/option.ko
kernel/drivers/watchdog/sbsa_gwdt.ko
+kernel/drivers/md/dm-round-robin.ko
+kernel/drivers/md/raid456.ko
+kernel/drivers/md/persistent-data/dm-persistent-data.ko
+kernel/drivers/md/dm-multipath.ko
+kernel/drivers/md/dm-bio-prison.ko
+kernel/drivers/md/dm-thin-pool.ko
+kernel/drivers/md/dm-raid.ko
+kernel/drivers/md/dm-cache.ko
+kernel/drivers/md/dm-cache-smq.ko
+kernel/drivers/dma/bcm-sba-raid.ko
+kernel/drivers/uio/uio.ko
+kernel/drivers/uio/uio_pci_generic.ko
+kernel/drivers/perf/hisilicon/hisi_uncore_l3c_pmu.ko
+kernel/drivers/perf/hisilicon/hns3_pmu.ko
+kernel/drivers/perf/hisilicon/hisi_uncore_cpa_pmu.ko
+kernel/drivers/perf/hisilicon/hisi_pcie_pmu.ko
+kernel/drivers/perf/hisilicon/hisi_uncore_pa_pmu.ko
+kernel/drivers/perf/hisilicon/hisi_uncore_hha_pmu.ko
+kernel/drivers/perf/hisilicon/hisi_uncore_uc_pmu.ko
+kernel/drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.ko
+kernel/drivers/perf/hisilicon/hisi_uncore_pmu.ko
+kernel/drivers/perf/hisilicon/hisi_uncore_sllc_pmu.ko
+kernel/drivers/block/nbd.ko
+kernel/drivers/media/usb/uvc/uvcvideo.ko
+kernel/drivers/media/common/uvc.ko
+kernel/drivers/media/common/videobuf2/videobuf2-vmalloc.ko
+kernel/drivers/media/common/videobuf2/videobuf2-memops.ko
+kernel/drivers/media/common/videobuf2/videobuf2-common.ko
+kernel/drivers/media/common/videobuf2/videobuf2-v4l2.ko
+kernel/drivers/media/v4l2-core/v4l2-dv-timings.ko
+kernel/drivers/media/v4l2-core/videodev.ko
+kernel/drivers/media/mc/mc.ko
+kernel/arch/arm64/lib/xor-neon.ko
+kernel/lib/raid6/raid6_pq.ko
kernel/lib/objagg.ko
kernel/lib/parman.ko
-kernel/lib/raid6/raid6_pq.ko
-kernel/net/ipv4/ip_gre.ko
-kernel/net/openvswitch/vport-gre.ko
-kernel/net/tls/tls.ko
+kernel/fs/btrfs/btrfs.ko
+kernel/fs/nfsd/nfsd.ko
+kernel/fs/binfmt_misc.ko
+kernel/sound/core/snd-pcm-dmaengine.ko
+kernel/sound/core/snd.ko
+kernel/sound/core/snd-pcm.ko
+kernel/sound/core/snd-timer.ko
+kernel/sound/soc/codecs/snd-soc-hdmi-codec.ko
+kernel/sound/soc/snd-soc-core.ko
+kernel/sound/soundcore.ko
modules.builtin
-modules.builtin.modinfo
-modules.order
--
2.50.1 (Apple Git-155)

View File

@ -0,0 +1,226 @@
From 6a36399e47baeed36db12deab50e2d9d4a5914ac Mon Sep 17 00:00:00 2001
From: Mathias Beaulieu-Duncan <mathias@svrnty.io>
Date: Mon, 18 May 2026 19:02:29 -0400
Subject: [PATCH] Replace modules-arm64.txt with RPi 6.12.47 module set
The upstream Talos modules-arm64.txt is the list of kernel modules
included in the arm64 initramfs. Its entries are computed against
upstream's mainline kernel build; when Talos is built with the RPi
downstream kernel (6.12.47), several listed modules either don't
exist or are gated by upstream-only Kconfig options, causing the
initramfs install step to fail:
xargs -a modules-arm64.txt -I {} install -D \
usr/lib/modules/${KERNEL_VERSION}/{} ...
-> exit 123 (one or more inputs missing)
Replace the list with the intersection of:
- upstream's "wanted in initramfs" entries
- modules actually produced by our patched RPi 6.12.47 build
Verified by extracting the kernel image's /usr/lib/modules tree and
intersecting it with upstream's file. 155 modules survive, covering
all storage/network/crypto modules needed for headless boot. The 86
dropped modules are SATA/HID/upstream-only crypto helpers irrelevant
on RPi5/CM5.
---
hack/modules-arm64.txt | 86 ------------------------------------------
1 file changed, 86 deletions(-)
diff --git a/hack/modules-arm64.txt b/hack/modules-arm64.txt
index 9888d2b0f..a09360aed 100644
--- a/hack/modules-arm64.txt
+++ b/hack/modules-arm64.txt
@@ -4,21 +4,13 @@ kernel/crypto/async_tx/async_pq.ko
kernel/crypto/async_tx/async_raid6_recov.ko
kernel/crypto/async_tx/async_tx.ko
kernel/crypto/async_tx/async_xor.ko
-kernel/crypto/hkdf.ko
kernel/crypto/xor.ko
kernel/drivers/acpi/video.ko
-kernel/drivers/ata/ahci.ko
-kernel/drivers/ata/pata_amd.ko
-kernel/drivers/ata/pata_marvell.ko
-kernel/drivers/ata/pata_oldpiix.ko
-kernel/drivers/ata/pata_sch.ko
kernel/drivers/block/nbd.ko
kernel/drivers/block/ublk_drv.ko
kernel/drivers/crypto/tegra/tegra-se.ko
kernel/drivers/gpu/drm/drm_buddy.ko
kernel/drivers/gpu/drm/drm_exec.ko
-kernel/drivers/gpu/drm/drm_gpuvm.ko
-kernel/drivers/gpu/drm/drm_panel_backlight_quirks.ko
kernel/drivers/gpu/drm/drm_suballoc_helper.ko
kernel/drivers/gpu/drm/drm_ttm_helper.ko
kernel/drivers/gpu/drm/drm_vram_helper.ko
@@ -27,43 +19,21 @@ kernel/drivers/gpu/drm/scheduler/gpu-sched.ko
kernel/drivers/gpu/drm/tegra/tegra-drm.ko
kernel/drivers/gpu/drm/ttm/ttm.ko
kernel/drivers/gpu/host1x/host1x.ko
-kernel/drivers/hid/hid-a4tech.ko
-kernel/drivers/hid/hid-apple.ko
-kernel/drivers/hid/hid-belkin.ko
-kernel/drivers/hid/hid-cherry.ko
-kernel/drivers/hid/hid-chicony.ko
-kernel/drivers/hid/hid-cypress.ko
-kernel/drivers/hid/hid-ezkey.ko
-kernel/drivers/hid/hid-gyration.ko
-kernel/drivers/hid/hid-ite.ko
-kernel/drivers/hid/hid-kensington.ko
-kernel/drivers/hid/hid-lg-g15.ko
-kernel/drivers/hid/hid-logitech.ko
kernel/drivers/hid/hid-microsoft.ko
kernel/drivers/hid/hid-monterey.ko
kernel/drivers/hid/hid-multitouch.ko
kernel/drivers/hid/hid-petalynx.ko
kernel/drivers/hid/hid-pl.ko
-kernel/drivers/hid/hid-samsung.ko
-kernel/drivers/hid/hid-sunplus.ko
-kernel/drivers/hid/hid-topseed.ko
kernel/drivers/hwmon/i5k_amb.ko
kernel/drivers/i2c/algos/i2c-algo-bit.ko
-kernel/drivers/i2c/busses/i2c-i801.ko
-kernel/drivers/i2c/i2c-mux.ko
-kernel/drivers/infiniband/core/ib_umad.ko
-kernel/drivers/infiniband/core/ib_uverbs.ko
-kernel/drivers/infiniband/core/rdma_ucm.ko
kernel/drivers/infiniband/hw/hns/hns-roce-hw-v2.ko
kernel/drivers/infiniband/hw/irdma/irdma.ko
kernel/drivers/infiniband/hw/mlx4/mlx4_ib.ko
kernel/drivers/infiniband/hw/mlx5/mlx5_ib.ko
kernel/drivers/infiniband/sw/rxe/rdma_rxe.ko
-kernel/drivers/irqchip/irq-bcm2712-mip.ko
kernel/drivers/irqchip/irq-imx-mu-msi.ko
kernel/drivers/leds/led-class-multicolor.ko
kernel/drivers/mailbox/bcm-flexrm-mailbox.ko
-kernel/drivers/md/bcache/bcache.ko
kernel/drivers/md/dm-bio-prison.ko
kernel/drivers/md/dm-cache-smq.ko
kernel/drivers/md/dm-cache.ko
@@ -74,30 +44,8 @@ kernel/drivers/md/dm-round-robin.ko
kernel/drivers/md/dm-thin-pool.ko
kernel/drivers/md/persistent-data/dm-persistent-data.ko
kernel/drivers/md/raid456.ko
-kernel/drivers/misc/hpilo.ko
-kernel/drivers/mmc/host/sdhci_f_sdh30.ko
-kernel/drivers/mmc/host/sdhci-acpi.ko
-kernel/drivers/mmc/host/sdhci-brcmstb.ko
-kernel/drivers/mmc/host/sdhci-cadence.ko
-kernel/drivers/mmc/host/sdhci-iproc.ko
-kernel/drivers/mmc/host/sdhci-msm.ko
-kernel/drivers/mmc/host/sdhci-of-arasan.ko
-kernel/drivers/mmc/host/sdhci-of-dwcmshc.ko
-kernel/drivers/mmc/host/sdhci-of-esdhc.ko
-kernel/drivers/mmc/host/sdhci-pci.ko
-kernel/drivers/mmc/host/sdhci-pltfm.ko
-kernel/drivers/mmc/host/sdhci-tegra.ko
-kernel/drivers/mmc/host/sdhci-uhs2.ko
-kernel/drivers/mmc/host/sdhci-xenon-driver.ko
kernel/drivers/net/ethernet/amazon/ena/ena.ko
-kernel/drivers/net/ethernet/aquantia/atlantic/atlantic.ko
kernel/drivers/net/ethernet/atheros/alx/alx.ko
-kernel/drivers/net/ethernet/broadcom/bnx2.ko
-kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko
-kernel/drivers/net/ethernet/broadcom/bnxt/bnxt_en.ko
-kernel/drivers/net/ethernet/broadcom/tg3.ko
-kernel/drivers/net/ethernet/cavium/common/cavium_ptp.ko
-kernel/drivers/net/ethernet/cisco/enic/enic.ko
kernel/drivers/net/ethernet/google/gve/gve.ko
kernel/drivers/net/ethernet/hisilicon/hip04_eth.ko
kernel/drivers/net/ethernet/hisilicon/hisi_femac.ko
@@ -123,12 +71,8 @@ kernel/drivers/net/ethernet/intel/igbvf/igbvf.ko
kernel/drivers/net/ethernet/intel/igc/igc.ko
kernel/drivers/net/ethernet/intel/ixgbe/ixgbe.ko
kernel/drivers/net/ethernet/intel/ixgbevf/ixgbevf.ko
-kernel/drivers/net/ethernet/intel/libeth/libeth_xdp.ko
kernel/drivers/net/ethernet/intel/libeth/libeth.ko
-kernel/drivers/net/ethernet/intel/libie/libie_adminq.ko
-kernel/drivers/net/ethernet/intel/libie/libie_fwlog.ko
kernel/drivers/net/ethernet/intel/libie/libie.ko
-kernel/drivers/net/ethernet/marvell/sky2.ko
kernel/drivers/net/ethernet/mellanox/mlx4/mlx4_core.ko
kernel/drivers/net/ethernet/mellanox/mlx4/mlx4_en.ko
kernel/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.ko
@@ -138,11 +82,6 @@ kernel/drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c.ko
kernel/drivers/net/ethernet/mellanox/mlxsw/mlxsw_minimal.ko
kernel/drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci.ko
kernel/drivers/net/ethernet/mellanox/mlxsw/mlxsw_spectrum.ko
-kernel/drivers/net/ethernet/qlogic/qed/qed.ko
-kernel/drivers/net/ethernet/qlogic/qede/qede.ko
-kernel/drivers/net/ethernet/qlogic/qlcnic/qlcnic.ko
-kernel/drivers/net/ethernet/realtek/8139too.ko
-kernel/drivers/net/ethernet/realtek/r8169.ko
kernel/drivers/net/ethernet/sfc/sfc.ko
kernel/drivers/net/ethernet/sfc/siena/sfc-siena.ko
kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.ko
@@ -152,25 +91,17 @@ kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.ko
kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-meson.ko
kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.ko
kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.ko
-kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-renesas-gbeth.ko
kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.ko
-kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-sun55i.ko
kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.ko
kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-sunxi.ko
kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-tegra.ko
kernel/drivers/net/ethernet/stmicro/stmmac/stmmac-pci.ko
kernel/drivers/net/ethernet/stmicro/stmmac/stmmac-platform.ko
kernel/drivers/net/ethernet/stmicro/stmmac/stmmac.ko
-kernel/drivers/net/mdio.ko
kernel/drivers/net/pcs/pcs_xpcs.ko
-kernel/drivers/net/pcs/pcs-rzn1-miic.ko
-kernel/drivers/net/phy/dp83867.ko
-kernel/drivers/net/usb/r8152.ko
-kernel/drivers/net/vmxnet3/vmxnet3.ko
kernel/drivers/net/vrf.ko
kernel/drivers/nvme/common/nvme-auth.ko
kernel/drivers/nvme/host/nvme-rdma.ko
-kernel/drivers/nvme/host/nvme.ko
kernel/drivers/nvme/target/nvme-loop.ko
kernel/drivers/nvme/target/nvmet-fc.ko
kernel/drivers/nvme/target/nvmet-rdma.ko
@@ -191,21 +122,13 @@ kernel/drivers/scsi/hisi_sas/hisi_sas_main.ko
kernel/drivers/scsi/hisi_sas/hisi_sas_v1_hw.ko
kernel/drivers/scsi/hisi_sas/hisi_sas_v2_hw.ko
kernel/drivers/scsi/hisi_sas/hisi_sas_v3_hw.ko
-kernel/drivers/scsi/hpsa.ko
kernel/drivers/scsi/libfc/libfc.ko
kernel/drivers/scsi/lpfc/lpfc.ko
-kernel/drivers/scsi/megaraid/megaraid_sas.ko
kernel/drivers/scsi/mpi3mr/mpi3mr.ko
-kernel/drivers/scsi/mpt3sas/mpt3sas.ko
kernel/drivers/scsi/qedf/qedf.ko
kernel/drivers/scsi/qla2xxx/qla2xxx.ko
-kernel/drivers/scsi/smartpqi/smartpqi.ko
kernel/drivers/uio/uio_pci_generic.ko
kernel/drivers/uio/uio.ko
-kernel/drivers/usb/serial/ch341.ko
-kernel/drivers/usb/serial/cp210x.ko
-kernel/drivers/usb/serial/ftdi_sio.ko
-kernel/drivers/usb/serial/pl2303.ko
kernel/drivers/vdpa/mlx5/mlx5_vdpa.ko
kernel/drivers/vdpa/octeon_ep/octep_vdpa.ko
kernel/drivers/vdpa/solidrun/snet_vdpa.ko
@@ -221,12 +144,6 @@ kernel/drivers/vfio/vfio_iommu_type1.ko
kernel/drivers/vfio/vfio.ko
kernel/drivers/vhost/vhost_vdpa.ko
kernel/drivers/vhost/vringh.ko
-kernel/drivers/virtio/virtio_balloon.ko
-kernel/drivers/virtio/virtio_input.ko
-kernel/drivers/virtio/virtio_mmio.ko
-kernel/drivers/virtio/virtio_pci_legacy_dev.ko
-kernel/drivers/virtio/virtio_pci_modern_dev.ko
-kernel/drivers/virtio/virtio_pci.ko
kernel/drivers/virtio/virtio_vdpa.ko
kernel/drivers/watchdog/sbsa_gwdt.ko
kernel/lib/objagg.ko
@@ -236,6 +153,3 @@ kernel/net/ipv4/ip_gre.ko
kernel/net/ipv6/ip6_gre.ko
kernel/net/openvswitch/vport-gre.ko
kernel/net/tls/tls.ko
-modules.builtin
-modules.builtin.modinfo
-modules.order
--
2.50.1 (Apple Git-155)

View File

@ -5,19 +5,28 @@ Subject: [PATCH 3/3] Force GRUB bootloader on arm64
On arm64 platforms like RPi5/CM5, the UEFI firmware (U-Boot) exposes On arm64 platforms like RPi5/CM5, the UEFI firmware (U-Boot) exposes
/sys/firmware/efi but does not support EFI runtime SetVariable. This /sys/firmware/efi but does not support EFI runtime SetVariable. This
causes NewAuto() to select sd-boot, which then fails when trying to causes sd-boot to fail when trying to write EFI variables during
write EFI variables during installation/upgrade. installation/upgrade.
Force GRUB on arm64 since it uses config files instead of EFI Force GRUB on arm64 in two places:
variables for boot configuration. Combined with the --no-nvram patch,
- NewAuto(): When no existing bootloader is detected, create a GRUB
config instead of sd-boot. This handles fresh installs.
- Probe(): When an existing GRUB config is not found, skip sd-boot
probing and return a fresh GRUB config. This handles the first
upgrade on SBC images that ship with sd-boot UKI files — the
upgrade transitions from sd-boot to GRUB automatically.
Combined with the --no-nvram patch and the SBC EFI-only layout patch,
this enables reliable in-place upgrades via talosctl upgrade on this enables reliable in-place upgrades via talosctl upgrade on
RPi5/CM5 hardware. RPi5/CM5 hardware, including the first upgrade from a fresh flash.
Ref: https://github.com/siderolabs/talos/issues/10859 Ref: https://github.com/siderolabs/talos/issues/10859
Ref: https://github.com/talos-rpi5/talos-builder/issues/21 Ref: https://github.com/talos-rpi5/talos-builder/issues/21
--- ---
.../machined/pkg/runtime/v1alpha1/bootloader/bootloader.go | 5 +++++ .../machined/pkg/runtime/v1alpha1/bootloader/bootloader.go | 15 +++++++++++++++
1 file changed, 5 insertions(+) 1 file changed, 15 insertions(+)
diff --git a/internal/app/machined/pkg/runtime/v1alpha1/bootloader/bootloader.go b/internal/app/machined/pkg/runtime/v1alpha1/bootloader/bootloader.go diff --git a/internal/app/machined/pkg/runtime/v1alpha1/bootloader/bootloader.go b/internal/app/machined/pkg/runtime/v1alpha1/bootloader/bootloader.go
index f084e09..5c388c1 100644 index f084e09..5c388c1 100644
@ -31,7 +40,25 @@ index f084e09..5c388c1 100644
"github.com/siderolabs/go-blockdevice/v2/block" "github.com/siderolabs/go-blockdevice/v2/block"
"github.com/siderolabs/go-blockdevice/v2/partitioning/gpt" "github.com/siderolabs/go-blockdevice/v2/partitioning/gpt"
@@ -73,6 +74,10 @@ func Probe(disk string, options options.ProbeOptions) (Bootloader, error) { @@ -56,7 +57,17 @@ func Probe(disk string, options options.ProbeOptions) (Bootloader, error) {
return grubBootloader, nil
}
+ // On arm64, sd-boot requires EFI SetVariable runtime service which is
+ // not available on platforms like RPi5/CM5 (U-Boot). Skip sd-boot
+ // probing and return a fresh GRUB config to transition from sd-boot
+ // to GRUB on the first upgrade.
+ if goruntime.GOARCH == "arm64" {
+ options.Logf("arm64: no GRUB config found, creating new GRUB bootloader (sd-boot not supported)")
+
+ return grub.NewConfig(), nil
+ }
+
sdbootBootloader, err := sdboot.Probe(disk, options)
if err != nil {
return nil, err
@@ -73,6 +84,10 @@ func Probe(disk string, options options.ProbeOptions) (Bootloader, error) {
// NewAuto returns a new bootloader based on auto-detection. // NewAuto returns a new bootloader based on auto-detection.
func NewAuto() Bootloader { func NewAuto() Bootloader {

View File

@ -0,0 +1,45 @@
From 98366401143dcc31c056a7d96242775f9ba013ca Mon Sep 17 00:00:00 2001
From: Mathias Beaulieu-Duncan <mathias@svrnty.io>
Date: Sat, 14 Feb 2026 14:05:15 -0500
Subject: [PATCH 4/4] Fallback to classic bind mounts on kernels without
open_tree support
The open_tree syscall on anonymous filesystem file descriptors was added
in kernel 6.15.0. Talos previously only checked for this capability when
running in container mode, assuming bare metal always had a sufficiently
new kernel. However, platforms like RPi5/CM5 use the RPi downstream
kernel (6.12.x) which lacks this feature, causing shadow bind mount
failures for /etc files and cascading network initialization failures.
Remove the InContainer() gate so the OpentreeOnAnonymousFS() capability
check runs on all platforms, enabling the classic (OSRoot) fallback when
the kernel does not support the newer mount API.
---
.../pkg/runtime/v1alpha2/v1alpha2_controller.go | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/internal/app/machined/pkg/runtime/v1alpha2/v1alpha2_controller.go b/internal/app/machined/pkg/runtime/v1alpha2/v1alpha2_controller.go
index 29b297654..653a45d57 100644
--- a/internal/app/machined/pkg/runtime/v1alpha2/v1alpha2_controller.go
+++ b/internal/app/machined/pkg/runtime/v1alpha2/v1alpha2_controller.go
@@ -113,11 +113,12 @@ func (ctrl *Controller) Run(ctx context.Context, drainer *runtime.Drainer) error
networkBindMountTarget = constants.SystemResolvedPath
- // While running in container, we don't have control over kernel version
- // shipped with the machine. If the kernel does not support open_tree syscall
- // on anonymous filesystem file descriptors, we need to fallback to the classic,
- // less secure mode. This capability was added in kernel 6.15.0.
- if ctrl.v1alpha1Runtime.State().Platform().Mode().InContainer() {
+ // If the kernel does not support open_tree syscall on anonymous filesystem
+ // file descriptors, we need to fallback to the classic, less secure mode.
+ // This capability was added in kernel 6.15.0. This check is needed for
+ // containers (where the host kernel is unknown) and for bare metal platforms
+ // running older kernels such as the RPi downstream kernel (6.12.x).
+ {
opentreeOnAnonymous, err := runtime.KernelCapabilities().OpentreeOnAnonymousFS()
if err != nil {
return err
--
2.50.1 (Apple Git-155)

View File

@ -0,0 +1,296 @@
From cf9dfa043b21b393003ca4c2facebdd8e570f547 Mon Sep 17 00:00:00 2001
From: Mathias Beaulieu-Duncan <mathias@svrnty.io>
Date: Mon, 16 Feb 2026 11:31:08 -0500
Subject: [PATCH] Handle missing BOOT partition for GRUB on SBC layouts
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
On SBC platforms like RPi5/CM5, the disk layout has no separate BOOT
(XFS) partition — all boot assets (kernel, initramfs, GRUB config,
EFI bootloader, firmware) reside on a single EFI (VFAT) partition.
The GRUB bootloader probe, install, and revert functions all assumed a
BOOT partition exists, causing talosctl upgrade to fail with "partition
with label BOOT not found" on these layouts.
Fix all three code paths to fall back to mounting the EFI partition at
/boot when the BOOT partition is absent:
- probe.go: Try EFI at /boot as fallback when BOOT is missing, so
the upgrade can detect the existing GRUB installation
- install.go: Probe for BOOT existence before including it in mount
specs; when absent, mount EFI at /boot and adjust --efi-directory
- revert.go: Fall back to EFI at /boot for rollback operations
This enables in-place upgrades via talosctl upgrade on SBC platforms
that use EFI-only disk layouts.
---
.../runtime/v1alpha1/bootloader/grub/grub.go | 2 +
.../v1alpha1/bootloader/grub/install.go | 49 +++++++++--
.../runtime/v1alpha1/bootloader/grub/probe.go | 83 ++++++++++++-------
.../v1alpha1/bootloader/grub/revert.go | 33 ++++++--
4 files changed, 125 insertions(+), 42 deletions(-)
diff --git a/internal/app/machined/pkg/runtime/v1alpha1/bootloader/grub/grub.go b/internal/app/machined/pkg/runtime/v1alpha1/bootloader/grub/grub.go
index 0cb5b1d4d..093ffecd9 100644
--- a/internal/app/machined/pkg/runtime/v1alpha1/bootloader/grub/grub.go
+++ b/internal/app/machined/pkg/runtime/v1alpha1/bootloader/grub/grub.go
@@ -30,6 +30,8 @@ type Config struct {
Fallback BootLabel
Entries map[BootLabel]MenuEntry
AddResetOption bool
+
+ bootFromEFI bool
}
// MenuEntry represents a grub menu entry in the grub config file.
diff --git a/internal/app/machined/pkg/runtime/v1alpha1/bootloader/grub/install.go b/internal/app/machined/pkg/runtime/v1alpha1/bootloader/grub/install.go
index d0af22d98..f1ea13e5a 100644
--- a/internal/app/machined/pkg/runtime/v1alpha1/bootloader/grub/install.go
+++ b/internal/app/machined/pkg/runtime/v1alpha1/bootloader/grub/install.go
@@ -34,12 +34,12 @@ const (
// Install validates the grub configuration and writes it to the disk.
func (c *Config) Install(opts options.InstallOptions) (*options.InstallResult, error) {
- mountSpecs := []mount.Spec{
- {
- PartitionLabel: constants.BootPartitionLabel,
- FilesystemType: partition.FilesystemTypeXFS,
- MountTarget: filepath.Join(opts.MountPrefix, constants.BootMountPoint),
- },
+ var mountSpecs []mount.Spec
+
+ bootMountSpec := mount.Spec{
+ PartitionLabel: constants.BootPartitionLabel,
+ FilesystemType: partition.FilesystemTypeXFS,
+ MountTarget: filepath.Join(opts.MountPrefix, constants.BootMountPoint),
}
efiMountSpec := mount.Spec{
@@ -48,6 +48,23 @@ func (c *Config) Install(opts options.InstallOptions) (*options.InstallResult, e
MountTarget: filepath.Join(opts.MountPrefix, constants.EFIMountPoint),
}
+ // check if the BOOT partition is present (absent on SBC layouts like RPi5/CM5)
+ if err := mount.PartitionOp(
+ opts.BootDisk,
+ []mount.Spec{bootMountSpec},
+ func() error {
+ return nil
+ },
+ []blkid.ProbeOption{
+ blkid.WithSkipLocking(true),
+ },
+ nil,
+ nil,
+ opts.BlkidInfo,
+ ); err == nil {
+ mountSpecs = append(mountSpecs, bootMountSpec)
+ }
+
var efiFound bool
// check if the EFI partition is present
@@ -65,12 +82,21 @@ func (c *Config) Install(opts options.InstallOptions) (*options.InstallResult, e
opts.BlkidInfo,
); err == nil {
efiFound = true
- }
- if efiFound {
+ if len(mountSpecs) == 0 {
+ // No BOOT partition (SBC layout): mount EFI at /boot so GRUB
+ // can find kernel/initramfs/grub.cfg in the expected place.
+ efiMountSpec.MountTarget = filepath.Join(opts.MountPrefix, constants.BootMountPoint)
+ c.bootFromEFI = true
+ }
+
mountSpecs = append(mountSpecs, efiMountSpec)
}
+ if len(mountSpecs) == 0 {
+ return nil, fmt.Errorf("neither BOOT nor EFI partition found on disk %s", opts.BootDisk)
+ }
+
err := mount.PartitionOp(
opts.BootDisk,
mountSpecs,
@@ -318,7 +344,12 @@ func (c *Config) runGrubInstall(ctx context.Context, opts options.InstallOptions
}
if efiMode {
- args = append(args, "--efi-directory="+filepath.Join(opts.MountPrefix, constants.EFIMountPoint))
+ efiDir := constants.EFIMountPoint
+ if c.bootFromEFI {
+ efiDir = constants.BootMountPoint
+ }
+
+ args = append(args, "--efi-directory="+filepath.Join(opts.MountPrefix, efiDir))
}
if opts.ImageMode || opts.Arch == arm64 {
diff --git a/internal/app/machined/pkg/runtime/v1alpha1/bootloader/grub/probe.go b/internal/app/machined/pkg/runtime/v1alpha1/bootloader/grub/probe.go
index f5755592f..771ca2a90 100644
--- a/internal/app/machined/pkg/runtime/v1alpha1/bootloader/grub/probe.go
+++ b/internal/app/machined/pkg/runtime/v1alpha1/bootloader/grub/probe.go
@@ -19,6 +19,31 @@ import (
func ProbeWithCallback(disk string, options options.ProbeOptions, callback func(*Config) error) (*Config, error) {
var grubConf *Config
+ readConfig := func() error {
+ var err error
+
+ grubConf, err = Read(ConfigPath)
+ if err != nil {
+ return err
+ }
+
+ if grubConf != nil && callback != nil {
+ return callback(grubConf)
+ }
+
+ if grubConf == nil {
+ options.Logf("GRUB: config not found")
+ }
+
+ return nil
+ }
+
+ probeOpts := []mountv3.ManagerOption{
+ mountv3.WithSkipIfMounted(),
+ mountv3.WithReadOnly(),
+ }
+
+ // Try BOOT partition first (standard layout)
if err := mount.PartitionOp(
disk,
[]mount.Spec{
@@ -28,40 +53,42 @@ func ProbeWithCallback(disk string, options options.ProbeOptions, callback func(
MountTarget: constants.BootMountPoint,
},
},
- func() error {
- var err error
-
- grubConf, err = Read(ConfigPath)
- if err != nil {
- return err
- }
-
- if grubConf != nil && callback != nil {
- return callback(grubConf)
- }
-
- if grubConf == nil {
- options.Logf("GRUB: config not found")
- }
-
- return nil
- },
+ readConfig,
options.BlockProbeOptions,
- []mountv3.ManagerOption{
- mountv3.WithSkipIfMounted(),
- mountv3.WithReadOnly(),
- },
+ probeOpts,
nil,
nil,
); err != nil {
- if xerrors.TagIs[mount.NotFoundTag](err) {
- // if partitions are not found, it means GRUB is not installed
- options.Logf("GRUB: BOOT partition not found, skipping probing")
-
- return nil, nil
+ if !xerrors.TagIs[mount.NotFoundTag](err) {
+ return nil, err
}
- return nil, err
+ // BOOT not found, try EFI partition mounted at /boot (SBC layout)
+ options.Logf("GRUB: BOOT partition not found, trying EFI partition")
+
+ if err := mount.PartitionOp(
+ disk,
+ []mount.Spec{
+ {
+ PartitionLabel: constants.EFIPartitionLabel,
+ FilesystemType: partition.FilesystemTypeVFAT,
+ MountTarget: constants.BootMountPoint,
+ },
+ },
+ readConfig,
+ options.BlockProbeOptions,
+ probeOpts,
+ nil,
+ nil,
+ ); err != nil {
+ if xerrors.TagIs[mount.NotFoundTag](err) {
+ options.Logf("GRUB: neither BOOT nor EFI partition found, skipping probing")
+
+ return nil, nil
+ }
+
+ return nil, err
+ }
}
return grubConf, nil
diff --git a/internal/app/machined/pkg/runtime/v1alpha1/bootloader/grub/revert.go b/internal/app/machined/pkg/runtime/v1alpha1/bootloader/grub/revert.go
index 3e514d65d..95628193b 100644
--- a/internal/app/machined/pkg/runtime/v1alpha1/bootloader/grub/revert.go
+++ b/internal/app/machined/pkg/runtime/v1alpha1/bootloader/grub/revert.go
@@ -26,6 +26,10 @@ func (c *Config) Revert(disk string) error {
return fmt.Errorf("cannot revert bootloader: %w", bootloaderNotInstalledError{})
}
+ revertOpts := []mountv3.ManagerOption{
+ mountv3.WithSkipIfMounted(),
+ }
+
err := mount.PartitionOp(
disk,
[]mount.Spec{
@@ -37,14 +41,33 @@ func (c *Config) Revert(disk string) error {
},
c.revert,
nil,
- []mountv3.ManagerOption{
- mountv3.WithSkipIfMounted(),
- },
+ revertOpts,
nil,
nil,
)
- if err != nil && !xerrors.TagIs[mount.NotFoundTag](err) {
- return err
+ if err != nil {
+ if !xerrors.TagIs[mount.NotFoundTag](err) {
+ return err
+ }
+
+ // BOOT not found, try EFI partition mounted at /boot (SBC layout)
+ if err := mount.PartitionOp(
+ disk,
+ []mount.Spec{
+ {
+ PartitionLabel: constants.EFIPartitionLabel,
+ FilesystemType: partition.FilesystemTypeVFAT,
+ MountTarget: constants.BootMountPoint,
+ },
+ },
+ c.revert,
+ nil,
+ revertOpts,
+ nil,
+ nil,
+ ); err != nil && !xerrors.TagIs[mount.NotFoundTag](err) {
+ return err
+ }
}
return nil
--
2.50.1 (Apple Git-155)

View File

@ -0,0 +1,92 @@
From a50511de74db08a0b4426be88bb52ce860a008a4 Mon Sep 17 00:00:00 2001
From: builder <build@svrnty.io>
Date: Fri, 22 May 2026 16:10:42 -0400
Subject: [PATCH] grub: EFI-at-/boot fallback for BOOT-less SBC layout in
Upgrade path
---
.../v1alpha1/bootloader/grub/upgrade.go | 43 +++++++++++++++----
1 file changed, 35 insertions(+), 8 deletions(-)
diff --git a/internal/app/machined/pkg/runtime/v1alpha1/bootloader/grub/upgrade.go b/internal/app/machined/pkg/runtime/v1alpha1/bootloader/grub/upgrade.go
index 9e3f86b84..e99bf2939 100644
--- a/internal/app/machined/pkg/runtime/v1alpha1/bootloader/grub/upgrade.go
+++ b/internal/app/machined/pkg/runtime/v1alpha1/bootloader/grub/upgrade.go
@@ -6,6 +6,7 @@ package grub
import (
"context"
+ "fmt"
"path/filepath"
"github.com/siderolabs/go-blockdevice/v2/blkid"
@@ -18,12 +19,12 @@ import (
// Upgrade copies new boot assets and updates grub configuration on an existing installation.
func (c *Config) Upgrade(opts options.InstallOptions) (*options.InstallResult, error) {
- mountSpecs := []mount.Spec{
- {
- PartitionLabel: constants.BootPartitionLabel,
- FilesystemType: partition.FilesystemTypeXFS,
- MountTarget: filepath.Join(opts.MountPrefix, constants.BootMountPoint),
- },
+ var mountSpecs []mount.Spec
+
+ bootMountSpec := mount.Spec{
+ PartitionLabel: constants.BootPartitionLabel,
+ FilesystemType: partition.FilesystemTypeXFS,
+ MountTarget: filepath.Join(opts.MountPrefix, constants.BootMountPoint),
}
efiMountSpec := mount.Spec{
@@ -32,6 +33,23 @@ func (c *Config) Upgrade(opts options.InstallOptions) (*options.InstallResult, e
MountTarget: filepath.Join(opts.MountPrefix, constants.EFIMountPoint),
}
+ // check if the BOOT partition is present (absent on SBC layouts like RPi5/CM5)
+ if err := mount.PartitionOp(
+ opts.BootDisk,
+ []mount.Spec{bootMountSpec},
+ func() error {
+ return nil
+ },
+ []blkid.ProbeOption{
+ blkid.WithSkipLocking(true),
+ },
+ nil,
+ nil,
+ opts.BlkidInfo,
+ ); err == nil {
+ mountSpecs = append(mountSpecs, bootMountSpec)
+ }
+
var efiFound bool
// check if the EFI partition is present
@@ -49,12 +67,21 @@ func (c *Config) Upgrade(opts options.InstallOptions) (*options.InstallResult, e
opts.BlkidInfo,
); err == nil {
efiFound = true
- }
- if efiFound {
+ if len(mountSpecs) == 0 {
+ // No BOOT partition (SBC layout): mount EFI at /boot so GRUB
+ // can find kernel/initramfs/grub.cfg in the expected place.
+ efiMountSpec.MountTarget = filepath.Join(opts.MountPrefix, constants.BootMountPoint)
+ c.bootFromEFI = true
+ }
+
mountSpecs = append(mountSpecs, efiMountSpec)
}
+ if len(mountSpecs) == 0 {
+ return nil, fmt.Errorf("neither BOOT nor EFI partition found on disk %s", opts.BootDisk)
+ }
+
err := mount.PartitionOp(
opts.BootDisk,
mountSpecs,
--
2.50.1 (Apple Git-155)

View File

@ -0,0 +1,114 @@
From 27501076fcb1e183e68313ef0e14092d7f403063 Mon Sep 17 00:00:00 2001
From: Mathias Beaulieu-Duncan <mathias@svrnty.io>
Date: Mon, 25 May 2026 17:10:13 -0400
Subject: [PATCH] Wait for STATE volume on slow-init disks in config acquire
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
On slow-init storage (notably RPi CM5 eMMC, which takes ~2 minutes 13
seconds from kernel boot to mmc0/CQE-enabled), the config acquire state
machine's stateDisk step sees STATE in phase=missing during the early
boot window and immediately transitions to stateEmbedded. With no
embedded config either, the node falls through to maintenance mode and
stays there even after the STATE volume later reaches phase=ready —
the state machine is one-way and never re-enters stateDisk.
Result: in-place upgrades to v1.13.2 on CM5 hardware leave the node in
maintenance with its on-disk config.yaml intact but unread, until a
human runs `talosctl apply-config --insecure` to re-feed the same file
that's already on the STATE filesystem.
This patch makes stateDisk tolerate transient phase=missing for up to
5 minutes (stateMissingDiskTimeout) before falling through. The outer
Run loop gets a 5-second ticker so the timeout can fire even when no
further volume-status events arrive (e.g. truly missing STATE on a
fresh install). Fast-init hardware sees no change — STATE reaches ready
within seconds and the existing path runs.
Tested on RPi CM5 (eMMC, 6.12.47 RPi-downstream kernel) — boot path
that previously dropped to maintenance now waits ~2m15s, sees STATE
reach ready, and continues to stateDone with the persisted config.
---
.../pkg/controllers/config/acquire.go | 37 ++++++++++++++++++-
1 file changed, 36 insertions(+), 1 deletion(-)
diff --git a/internal/app/machined/pkg/controllers/config/acquire.go b/internal/app/machined/pkg/controllers/config/acquire.go
index a70fddb..7a3758f 100644
--- a/internal/app/machined/pkg/controllers/config/acquire.go
+++ b/internal/app/machined/pkg/controllers/config/acquire.go
@@ -18,6 +18,7 @@ import (
"path/filepath"
"slices"
"strings"
+ "time"
"github.com/cosi-project/runtime/pkg/controller"
"github.com/cosi-project/runtime/pkg/safe"
@@ -86,8 +87,16 @@ type AcquireController struct {
diskConfig config.Provider
storedEmbeddedConfig []byte
skipMaskingEmbeddedConfig bool
+ firstSeenStateMissing time.Time
}
+// stateMissingDiskTimeout is how long stateDisk will wait for the STATE volume
+// to leave the "missing" phase before falling through to embedded/maintenance.
+// On slow-init storage (e.g. RPi CM5 eMMC) the volume can take ~2-3 minutes to
+// appear after kernel boot; transitioning to embedded too eagerly leaves the
+// node permanently in maintenance even though the on-disk config is intact.
+const stateMissingDiskTimeout = 5 * time.Minute
+
// Name implements controller.Controller interface.
func (ctrl *AcquireController) Name() string {
return "config.AcquireController"
@@ -177,11 +186,17 @@ func (ctrl *AcquireController) Run(ctx context.Context, r controller.Runtime, lo
// initialize with empty sources
ctrl.configSourcesUsed = []string{}
+ // periodic wake-up so stateDisk can re-check slow-init volumes and trip
+ // its timeout even when no resource events fire.
+ tick := time.NewTicker(5 * time.Second)
+ defer tick.Stop()
+
for {
select {
case <-ctx.Done():
return nil
case <-r.EventCh():
+ case <-tick.C:
}
// check the spec first
@@ -262,7 +277,27 @@ func (ctrl *AcquireController) stateDisk(ctx context.Context, r controller.Runti
// wait for the status to be available
return nil, nil, nil
case stateVolumeStatus.TypedSpec().Phase == block.VolumePhaseMissing:
- // STATE is missing, proceed to stateEmbedded
+ // STATE is reported missing. On slow-init storage (e.g. RPi CM5 eMMC)
+ // the volume can take a couple of minutes to appear after kernel boot,
+ // so wait up to stateMissingDiskTimeout for it to reach ready before
+ // falling through to embedded/maintenance.
+ if ctrl.firstSeenStateMissing.IsZero() {
+ ctrl.firstSeenStateMissing = time.Now()
+ }
+
+ if time.Since(ctrl.firstSeenStateMissing) < stateMissingDiskTimeout {
+ logger.Info("STATE volume not yet available, waiting",
+ zap.Duration("elapsed", time.Since(ctrl.firstSeenStateMissing)),
+ zap.Duration("timeout", stateMissingDiskTimeout),
+ )
+
+ return nil, nil, nil
+ }
+
+ logger.Warn("STATE volume still missing after timeout, proceeding to embedded",
+ zap.Duration("waited", time.Since(ctrl.firstSeenStateMissing)),
+ )
+
return ctrl.stateEmbedded, nil, nil
case stateVolumeStatus.TypedSpec().Phase == block.VolumePhaseReady:
// STATE is ready, proceed to to the action
--
2.50.1 (Apple Git-155)

View File

@ -0,0 +1,42 @@
From e2bacf8336c63a4d11a54f3978fc15e8bf4362ce Mon Sep 17 00:00:00 2001
From: Mathias Beaulieu-Duncan <mathias@svrnty.io>
Date: Mon, 25 May 2026 17:20:32 -0400
Subject: [PATCH] imager: respect --insecure for Overlay and OverlayInstaller
assets
The --insecure flag on talosctl imager (and the imager docker image) only
applied to BaseInstaller, ImageCache, and SystemExtensions assets.
Overlay.Image and Input.OverlayInstaller never received ForceInsecure,
so pulling overlay images from an insecure (HTTP) registry failed with
'http: server gave HTTP response to HTTPS client' even when --insecure
was passed.
Set ForceInsecure on both overlay-related ContainerAsset references
when the flag is present, matching how the other inputs are handled.
---
cmd/installer/cmd/imager/root.go | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/cmd/installer/cmd/imager/root.go b/cmd/installer/cmd/imager/root.go
index d65b56089..ea16a45b3 100644
--- a/cmd/installer/cmd/imager/root.go
+++ b/cmd/installer/cmd/imager/root.go
@@ -120,12 +120,14 @@ var rootCmd = &cobra.Command{
prof.Overlay = &profile.OverlayOptions{
Name: cmdFlags.OverlayName,
Image: profile.ContainerAsset{
- ImageRef: cmdFlags.OverlayImage,
+ ImageRef: cmdFlags.OverlayImage,
+ ForceInsecure: cmdFlags.Insecure,
},
ExtraOptions: extraOverlayOptions,
}
prof.Input.OverlayInstaller.ImageRef = cmdFlags.OverlayImage
+ prof.Input.OverlayInstaller.ForceInsecure = cmdFlags.Insecure
}
prof.Input.SystemExtensions = xslices.Map(
--
2.50.1 (Apple Git-155)

View File

@ -0,0 +1,77 @@
From 5cdfe8ddb717e8de4e9d1c9e3000614ad8a1b5bb Mon Sep 17 00:00:00 2001
From: Mathias Beaulieu-Duncan <mathias@openharbor.io>
Date: Wed, 25 Feb 2026 12:41:51 -0500
Subject: [PATCH] Fix SBC overlay upgrade: detect EFI mount path for SBC
layouts
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
On SBC platforms (RPi5/CM5), the disk layout has no separate BOOT
partition. During upgrades, the GRUB install code mounts the EFI
partition at /boot instead of /boot/EFI. The overlay installer was
always writing to /boot/EFI, causing config.txt and firmware files
to end up in the wrong subdirectory — invisible to the firmware.
Detect the SBC layout by checking if config.txt already exists at
/boot/ (indicating EFI is mounted there), and write files to the
correct location.
---
installers/rpi5/src/config.txt | 3 ++-
installers/rpi5/src/main.go | 18 +++++++++++++-----
2 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/installers/rpi5/src/config.txt b/installers/rpi5/src/config.txt
index 1445d0e..e38291b 100644
--- a/installers/rpi5/src/config.txt
+++ b/installers/rpi5/src/config.txt
@@ -11,7 +11,8 @@ kernel=u-boot.bin
arm_64bit=1
# Run as fast as firmware / board allows.
arm_boost=1
-# Enable the primary/console UART.
+# Enable UART0 on GPIO 14/15 (Pi5/CM5 requires explicit dt overlay).
+dtoverlay=uart0-pi5
enable_uart=1
# Disable Bluetooth.
dtoverlay=disable-bt
diff --git a/installers/rpi5/src/main.go b/installers/rpi5/src/main.go
index 38cd824..155a86b 100644
--- a/installers/rpi5/src/main.go
+++ b/installers/rpi5/src/main.go
@@ -41,13 +41,21 @@ func (i *RpiInstaller) GetOptions(extra rpiOptions) (overlay.Options, error) {
}
func (i *RpiInstaller) Install(options overlay.InstallOptions[rpiOptions]) error {
- err := copy.Dir(filepath.Join(options.ArtifactsPath, "arm64/firmware/boot"), filepath.Join(options.MountPrefix, "/boot/EFI"))
- if err != nil {
+ // Determine where the EFI partition is mounted.
+ // Standard layout: BOOT (XFS) at /boot, EFI (VFAT) at /boot/EFI
+ // SBC layout: no BOOT partition, EFI (VFAT) at /boot
+ efiDir := filepath.Join(options.MountPrefix, "/boot/EFI")
+
+ if _, err := os.Stat(filepath.Join(options.MountPrefix, "/boot/config.txt")); err == nil {
+ // config.txt exists at /boot — EFI partition is mounted at /boot (SBC layout).
+ efiDir = filepath.Join(options.MountPrefix, "/boot")
+ }
+
+ if err := copy.Dir(filepath.Join(options.ArtifactsPath, "arm64/firmware/boot"), efiDir); err != nil {
return err
}
- err = copy.File(filepath.Join(options.ArtifactsPath, "arm64/u-boot/rpi5/u-boot.bin"), filepath.Join(options.MountPrefix, "/boot/EFI/u-boot.bin"))
- if err != nil {
+ if err := copy.File(filepath.Join(options.ArtifactsPath, "arm64/u-boot/rpi5/u-boot.bin"), filepath.Join(efiDir, "u-boot.bin")); err != nil {
return err
}
@@ -57,5 +65,5 @@ func (i *RpiInstaller) Install(options overlay.InstallOptions[rpiOptions]) error
configTxt = append(configTxt, []byte("\n"+options.ExtraOptions.ConfigTxtAppend)...)
- return os.WriteFile(filepath.Join(options.MountPrefix, "/boot/EFI/config.txt"), configTxt, 0o644)
+ return os.WriteFile(filepath.Join(efiDir, "config.txt"), configTxt, 0o644)
}
--
2.50.1 (Apple Git-155)

View File

@ -1,64 +0,0 @@
From 7c1f75d724e54df5382d7900a0fdfac50f870043 Mon Sep 17 00:00:00 2001
From: Mathias Beaulieu-Duncan <mathias@svrnty.io>
Date: Fri, 13 Feb 2026 19:43:02 -0500
Subject: [PATCH] Fix serial console for RPi5/CM5 debug UART
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The overlay was using console=ttyAMA0 (GPIO 14/15 UART) but the RPi5
debug UART — the JST connector between HDMI ports on Pi5, or test pads
TP35/TP36 on CM5 — is ttyAMA10.
Changes:
- main.go: Use console=ttyAMA10,115200 (Pi5 debug UART, not GPIO UART0)
- main.go: Add earlycon=pl011,0x107d001000,115200n8 for early boot output
before the full PL011 driver initializes
- config.txt: Add [pi5] enable_uart=0 to match upstream and avoid U-Boot
compatibility issues (the debug UART is always active regardless)
The earlycon parameter uses the BCM2712 debug UART MMIO base address
(0x107d001000) to provide kernel output immediately after ExitBootServices,
bridging the gap between U-Boot handoff and full driver init.
---
installers/rpi5/src/config.txt | 7 ++++++-
installers/rpi5/src/main.go | 3 ++-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/installers/rpi5/src/config.txt b/installers/rpi5/src/config.txt
index 1445d0e..7af461e 100644
--- a/installers/rpi5/src/config.txt
+++ b/installers/rpi5/src/config.txt
@@ -11,8 +11,13 @@ kernel=u-boot.bin
arm_64bit=1
# Run as fast as firmware / board allows.
arm_boost=1
-# Enable the primary/console UART.
+# Enable the primary/console UART (globally).
enable_uart=1
+# Disable UART on Pi5 to avoid U-Boot compatibility issue.
+# The debug UART (ttyAMA10) is always active regardless of this setting.
+[pi5]
+enable_uart=0
+[all]
# Disable Bluetooth.
dtoverlay=disable-bt
# Disable Wireless Lan.
diff --git a/installers/rpi5/src/main.go b/installers/rpi5/src/main.go
index 38cd824..fed3819 100644
--- a/installers/rpi5/src/main.go
+++ b/installers/rpi5/src/main.go
@@ -32,8 +32,9 @@ func (i *RpiInstaller) GetOptions(extra rpiOptions) (overlay.Options, error) {
return overlay.Options{
Name: "rpi5",
KernelArgs: []string{
+ "earlycon=pl011,0x107d001000,115200n8",
"console=tty0",
- "console=ttyAMA0,115200",
+ "console=ttyAMA10,115200",
"sysctl.kernel.kexec_load_disabled=1",
"talos.dashboard.disabled=1",
},
--
2.50.1 (Apple Git-155)

View File

@ -83,11 +83,11 @@ fi
echo "Running patch smoke test ..." >&2 echo "Running patch smoke test ..." >&2
if ! gmake checkouts patches; then if ! gmake checkouts patches; then
echo "Patches failed to apply!" >&2 echo "Patches failed to apply!" >&2
gmake checkouts-clean 2>/dev/null || true gmake checkouts-clean >/dev/null 2>&1 || true
echo "patch_failed=true" echo "patch_failed=true"
exit 0 exit 0
fi fi
gmake checkouts-clean gmake checkouts-clean >/dev/null 2>&1
# ── Generate tag ──────────────────────────────────────────────────── # ── Generate tag ────────────────────────────────────────────────────
TALOS_VER=$(grep '^TALOS_VERSION' "$MAKEFILE" | awk '{print $NF}') TALOS_VER=$(grep '^TALOS_VERSION' "$MAKEFILE" | awk '{print $NF}')