Please bump PKG_RELEASE ........ > -----Original Message----- > From: openwrt-devel [mailto:[email protected]] > On Behalf Of Bjørn Mork > Sent: Donnerstag, 10. Dezember 2020 13:40 > To: [email protected] > Cc: Bjørn Mork <[email protected]> > Subject: [PATCH 1/2] uboot-envtools: add support for multiple config > partitions > > Most (all?) of the realtek devices have two u-boot config partitions with a > different set of variables in each. The U-Boot shell provides two sets of apps > to manipulate these: > > printenv- print environment variables > printsys- printsys - print system information variables saveenv - save > environment variables to persistent storage savesys - savesys - save system > information variables to persistent storage setenv - set environment > variables setsys - setsys - set system information variables > > Add support for multiple ubootenv configuration types, allowing more than > one configuration file. > > Section names are not suitable for naming the different configurations since > each file can be the result of multiple sections in case of backup partitions. > > Signed-off-by: Bjørn Mork <[email protected]> > --- > package/boot/uboot-envtools/Makefile | 1 + > package/boot/uboot-envtools/files/realtek | 8 +++- > .../uboot-envtools/files/uboot-envtools.sh | 38 ++++++++++++------- > 3 files changed, 32 insertions(+), 15 deletions(-) > > diff --git a/package/boot/uboot-envtools/Makefile b/package/boot/uboot- > envtools/Makefile > index 590e38d8831a..601627011d56 100644 > --- a/package/boot/uboot-envtools/Makefile > +++ b/package/boot/uboot-envtools/Makefile > @@ -61,6 +61,7 @@ MAKE_FLAGS += \ > define Package/uboot-envtools/conffiles /etc/config/ubootenv > /etc/fw_env.config > +/etc/fw_sys.config > endef > > define Package/uboot-envtools/install > diff --git a/package/boot/uboot-envtools/files/realtek > b/package/boot/uboot-envtools/files/realtek > index cce0628ffcbb..b64bb23b0747 100644 > --- a/package/boot/uboot-envtools/files/realtek > +++ b/package/boot/uboot-envtools/files/realtek > @@ -15,15 +15,21 @@ zyxel,gs1900-10hp) > idx="$(find_mtd_index u-boot-env)" > [ -n "$idx" ] && \ > ubootenv_add_uci_config "/dev/mtd$idx" "0x0" "0x400" > "0x10000" > + idx="$(find_mtd_index u-boot-env2)" > + [ -n "$idx" ] && \ > + ubootenv_add_uci_sys_config "/dev/mtd$idx" "0x0" > "0x1000" "0x10000" > ;; > *) > idx="$(find_mtd_index u-boot-env)" > [ -n "$idx" ] && \ > ubootenv_add_uci_config "/dev/mtd$idx" "0x0" "0x10000" > "0x10000" > + idx="$(find_mtd_index u-boot-env2)" > + [ -n "$idx" ] && \ > + ubootenv_add_uci_sys_config "/dev/mtd$idx" "0x0" > "0x1000" "0x10000" > ;; > esac > > config_load ubootenv > -config_foreach ubootenv_add_app_config ubootenv > +config_foreach ubootenv_add_app_config > > exit 0 > diff --git a/package/boot/uboot-envtools/files/uboot-envtools.sh > b/package/boot/uboot-envtools/files/uboot-envtools.sh > index 9218bc4e3912..980c9962b17c 100644 > --- a/package/boot/uboot-envtools/files/uboot-envtools.sh > +++ b/package/boot/uboot-envtools/files/uboot-envtools.sh > @@ -3,34 +3,44 @@ > # Copyright (C) 2011-2012 OpenWrt.org > # > > -ubootenv_add_uci_config() { > - local dev=$1 > - local offset=$2 > - local envsize=$3 > - local secsize=$4 > - local numsec=$5 > +_ubootenv_add_uci_config() { > + local cfgtype=$1 > + local dev=$2 > + local offset=$3 > + local envsize=$4 > + local secsize=$5 > + local numsec=$6 > uci batch <<EOF > -add ubootenv ubootenv > -set ubootenv.@ubootenv[-1].dev='$dev' > -set ubootenv.@ubootenv[-1].offset='$offset' > -set ubootenv.@ubootenv[-1].envsize='$envsize' > -set ubootenv.@ubootenv[-1].secsize='$secsize' > -set ubootenv.@ubootenv[-1].numsec='$numsec' > +add ubootenv $cfgtype > +set ubootenv.@$cfgtype[-1].dev='$dev' > +set ubootenv.@$cfgtype[-1].offset='$offset' > +set ubootenv.@$cfgtype[-1].envsize='$envsize' > +set ubootenv.@$cfgtype[-1].secsize='$secsize' > +set ubootenv.@$cfgtype[-1].numsec='$numsec' > EOF > uci commit ubootenv > } > > +ubootenv_add_uci_config() { > + _ubootenv_add_uci_config "ubootenv" "$@" > +} > + > +ubootenv_add_uci_sys_config() { > + _ubootenv_add_uci_config "ubootsys" "$@" > +} > + > ubootenv_add_app_config() { > + local cfgtype > local dev > local offset > local envsize > local secsize > local numsec > + config_get cfgtype "$1" TYPE > config_get dev "$1" dev > config_get offset "$1" offset > config_get envsize "$1" envsize > config_get secsize "$1" secsize > config_get numsec "$1" numsec > - grep -q "^[[:space:]]*${dev}[[:space:]]*${offset}" > /etc/fw_env.config || echo "$dev $offset $envsize $secsize $numsec" > >>/etc/fw_env.config > + grep -q "^[[:space:]]*${dev}[[:space:]]*${offset}" > "/etc/fw_${cfgtype#uboot}.config" || echo "$dev $offset $envsize $secsize > $numsec" >>"/etc/fw_${cfgtype#uboot}.config" > } > - > -- > 2.20.1 > > > _______________________________________________ > openwrt-devel mailing list > [email protected] > https://lists.openwrt.org/mailman/listinfo/openwrt-devel
_______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/mailman/listinfo/openwrt-devel
