mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-19 21:58:04 +00:00
8d3e932b65
The sector number must be stored in hex. Otherwise, the number (like 16) will be parsed as hex and any write to the partition will end up with an error like: MTD erase error on /dev/mtd5: Invalid argument Fixes:9adfeccd84
("uboot-envtools: Add support for IPQ806x AP148 and DB149") Fixes:54b275c8ed
("ipq40xx: add target") Signed-off-by: Sven Eckelmann <sven@narfation.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@fungible.com>
62 lines
1.4 KiB
Plaintext
62 lines
1.4 KiB
Plaintext
#
|
|
# Copyright (C) 2016 LEDE
|
|
#
|
|
|
|
[ -e /etc/config/ubootenv ] && exit 0
|
|
|
|
touch /etc/config/ubootenv
|
|
|
|
. /lib/uboot-envtools.sh
|
|
. /lib/functions.sh
|
|
|
|
board=$(board_name)
|
|
|
|
ubootenv_mtdinfo () {
|
|
UBOOTENV_PART=$(cat /proc/mtd | grep APPSBLENV)
|
|
mtd_dev=$(echo $UBOOTENV_PART | awk '{print $1}' | sed 's/:$//')
|
|
mtd_size=$(echo $UBOOTENV_PART | awk '{print "0x"$2}')
|
|
mtd_erase=$(echo $UBOOTENV_PART | awk '{print "0x"$3}')
|
|
nor_flash=$(find /sys/bus/spi/devices/*/mtd -name ${mtd_dev})
|
|
|
|
if [ -n "$nor_flash" ]; then
|
|
ubootenv_size=$mtd_size
|
|
else
|
|
# size is fixed to 0x40000 in u-boot
|
|
ubootenv_size=0x40000
|
|
fi
|
|
|
|
sectors=$(( $ubootenv_size / $mtd_erase ))
|
|
sectors=$(printf "0x%x" $sectors )
|
|
echo /dev/$mtd_dev 0x0 $ubootenv_size $mtd_erase $sectors
|
|
}
|
|
|
|
case "$board" in
|
|
arris,tr4400-v2|\
|
|
askey,rt4230w-rev6)
|
|
ubootenv_add_uci_config "/dev/mtd9" "0x0" "0x40000" "0x20000"
|
|
;;
|
|
edgecore,ecw5410)
|
|
ubootenv_add_uci_config "/dev/mtd11" "0x0" "0x10000" "0x10000"
|
|
;;
|
|
linksys,ea7500-v1|\
|
|
linksys,ea8500)
|
|
ubootenv_add_uci_config "/dev/mtd10" "0x0" "0x20000" "0x20000"
|
|
;;
|
|
netgear,r7800)
|
|
ubootenv_add_uci_config "/dev/mtd2" "0x0" "0x040000" "0x20000"
|
|
;;
|
|
qcom,ipq8064-ap148|\
|
|
qcom,ipq8064-db149)
|
|
ubootenv_add_uci_config $(ubootenv_mtdinfo)
|
|
;;
|
|
ubnt,unifi-ac-hd|\
|
|
zyxel,nbg6817)
|
|
ubootenv_add_uci_config "/dev/mtdblock9" "0x0" "0x10000" "0x10000"
|
|
;;
|
|
esac
|
|
|
|
config_load ubootenv
|
|
config_foreach ubootenv_add_app_config ubootenv
|
|
|
|
exit 0
|