Skip to content

Commit

Permalink
base-files: add minimal mmc support
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Robert Marko <[email protected]>
[replace dd with caldata_dd, moved sysupgrade mmc to orbi]
Signed-off-by: Christian Lamparter <[email protected]>
(cherry picked from commit 6e137943442fb0ab66c34462fa19e5a4260eddd5)
  • Loading branch information
DavideFioravanti authored and 1715173329 committed Sep 26, 2023
1 parent e5a48ff commit 9bc1dee
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 0 deletions.
13 changes: 13 additions & 0 deletions package/base-files/files/lib/functions.sh
Original file line number Diff line number Diff line change
Expand Up @@ -313,6 +313,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"
Expand Down
13 changes: 13 additions & 0 deletions package/base-files/files/lib/functions/caldata.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
9 changes: 9 additions & 0 deletions package/base-files/files/lib/functions/system.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 9bc1dee

Please sign in to comment.