#!/bin/sh # B10B-0 read-only full dump of PM8916 SID0: every 0x100 peripheral block whose TYPE (offset 0x04) is non-zero. Reads only. grep -q " /sys/kernel/debug " /proc/mounts || mount -t debugfs debugfs /sys/kernel/debug R=/sys/kernel/debug/regmap/0-00/registers echo "== DUMP-START up=$(cut -d' ' -f1 /proc/uptime) $(uname -r) emmc=$(awk '{print "w="$5}' /sys/block/mmcblk0/stat)" b=1 while [ $b -lt 256 ]; do a=$((b * 256)) t=$(dd if=$R bs=9 skip=$((a + 4)) count=1 2>/dev/null | cut -d' ' -f2) if [ -n "$t" ] && [ "$t" != "00" ]; then dd if=$R bs=9 skip=$a count=256 2>/dev/null; fi b=$((b + 1)) done echo "== DUMP-END up=$(cut -d' ' -f1 /proc/uptime)"