mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-26 17:01:14 +00:00
f46355b4d7
Fix accessing the environment in case no OS is installed on the flash media selected for boot as this is possible when booting initramfs. In case of relying on the device specified to be mounted as rootfs to be present, rather just use the kernel cmdline 'root' variable as a hint to decide where to read/write the U-Boot environment. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
43 lines
1.0 KiB
Plaintext
43 lines
1.0 KiB
Plaintext
#
|
|
# Copyright (C) 2021 OpenWrt.org
|
|
#
|
|
|
|
[ -e /etc/config/ubootenv ] && exit 0
|
|
|
|
touch /etc/config/ubootenv
|
|
|
|
. /lib/uboot-envtools.sh
|
|
. /lib/functions.sh
|
|
|
|
board=$(board_name)
|
|
|
|
case "$board" in
|
|
bananapi,bpi-r3)
|
|
case "$(cmdline_get_var root)" in
|
|
/dev/mmc*)
|
|
local envdev=$(find_mmc_part "ubootenv" $rootdev)
|
|
ubootenv_add_uci_config "$envdev" "0x0" "0x40000" "0x40000" "1"
|
|
ubootenv_add_uci_config "$envdev" "0x40000" "0x40000" "0x40000" "1"
|
|
;;
|
|
/dev/mtd*)
|
|
local envdev=/dev/mtd$(find_mtd_index "u-boot-env")
|
|
ubootenv_add_uci_config "$envdev" "0x0" "0x20000" "0x20000" "1"
|
|
ubootenv_add_uci_config "$envdev" "0x20000" "0x20000" "0x20000" "1"
|
|
;;
|
|
/dev/ubi*)
|
|
. /lib/upgrade/nand.sh
|
|
local envubi=$(nand_find_ubi ubi)
|
|
local envdev=/dev/$(nand_find_volume $envubi ubootenv)
|
|
local envdev2=/dev/$(nand_find_volume $envubi ubootenv2)
|
|
ubootenv_add_uci_config "$envdev" "0x0" "0x1f000" "0x1f000" "1"
|
|
ubootenv_add_uci_config "$envdev2" "0x0" "0x1f000" "0x1f000" "1"
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
|
|
config_load ubootenv
|
|
config_foreach ubootenv_add_app_config ubootenv
|
|
|
|
exit 0
|