- 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
- 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
- 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
- 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.
- 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
- 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
* DFI driver fix to let DDR3 rk322x handle DMC driver
* edge kernel: removal for Gigabit Ethernet DMA
workaround for rk3288
* reinstate CONFIG_DEBUG_FS=y with both current/edge kernels
* Modify radxa-e54c board config to fix leds, network and Gnome
Modify led setup section to use new led device names
Add a keyfile /etc/NetworkManager/conf.d/99-unmanaged-devices.conf to set the internal ethernet, end1, used to connect to the internal switch chip to unmanaged. This interface doesn't accept dhcp IP addresses and Network Manager attempts to connect it via dhcp causing errors.
A vendor kernel build with Gnome desktop attempts to use Wayland unsuccessfully causing the desktop to take over 10 minutes to initialise eventually using X11. Modify the board /usr/lib/armbian/armbian-firstlogin file to set WaylandEnable = false if the build is for a vendor kernel with a Gnome desktop.
* Update config/boards/radxa-e54c.conf
Tested the suggestion and it works.
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Removing the RedHat-specific plugin
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
- Add mainline device tree for YY3588 board
- Enable all peripherals: USB 3.0, Ethernet, PCIe, HDMI
- Add RK8602 PMIC regulators for CPU/NPU power
- Enable I2C buses for PMIC and RTC
- Fix pinctrl conflicts (I2C1 M2, disable SFC for UART7)
- Configure USB-C and USB 3.0 host ports
- Add HDMI0 output with HDPTX PHY
- Enable thermal management with PWM fan
- Add SD card and eMMC storage support
- Configure all UARTs, I2S audio, and SPI buses
- ES8323 audio codec currently disabled for further debugging
- no need for vendor u-boot, as mainline can boot vendor kernel fine
- update comments with hardware pin references
- mainline boot order: NVMe -> USB -> eMMC
- boot order: NVMe -> MMC
- GMAC works
- nvme works
- `ums` et al working
- usb3 ports (on carrier board) work
- DT is copy (not symlink) from kernel DT due to NPU nodes
- vendor:
- kernel: armbian/linux-rockchip already had a DTS from jriek
- u-boot: taken from jriek (reorg'ed the defconfig)
- edge:
- kernel: taken from jriek's 6.11 wip branch
- u-boot: generic (can only boot SD/eMMC)
Switch to NO_HZ_IDLE for energy saving. Also enable Menu cpuidle
governor for tickless systems.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Signed-off-by: Igor Pecovnik <igor@armbian.com>
> merry everything and a happy always
- mainline:
- enable "edge" branch, with custom DT
- works: almost everything
- does NOT work:
- USB-C port is only for OTG/UMS (NOT USB3-host) - didn't describe fusb302 et al in DT
- any of the 3x HDMI -> MIPI (or whatever) HDMI-In's (thus this is a 1x1, not 4x1)
- front USB3 blue ports are actually USB2 (also in vendor kernel)
- front USB2 black ports don't work (but are powered)
- Analog audio - didn't describe, could be, but I've no way to test
- use mainline u-boot v2026.01-rc5 (with custom DT/defconfig/etc) with mainline ATF
- boot order: SD -> NVMe -> USB -> eMMC -> ETH
- adapt usage of shared "mekotronics" vendor include only for vendor/legacy
- also fix DTB: `rockchip/rk3588-blueberry-r58-4x4.dtb` for vendor
- same across vendor and mainline
- mainline u-boot kinda-boots vendor kernel, but TF-A mismatch ref HDMI-rx
- so use vendor u-boot and rk blob for vendor branch/kernel
- also enable CONFIG_ROCKCHIP_MASKROM_IMAGE for quick development
- fix conflicting vendor hook
- only hack the vendor u-boot down to next-dev-v2024.03 for vendor/legacy
- works pretty nice (albeit no USB support in kernel, only u-boot)
- this is still `WiP`: once Kwiboo lands his rk3528 patchset,
most of this will change / be much simpler. Just be patient!
- Important: the Realtek DSA switch chip is not really understood
by the likes of NetworkManager and systemd-networkd; they'll think
the board has 4 ethernet interfaces, which is not really true.
Only one real MAC address (the SoC's GMAC) exists; in front of it
is a programmable switch; to make it work one needs custom setup
to bridge the LANx ports and keep WAN separate. Even then, the
WAN port will have the same MAC as LANx and needs to be really
used on a separate physical network, otherwise chaos/conflicts.
For simple usage/testing, I recommend to connect only LAN1 and
disable the other ports in NetworkManager after the first boot.
- Note: `edge` u-boot can be written to MTD/SPI-FLASH and works.
But keep in mind it _cannot_ boot the vendor kernel (it hangs
during pcie init); might work when booting from SD, if pcie is
not enumerated by u-boot.
* sunxi-6.18: make the mess even worse
* fixing one of megis patches and add sunxi 32bit to the mess
* rewrite against 6.18
* fix media-ov5640-Don-t-powerup-the-sensor-during-driver-probe.patch
* fix media-sun6i-csi-implement-vidioc_enum_framesizes.patch
* fix misc-modem-power-Power-manager-for-modems.patch
* Fix usb-gadget-Fix-dangling-pointer-in-netdev-private-data.patch, include rewrite
* fix mmc-sunxi-mmc-Remove-runtime-PM.patch, two hunks no longer apply
* re-extract all of megis patches
* remove unneeded branch
* add note to disabled patch
* auto-generated, out of date
* drop megous drm patches in favor of Jernej's work. disable broken patches
* disable patch which breaks compilation for armhf
* disable breaking patch, rewrite everything
* remove patches unrelated to sunxi family
* fix spi dev compatible patch
* fix tsc2007 patch
* drop mainlined patch, adjust x96 mate T95 eth sd card hack
* remove upstreamed patch
* re-enable no longer broken
* another rewrite to align stuff properly
* adjust various comments in series.conf
* recover lost overlays
* uew5622: fix compilation against Linux 6.18
* fix Add-sunxi-addr-driver-Used-to-fix-uwe5622-bluetooth-MAC-address.patch
* adjust patch subject to make sense
* restore fixup creation
restore overlay prefix on opiz2
this needs to be properly sorted at some point
* bump to 6.18.1
sunxi and sunxi64 build just fine
* fix and re-enable drv-mfd-axp20x-add-sysfs-interface.patch
* rewrite patches
* Add BOARD_VENDOR to board configs
* Add BOARD_VENDOR to all board configuration files
- Added BOARD_VENDOR variable to board configuration files
- Using lowercase vendor slugs (e.g., friendlyelec, radxa, xunlong)
- Set 'generic' for boards without clear vendor match
- TV box files (.tvb) excluded as they have no clear vendor
- Enables better board categorization and vendor-specific handling
* Manual adjustements on top of AI matching
* Drop doubled definition and add retroid vendor
- vendor stuff boots, mostly works
- edge started, using Kwiboo's tree, but not enabled
- u-boot mostly works, but needs rework against v2026.01
- revisit after 6.19
- rk3528 pcie already landed
- the RTL8367RB switch vs the GMAC might need more work
This is a rk3566 tv box evaluation demo board.
Specification:
- Rockchip RK3566
- DDR4 4GB
- TF sd scard slot
- eMMC
- AP6398S for WiFi + BT
- Gigabit ethernet
- HDMI out
- USB HOST 2.0 x 2
- USB 3.0 x 1
- USB OTG 2.0 x 1
- 12V DC Power supply
Signed-off-by: Andy Yan <andyshrk@gmail.com>
Add asound.state configuration for NanoPC T6 and T6 LTS to properly
configure audio devices and mixer settings.
- Set ASOUND_STATE variable in board config
- Add asound.state.nanopct6 blob with preconfigured mixer settings
This ensures audio devices are properly initialized on first boot.
- having CONFIG_DUMMY=y causes a fake/dummy interface `dummy0` to be
_always_ present
- that in turn can confuse things like cloud-init in nocloud-net mode
- changing it to module, it can still be used (just modprobe)
- I found this using `linux-rk35xx-vendor`, but I reason it applies to
all kernels; most other kernels already have it `=m`
A couple of these configs have gotten out of sync with is making it
difficult for the automation scripting to properly re-write these
configs correctly. Mostly due to the "edge" kernel being updated
to the latest v6.18 kernel, but also due to the RT config not being
updated in some time. Manually update these configs and check for
correctness.
Signed-off-by: Andrew Davis <afd@ti.com>
The device tree aliases show:
- mmc0 = sdhci (eMMC, 8-bit, non-removable)
- mmc1 = sdmmc (SD card, 4-bit, removable)
Previous boot order (mmc0, nvme, mmc1) caused the system to always
boot from eMMC when multiple storage devices were present, ignoring
bootable SD cards.
New boot order (mmc1, nvme, mmc0) now correctly prioritizes:
1. SD card
2. NVMe
3. eMMC
This ensures consistent boot behavior when using SD card as primary
boot device.
- Add mainline U-Boot support for edge branch (v2026.01-rc2)
- Add U-Boot defconfig patch for nanopi-r76s
- Fix USB3.0 Type-A host port configuration in DTS
- Enable USB OTG0 controller in host mode with power GPIO control
- Set KERNEL_TEST_TARGET to edge
- boot order: SD -> NVMe -> eMMC -> USB -> PXE
- enable compression, EFI stuff, BTRFS, LED support
- this is large bump from a custom-Kwiboo 24.04 to 26.01
- upstream has handled the whole fusb302 acrobatics for PD
- from linux-t2 project: https://github.com/t2linux/linux-t2-patches
- https://t2linux.org/
- x86: add .config hook `custom_kernel_config__applet2()`
- original patches from t2linux for 6.18 and 6.12
- rewrite patches against v6.18-rc4 and v6.12.57
- `7001-drm-i915-fbdev-Discard-BIOS-framebuffers-exceeding-h.patch`
needed special attention for correct patch attribution (missing From)
- `1002-Put-apple-bce-in-drivers-staging` needs reordering to the
top to avoid conflicts with EXTRAWIFI sed-based "patching"
- Enable bootscript templating using `envsubst`.
- Add generic bootscript.
- Fix: `test` does not support `==`, but deceptively returns `true` in case you use it.
- De-duplicate kernel commandline console options.
- Change debug console from ttyS2 to ttyS0
- Remove SERIALCON from board configs
- Set console based on BOOT_SOC
- Enable UART0 in device tree for nanopi-r76s
* cleanup comments, linebreaks...
* two more comments
* `BOOTFS_TYPE` has never been set as far as I can see, therefore no need to unset.
* some more comments...
* comment, simplify logic
* even more comments
* just a few more
* comments, description for elish
* merge uboot functions. @SuperKali review
Instead of using the TI k3.conf and overriding configuration, add a new
config for BeagleBoard.org Linux and U-Boot and use it for the boards
that use that Linux/U-Boot.
Signed-off-by: Andrew Davis <afd@ti.com>
Vendors using TI K3 devices may use kernels downstream from the TI vendor
kernel and U-Boot. To make this easier factor out from k3.conf all other
configuration that would be common to any kernel and U-Boot used.
Signed-off-by: Andrew Davis <afd@ti.com>
The latest Beagle kernel has some support now for the BeagleY-AI, update
the current branch to this version. This also allows us to re-use the
default linux-k3-beagle-current.conf as our LINUXCONFIG. This was set
to re-use the TI kernel before which was incorrect.
As BOOTPATCHDIR is based on LINUXFAMILY we should also keep our Beagle
U-Boot versions in sync, the latest Beagle U-Boot for pocketbeagle2
supports BeagleY-AI also, so switch to that.
Signed-off-by: Andrew Davis <afd@ti.com>
The "current" and "edge" branches point to the same kernel and u-boot.
No need to have both so just remove "edge" as it was not any more
up-to-date than the standard "current" branch.
Signed-off-by: Andrew Davis <afd@ti.com>
- `=m` is not a valid value for options that are `bool`
- so change them to `=y` manually
- from olddefconfig:
- `.config:82:warning: symbol value 'm' invalid for BT_RFCOMM_TTY`
- `.config:84:warning: symbol value 'm' invalid for BT_BNEP_MC_FILTER`
- `.config:85:warning: symbol value 'm' invalid for BT_BNEP_PROTO_FILTER`
- `.config:87:warning: symbol value 'm' invalid for BT_HS`
- `.config:89:warning: symbol value 'm' invalid for BT_LEDS`
- `.config:90:warning: symbol value 'm' invalid for BT_MSFTEXT`
- `.config:92:warning: symbol value 'm' invalid for BT_HCIBTUSB_AUTOSUSPEND`
- `.config:93:warning: symbol value 'm' invalid for BT_HCIBTUSB_MTK`
- `.config:96:warning: symbol value 'm' invalid for BT_HCIUART_BCSP`
- `.config:97:warning: symbol value 'm' invalid for BT_HCIUART_ATH3K`
- `.config:99:warning: symbol value 'm' invalid for BT_HCIUART_BCM`
- `.config💯warning: symbol value 'm' invalid for BT_HCIUART_RTL`
- `.config:101:warning: symbol value 'm' invalid for BT_HCIUART_QCA`
- `.config:102:warning: symbol value 'm' invalid for BT_HCIUART_AG6XX`
- `.config:250:warning: symbol value 'm' invalid for AIC_WLAN_SUPPORT`
- this is to workaround e3ec97c3ab
- I talked to the maintainer (Wei Liu) upstream, they are aware of the problem, but haven't a solution
- the cloud variants are not affected (already had =y)
eMMC installs on the A20-OLinuXino-LIME2 eMMC hang during boot.
This is because we need the eMMC power sequencing module in early boot.
Compile it in to the kernel so we can boot from eMMC again.
- call_extensions_kernel_config() now declares the vars and calls
armbian_kernel_config_apply_opts_from_arrays() at the end
- so each individual hook doesn't need to
- adapt family code using the old way too
Initial support for ODROID M1S
Tested with Debian Bookworm and Noble Cinnamon and Noble GNOME desktop
environment.
See: https://forum.armbian.com/topic/33242-odroid-m1s-image-planned/
- few fixes, rebase
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Co-authored-by: Ricardo Pardini <ricardo@pardini.net>
Users request: Failed apt dist-upgrade from the trixie xfce image downloaded using rpi-imager. The boot partition is only 256M so it get full and the update fail blowing up everything. Please consider using 512 Mb boot partitions. Thanks
Update board support maintainer for 3 TI board configs:
sk-am62b.conf (AM62x), sk-am62p.conf (AM62Px), sk-am64b.conf (AM64x).
Signed-off-by: Jonas Wood <jw@ti.com>
Signed-off-by: Andrei Aldea <andrei1998@gmail.com>