b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | # |
| 3 | # Copyright (C) 2016 LEDE |
| 4 | # |
| 5 | |
| 6 | [ -e /etc/config/ubootenv ] && exit 0 |
| 7 | |
| 8 | touch /etc/config/ubootenv |
| 9 | |
| 10 | . /lib/uboot-envtools.sh |
| 11 | . /lib/functions.sh |
| 12 | |
| 13 | board=$(board_name) |
| 14 | |
| 15 | ubootenv_mtdinfo () { |
| 16 | UBOOTENV_PART=$(cat /proc/mtd | grep APPSBLENV) |
| 17 | mtd_dev=$(echo $UBOOTENV_PART | awk '{print $1}' | sed 's/:$//') |
| 18 | mtd_size=$(echo $UBOOTENV_PART | awk '{print "0x"$2}') |
| 19 | mtd_erase=$(echo $UBOOTENV_PART | awk '{print "0x"$3}') |
| 20 | nor_flash=$(find /sys/bus/spi/devices/*/mtd -name ${mtd_dev}) |
| 21 | |
| 22 | if [ -n "$nor_flash" ]; then |
| 23 | ubootenv_size=$mtd_size |
| 24 | else |
| 25 | # size is fixed to 0x40000 in u-boot |
| 26 | ubootenv_size=0x40000 |
| 27 | fi |
| 28 | |
| 29 | sectors=$(( $ubootenv_size / $mtd_erase )) |
| 30 | echo /dev/$mtd_dev 0x0 $ubootenv_size $mtd_erase $sectors |
| 31 | } |
| 32 | |
| 33 | case "$board" in |
| 34 | edgecore,ecw5410) |
| 35 | ubootenv_add_uci_config "/dev/mtd11" "0x0" "0x10000" "0x10000" |
| 36 | ;; |
| 37 | linksys,ea7500-v1 |\ |
| 38 | linksys,ea8500) |
| 39 | ubootenv_add_uci_config "/dev/mtd10" "0x0" "0x20000" "0x20000" |
| 40 | ;; |
| 41 | netgear,r7800) |
| 42 | ubootenv_add_uci_config "/dev/mtd2" "0x0" "0x040000" "0x20000" |
| 43 | ;; |
| 44 | qcom,ipq8064-ap148 |\ |
| 45 | qcom,ipq8064-db149) |
| 46 | ubootenv_add_uci_config $(ubootenv_mtdinfo) |
| 47 | ;; |
| 48 | ubnt,unifi-ac-hd |\ |
| 49 | zyxel,nbg6817) |
| 50 | ubootenv_add_uci_config "/dev/mtdblock9" "0x0" "0x10000" "0x10000" |
| 51 | ;; |
| 52 | esac |
| 53 | |
| 54 | config_load ubootenv |
| 55 | config_foreach ubootenv_add_app_config ubootenv |
| 56 | |
| 57 | exit 0 |