 8d3e932b65
			
		
	
	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
 |