- a bit verbose but confirms missing `ethernet0`/`1` alias was the cause of random MACs for at least a few boards
- there's quite a few boards to fix, so we might want to pull this one level up later
- 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