diff --git a/README.md b/README.md index 2461a6f..fd44137 100644 --- a/README.md +++ b/README.md @@ -59,8 +59,7 @@ talosctl upgrade --image docker.io/svrnty/talos-rpi5:v1.12.3-k6.12.47-2 ### What's included -- RPi downstream kernel with CM5/RP1 support -- 16K page size (RPi Foundation default — see [known issues](#known-issues) for implications) +- RPi downstream kernel with CM5/RP1 support (4K page size, aligned with upstream Talos) - Overclock: 2.6GHz (`arm_freq=2600`, `over_voltage_delta=50000`, `arm_boost=1`) - Extensions: `iscsi-tools`, `util-linux-tools` @@ -78,18 +77,6 @@ The RPi5/CM5 EFI firmware does not support runtime EFI variable writes, which th *Upstream: talos-builder#21* -### 16K memory pages - -The RPi downstream kernel defaults to 16K page size instead of upstream Talos's 4K. This means: - -- **Higher per-page memory overhead** — workloads that allocate many small buffers (e.g. Longhorn v2 data engine) consume significantly more RAM -- **Potential OOM on control-plane nodes** — systems running etcd + kube-apiserver + workloads may hit memory pressure, especially on 4GB/8GB boards -- **Incompatibility with some software** that assumes 4K pages - -We plan to switch to 4K pages for production readiness (see [Roadmap](#roadmap)). - -*Upstream: talos-builder#3, talos-builder#11* - ### No serial console output after boot Serial output goes silent after the EFI stub decompresses the kernel and exits boot services. This affects headless debugging on CM5 boards where serial is the primary console. @@ -106,7 +93,7 @@ Talos ignores the `machine.install.disk` config field on SBC platforms. You **mu This project targets production-ready Talos clusters on RPi5/CM5 hardware. Key milestones: -- [ ] **Switch to 4K page size** — Align with upstream Talos kernel config to reduce memory overhead and improve workload compatibility. Requires testing RPi peripheral drivers with 4K pages. +- [x] **Switch to 4K page size** — Aligned with upstream Talos kernel config. Reduces memory overhead and improves workload compatibility (Longhorn, jemalloc, F2FS, etc.). - [ ] **Reliable in-place upgrades** — Investigate GRUB-based boot or alternative bootloader strategies to work around the `SetVariableRT` firmware limitation, enabling `talosctl upgrade` on RPi5/CM5. - [ ] **Serial console fix** — Debug U-Boot/kernel handoff to restore serial output after EFI stub exit. - [ ] **NVMe boot support** — Produce images that target NVMe directly, or document a supported NVMe boot flow. diff --git a/patches/siderolabs/pkgs/0001-Patched-for-Raspberry-Pi-5.patch b/patches/siderolabs/pkgs/0001-Patched-for-Raspberry-Pi-5.patch index 4fdc442..3c839c9 100644 --- a/patches/siderolabs/pkgs/0001-Patched-for-Raspberry-Pi-5.patch +++ b/patches/siderolabs/pkgs/0001-Patched-for-Raspberry-Pi-5.patch @@ -58,17 +58,6 @@ index 65b3647..7ba70c0 100644 # CONFIG_KEXEC is not set CONFIG_KEXEC_FILE=y CONFIG_KEXEC_SIG=y -@@ -450,8 +451,8 @@ CONFIG_ROCKCHIP_ERRATUM_3588001=y - CONFIG_SOCIONEXT_SYNQUACER_PREITS=y - # end of ARM errata workarounds via the alternatives framework - --CONFIG_ARM64_4K_PAGES=y --# CONFIG_ARM64_16K_PAGES is not set -+# CONFIG_ARM64_4K_PAGES is not set -+CONFIG_ARM64_16K_PAGES=y - # CONFIG_ARM64_64K_PAGES is not set - # CONFIG_ARM64_VA_BITS_39 is not set - CONFIG_ARM64_VA_BITS_48=y @@ -660,7 +661,7 @@ CONFIG_CPU_FREQ_STAT=y # CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set