summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFreddy Leitner <hello@square.wf>2018-08-28 20:47:58 +0200
committerMathias Kresin <dev@kresin.me>2018-08-29 09:43:10 +0200
commit7aa5dc46ee79c095e53f2b8e19c640cee8a58e0f (patch)
tree386e35c7fdd6b6c489f392fd2e7f9fc3da5708de
parentc134210b8f7e18b43641b6c2176e7a3e6baed030 (diff)
downloadmtk-20170518-7aa5dc46ee79c095e53f2b8e19c640cee8a58e0f.zip
mtk-20170518-7aa5dc46ee79c095e53f2b8e19c640cee8a58e0f.tar.gz
mtk-20170518-7aa5dc46ee79c095e53f2b8e19c640cee8a58e0f.tar.bz2
apm821xx: MBL: load kernel/dtb from SATA 0:1 first
This remedies an issue with the MBL Duo if both disks are inserted and contain OpenWrt. kernel and dtb would be loaded from SATA 1:1 while rootfs (/dev/sda2) would be mounted on SATA 0:1. Such a mix&match would obviously only work if both OpenWrt versions/ builds are identical, and especially fail after sysupgrade upgraded the system disk on SATA 0:1. The fallback to SATA 1:1 needs to be kept for MBL Single (only has SATA 1:1) and MBL Duo with one disk inserted on SATA 1:1. To speed up booting in those cases, the unneccesarily doubled "sata init" will only be called once. (In theory it could be omitted completely since the on-flash boot script already initializes SATA to load the on-disk boot script.) Tested on MBL Duo (all possible combination of disks) and MBL Single Acked-by: Christian Lamparter <chunkeey@gmail.com> Signed-off-by: Freddy Leitner <hello@square.wf>
-rw-r--r--target/linux/apm821xx/image/mbl_boot.scr6
1 files changed, 3 insertions, 3 deletions
diff --git a/target/linux/apm821xx/image/mbl_boot.scr b/target/linux/apm821xx/image/mbl_boot.scr
index 9552169..394659a 100644
--- a/target/linux/apm821xx/image/mbl_boot.scr
+++ b/target/linux/apm821xx/image/mbl_boot.scr
@@ -1,6 +1,6 @@
setenv boot_args 'setenv bootargs root=/dev/sda2 rw rootfstype=squashfs,ext4'
-setenv load_part1 'sata init; ext2load sata 1:1 ${kernel_addr_r} /boot/uImage; ext2load sata 1:1 ${fdt_addr_r} /boot/apollo3g.dtb'
-setenv load_part2 'sata init; ext2load sata 0:1 ${kernel_addr_r} /boot/uImage; ext2load sata 0:1 ${fdt_addr_r} /boot/apollo3g.dtb'
-setenv load_sata 'if run load_part1; then echo Loaded part 1; elif run load_part2; then echo Loaded part 2; fi'
+setenv load_part1 'ext2load sata 0:1 ${kernel_addr_r} /boot/uImage; ext2load sata 0:1 ${fdt_addr_r} /boot/apollo3g.dtb'
+setenv load_part2 'ext2load sata 1:1 ${kernel_addr_r} /boot/uImage; ext2load sata 1:1 ${fdt_addr_r} /boot/apollo3g.dtb'
+setenv load_sata 'sata init; if run load_part1; then echo Loaded part 1; elif run load_part2; then echo Loaded part 2; fi'
setenv boot_sata 'run load_sata; run boot_args addtty; bootm ${kernel_addr_r} - ${fdt_addr_r}'
run boot_sata