#!/bin/sh # 480s side: software warm reboot to lk1st fastboot (no RESET) -> fastboot boot B9C RAM image (no LBC writes) -> read PMIC state. usage: rbl-test.sh K K=$1; cd ~/doc/modem/jz08-aurora; O=logs/b10/b10b3/rbl$K; mkdir -p $O; A=$O/actions.txt; C=b10/b10b3/b10b3-cmd.sh act() { echo "$(date -u +%H:%M:%S.%3N) $*" | tee -a $A; } B9C=b9/b9c/out/aurora-b9c.img; echo "fa855e1c84763861d8b2f6bd7ed669e8ab625aa42178317883fabff39dec4fce $B9C" | sha256sum -c || exit 1 RD='R=/sys/kernel/debug/regmap/0-00/registers; grep -q " /sys/kernel/debug " /proc/mounts || mount -t debugfs debugfs /sys/kernel/debug; uname -r; cat /proc/device-tree/model; echo; cut -d" " -f1 /proc/uptime; dmesg | grep "rtc-pm8xxx.*setting"; cat /sys/class/rtc/rtc0/since_epoch; for a in 0x808 0x809 0x80a 0x80b 0x80c 0x80d 0x88f 0x1009 0x1010 0x1040 0x1041 0x1044 0x1045 0x1049 0x104a 0x105b 0x1060 0x1061 0x10ee 0x1308 0x1642; do dd if=$R bs=9 skip=$((a)) count=1 2>/dev/null; done' act "pre: save production-run logs"; sh $C 4 "dmesg > /tmp/dm.txt; tar cf /tmp/p.tar /tmp/dm.txt /tmp/b10b3-mon.log; nc -l -p 9991 < /tmp/p.tar &" >/dev/null; sleep 1; ncat --recv-only 172.16.42.1 9991 > $O/pre-prodrun.tar sh $C 5 "$RD" | sed -n '/^7\.2/,$p' > $O/pre.txt; act "pre state:"; tr '\n' ' ' < $O/pre.txt >> $A; echo >> $A sh $C 2 "nc -l -p 9992 > /tmp/rbl && chmod +x /tmp/rbl &" >/dev/null; sleep 1; ncat --send-only 172.16.42.1 9992 < b10/b10b3/rbl/reboot-bootloader; sleep 1 act "board sha: $(sh $C 2 'sha256sum /tmp/rbl' | grep -o '^[0-9a-f]\{64\}')" act "running /tmp/rbl (no RESET)"; { sleep 1; printf '/tmp/rbl\r\n'; sleep 2; } | ncat -w 4 172.16.42.1 23 >/dev/null 2>&1 i=0; until fastboot devices 2>/dev/null | grep -q ; do i=$((i+1)); [ $i -ge 90 ] && { act "NO fastboot within 90 s"; exit 1; }; sleep 1; done; act "fastboot present after ${i} s (no RESET)" { fastboot boot $B9C 2>&1; echo "rc=$?"; } | tee -a $A i=0; until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do i=$((i+1)); [ $i -ge 180 ] && { act "no NCM"; exit 1; }; sleep 1; done; act "NCM up (B9C RAM)"; sleep 3 sh $C 5 "$RD" | sed -n '/^7\.2/,$p' > $O/post.txt; act "post state:"; tr '\n' ' ' < $O/post.txt >> $A; echo >> $A act "END"