B8A audit, B8B Pronto remoteproc (fixed wcnss_mem 0x8b600000), B8C stock NV (fixes Pronto startup watchdog), B8D cfg80211/mac80211/wcn36xx -> phy0/wlan0, B8E wlan0 up + WPA2/CCMP test AP, B8F eMMC cache 857c9c30 with aurora-wifi autostart: 3/3 class-A cold boots, AP up 76-94 s after power-on, LTE unaffected. PSK, NV and PSK-bearing images are not published.
46 lines
4.6 KiB
Bash
Executable file
46 lines
4.6 KiB
Bash
Executable file
#!/bin/sh
|
|
# 480s side, B8B RAM test K. Board: full power-off >= 90 s, then RESET held at power-on (battery -> USB) -> lk1st fastboot.
|
|
# fastboot boot b8b image (RAM only, nothing written to eMMC/cache) -> wait MPSS/LTE START OK (B7C controller) -> PRE snapshot ->
|
|
# start WCNSS remoteproc via sysfs (only write of the test; auto-boot at ~1 s cannot find /firmware/image yet) -> POST snapshot.
|
|
K=$1; MODE=$2; [ -n "$K" ] || { echo "usage: $0 K [now|collect]"; exit 2; } # now = board already sits in fastboot; collect = skip boot
|
|
cd ~/doc/modem/jz08-aurora; O=logs/b8/b8b/c$K; mkdir -p $O; IMG=b8/b8b/out/aurora-b8b.img
|
|
A=$O/host-actions.txt; act() { echo "$(date -u +%H:%M:%S.%3N) $*" | tee -a $A; }
|
|
tn() { { sleep 1; sed "s/\$/\r/" "$1"; sleep $2; } | ncat 172.16.42.1 23 | tr -d "\000\r"; }
|
|
echo "bf92247d49a98aa4bacfd91054e9fb2d005985356458d3e657d705940c5a4dba $IMG" | sha256sum -c || exit 1
|
|
if [ "$MODE" != collect ]; then
|
|
OLD=$(ps -eo pid,cmd | grep "[u]artlog.py /dev/ttyUSB0" | awk '{print $1}'); [ -n "$OLD" ] && kill $OLD; sleep 1
|
|
U=logs/uart/b8b$K-$(date +%Y%m%d-%H%M%S); setsid nohup python3 tools/uartlog.py /dev/ttyUSB0 $U > $U.stderr 2>&1 < /dev/null &
|
|
act "B8B c$K: uartlog PID $! -> $U.log; waiting for fastboot <EMMC_SERIAL> (power off >= 90 s, then RESET held + battery -> USB)"
|
|
if [ "$MODE" != now ] && fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; then act "board already in fastboot - waiting for power-off first"
|
|
until ! fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do sleep 1; done; act "fastboot device gone (power removed)"; fi
|
|
i=0; until fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do i=$((i+1)); [ $i -ge 600 ] && { act "ABORT: no fastboot in 20 min"; exit 1; }; sleep 2; done
|
|
act "fastboot device present"; { fastboot boot $IMG 2>&1; echo "rc=$?"; } | tee -a $A
|
|
else U=$(ls -t logs/uart/b8b$K-*.log | head -1); U=${U%.log}; act "collect-only mode, UART $U.log"; fi
|
|
i=0; until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do i=$((i+1)); [ $i -ge 90 ] && { act "ABORT: NCM not up after ~180 s"; cp $U.log $O/uart.log; exit 1; }; sleep 1; done; act "NCM ping ok"
|
|
printf 'grep -E "START OK|FAIL in|rollback" /run/aurora-modem/lifecycle.log | tail -1\n' > $O/.w
|
|
i=0; until tn $O/.w 3 | grep -qE "^\[[0-9.]+\] .*(=== START OK|FAIL in|rollback)"; do i=$((i+1)); [ $i -ge 80 ] && { act "no START OK/FAIL after ~12 min"; break; }; sleep 6; done
|
|
act "controller end: $(tn $O/.w 3 | grep -E '^\[[0-9.]+\] .*(=== START OK|FAIL in|rollback)' | tail -1)"
|
|
cat > $O/.snap <<'C'
|
|
echo SNAP-BEGIN; cat /proc/uptime; date -u; uname -a; cat /proc/device-tree/model; echo
|
|
for r in /sys/class/remoteproc/*; do echo "RP ${r##*/} name=$(cat $r/name) state=$(cat $r/state) fw=$(cat $r/firmware)"; done
|
|
echo ---rpmsg; for d in /sys/bus/rpmsg/devices/*; do echo "${d##*/} drv=$(readlink $d/driver | sed 's#.*/##')"; done | grep -vE "DATA[0-9]+_CNTL|DIAG"
|
|
echo ---pdev; ls /sys/bus/platform/devices | grep -iE "a204000|wcnss|iris|pronto"; ls -l /sys/bus/platform/devices/a204000.remoteproc/driver 2>&1
|
|
echo ---iomem; grep -E "^8[6-9a-f]" /proc/iomem
|
|
echo ---dmesg-reserved; dmesg | grep -E "reserved mem: .*(mpss|wcnss|mba)"
|
|
echo ---dmesg-wcnss; dmesg | grep -iE "wcnss|a204000|pronto|iris|remoteproc|smd|rpmsg|qcom_wcnss|nv file|firmware|wcn"
|
|
echo ---regulators; for r in /sys/class/regulator/*; do n=$(cat $r/name 2>/dev/null); case $n in *l5*|*l7*|*l9*|*s3*) echo "$n $(cat $r/microvolts 2>/dev/null) uV en=$(cat $r/state 2>/dev/null) users=$(cat $r/num_users 2>/dev/null)";; esac; done
|
|
echo ---modem; /etc/init.d/aurora-modem status
|
|
echo ---ping; ping -c4 -W3 -I wwan0 77.88.8.8 | tail -2
|
|
echo ---emmc; awk "{print \"w=\"\$5\" s=\"\$7}" /sys/block/mmcblk0/stat; cat /sys/block/mmcblk0/ro
|
|
echo SNAP-END
|
|
C
|
|
tn $O/.snap 30 > $O/pre.txt; act "PRE snapshot: $(grep -c SNAP-END $O/pre.txt) end, $(grep '^RP ' $O/pre.txt | tr '\n' ' ')"
|
|
cat > $O/.start <<'C'
|
|
for r in /sys/class/remoteproc/*; do [ "$(cat $r/name)" = a204000.remoteproc ] && W=$r; done; echo "WCNSS_RP=$W state=$(cat $W/state 2>&1)"
|
|
[ -n "$W" ] && [ "$(cat $W/state)" = offline ] && { echo start > $W/state; echo "START rc=$?"; }
|
|
sleep 15; echo "after15 state=$(cat $W/state 2>&1)"
|
|
C
|
|
tn $O/.start 25 > $O/start.txt; act "WCNSS start: $(grep -E 'WCNSS_RP|START rc|after15' $O/start.txt | tr '\n' ' ')"
|
|
sleep 10; tn $O/.snap 30 > $O/post.txt; act "POST snapshot: $(grep -c SNAP-END $O/post.txt) end, $(grep '^RP ' $O/post.txt | tr '\n' ' ')"
|
|
printf 'dmesg > /tmp/b8b-dmesg.txt; nc -l -p 9841 < /tmp/b8b-dmesg.txt &\n' > $O/.d; tn $O/.d 3 >/dev/null; sleep 1; ncat --recv-only 172.16.42.1 9841 > $O/dmesg.full
|
|
cp $U.log $O/uart.log; act "B8B c$K END ($(wc -l < $O/dmesg.full) dmesg lines)"
|