- 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`)
- 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
- 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)
- 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.
- 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`
- 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.
- 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
- 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)
- the gmac works, but is connected to switch chip that is not supported by u-boot
- here I disable gmac1 for the u-boot DT
- that allows for easier booting from USB ethernet adapters
- 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
- using the same DT as the rockchip64-6.16
- defconfig based on Rock5b, so we can eventually use the same fusb302 when time comes
- -u-boot.dtsi enables `ums` / `rockusb` et al using the middle usb-c port (orientation sensitive)
- enables booting from NVMe
- TODO: sd/usb/nvme/mmc boot order
- this maps copying files from dirs in the patch directory directly to the u-boot tree, without any .patch required:
- `defconfig` -> `configs` (useful for all)
- `dt_uboot` -> `arch/arm/dts` (useful for most; use for xx-u-boot.dtsi or stuff without CONFIG_OF_UPSTREAM)
- `dt_upstream_rockchip` -> `dts/upstream/src/arm64/rockchip` (useful for Rockchip boards)
- other mappings (eg `dt_upstream_xxx`) might be added later
* import new layout for libreelec patches (no more mbox)
* refactor existing patches to kernel 6.17
* fix uboot issue causing VOP IOMMU page fault and no screen
* Khadas VIM4: U-Boot: Mod bootargs/defconfig and add bootscr support
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
* Khadas VIM4: Pull U-Boot from CoreELEC instead of Khadas
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
* Khadas VIM4: Remove setexpr bootargs sub rootfstype= from boot.cmd
This is no longer required
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
* Meson S4T7: family.conf: Add missing `mkdir -p "${tbasedir}"`
The toolchains fail to download because the dir isn't created
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
* Meson T7: Add rootfstype= to command line
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
* Khadas VIM4: Add extra boot arguments
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
* Remove `viraniac` as maintainer and add `rw` to cmdline
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
* Amlogic T7: Add `fsck.repair=yes` and `rootwait` to cmdline
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
* Amlogic T7: Move `${bootargs}` placement
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
---------
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
Co-authored-by: Igor <igor@armbian.com>
Add board configuration for FriendlyELEC NanoPi R76S, including:
- nanopi-r76s.conf with board parameters and boot settings
- initial kernel / U-Boot patch for device tree and board bring-up
XpressReal(https://xpressreal.io/) is a family of Single Board Computers
developed in collaboration between Fyde Innovations, Radxa and Realtek.
XpressReal T3 is the first product in the family - a small form factor
high performance single board computer powered by the Realtek RTD1619B,
which runs FydeOS/openFyde and Linux!
Now we are adding the awesome Armbian Linux support for XpressReal T3!
This commit introduces some binary files that XpressReal T3 needed:
- firmware/realtek/rtd1619b
These binaries are the firmware for rtd1619b peripherals
(including the audio decoder, video decoder, etc.).
- u-boot-fw.tar.gz
This contains some co-processor firmware,
which needs to be loaded by u-boot in the early stage of boot.
- u-boot-prebuilt.tar.gz
These are hwsettings related files, used for tasks such as DDR initialization.
These files come from the rtd1619b SDK, which has already been open-sourced on our github:
- [firmware](https://github.com/XpressReal/linux-sdk/tree/main/meta-xpressreal/recipes-kernel/linux-firmware/files/rtd1619b)
- [u-boot prebuilts](https://github.com/XpressReal/linux-sdk/tree/main/meta-xpressreal/recipes-bsp/u-boot/files/prebuilt/rtd1619b)
Switch to newer U-Boot since it works reliably and provides upstream
improvements.
Add patch/u-boot/v2025.10 and the generic patch, as BOOTPATCHDIR cannot
be unset (fallback to legacy fails).
BOOT_SCENARIO="binman-atf-mainline" cannot be set here since it applies
globally to the CSC file and would break branch=vendor. Users who want
it can enable it manually.
* feat(board/orangepi5pro): Update U-Boot to v2025.07 for eMMC support
Updated the U-Boot patch from v2024.04 to v2025.07, this change
finally enables booting from eMMC on the Orange Pi 5 Pro.
The device tree source for the board has also been refactored to
support the new U-Boot version and clean up peripheral definitions.
* orangepi5pro: dts: Fix incorrect GRF node name
The GRF node was misspelled as 'sysgrf' instead
of the correct 'sys_grf'.
This commit corrects the phandle to the proper value.
Updated the U-Boot patch from v2024.04 to v2025.07, this change
finally enables booting from eMMC on the Orange Pi 5 Pro.
The device tree source for the board has also been refactored to
support the new U-Boot version and clean up peripheral definitions.
* Add initial support for Orangepi 5 Pro
Tested and Working:
Wireless & Bluetooth
USB 2.0 + USB 3.1
HDMI 2.1
Gigabit Ethernet (PCIe to RJ45 - Need drivers YT6801)
NVMe PCIe 2.0
MicroSD
Audio Controller es8388 - Audio Out
FAN PWM
LEDs PWM
Not Working:
Onboard Microphone
HDMI 2.0 (DP-HDMI - rockchip,rk3588-dp No Driver)
Not Tested:
Camera 1,2
eMMC
* OPi 5 Pro: Ethernet Driver Installation on First Boot
Implemented a simple script to install the driver
during first boot using the installation headers
included in the image. Takes just a few seconds
on first boot.
Disclaimer: Attempted installation in a chroot env but failed.
* fix: Make first-boot Ethernet driver install more robust
The `eth-driver-firstboot.service` would sometimes fail on first boot with a "Resource temporarily unavailable" error. This happened when another process had a lock on `dpkg`.
To fix this, the installation script now waits for any `dpkg` locks to be released before attempting to install the driver package. It also includes a retry mechanism (3 attempts) in case of a transient failure.
This ensures the network driver is successfully installed, providing a better out-of-box experience.