From 872863b95ad5ab0626092fd7a4406ee76bb79fbc Mon Sep 17 00:00:00 2001 From: Ricardo Pardini Date: Sun, 4 Jan 2026 16:15:27 +0100 Subject: [PATCH] genio: u-boot: patch: mt8195: boot order: SD -> UFS -> eMMC -> USB -> Network - 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) --- ...5-boot-order-SD-UFS-eMMC-USB-Network.patch | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 patch/u-boot/u-boot-genio/3301-GENIO-mt8195-boot-order-SD-UFS-eMMC-USB-Network.patch diff --git a/patch/u-boot/u-boot-genio/3301-GENIO-mt8195-boot-order-SD-UFS-eMMC-USB-Network.patch b/patch/u-boot/u-boot-genio/3301-GENIO-mt8195-boot-order-SD-UFS-eMMC-USB-Network.patch new file mode 100644 index 0000000000..5d5717e3b0 --- /dev/null +++ b/patch/u-boot/u-boot-genio/3301-GENIO-mt8195-boot-order-SD-UFS-eMMC-USB-Network.patch @@ -0,0 +1,50 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ricardo Pardini +Date: Sat, 3 Jan 2026 20:48:38 +0100 +Subject: GENIO: mt8195: boot order: SD -> UFS -> eMMC -> USB -> Network + +Quality of life improvement for users who want to try different OS's +using SD card. With this change, once u-boot is loaded (from BootRoM +to UFS, always), it will try to boot an OS in the following order: + +SD -> SCSI 2 (UFS) -> eMMC -> USB -> PXE(pxelinux) -> DHCP (PXE-EFI) + +Of course, if board in question doesn't have an eMMC, it won't boot +from there, and that's the most common case on mt8195. It could be +argued that USB should boot after SD, but that causes an USB scan +that is slow and seems prone to failure currently. + +Network already works on mt8195, so add it to the end of the boot +order. For it to actually work, one needs to set a MAC address in +the u-boot environment, and save it (it will be stored on UFS LUN 1). +The kernel will also use the same MAC. +in-uboot prompt: `setenv ethaddr xx:...` and `saveenv` +in-kernel: use `fw_setenv` if available + +Signed-off-by: Ricardo Pardini +--- + include/configs/mt8195.h | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/include/configs/mt8195.h b/include/configs/mt8195.h +index 111111111111..222222222222 100644 +--- a/include/configs/mt8195.h ++++ b/include/configs/mt8195.h +@@ -121,9 +121,12 @@ + #endif + + #define BOOT_TARGET_DEVICES(func) \ ++ func(MMC, mmc, 0) \ + BOOT_TARGET_SCSI(func) \ +- BOOT_TARGET_MMC(func) \ +- BOOT_TARGET_USB(func) ++ func(MMC, mmc, 1) \ ++ BOOT_TARGET_USB(func) \ ++ func(PXE, pxe, na) \ ++ func(DHCP, dhcp, na) + + + #if !defined(CONFIG_EXTRA_ENV_SETTINGS) +-- +Armbian +