Commit Graph

17059 Commits

Author SHA1 Message Date
EvilOlaf
881e231ba5 rewrite all patches 2026-01-08 15:38:23 +01:00
EvilOlaf
ee06d8cdd7 fix borked tz data 2026-01-08 15:38:23 +01:00
EvilOlaf
40173173cf fix broken patch 2026-01-08 15:38:23 +01:00
EvilOlaf
ba7701a991 sunxi: bump edge to 6.18.4 current to 6.12.64 2026-01-08 15:38:23 +01:00
Igor Pecovnik
63cf880b6e Rockchip maint: drop upstreamed patch 2026-01-08 15:36:51 +01:00
Ricardo Pardini
063c641686 genio: bootscript: boot-genio: rework addr's so can boot large initrd's
- desktop images have half the world in their initrd (plymouth?)
- `bdinfo` shows reserved regions, which are hit depending on the size of initrd
- when reserved region is hit, u-boot says `** Reading file would overwrite reserved memory **`
- done by AI after looking at `bdinfo` reserved regions
- hard lesson: all `0x` hex have to be double quoted, otherwise `Wrong image format for "source" command`
- add note about Meco having conjured up `load_addr` (it's `loadaddr`); doesn't hurt
- while at it, remove copypasta/duplicate bootlogo/consoleargs stanza
2026-01-08 12:30:24 +01:00
Ricardo Pardini
230f937d4b extensions/mtkflash: Mediatek mtk-flash direct flashing after build
- similar to `rkdevflash`, but for Mediatek devices
- also simpler; lk.bin & fip.img are produced by image build and directly used
- requires Rust+Cargo, so add those to hostdeps
  - since this is a core extension, those will be included in all Docker images too
  - which was bound to happen anyway since Rust in Linux Kernel is no longer an experiment
- extensions/mtkflash: sha1-based bin path, use fork & add `--no-erase-boot1`
- example invocation:
  - `BOARD=radxa-nio-12l BRANCH=collabora RELEASE=trixie EXT=ufs,mtkflash MTKFLASH_TTYACM_DEVICE=1`
2026-01-08 12:30:24 +01:00
Ricardo Pardini
d3d5bd2134 radxa-nio-12l: u-boot: config: extra CMD options
- `CONFIG_CMD_ITEST`   # itest expects integers on both sides, whereas regular test assumes strings
- `CONFIG_CMD_BOOTZ`   # bootz allows booting zImages
- `CONFIG_CMD_MEMINFO` # meminfo shows memory info in u-boot
- `CONFIG_CMD_SETEXPR` # setexpr allows arithmetic expressions in setenv
2026-01-08 12:30:24 +01:00
Ricardo Pardini
04cb12bfe0 radxa-nio-12l: u-boot: fix u-boot env conflict; include userspace tooling
- u-boot stores env in UFS LUN 1
- use a 2mb offset (different from vendor/Collabora's) to avoid any env conflict
- point fw_printenv/setenv at it at the correct offset and size
2026-01-08 12:30:24 +01:00
Ricardo Pardini
150f2e28b2 radxa-nio-12l: include SRC_CMDLINE for extlinux booting; add explanations
- set SRC_CMDLINE, used in extlinux/EXT=u-boot-menu scenarios
- note about d4/d8/d16 irrelevance now as we have RAM autodetection
- note about where the blobs (libdram/libbase/lk.bin) live in GH: https://github.com/armbian/mtkbin
2026-01-08 12:30:24 +01:00
Ricardo Pardini
431f53df3e genio: u-boot: patch: fdt_addr_r/kernel_addr_r/ramdisk_addr_r for large kernels/initrds
- this patches u-boot default addresses with the same values used in the boot-genio bootscript
- this enables booting extlinux with large kernels and initrd (eg: `EXT=u-boot-menu`)
2026-01-08 12:30:24 +01:00
Ricardo Pardini
324d1ed403 genio: u-boot: patch: UFS 4k UMS fixes + BTRFS fixes/enablement
- backport fixes from upstream u-boot for
  - BTRFS (plus enable BTRFS and BZIP2 support for radxa-nio-12l)
    - tested with `CARD_DEVICE=/dev/mmcblk1 ROOTFS_TYPE=btrfs BTRFS_COMPRESSION=zstd` (no UFS!)
    - also with `EXT=ufs CARD_DEVICE=/dev/sdc ROOTFS_TYPE=btrfs BTRFS_COMPRESSION=zstd` (UFS!)
  - 4k block size UFS for UMS: fixes block size issue (USB issues unhandled)
- Enable "bind" command for the Mediatek-standard USB Gadget Ethernet
2026-01-08 12:30:24 +01:00
Ricardo Pardini
872863b95a genio: u-boot: patch: mt8195: boot order: SD -> UFS -> eMMC -> USB -> Network
- this way, one doesn't need to cripple UFS to be able to boot from SD
- USB didn't get the same treatment as it's slow and **not working**...
  - ...and beyond me to fix; both OTG and Host mode are funky in u-boot...
  - ...but seem to work fine in kernel
- IMPORTANT: keep in mind: "SDcard is NOT UFS (4k block)" and don't fall for traps!
- Network note:
    - `setenv ethaddr xx:xx:xx:xx:xx:xx` & `saveenv` & `reset`
    - required for network booting; mtk doesn't use random/cpu# MAC
    - required for stable MAC in kernel (keep IP from changing, etc)
2026-01-08 12:30:24 +01:00
Ricardo Pardini
a03b88841c genio: u-boot: patch: mt8195: adjust memory size at runtime and fixup fdt
- Use TFA + libdram to obtain and set the actual memory size.
- Overwrite the memory size in the devicetree that is passed to the kernel with the actual size detected.
- All credit to Bartosz Bilas' work for the mt8188/mt8370.
- This doesn't really "use" TF-A/libdram though, those call bl33 with magic arguments which we read here.
- That is implemented by a patch in TF-A for the mt8195 platform.
2026-01-08 12:30:24 +01:00
Ricardo Pardini
5911f02880 genio: mt8195: atf: patch: add TF-A RAM size autodetection pass to bl33
- With this, bl2 will pass down the DRAM size it gets from libdram
  down to bl33 (u-boot proper) via a magic location
- This is a rework of the implementation for another MTK plat (GRINN)
2026-01-08 12:30:24 +01:00
Ricardo Pardini
ca4fe3da9a radxa-nio-12l: enable build u-boot from sources
- using family code
2026-01-08 12:30:24 +01:00
Ricardo Pardini
91b2454496 genio: export (from the image) bins needed for flashing
- so regular armbian/build users can get them in `output/images`
2026-01-08 12:30:24 +01:00
Ricardo Pardini
8c727d0f3a genio: implement complete OPTEE/u-boot/TF-A (x2)/FIP build
- genio: implemented complete bootloader build according to Collabora's scripts
  - main difference from other similar stack is that TF-A builds final FIP, not u-boot
  - thus I first disable ATF build initially, then build it in hook
  - alternatively: we could build our own FIP, but that would diverge too much
  - declare functions inside hook so hashing does all the versioning automatically
- write_uboot_platform() is a no-op; don't write bootloader to image
- ensure bootloader _builds_ across bookworm/trixie/jammy/noble/resolute
  - keep in mind original code is for bookworm (tested to build and work on trixie)
  - need to juggle the `-Wl,` prefix on LDFLAGS
    - this is not mainline ATF and it does "stupid with flags"
- genio: u-boot: always clean optee & first atf build before building
  - so one can switch build host with `DOCKER_ARMBIAN_BASE_IMAGE` (UFS...)
- genio: u-boot: using `armbian/mtkbin` repo
  - outputs fip.img & lk.bin directly to output(/images)
  - disk images do _not_ contain any bootloader
2026-01-08 12:30:24 +01:00
Ricardo Pardini
48237dda3f genio: u-boot: patches: rewrite Collabora patches 2026-01-08 12:30:24 +01:00
Ricardo Pardini
d6b1aedb52 genio: u-boot: patches: cosmetic formatting fixes on top of Collabora
- small hack to get around stupid "From xx" parsing in Armbian patcher
- also: fix attribution in `0023-watchdog-mtk_wdt-Correct-maximum-timeout-from-15-to`
2026-01-08 12:30:24 +01:00
Ricardo Pardini
8794a26af3 genio: u-boot: patches: ATF patches from Collabora (pristine)
- From https://gitlab.collabora.com/mediatek/aiot/boot/-/tree/main/patches/trusted-firmware-a at bc779c20dd5ea72a9f3edd248eb08460e3c837b6
2026-01-08 12:30:24 +01:00
Ricardo Pardini
121c89763a genio: u-boot: patches: vendor u-boot patches from Collabora (pristine)
- from https://gitlab.collabora.com/mediatek/aiot/boot/-/tree/main/patches/u-boot at 2db9a7b3f8c9c2141af6a01dd9372dbba809cf95
- I can see atleast one is a bit malformed so commit separately
2026-01-08 12:30:24 +01:00
Igor Velkov
94dd1fef1f fix for uninitialized variable 2026-01-08 12:29:01 +01:00
Igor Velkov
c580068245 enable btrfs support in uBoot 2026-01-08 12:29:01 +01:00
Igor Velkov
6bc25ea2c2 feeding rabbit 2026-01-08 12:29:01 +01:00
Igor Velkov
c60f78e0ec Helios64: update uBoot to v2026-01-rc5
- Switched to the binman-atf-mainline scenario with the same rkbin DDR blob
    rk3399_ddr_933MHz_v1.25.bin (TPL blob, as in the old working loader). DRAM init is correct, full
    4 GB visible, Linux boots.
  - U-Boot and DTS updated to v2026.01-rc5. Added MDIO/PHY node and phy-handle in rk3399-kobol-
    helios64.dts, fixing “mdio node is missing”. Disabled i2s2 in the U-Boot DT to avoid rockchip-
    i2s ... Could not register PCM.
  - boot_targets in U-Boot config shortened (mmc1, scsi0, usb0, pxe, dhcp) to avoid env_buf ... too
    small; however, the last built binary still shows the warning (needs rebuild with the shortened
    list or enlarging the buffer).
  - Boot flow: bootstd scans SD (mmc0) and eMMC (mmc1); SD boot works even without mmc0 in
    boot_targets.
  - Other changes: defconfig has CONFIG_ROCKCHIP_EXTERNAL_TPL=y to use the external DDR blob.

Boots.
2026-01-08 12:29:01 +01:00
Werner
660c52bc53
rock-3a: unset BOOTFS_TYPE for non-vendor builds (#9068)
* rock-3a: unset `BOOTFS_TYPE` for non-vendor builds

* unset BOOTFS_TYPE at all

following recommendations from Jianfeng and Ricardo
2026-01-08 12:25:00 +01:00
Igor Velkov
9922402de8 !fixup cleanup 2026-01-08 12:24:18 +01:00
Igor Velkov
e92c53a03f Include DEST_LANG in rootfs cache hash calculation
The `DEST_LANG` variable affects rootfs cache content (locale is generated via
`locale-gen "${DEST_LANG}"` before cache is packaged), but it was not included in the
cache hash calculation.

This meant that changing `DEST_LANG` would not invalidate the existing cache,
potentially resulting in images with incorrect locale.

Include `DEST_LANG` in the `hash_hooks` calculation in `calculate_rootfs_cache_id()`.

Changes
- `lib/functions/rootfs/create-cache.sh`: Add `LANG=${DEST_LANG}` to the hash input

Result
Changing `DEST_LANG` now properly invalidates rootfs cache, ensuring the correct locale
is generated.
2026-01-08 12:24:18 +01:00
Igor Velkov
3e71438048 Fix locale warnings during chroot operations
Build process generated numerous locale warnings like:
bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
perl: warning: Setting locale failed

This happened because the Docker container and host environment were
configured to use `en_US.UTF-8`, but the rootfs cache may not contain
this locale (only `C.utf8` and whatever `DEST_LANG` specifies,
e.g. `en_GB.utf8`).

When `chroot_sdcard` runs commands inside the rootfs, environment variables
are inherited from the host/Docker, causing locale lookup failures.

Then use `C.UTF-8` locale for the build environment instead of `en_US.UTF-8`.
This locale is always available in rootfs immediately after mmdebstrap,
requiring no generation.

Changes
`lib/functions/host/docker.sh`: Remove `en_US.UTF-8` locale generation,
set `LANG=C.UTF-8` in container environment
`lib/functions/host/prepare-host.sh`: Change locale exports
from `en_US.UTF-8` to `C.UTF-8`
2026-01-08 12:24:18 +01:00
Igor
43c7710bfd
tools/repository/extract-repo.sh: simplify extraction by copying directly from pool (#9174)
* tools/repository/extract-repo.sh: simplify extraction by copying directly from pool

Remove dependency on Packages index files. Instead of parsing package metadata
to find file locations, directly scan the pool/ directory structure and copy all
.deb files found in each component subdirectory.

This simplifies the code and makes it more robust since it doesn't rely on
index files being present or correctly formatted.

Signed-off-by: Igor Pecovnik <igor@armbian.com>

* Add helper script: recursively clean Armbian Debian package artifacts

* Update tools/repository/cleanup-debs.sh

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Signed-off-by: Igor Pecovnik <igor@armbian.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-01-08 12:23:40 +01:00
Ricardo Pardini
0562e3a79f atf: once again no-warn-rwx-segment woes
- turns out everybody was wrong, including me
- some (older?) ATF sources won't work, ever; thus
  - introduce ATF_SKIP_LDFLAGS=yes to skip it completely
  - introduce ATF_SKIP_LDFLAGS_WL=yes to only skip the `-Wl,` prefix
    - this is for ATF's that pass flag directly to linker, not gcc
- artifact-uboot: hash atf-building code into artifact version
2026-01-08 12:20:14 +01:00
Ricardo Pardini
f60c1dcf12 genio: collabora: bump to Collabora's 6.19-rc4 2026-01-08 12:09:02 +01:00
Ricardo Pardini
6cf92aa21c linux-genio-collabora: enable USB Gadget stuff
- Genio has an actual USB3 UDC, so it makes sense to enable USB Gadget
  options so one can try those out at (hopefully) 5Gbit/s
2026-01-08 12:09:02 +01:00
Ricardo Pardini
40a2619e19 linux-genio-collabora: disable all platforms except CONFIG_ARCH_MEDIATEK
- this is very obviously a single family kernel, no use having dtb's for
  every other board here
- should make it a bit lighter to build too
2026-01-08 12:09:02 +01:00
Ricardo Pardini
1ba21aefe8 linux-genio-collabora: update defconfig, no changes (6.18 -> 6.19-rc1 bump) 2026-01-08 12:09:02 +01:00
Ricardo Pardini
55b14505dd genio-6.19: add patching config, -extra DT for Radxa NIO-12L
- this prepares everything for the more boards in the family
  - which will need `dt/` folder to avoid null-patches
- label & make LEDs useful
- alias mmc0/mmc1 so they match u-boot
- expose i2c3 which is exposed in the 40-pin 27:SCL3 28:SDA3 (blue pins)
  - shows up at i2c1 to userspace; why would Collabora alias an undescribed bus?
2026-01-08 12:09:02 +01:00
Ricardo Pardini
11c1424b97 genio: collabora: drop KERNELPATCHDIR override, be standard
- patches should go into `patch/kernel/archive/genio-6.19` as per default
2026-01-08 12:09:02 +01:00
Ricardo Pardini
9109d4897c genio: Collabora's kernel is at 6.19-rc1; use SHA1 instead of branch
- so it does not keep changing beneath us as happened with 6.18 -> 6.19
2026-01-08 12:09:02 +01:00
Ricardo Pardini
0771c181b4 genio: don't force INSTALL_HEADERS=yes for collabora branch
- while it is nice having them, and also a good test of being able to
  build the headers "board-side",  enabling it by default should be a
  global change, and not specific to genio
2026-01-08 12:09:02 +01:00
Ricardo Pardini
3be9a59c8d uefi-loong64-6.19: rewrite against 6.19-rc4 2026-01-08 12:08:49 +01:00
Ricardo Pardini
7e2a0b362f rockchip-6.19: rewrite against 6.19-rc4 2026-01-08 12:08:49 +01:00
tabris
1e7201fc06 kernel filogic - use extension_hook_opt_out for ntsync 2026-01-08 12:07:56 +01:00
tabris
8d0f889bf2 documentation extensions - fix link for documenting opt-out functionality 2026-01-08 12:07:56 +01:00
tabris
abde4ddc94 filogic kernel family - update comments around armbian_kernel_config__enable_various_filesystems to use extension_hook_opt_out 2026-01-08 12:07:56 +01:00
tabris
4cc12701e7 framework - update comments around armbian_kernel_config__enable_various_filesystems to use extension_hook_opt_out 2026-01-08 12:07:56 +01:00
tabris
fc9c989904 framework - extension_hook_opt_out 2026-01-08 12:07:56 +01:00
Ricardo Pardini
0f5db61567 u-boot: bump u-boot to v2026.01 (final) for boards that had -rcX
- cm3588-nas: u-boot: bump v2026.01-rc2 -> v2026.01-rc
- khadas-vim3l: u-boot: bump v2026.01-rc2 -> v2026.01
- mekotronics-458-4x4: : bump v2026.01-rcX -> v2026.01
- nanopct6: u-boot: bump v2026.01-rc2 -> v2026.01
- nanopi-r6c: u-boot: bump v2026.01-rc2 -> v2026.01
- nanopi-r76s: u-boot: bump v2026.01-rcX -> v2026.01
- odroidhc4: u-boot: bump v2026.01-rc2 -> v2026.01
- odroidn2: u-boot: bump v2026.01-rcX -> v2026.01
- rock-5b: u-boot: bump v2026.01-rc2 -> v2026.01
- this is tedious. time for `UBOOT_MAJOR_MINOR`?
2026-01-08 12:07:20 +01:00
Ricardo Pardini
4164b77d24 mixtile-blade3: board: disable 'edge' kernel, as it's not ready for end-users yet
- one can still build and try with `BRANCH=edge` forced
- but mainline is simply not ready for this yet
- help wanted!
2026-01-08 12:06:59 +01:00
Ricardo Pardini
d8830d5c20 mixtile-blade3: edge: u-boot: bump to v2026.01; boot order; symlinked DT
- fix bootorder (SD -> NVMe -> eMMC); USB disabled as nonworking with mainline still
- use the DT from rockchip64-6.18 so a single source for both u-boot and kernel
- note: the first (and only) RTL8169 used by u-boot is the port closest to board edge
2026-01-08 12:06:59 +01:00