mvebu: fix squashfs boot for Turris Mox
The bootscript had several issues that prevented squashfs from booting:
- bootpath was set to "/" causing double slashes in load paths (e.g.
"//Image"); changed to "" so "${bootpath}/Image" resolves to "/Image"
- rootflags was set to "commit=5" (a btrfs-specific mount option) for
the ext4/squashfs case; cleared to empty string
- rootfstype was missing in the non-btrfs branch; added "auto" to let
the kernel detect the filesystem; the btrfs branch now sets "btrfs"
explicitly
- bootargs incorrectly referenced ${bootfstype} (the distroboot input
variable) instead of the locally constructed ${rootfstype}
- has_dtb assignment used shell-style "has_dtb=1" but was cleared with
"setenv has_dtb 0"; unified both to use setenv
- DTB load failure message now includes the attempted file path
- Fixed Image.lzma error echo that still used a stale "${subvol}/boot/"
prefix; now consistently uses ${bootpath}
- Removed undefined variable "rootpart" from env delete
Signed-off-by: Štěpán Dalecký <daleckystepan@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23421
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
parent
441da8597a
commit
833c7c75a3
@ -1,22 +1,24 @@
|
|||||||
if part uuid ${devtype} ${devnum}:${distro_bootpart} bootuuid; then
|
if part uuid ${devtype} ${devnum}:${distro_bootpart} bootuuid; then
|
||||||
if test "${bootfstype}" = "btrfs"; then
|
if test "${bootfstype}" = "btrfs"; then
|
||||||
# Original BTRFS partition layout
|
# BTRFS: root and boot share the same partition via subvolumes
|
||||||
rootdev="PARTUUID=${bootuuid}"
|
rootdev="PARTUUID=${bootuuid}"
|
||||||
|
rootfstype="btrfs"
|
||||||
rootflags="commit=5,subvol=@"
|
rootflags="commit=5,subvol=@"
|
||||||
bootpath="/@/boot"
|
bootpath="/@/boot"
|
||||||
else
|
else
|
||||||
# OpenWrt default ext4 bootpart + rootpart layout
|
# ext4 or squashfs: boot on p1, root on p2
|
||||||
rootdev="/dev/mmcblk0p2"
|
rootdev="/dev/mmcblk0p2"
|
||||||
rootflags="commit=5"
|
rootfstype="auto"
|
||||||
bootpath="/"
|
rootflags=""
|
||||||
|
bootpath=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${bootpath}/armada-3720-turris-mox.dtb
|
load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${bootpath}/armada-3720-turris-mox.dtb
|
||||||
if test "$filesize" != "0"; then
|
if test "$filesize" != "0"; then
|
||||||
has_dtb=1
|
setenv has_dtb 1
|
||||||
else
|
else
|
||||||
setenv has_dtb 0
|
setenv has_dtb 0
|
||||||
echo "Cannot find device tree binary!"
|
echo "Cannot find device tree binary: ${bootpath}/armada-3720-turris-mox.dtb"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test $has_dtb -eq 1; then
|
if test $has_dtb -eq 1; then
|
||||||
@ -34,11 +36,11 @@ if part uuid ${devtype} ${devnum}:${distro_bootpart} bootuuid; then
|
|||||||
filesize=0
|
filesize=0
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "Failed to load ${subvol}/boot/Image.lzma"
|
echo "Failed to load ${bootpath}/Image.lzma"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if test "$filesize" != "0"; then
|
if test "$filesize" != "0"; then
|
||||||
setenv bootargs "earlyprintk console=ttyMV0,115200 earlycon=ar3700_uart,0xd0012000 rootfstype=${bootfstype} root=${rootdev} rootflags=${rootflags} rootwait ${contract} rw cfg80211.freg=${regdomain} ${quirks}"
|
setenv bootargs "earlyprintk console=ttyMV0,115200 earlycon=ar3700_uart,0xd0012000 rootfstype=${rootfstype} root=${rootdev} rootflags=${rootflags} rootwait ${contract} rw cfg80211.freg=${regdomain} ${quirks}"
|
||||||
booti ${kernel_addr_r} - ${fdt_addr_r}
|
booti ${kernel_addr_r} - ${fdt_addr_r}
|
||||||
echo "Booting Image failed"
|
echo "Booting Image failed"
|
||||||
else
|
else
|
||||||
@ -46,5 +48,5 @@ if part uuid ${devtype} ${devnum}:${distro_bootpart} bootuuid; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
env delete bootuuid rootpart
|
env delete bootuuid
|
||||||
fi
|
fi
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user