aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavide Fioravanti <pantanastyle@gmail.com>2020-09-02 01:18:16 +0200
committerChristian Lamparter <chunkeey@gmail.com>2021-11-01 00:56:51 +0100
commit6e137943442fb0ab66c34462fa19e5a4260eddd5 (patch)
tree004adb0dc825fbf919dcec364de3616309d5aadd
parent24efb49ff0ef41979e58e1fc5a88281088d999cd (diff)
downloadupstream-6e137943442fb0ab66c34462fa19e5a4260eddd5.tar.gz
upstream-6e137943442fb0ab66c34462fa19e5a4260eddd5.tar.bz2
upstream-6e137943442fb0ab66c34462fa19e5a4260eddd5.zip
base-files: add minimal mmc support
Added minimal mmc support for helper functions: - find_mmc_part: Look for a given partition name. Returns the coresponding partition path - caldata_extract_mmc: Look for a given partition name and then extracts the calibration data - mmc_get_mac_binary: Returns the mac address from a given partition name and offset Signed-off-by: Davide Fioravanti <pantanastyle@gmail.com> Signed-off-by: Robert Marko <robimarko@gmail.com> [replace dd with caldata_dd, moved sysupgrade mmc to orbi] Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
-rw-r--r--package/base-files/files/lib/functions.sh13
-rw-r--r--package/base-files/files/lib/functions/caldata.sh13
-rw-r--r--package/base-files/files/lib/functions/system.sh9
3 files changed, 35 insertions, 0 deletions
diff --git a/package/base-files/files/lib/functions.sh b/package/base-files/files/lib/functions.sh
index a5b23eb135..e56e4637f0 100644
--- a/package/base-files/files/lib/functions.sh
+++ b/package/base-files/files/lib/functions.sh
@@ -330,6 +330,19 @@ find_mtd_part() {
echo "${INDEX:+$PREFIX$INDEX}"
}
+find_mmc_part() {
+ local DEVNAME PARTNAME
+
+ if grep -q "$1" /proc/mtd; then
+ echo "" && return 0
+ fi
+
+ for DEVNAME in /sys/block/mmcblk*/mmcblk*p*; do
+ PARTNAME="$(grep PARTNAME ${DEVNAME}/uevent | cut -f2 -d'=')"
+ [ "$PARTNAME" = "$1" ] && echo "/dev/$(basename $DEVNAME)" && return 0
+ done
+}
+
group_add() {
local name="$1"
local gid="$2"
diff --git a/package/base-files/files/lib/functions/caldata.sh b/package/base-files/files/lib/functions/caldata.sh
index 2177cf8415..d7b88c7dce 100644
--- a/package/base-files/files/lib/functions/caldata.sh
+++ b/package/base-files/files/lib/functions/caldata.sh
@@ -48,6 +48,19 @@ caldata_extract_ubi() {
caldata_die "failed to extract calibration data from $ubi"
}
+caldata_extract_mmc() {
+ local part=$1
+ local offset=$(($2))
+ local count=$(($3))
+ local mmc_part
+
+ mmc_part=$(find_mmc_part $part)
+ [ -n "$mmc_part" ] || caldata_die "no mmc partition found for partition $part"
+
+ caldata_dd $mmc_part /lib/firmware/$FIRMWARE $count $offset || \
+ caldata_die "failed to extract calibration data from $mmc_part"
+}
+
caldata_extract_reverse() {
local part=$1
local offset=$2
diff --git a/package/base-files/files/lib/functions/system.sh b/package/base-files/files/lib/functions/system.sh
index 80e417182a..0ac2912014 100644
--- a/package/base-files/files/lib/functions/system.sh
+++ b/package/base-files/files/lib/functions/system.sh
@@ -135,6 +135,15 @@ mtd_get_part_size() {
done < /proc/mtd
}
+mmc_get_mac_binary() {
+ local part_name="$1"
+ local offset="$2"
+ local part
+
+ part=$(find_mmc_part "$part_name")
+ get_mac_binary "$part" "$offset"
+}
+
macaddr_add() {
local mac=$1
local val=$2