[ "$bootsource" = mmc ] && boot mmc$bootsource_instance on the Rockchip board doesn't do what one would expect, because the bootrom has different numbering for the MMC devices than what the upstream board device trees use for their aliases. This series resolves that. @Johannes, could you give this a test on the ROCK-3A? Thanks, Ahmad Fatoum (3): bootsource: rename existing bootsource_set to bootsource_set_raw bootsource: allow DT aliases and bootrom numbering to differ ARM: dts: rk356x: align bootsource_instance numbering and MMC DT aliases .../devicetree/bindings/barebox/aliases.rst | 36 ++++++ arch/arm/boards/radxa-rock3/board.c | 2 +- .../boards/rockchip-rk3568-bpi-r2pro/board.c | 2 +- arch/arm/boards/rockchip-rk3568-evb/board.c | 2 +- arch/arm/dts/rk3566-quartz64-a.dts | 1 + arch/arm/dts/rk3568-bpi-r2-pro.dts | 1 + arch/arm/dts/rk3568-evb1-v10.dts | 1 + arch/arm/dts/rk3568-rock-3a.dts | 1 + arch/arm/dts/rk356x.dtsi | 9 ++ arch/arm/mach-at91/sama5d2.c | 4 +- arch/arm/mach-imx/boot.c | 6 +- arch/arm/mach-layerscape/boot.c | 4 +- arch/arm/mach-mxs/imx.c | 3 +- arch/arm/mach-omap/am33xx_generic.c | 3 +- arch/arm/mach-omap/omap3_generic.c | 3 +- arch/arm/mach-omap/omap4_generic.c | 3 +- arch/arm/mach-rockchip/rk3288.c | 3 +- arch/arm/mach-rockchip/rk3568.c | 9 +- arch/arm/mach-socfpga/arria10-bootsource.c | 3 +- arch/arm/mach-socfpga/cyclone5-bootsource.c | 6 +- arch/arm/mach-stm32mp/init.c | 3 +- arch/arm/mach-zynq/zynq.c | 2 +- arch/arm/mach-zynqmp/zynqmp.c | 3 +- common/bootsource.c | 110 +++++++++++++----- drivers/block/efi-block-io.c | 2 +- drivers/efi/efi-device.c | 3 +- include/bootsource.h | 40 ++++++- 27 files changed, 192 insertions(+), 73 deletions(-) create mode 100644 Documentation/devicetree/bindings/barebox/aliases.rst create mode 100644 arch/arm/dts/rk356x.dtsi -- 2.30.2