This commit adds a suite of 4 patches for U-Boot v2025.10 to enable
full support for the Xunlong Orange Pi 5 Pro SBC.
The Orange Pi 5 Pro introduces several significant hardware departures
from the base Orange Pi 5, necessitating specific driver and DTS
adjustments:
1. Networking (Motorcomm YT6801):
- The Pro variant replaces the SoC's built-in GMAC1 NIC with a
PCIe-attached Motorcomm YT6801 controller.
- Introduce a new glue driver (dwc_eth_qos_motorcomm) to bridge
the core DWC EQoS IP to the PCIe bus.
- Core EQoS driver is modified to support the YT6801's unique
32-byte descriptor size and Descriptor Skip Length requirements.
- Auto-generation of MAC addresses from CPU ID is disabled to
preserve the hardware's native eFuse MAC.
2. Audio and I/O:
- Audio routing is moved from I2S1 to I2S2 (M1 mux) with the
ES8388 codec on I2C3.
- LEDs are remapped from GPIO to PWM control (PWM3/PWM15).
- Headphone amplifier enable is remapped to GPIO4_PB5.
3. Thermal and Power:
- PWM Fan control is implemented with a specific 20ms (50Hz)
period. This is CRITICAL because the hardware's RC filter gate
logic causes MOSFET overheating if standard 25kHz PWM is used.
4. Wireless:
- Full support for the AP6256 module via SDIO and UART9.
Patch Summary:
- [0001] Board support (DTS, defconfig, doc). DTS based on initial
submission by Dennis Gilmore.
- [0002] Motorcomm YT6801 PCIe glue driver and PHY support.
- [0003] Core EQoS driver extension for descriptor/DSL overrides.
- [0004] Rockchip board MAC setup bypass for Pro hardware.
Signed-off-by: c127dev <contact@c127.dev>
Voltages for "gpu_opp_table" and "vdd_arm" were wrongly using default
values instead of the customized values from the vendor image, leading
to dmesg errors like
[ 19.709834] core: _opp_supported_by_regulators: OPP minuV: 1075000 maxuV: 1075000, not supported by regulator
[ 19.710075] lima ff300000.gpu: _opp_add: OPP not supported by regulators (200000000) 0xBEBC200
Thanks to Shadowrom2020 for noticing.
Update the I2S MCLK output gate clock patches to match the upstream v3
series. Changes from previous version:
- Split into 4 patches (was 3): added separate patch for
RK3588_SYSGRF_SOC_CON6 define in rk3588_grf.h
- Use named constant RK3588_SYSGRF_SOC_CON6 instead of magic 0x0318
- Add u-boot patch for clock ID bindings (needed by board DTS files)
6.18 uses kzalloc(sizeof(...)) as kzalloc_obj is not available.
7.0 uses kzalloc_obj as recommended by upstream reviewer.
Upstream: https://lore.kernel.org/linux-rockchip/20260320-rk3588-mclk-gate-grf-v3-0-980338eacd2c@superkali.me/
* Add GPU operating points and modify power controller
Makerbase power control adaptions due to voltage regulator limitations
* Add GPU operating points to rk3328-mkspi.dts
Makerbase power control adaptions due to voltage limitations
* Add GPU operating points to rk3328-mkspi.dts
* Remove unused gpu-opp-table node
* Remove unused gpu-opp-table node
* Remove unused gpu-opp-table node from device tree
* revert changes to kernel 6.12
* Add initial support for Qidi-X boards
* enable uart1 by default
* disable spi for screen and touch
* remove spi0 reference
* fix typo
* add new dts to kernel 7.0
* remove unused leds and unused drive
* fix storage
* disable sound output
* fixes for nitpick comments
* fix default device tree
* fix accidental changes
* changed supported boards comment
- fancy: EFI debug, compression, LED, networking with LWIP
- Kwiboo has worked his magic on LWIP in 2026.04
- Use flashcp to write to SPI (mine needed a few times, as my flash is old and failing)
- Move FIP handling from family to board file, but still the same
- flash blue led in preboot once
- adapt 24Mhz mmc patch
- u-boot v2026.04-rcX has bumped dt-rebasing to v6.18, thus it knows about
NPU nodes now and we can simply symlink to kernel DT, reducing duplication by a lot
- fileenv patch (same as v2026.01)
- fdt_fixup_ethernet logging patch (same as v2026.01)
- 0000.patching_config.yaml: defconfig/dt_upstream_rockchip/dt_uboot
- notable in v2026.04:
- dt-rebasing bumped up to v6.18 (which has NPU nodes)
- this allows us to share complete DTs between kernel and u-boot via symlinks
- Kwiboo had a go at LWIP which should be usable now; Kwiboo rocks.
- rockchip64-6.19: mainline kernel (edge/6.19):
- most stuff works, incl 4G modem, NPU, RS-485, RS-232, HDMI-RX
- except:
- type-c (fusb302, I've no schematics nor will to reverse)
- DisplayPort (I don't have test hardware)
- Analog Audio (ditto)
- keep vendor u-boot for vendor branch
- mainline u-boot v2026.01:
- same DT as edge kernel, save for NPU nodes
- boot order: NVMe -> SATA -> USB -> eMMC -> Ethernet/PXE
- stable MAC addresses for GMAC0/1 via DT aliases (confirm with logging patch)
This commit enables generation of `u-boot-rockchip-spi-sata.bin`.
Flashing this to SPI flash enables U-Boot to communicate with an
attached SATA m.2 SSD, thereby allowing booting directly from SPI flash
to SATA SSD.
Kwiboo's `rk3506` branch is WIP / rebased often. Pin to commit hash while upstreaming work is underway.
Also revert (broken) changes that attempted to keep up with this branch.
- Change BOOTCONFIG from rk3506b to rk3506j variant
- Update btrfs patch to target correct defconfig
- Add OPTEE image support for secure boot functionality