70 lines
2.1 KiB
Bash
Executable File
70 lines
2.1 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Copyright (c) 2014 The Linux Foundation. All rights reserved.
|
|
# Copyright (C) 2011-2012 OpenWrt.org
|
|
#
|
|
|
|
|
|
. /lib/ipq806x.sh
|
|
. /lib/uboot-envtools.sh
|
|
. /lib/functions.sh
|
|
|
|
board=$(ipq806x_board_name)
|
|
|
|
default_uboot_env () {
|
|
UBOOTENV_PART=$(cat /proc/mtd | grep APPSBLENV)
|
|
mtd_dev=$(echo $UBOOTENV_PART | awk '{print $1}' | sed 's/:$//')
|
|
mtd_size=0x$(echo $UBOOTENV_PART | awk '{print $2}')
|
|
mtd_erase=0x$(echo $UBOOTENV_PART | awk '{print $3}')
|
|
nor_flash=`find /sys/bus/spi/devices/*/mtd -name ${mtd_dev}`
|
|
|
|
if [ -z "$UBOOTENV_PART" ]; then
|
|
mtd_dev=$(echo $(find_mmc_part "0:APPSBLENV") | sed 's/^.\{5\}//')
|
|
if [ -n "$mtd_dev" ]; then
|
|
EMMC_UBOOTENV_PART=$(cat /proc/partitions | grep $mtd_dev)
|
|
#convert block to bytes
|
|
emmc_uboot_env_size=`expr $(echo $EMMC_UBOOTENV_PART | awk '{print $3}') \* 1024`
|
|
uboot_env_size=0x`printf "%x" $emmc_uboot_env_size`
|
|
fi
|
|
mtd_erase=""
|
|
elif [ -n "$nor_flash" ]; then
|
|
uboot_env_size=$mtd_size
|
|
sectors=$(( $uboot_env_size / $mtd_erase ))
|
|
else
|
|
# size is hardcoded to 0x40000 in u-boot
|
|
uboot_env_size=0x40000
|
|
sectors=$(( $uboot_env_size / $mtd_erase ))
|
|
fi
|
|
|
|
echo /dev/$mtd_dev 0x0 $uboot_env_size $mtd_erase $sectors
|
|
}
|
|
|
|
validate_device_node() {
|
|
config_get dev $1 dev
|
|
if [ "$dev" != "$2" ] || [ ! -e /etc/fw_env.config ]; then
|
|
rm /etc/config/ubootenv /etc/fw_env.config
|
|
return;
|
|
fi
|
|
|
|
exit 0
|
|
}
|
|
|
|
[ -e /etc/config/ubootenv ] && {
|
|
config_load ubootenv
|
|
config_foreach validate_device_node ubootenv $(default_uboot_env)
|
|
}
|
|
|
|
touch /etc/config/ubootenv
|
|
|
|
case "$board" in
|
|
db149 | ap148 | ap145 | ap148_1xx | db149_1xx | db149_2xx | ap145_1xx | db147 | ap160 | ap160_2xx | ap161 | ak01_1xx | ap-dk01.1-c1 | ap-dk01.1-c2 | ap-dk04.1-c1 | ap-dk04.1-c2 | ap-dk04.1-c3 | ap-dk04.1-c4 | ap-dk04.1-c5 | ap-dk05.1-c1 | ap-dk06.1-c1 | ap-dk07.1-c1 | ap-dk07.1-c2 | ap-dk07.1-c3 | ap-hk01-c1 | ap-hk01-c2 | ap-hk01-c3 | ap-hk02 | ap-hk05 | ap-hk06 | ap-hk07 | db-hk01 | db-hk02)
|
|
env=$(default_uboot_env)
|
|
[ -n "${env}" ] && ubootenv_add_uci_config $env
|
|
;;
|
|
esac
|
|
|
|
config_load ubootenv
|
|
config_foreach ubootenv_add_app_config ubootenv
|
|
|
|
exit 0
|