Commit Graph

16842 Commits

Author SHA1 Message Date
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
Ricardo Pardini
9c4f8fa339 mixtile-blade3: mainline: updates to mainline DT with "working" RTL8169's
- For 6.18 + 6.19
- mixtile-blade3: add 4-pin header fan at 40c
- mixtile-blade3: add gpu nodes
- mixtile-blade3: add vcc5v0-host-en "usb" pinctrl
  - somehow results in 2 working RTL8169's behind the ASM1182e on pcie2x1l0
  - which just means the _schematics lie_
- mixtile-blade3: drop rst pinctrl from  pcie2x1l0 and pcie2x1l1
  - this is me probably being stupid, but also required for working ASM1182e/RTL8169
- Status of this mainline port:
  - Initially started by Joshua Riek (2023?)
  - I then added some PCIe3x4 stuff, but never got around to finishing it
  - Specifically, the 2 FUSB302's are beyond me for now
    - One of them _powers_ the board. To use with mainline, power the board some other way with 12V, otherwise kaboom.
      - See sre's talk on this issue; Blade3 should be similar to Rock-5b in this aspect.
  - A challenge has been the PCI2x1 lanes to the miniPCIe and ASM1182e switch
    - Which by themselves seem to work, but the devices behind them (Switch + RTL8169 NICs) do not get powered
    - Until one day I tried to describe a (in theory) USB-related power pin, and suddenly both PCIe NICs started working!
  - All that said, the board is really not stable with this; end-users are much better off with vendor kernel for now.
  - Any and all help is appreciated. Those boards are nice, they've 2 FUSB302, and fancy PCIe Endpoint mode stuff.
  - Schematics we have access to are in https://damwold5pt25n.cloudfront.net/blade3/file/Schematic_Blade_3_v1.1.0.pdf
    - Those clearly lie.
2026-01-08 12:06:59 +01:00
Ricardo Pardini
df970b8bee mvebu64: re-revitalize espressobin - can build (under noble) again
- try to squash all shellcheck warnings
- drop toolchain stuff we don't have anymore
- then it becomes obvious there was a spurious `/` in `ATF1`
- requires & works with `compile_atf()`'s LDFLAGS handling in https://github.com/armbian/build/pull/9162
- build-tested on noble (default Docker image)
- does NOT build on trixie+:
  - and apparently never will: https://lists.trustedfirmware.org/archives/list/tf-a@lists.trustedfirmware.org/thread/A2NLSTWUNTSH3WAGOW4LGATKYYCTZXXZ/
    - the whole thing has been dropped from TF-A CI, so it's effectively junk now
- also fixes `macchiatobin-doubleshot`, but that is .eos anyway
  - that builds on noble & trixie
- Fixes: 81ad50f257
2026-01-08 12:06:19 +01:00
Igor Velkov
74e8171074 Remove -Wno-error=unknown-warning-option from clang KCFLAGS.
This flag was breaking kernel's cc-option detection, causing GCC-specific
warnings (-Wpacked-not-aligned, -Wstringop-truncation, -Wmaybe-uninitialized)
to be incorrectly added to btrfs/drm/coresight builds when using clang.
2026-01-08 12:04:39 +01:00
Igor Pecovnik
f1c53ccac2 PR actions scripts: fix workflow execution name 2026-01-08 12:03:19 +01:00
Paolo Sabatino
288b14defa apply rtl8723cs bluetooth only with kernels >= 6.1 2026-01-08 11:56:44 +01:00
juanesf
62ebe93890 Add BOARD_VENDOR 2026-01-08 10:44:28 +01:00
Juan Sanchez
005cb424ae Enable OrangePi 4A CSC Initial Support 2026-01-08 10:44:28 +01:00
rpardini
7f9d6633ba Automatic: kernel config rewrite 2026-01-07 16:15:32 +01:00
Ricardo Pardini
d3ddbb0c31 rk35xx-legacy: opt-out of driver_rtl8723cs so it builds again
- legacy is slated for removal and only useful to flash the RTL8169 MAC EEPROM
2026-01-07 13:02:43 +01:00
Ricardo Pardini
64581d1b39 sun55iw3-syterkit: opt-out of driver_rtl8723cs so it builds again 2026-01-07 13:02:43 +01:00
Ricardo Pardini
d61b644ef5 framework & kernel options - simplify armbian_kernel_config_apply_opts_from_arrays, no more ambiguity opts_m vs opts_y (part 2) 2026-01-07 11:14:30 +01:00
tabris
0c21be1f67 framework & kernel options - simplify armbian_kernel_config_apply_opts_from_arrays, no more ambiguity opts_m vs opts_y 2026-01-07 11:14:30 +01:00
tabris
7ea0983321 framework and kernel config hooks - split FS modules into a separate hook function to allow customization 2026-01-07 11:14:30 +01:00
Paolo Sabatino
707025f422 rtl8723cs: stop including proprietary driver for kernel 6.19 onwards
* rtw88 mainline driver has good enough support for rtl8723cs
   so stop patching the kernel with this ancient driver
 * fixes rtl8703b (same chip as 8723cs) bluetooth firmware name file
2026-01-07 09:50:08 +01:00
Ricardo Pardini
ee2f374f7b extensions/ufs: don't check sfdisk version also when BUILDING_IMAGE!=yes
- fixes download-artifact issue
  - matrix-prep was solved by CONFIG_DEFS_ONLY previously
2026-01-06 23:19:08 +01:00
Ricardo Pardini
88de6d8758 arm64-sc8280xp/thinkpad-x13s: recover PCIE_QCOM=y
- can't be a module anymore
2026-01-06 23:16:14 +01:00
Ricardo Pardini
fcd4bf1528 arm64-sc8280xp/thinkpad-x13s: pull steev's 6.18 qcom_laptops.config
- sanely disables a bunch of non-qcom stuff
- enables sched_ext, CONFIG_QCOM_TZMEM_MODE_SHMBRIDGE
2026-01-06 23:16:14 +01:00