diff --git a/NOTES.md b/NOTES.md index 4e1f3b4..539cca2 100644 --- a/NOTES.md +++ b/NOTES.md @@ -1309,3 +1309,30 @@ fast MSS restart re-attach needs investigation; single unreproduced cases (pc1 n START OK 72–89 s → AP ENABLED 76–94 s, phone WPA2/CCMP connected and held 168–188 s, Pronto crash 0, LTE OK, eMMC w=0, SNTP +0.40/+0.996/+0.03 s. **B8F is now the operational baseline (cache 857c9c30).** PSK only in b8/b8f/private (never publish out/, cache image, W/*.bin). - Open: sleeping-STA delivery delay, regulatory.db/country RU, production MAC, exact Iris chip, B7 residual at 1 s edge. Next stage: display. + +# Session 37 — B9 display (2026-10-03) — **CLOSED, PASS** — logs/b9/{b9a,b9b,b9c,lk,b9l}/ +- B9A (read-only audit): the panel is **not DSI**. It is a 1.44" **ST7735S 128x128 on SPI** (MIPI-DBI type C), BLSP1 QUP4 spi@78b8000 (GPIO12 MOSI, 13 MISO, 14 CS0, 15 CLK), + 16 MHz, mode 3, D/C GPIO116 (`disp_dc`), RESET GPIO118 (`disp_rst_n`), RGB565, MADCTL 0xc8, GRAM offset (2,3). Backlight = PM8916 **MPP4 current sink 40 mA** + (0xa340=0x61, 0xa34c=7, 0xa346=0x80); no PWM/WLED/DCS. + - Stock LK (saved aboot) brings the panel up in aboot_init, unconditionally, ~210 ms after LK start. The 19-command sequence equals dtb_01 byte for byte. + panel_id is hardcoded to 1 (no ID read). The built-in 128x128 "4G LTE" logo is used because the splash partition is all zeros. + - Current lk1st has no SPI-panel code. +- B9B (RAM): kernel + DRM/panel-mipi-dbi/fbdev, DTB spi4 + panel (L17/L6 supplies) + MPP4 `function "sink"`/drive-strength 7 + gpio-backlight, + firmware = stock sequence (b9/b9b/mk-panel-fw.py). + - First light: image, colours, orientation and offsets all correct with no change. + - MPP4 reads back exactly 0x60 off / 0x61 on, 0x07, 0x80. + - Without fbcon nothing modesets; an fbdev unblank was needed. +- B9C: + FRAMEBUFFER_CONSOLE + FONT_6x8 only (21x16 console), cmdline `console=tty0` **before** `console=ttyMSM0` (keeps /dev/console = UART), + aurora-display service (fbcon takeover already enables the pipe → backlight on via sysfs), getty tty1, hostname aurora. + - Cache **b9ce13c9** written (B9C_WRITE_VERIFIED, backup = B8F 857c9c30). + - Cold boots: cold1 A, cold2 B (accepted by operator), cold3 A — all PASS; backlight ON→OFF→ON confirmed visually. + - **B9C is the operational baseline.** +- B9-LK audit: stock LK is not in the chain since B5a (aboot = lk1st). lk2nd cont-splash only adopts MDP; mdss_spi is msm8909/8952-only and hard-wired. +- B9L-0: lk1st `fastboot boot` of a 32-bit lk2nd 23.1 works on DB410c TZ + qhypstub. +- B9L-RAM: lk2nd 23.1 + patch (b9/b9l/lk2nd-23.1-aurora-b9l*.patch) — msm8916 QUP4 SPI clocks/pins, 16 MHz clamp, module lk2nd/aurora on CAF spi_qup + (platform mdss_spi.o NOT built: it pulls spi-display.c, which strcmp's a NULL panel.intf). + - **L17 and L6 are ON at LK time** (left on by SBL); no RPM work is needed in LK. + - Test frame, then the operator splash (`swag.png` → RGB565) shown before Linux; Linux fbcon takes over normally. + - Formal run directly from lk1st: PASS (e6849a2b). Nothing flashed. +- Open: lk1st reflash with the panel code (separate GO); ~1 s dark gap at handoff (Linux gpio-backlight pinctrl/fbcon re-init); + DT model string "RAM boot B9B"; screen UI. Next stage: battery / charging / power management. diff --git a/README.md b/README.md index 7468d4b..6727eab 100644 --- a/README.md +++ b/README.md @@ -27,14 +27,14 @@ | B7 — время от сети (DMS/NITZ, без RTC) | **PASS / CLOSED** | | Wi-Fi (WCNSS/Pronto + wcn36xx, тестовая AP WPA2, автозапуск из flash) — B8 | **PASS / CLOSED** (см. ниже) | | Router stack (NAT/firewall/VPN) | TODO | -| Дисплей в Linux | TODO | +| Дисплей ST7735S 128×128 (SPI): DRM/fbcon tty1, подсветка, автозапуск из flash — B9 | **PASS / CLOSED** (см. ниже) | | Батарея / зарядка | TODO | ## Рабочая цепочка загрузки (baseline B5) ``` Power → stock SBL1 → DB410c TZ (TZ.BF.3.0) → qhypstub → lk1st (aboot, autoboot) - → cache: ext2 + extlinux/extlinux.conf → B8F (ядро b8d + DTB b8b + initramfs: модем, время, Wi-Fi) → ARM64 Linux → LTE + Wi-Fi AP + → cache: ext2 + extlinux/extlinux.conf → B9C (ядро b9c + DTB b9b + initramfs: модем, время, Wi-Fi, дисплей) → ARM64 Linux → LTE + Wi-Fi AP + консоль на экране Fallback: extlinux не найден / не парсится / не грузится → Android boot image из раздела boot (emmc1 rescue) ``` @@ -48,13 +48,26 @@ Fallback: extlinux не найден / не парсится / не грузит | hyp | qhypstub, до 512 KiB | `1a963047` | | aboot | lk1st (lk2nd 23.1) autoboot, подписан qtestsign, до 1 MiB | `3b8cd266` | | boot | emmc1 rescue image (+ нули до 16 MiB) | `e9579f33` | -| cache | ext2 + extlinux + B8F (ядро 7.2.7-aurora-b8d, DTB b8b, initramfs B7C + Wi-Fi) | `857c9c30` (откат: B7C `14fe453a` → T4 `9d3bc890` → B6P `9fea693a`) | +| cache | ext2 + extlinux + B9C (ядро 7.2.7-aurora-b9c, DTB b9b, initramfs B8F + дисплей) | `b9ce13c9` (откат: B8F `857c9c30` → B7C `14fe453a` → T4 `9d3bc890` → B6P `9fea693a`) | | recovery | lk2nd 23.1 (fastboot) | `0dfa60a0` | | modem, NV/EFS, persist, system, userdata | не менялись (Linux монтирует modem FAT только RO) | — | Golden mm1 (Android boot image, для `fastboot boot`): `aurora-mm1.img` sha256 `38c960ef…`, ядро `7.2.7-aurora-bam1 #5`. Все хэши целиком: `b5a/SHA256SUMS`, `b5b/SHA256SUMS`, `bootchain-migration/SHA256SUMS`, `linux/*/SHA256SUMS`, [docs/BLOBS.md](docs/BLOBS.md). +## B9 status — дисплей PASS (2026-10-03) + +- Встроенный экран — **не DSI**: 1.44" **ST7735S 128×128 на SPI** (MIPI-DBI type C), BLSP1 QUP4 `spi@78b8000`, 16 MHz, mode 3, CS0, + D/C GPIO116, RESET GPIO118, RGB565, MADCTL `0xc8`, смещение GRAM (2,3). Подсветка — PM8916 **MPP4 как current sink 40 мА**. Питание L17 2.85 V / L6 1.8 V. + Всё восстановлено из stock LK (дизассемблер) и stock DTB: 19 init-команд в LK и DT совпадают побайтно. +- Linux: upstream `panel-mipi-dbi` (firmware-файл со стоковой init-последовательностью, `b9/b9b/mk-panel-fw.py`), DRM + fbdev → `fbcon` 6x8 (21×16) на tty1, + `getty` на tty1, UART-консоль сохранена (`console=tty0` стоит **до** `console=ttyMSM0`). Подсветка: pinctrl MPP `function "sink"`, `drive-strength 7` + + `gpio-backlight` (регистры = стоковые 0x61/0x07/0x80), включается сервисом `aurora-display` через sysfs. +- Cache B9C: 3 холодных загрузки с eMMC без ввода (2× class A + 1× class B, принято) — консоль ядра на экране, LTE + Wi-Fi AP, время, ошибок дисплея 0. +- B9L (только RAM): lk2nd второй стадии с портом SPI-панели под msm8916 (`b9/b9l/lk2nd-23.1-aurora-b9l.patch`) показывает картинку **до** Linux; + L17/L6 на этапе LK уже включены SBL. lk1st с этим кодом не прошит. +- Открыто: UI вместо консоли ядра, регулировка яркости, ~1 с темноты при передаче LK → Linux, прошивка lk1st с заставкой. Материалы: `b9/`, `logs/b9/`, NOTES.md сессия 37. + ## B8 status — Wi-Fi PASS (2026-10-03) - Pronto (WCNSS) через upstream `qcom_wcnss` remoteproc: штатный `wcnss.mdt` из RO-FAT `modem`, `wcnss_mem` фиксирован 0x8b600000/6 MiB, @@ -116,6 +129,7 @@ Safety: | `b6p/` | persistent-интеграция: контроллер, сервис, конфиг, сборка initramfs/boot.img/cache, эмулятор, запись/откат, тесты | | `b7/` | B7: время от сети (DMS/NITZ), проверка по NTP, cache B7C | | `b8/` | B8: Wi-Fi — аудит, WCNSS/NV, wcn36xx, hostapd, сервис aurora-wifi, cache B8F (запись/откат/эмулятор) | +| `b9/` | B9: дисплей — аудит stock LK/DT, panel-mipi-dbi firmware, fbcon/сервис aurora-display, cache B9C, патч lk2nd (SPI-панель в LK) | | `tools/` | утилиты: UART-логгер, Sahara probe, распаковка boot.img, sanitizer публикации | | `logs/` | sanitized логи: UART, QMI, ModemManager, EDL, результаты тестов | | `android/` | снимок стокового Android (getprop, gpio, input, leds, …), sanitized | @@ -124,6 +138,6 @@ Safety: Полные дампы eMMC и разделов, NV/EFS (`modemst1/2`, `fsg`, `fsc`), `persist`, `userdata`, файлы прошивки модема, стоковые SBL1/RPM/TZ/aboot/boot/recovery/system, Firehose-программер, DB410c TZ, собранные бинарники, -Wi-Fi NV (`WCNSS_qcom_wlan_nv.bin`), PSK тестовой AP и образы с ним (B8F initramfs/cache). +Wi-Fi NV (`WCNSS_qcom_wlan_nv.bin`), PSK тестовой AP и образы с ним (B8F/B9C initramfs/cache), логотип из stock LK и картинка-заставка B9L. Идентификаторы (IMEI, IMSI, ICCID, eMMC CID/serial, Sahara serial, MAC, номера сот, cookies) заменены на ``. Как это сделано — `tools/publish-sanitize.py`; значения идентификаторов в репозиторий не попадают. diff --git a/b9/b9a/SHA256SUMS b/b9/b9a/SHA256SUMS new file mode 100644 index 0000000..3640b63 --- /dev/null +++ b/b9/b9a/SHA256SUMS @@ -0,0 +1,8 @@ +d05df1c29493394d5447c4b6e9880f70aaae8e7e04ca3b244c1ea7e1a5394c40 decode-panel.py +3372e90bfa795e4185761cba5aa505ac90d70ff5fbe53da3f564dc9b25069b9e dt-extract.py +95206962a251a78ecfba6f9848a1efc1020e0680796a14856920725657376fde lkmem.py +c8858233cc912b6df7151b29a3b45a81f2429413e012c368674a10a885bf7f5b lk-xref.py +35ffa32d0c1ba11a7ad21b5fb80151a7344c9af73a1f9a53316be7bf165363ec render-lk-logo.py +aa8ffbb2b53e6123b431485c1a05bd7d4a5cba700cd5f7071c252b6a7d8870fa b9a-live.sh +ec25538528200f3b5ae77a4f023f7d881473eb2e9b1e0eea9184795f5e0438ad b9a-run.sh +ae0b80ce6967cb41d32f6a34e6d3051b879a6638d1145e185007db35e096ed19 disrange.sh diff --git a/b9/b9a/b9a-live.sh b/b9/b9a/b9a-live.sh new file mode 100644 index 0000000..6d35e47 --- /dev/null +++ b/b9/b9a/b9a-live.sh @@ -0,0 +1,40 @@ +#!/bin/sh +# B9A (board side, READ-ONLY): snapshot of the display-related state of the running Aurora Linux. +# No writes to GPIO/regulators/PMIC/SPI, no sysfs writes. Only side effect: mounts debugfs if absent (no HW access). +# PMIC registers are read through the regmap debugfs "registers" file (positioned dd reads = SPMI reads only). +echo B9A-LIVE-BEGIN; cat /proc/uptime; cat /proc/device-tree/model; echo; uname -a; cat /proc/cmdline +grep -q " /sys/kernel/debug " /proc/mounts || mount -t debugfs debugfs /sys/kernel/debug +for d in /sys/class/drm /sys/class/graphics /sys/class/backlight /sys/class/leds /sys/class/spi_master /sys/bus/spi/devices /dev/dri; do + echo "--- ls $d"; ls -la $d 2>&1 +done +echo "--- /dev/fb*"; ls -la /dev/fb* 2>&1 +echo "--- dmesg display/spi/backlight" +dmesg | grep -iE 'display|mdss|mdp|dsi|panel|drm|framebuffer|fbcon|fb[0-9]|backlight|lcd|spi|mipi|dbi|st77|mpp|simple' || echo "(no matches)" +echo "--- DT nodes (status)" +for n in soc@0/display-subsystem@1a00000 soc@0/display-subsystem@1a00000/display-controller@1a01000 \ + soc@0/display-subsystem@1a00000/dsi@1a98000 soc@0/display-subsystem@1a00000/phy@1a98300 soc@0/spi@78b8000; do + p=/proc/device-tree/$n; if [ -d $p/ ]; then printf '%s status=' $n; cat $p/status 2>/dev/null || printf '(none=okay)'; echo; else echo "$n ABSENT"; fi +done +echo "--- DT search panel/backlight/framebuffer nodes" +find /proc/device-tree/ -iname '*panel*' -o -iname '*backlight*' -o -iname '*framebuffer*' -o -iname '*lcd*' 2>/dev/null +echo "--- DT reserved-memory"; ls /proc/device-tree/reserved-memory/ +echo "--- debugfs gpio (TLMM 12-15 SPI, 116 D/C, 118 RESET; PMIC MPP4)" +grep -E 'gpio(12|13|14|15|116|118) |mpp4|gpiochip' /sys/kernel/debug/gpio +echo "--- pinmux-pins TLMM 12-15,116,118" +for f in /sys/kernel/debug/pinctrl/*/pinmux-pins; do echo "# $f"; grep -E '^pin (12|13|14|15|116|118) ' $f; done +echo "--- pinctrl MPP"; for f in /sys/kernel/debug/pinctrl/*mpp*/pinconf-pins; do echo "# $f"; cat $f; done +echo "--- regulators" +for r in /sys/class/regulator/regulator.*; do printf '%s %s state=%s uV=%s users=%s\n' ${r##*/} "$(cat $r/name)" "$(cat $r/state 2>/dev/null)" "$(cat $r/microvolts 2>/dev/null)" "$(cat $r/num_users 2>/dev/null)"; done +echo "--- regulator_summary (l6/l17)"; grep -iE 'l6|l17|regulator ' /sys/kernel/debug/regulator/regulator_summary 2>/dev/null | head -20 +echo "--- regmaps"; ls /sys/kernel/debug/regmap/ +# rd SID ADDR N: SID0 = 0-00 (MPP, PON), SID1 = 0-01 (LDOs, LPG/PWM) in upstream pm8916.dtsi +rd() { R=/sys/kernel/debug/regmap/0-0$1/registers; echo "# PMIC sid$1 $2 +$3"; [ -r $R ] && dd if=$R bs=9 skip=$(($2)) count=$(($3)) 2>/dev/null; } +echo "--- PM8916 MPP4 block (0xa300: 04=subtype,08=status,40=MODE_CTL,41=DIG_VIN,42=PULL,46=EN_CTL,4c=SINK_CTL)" +rd 0 0xa304 2; rd 0 0xa308 1; rd 0 0xa340 8; rd 0 0xa34c 1 +echo "--- PM8916 LDO6 (0x4500) / LDO17 (0x5000): 08=STATUS 40/41=VSET 45=MODE 46=EN_CTL" +rd 1 0x4504 2; rd 1 0x4508 1; rd 1 0x4540 2; rd 1 0x4545 2 +rd 1 0x5004 2; rd 1 0x5008 1; rd 1 0x5040 2; rd 1 0x5045 2 +echo "--- PM8916 PWM/LPG 0xbc00 (46=EN_CTL)"; rd 1 0xbc04 2; rd 1 0xbc46 1 +echo "--- clocks (mdss/blsp1_qup4)"; grep -E 'mdss|qup4_spi|blsp1_ahb' /sys/kernel/debug/clk/clk_summary 2>/dev/null | head -20 +echo "--- eMMC"; cat /sys/block/mmcblk0/stat +echo B9A-LIVE-END diff --git a/b9/b9a/b9a-run.sh b/b9/b9a/b9a-run.sh new file mode 100644 index 0000000..765b84a --- /dev/null +++ b/b9/b9a/b9a-run.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# B9A (480s side, READ-ONLY): push b9a-live.sh to board RAM (/tmp) over NCM nc, run it via telnet, save the output. +# Board must already be up (normal B8F boot). Nothing is written to eMMC; no reboot. +set -e; cd ~/doc/modem/jz08-aurora; O=logs/b9/b9a; mkdir -p $O; S=b9/b9a/b9a-live.sh; P=9931 +tn() { { sleep 1; printf '%s\r\n' "$1"; sleep $2; } | ncat 172.16.42.1 23 | tr -d "\000\r"; } +tn "nc -l -p $P > /tmp/b9a-live.sh &" 1 > /dev/null +sleep 1; ncat --send-only 172.16.42.1 $P < $S +tn "sha256sum /tmp/b9a-live.sh" 2 | grep b9a-live +sha256sum $S +tn "sh /tmp/b9a-live.sh 2>&1" 15 | sed -n '/^B9A-LIVE-BEGIN/,/^B9A-LIVE-END/p' > $O/b9a-linux-display.raw.txt +wc -l $O/b9a-linux-display.raw.txt diff --git a/b9/b9a/decode-panel.py b/b9/b9a/decode-panel.py new file mode 100644 index 0000000..39a6ba4 --- /dev/null +++ b/b9/b9a/decode-panel.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python3 +"""B9A read-only: decode the ST7735S init sequence from (a) stock LK lk.bin command table and +(b) stock dtb_01 qcom,mdss-spi-on-command, and compare them byte-for-byte. +LK table (gcdb mdss_spi_cmd, 16 B each): u32 size, u32 payload_ptr, u32 wait_ms, u8 cmds_post_tg. +DT format (msm-3.10 mdss_spi_panel): repeated [wait_ms, len, cmd, params...]; wait applies after the command. +usage: decode-panel.py lk.bin dtb_01.dts""" +import re, struct, sys + +BASE = 0x8f600000 +lk = open(sys.argv[1], 'rb').read() +dts = open(sys.argv[2]).read() + +NAMES = {0x01: 'SWRESET', 0x11: 'SLPOUT', 0x20: 'INVOFF', 0x21: 'INVON', 0x28: 'DISPOFF', 0x29: 'DISPON', + 0x2a: 'CASET', 0x2b: 'RASET', 0x2c: 'RAMWR', 0x36: 'MADCTL', 0x3a: 'COLMOD', 0xb1: 'FRMCTR1', + 0xb2: 'FRMCTR2', 0xb3: 'FRMCTR3', 0xb4: 'INVCTR', 0xc0: 'PWCTR1', 0xc1: 'PWCTR2', 0xc2: 'PWCTR3', + 0xc3: 'PWCTR4', 0xc4: 'PWCTR5', 0xc5: 'VMCTR1', 0xe0: 'GMCTRP1', 0xe1: 'GMCTRN1', 0x10: 'SLPIN'} + +def lk_cmds(table, n): + out = [] + for i in range(n): + size, ptr, wait, post = struct.unpack_from(' (word, text) +order = [] +for l in dis: + m = re.match(r'([0-9a-f]{8}):\s+([0-9a-f]{8})\s+(.*)', l) + if m: + a = int(m.group(1), 16) + ins[a] = (int(m.group(2), 16), m.group(3)) + order.append(a) + +def func_start(a): + while a >= BASE: + t = ins.get(a) + if t and (t[1].startswith('push') or t[1].startswith('stmdb\tsp!')): + return a + a -= 4 + return None + +def loaders(pool): + out = [] + for a, (w, t) in ins.items(): + m = re.search(r'ldr\w*\s+\w+, \[pc, #(-?\d+)\]', t) + if m and a + 8 + int(m.group(1)) == pool: + out.append(a) + return out + +for pat in sys.argv[3:]: + for m in re.finditer(rb'[\x20-\x7e\t\n]{4,}', lk): + s = m.group().decode() + if not re.search(pat, s): + continue + sa = BASE + m.start() + pools = [a for a, (w, _) in ins.items() if w == sa] + print(f'STR 0x{sa:08x} {s!r}') + for p in pools: + for ld in loaders(p): + fs = func_start(ld) + print(f' pool 0x{p:08x} <- ldr 0x{ld:08x} in func 0x{fs:08x}' if fs else f' pool 0x{p:08x} <- 0x{ld:08x}') diff --git a/b9/b9a/lkmem.py b/b9/b9a/lkmem.py new file mode 100644 index 0000000..a482cc7 --- /dev/null +++ b/b9/b9a/lkmem.py @@ -0,0 +1,19 @@ +#!/usr/bin/env python3 +"""B9A read-only helper: dump words / strings / bytes from stock lk.bin (base 0x8f600000). +usage: lkmem.py lk.bin w ADDR N | s ADDR | b ADDR N""" +import sys, struct +BASE=0x8f600000 +d=open(sys.argv[1],'rb').read() +def w(a): return struct.unpack_from(' {st!r}' if st else '')) +elif k=='s': print(repr(s(a))) +elif k=='b': print(d[a-BASE:a-BASE+int(sys.argv[4])].hex(' ')) diff --git a/b9/b9a/render-lk-logo.py b/b9/b9a/render-lk-logo.py new file mode 100644 index 0000000..62460a9 --- /dev/null +++ b/b9/b9a/render-lk-logo.py @@ -0,0 +1,16 @@ +#!/usr/bin/env python3 +"""B9A read-only: render the 128x128 RGB565 (little-endian u16) default splash embedded in stock LK +(imageBuffer @0x8f64b004, used by display_image_on_screen() when the splash partition has no 'SPLASH!!' header) +to a 2x-scaled PNG. usage: render-lk-logo.py lk.bin out.png""" +import struct, sys, zlib +d = open(sys.argv[1], 'rb').read(); o = 0x8f64b004 - 0x8f600000; W = H = 128 +rows = [] +for y in range(H): + r = bytearray() + for x in range(W): + v = struct.unpack_from('> 11 & 31) * 255 // 31, (v >> 5 & 63) * 255 // 63, (v & 31) * 255 // 31)) * 2 + rows += [bytes(r)] * 2 +def ch(t, b): return struct.pack('>I', len(b)) + t + b + struct.pack('>I', zlib.crc32(t + b) & 0xffffffff) +open(sys.argv[2], 'wb').write(b'\x89PNG\r\n\x1a\n' + ch(b'IHDR', struct.pack('>IIBBBBB', W * 2, H * 2, 8, 2, 0, 0, 0)) + + ch(b'IDAT', zlib.compress(b''.join(b'\0' + r for r in rows))) + ch(b'IEND', b'')) diff --git a/b9/b9b/SHA256SUMS b/b9/b9b/SHA256SUMS new file mode 100644 index 0000000..7e1d902 --- /dev/null +++ b/b9/b9b/SHA256SUMS @@ -0,0 +1,6 @@ +53a9fc3e6d1926ae0c5b77aa706af6ae8a3c66263426e193a677fda2d6ebf3bf build-b9b.sh +e9d3287302394e8025191b4b5b1d8bc2517c8ed10c9f9442538df1f60f5d47b8 b9b-boot.sh +1eeb3ca2b38256c3d8865269222cca7bff70912c593cfc4ad2f7b0343f6075f3 b9b-cmd.sh +2fcda05952ae08fa2aef020608c56e11d63467aab7caaed3183487f80c9e6d2a mk-panel-fw.py +544c313f10ffeb9b6a33020135a87705182d53653bb1db7a96103a7765f5cbcc gen-patterns.py +d2cc277ac4fc76d544a9b6a60b55ea61673af778b2f14b51ff40fc703e702f50 rootfs/usr/libexec/aurora/b9b/b9b-test.sh diff --git a/b9/b9b/b9b-boot.sh b/b9/b9b/b9b-boot.sh new file mode 100644 index 0000000..e83b874 --- /dev/null +++ b/b9/b9b/b9b-boot.sh @@ -0,0 +1,26 @@ +#!/bin/sh +# 480s side, B9B RAM boot K: RESET-held power-on -> lk1st fastboot -> `fastboot boot` B9B RAM image. Nothing is flashed; +# eMMC cache stays B8F. Then waits for LTE START OK + Wi-Fi AP ENABLED and saves the display state (b9b-test.sh state). +# Visual checks (show/bl) are run separately with b9b-cmd.sh while the operator looks at the screen. +K=$1; [ -n "$K" ] || { echo "usage: $0 K"; exit 2; } +cd ~/doc/modem/jz08-aurora; O=logs/b9/b9b/ram$K; mkdir -p $O; IMG=b9/b9b/out/aurora-b9b.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 "46e7a6822cf5dd13e50feccb7d205f9fddb155c19ba6eaab8d42d5f9fa8ecf4e $IMG" | sha256sum -c || exit 1 +OLD=$(ps -eo pid,cmd | grep "[u]artlog.py /dev/ttyUSB0" | awk '{print $1}'); [ -n "$OLD" ] && kill $OLD; sleep 1 +U=logs/uart/b9b-ram$K-$(date +%Y%m%d-%H%M%S); setsid nohup python3 tools/uartlog.py /dev/ttyUSB0 $U > $U.stderr 2>&1 < /dev/null & +echo $U > $O/uartlog-path +act "B9B ram$K: waiting for fastboot (power off >= 90 s, then RESET held + battery -> USB)" +if fastboot devices 2>/dev/null | grep -q ; then act "already in fastboot - wait for power-off"; until ! fastboot devices 2>/dev/null | grep -q ; do sleep 1; done; fi +i=0; until fastboot devices 2>/dev/null | grep -q ; do i=$((i+1)); [ $i -ge 600 ] && { act "ABORT: no fastboot"; exit 1; }; sleep 2; done +act "fastboot present"; { fastboot boot $IMG 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 "ABORT: NCM not up"; cp $U.log $O/uart.log; exit 1; }; sleep 1; done; act "NCM ping ok" +printf 'cat /proc/device-tree/model; echo; uname -r; 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 +tn $O/.w 3 | grep -aE "Aurora|aurora-b9|START OK|FAIL" | tee -a $A +printf 'grep -E "AP ENABLED|FAIL" /run/aurora-wifi/wifi.log | tail -1\n' > $O/.a +i=0; until tn $O/.a 3 | grep -qE "^\[[0-9.]+\] (=== AP ENABLED|FAIL)"; do i=$((i+1)); [ $i -ge 20 ] && { act "no AP ENABLED/FAIL after ~3 min"; break; }; sleep 6; done +act "wifi: $(tn $O/.a 3 | grep -E '^\[[0-9.]+\] (=== AP ENABLED|FAIL)' | tail -1)" +printf '/usr/libexec/aurora/b9b/b9b-test.sh state\n' > $O/.s +tn $O/.s 12 | sed -n '/^B9B-STATE-BEGIN/,/^B9B-STATE-END/p' > $O/state-boot.txt; act "state saved ($(wc -l < $O/state-boot.txt) lines)" +cp $U.log $O/uart.log diff --git a/b9/b9b/b9b-cmd.sh b/b9/b9b/b9b-cmd.sh new file mode 100644 index 0000000..31411f6 --- /dev/null +++ b/b9/b9b/b9b-cmd.sh @@ -0,0 +1,5 @@ +#!/bin/sh +# 480s side: run one b9b-test.sh / shell command on the board over telnet and append the output to logs/b9/b9b/ramK/steps.txt. +# usage: b9b-cmd.sh K WAIT_S 'command' +K=$1; W=$2; C=$3; cd ~/doc/modem/jz08-aurora; O=logs/b9/b9b/ram$K; mkdir -p $O +{ echo "=== $(date -u +%H:%M:%S) \$ $C"; { sleep 1; printf '%s\r\n' "$C"; sleep $W; } | ncat 172.16.42.1 23 | tr -d "\000\r" | sed '1,/\$ \|# /{/^~ #\|^\s*$/d}'; } | tee -a $O/steps.txt diff --git a/b9/b9b/build-b9b.sh b/b9/b9b/build-b9b.sh new file mode 100644 index 0000000..f037937 --- /dev/null +++ b/b9/b9b/build-b9b.sh @@ -0,0 +1,32 @@ +#!/bin/sh +# B9B RAM test image (fastboot boot only - never flash, cache B8F untouched): +# kernel = out-b9b (b8d + DRM + DRM_PANEL_MIPI_DBI + DRM_FBDEV_EMULATION, see linux/aurora-b9b.config) +# DTB = linux/dts/msm8916-jz08-aurora-b9b.dtb (B8B + spi@78b8000 + ST7735S panel-mipi-dbi + L17 + MPP4 gpio-backlight) +# initramfs = exact B8F initramfs (LTE + time + Wi-Fi autostart) + overlay: panel firmware, test frames, b9b-test.sh +# out/ contains the B8F initramfs (Wi-Fi PSK) -> never publish b9/b9b/out. +set -e; cd "$(dirname "$0")"; O=out; KB=/home/q/aurora-kbuild/out-b9b; L=../../linux; F8=../../b8/b8f/out +G=$L/artifacts/ramboot-mm1; GEN=$L/out/usr/gen_init_cpio; TS=1790726400; FW='jz08au,aurora-st7735s.bin' +mkdir -p $O +echo "abb3bd6757e77eae90b3c9eb9d8b3f09e7a906256a53c80033853eb82b8e3f2f $F8/initramfs-b8f.cpio.gz" | sha256sum -c +grep -q '^CONFIG_DRM_PANEL_MIPI_DBI=y' $KB/.config && grep -q '^CONFIG_DRM_FBDEV_EMULATION=y' $KB/.config && grep -q '^CONFIG_LOCALVERSION="-aurora-b9b"' $KB/.config +python3 mk-panel-fw.py ../../bootchain/aboot-analysis/lk.bin ../../dt/dtb_01.dts "$O/$FW" > $O/panel-fw.txt +python3 gen-patterns.py $O/patterns > /dev/null +cp $KB/arch/arm64/boot/Image.gz $O/Image.gz; cp $KB/.config $O/config-b9b; cp $L/dts/msm8916-jz08-aurora-b9b.dtb $O/aurora-b9b.dtb +cat $O/Image.gz $O/aurora-b9b.dtb > $O/Image.gz-dtb +{ + echo "dir /lib/firmware 0755 0 0" + echo "file /lib/firmware/$FW $O/$FW 0644 0 0" + echo "dir /usr/libexec/aurora 0755 0 0" + echo "dir /usr/libexec/aurora/b9b 0755 0 0" + echo "file /usr/libexec/aurora/b9b/b9b-test.sh rootfs/usr/libexec/aurora/b9b/b9b-test.sh 0755 0 0" + echo "dir /usr/libexec/aurora/b9b/patterns 0755 0 0" + for f in $O/patterns/*.565 $O/patterns/*.8888; do echo "file /usr/libexec/aurora/b9b/patterns/${f##*/} $f 0644 0 0"; done +} > $O/overlay-b9b.list +$GEN -t $TS $O/overlay-b9b.list > $O/overlay-b9b.cpio +gzip -9 -n -c $O/overlay-b9b.cpio > $O/overlay-b9b.cpio.gz +cat $F8/initramfs-b8f.cpio.gz $O/overlay-b9b.cpio.gz > $O/initramfs-b9b.cpio.gz +python3 ../../b6p/mkbootimg.py $O/Image.gz-dtb $O/initramfs-b9b.cpio.gz $G/cmdline.txt $O/aurora-b9b.img +# RAM-boot layout (lk1st fastboot boot): kernel @0x80000000 + image_size must stay below DTB @0x81e00000 +SZ=$(python3 -c "import struct;print(struct.unpack_from(' SHA256SUMS; cat SHA256SUMS); ls -l $O/aurora-b9b.img diff --git a/b9/b9b/gen-patterns.py b/b9/b9b/gen-patterns.py new file mode 100644 index 0000000..0ff72c2 --- /dev/null +++ b/b9/b9b/gen-patterns.py @@ -0,0 +1,56 @@ +#!/usr/bin/env python3 +"""B9B: 128x128 test frames for /dev/fb0, in RGB565 (little-endian u16, fb native) and XRGB8888, plus PNG previews. +Frames: red, green, blue, white, black, and 'geo' = geometry/orientation/colour chart: + - 1-px white border on the outermost rows/columns (all 4 edges must be visible -> no crop/offset error), + - 2nd row/column inside the border black (a 1-px shift shows up as a doubled or missing line), + - corner blocks 24x24: top-left RED, top-right GREEN, bottom-left BLUE, bottom-right WHITE, + - centre: 3 vertical bars R | G | B (rows 40..87), and a yellow arrow pointing UP above them. +usage: gen-patterns.py outdir""" +import os, struct, sys, zlib + +W = H = 128 +O = sys.argv[1]; os.makedirs(O, exist_ok=True) +R, G, B, Wh, K, Y = (255, 0, 0), (0, 255, 0), (0, 0, 255), (255, 255, 255), (0, 0, 0), (255, 255, 0) + +def solid(c): return [[c] * W for _ in range(H)] + +def geo(): + p = solid(K) + for y in range(H): + for x in range(W): + if x in (0, W - 1) or y in (0, H - 1): + p[y][x] = Wh + elif 2 <= x < 26 and 2 <= y < 26: + p[y][x] = R + elif W - 26 <= x < W - 2 and 2 <= y < 26: + p[y][x] = G + elif 2 <= x < 26 and H - 26 <= y < H - 2: + p[y][x] = B + elif W - 26 <= x < W - 2 and H - 26 <= y < H - 2: + p[y][x] = Wh + elif 40 <= y < 88 and 28 <= x < 100: + p[y][x] = (R, G, B)[(x - 28) // 24] + elif 6 <= y < 34 and abs(x - 63.5) <= (y - 6) * 0.5 and y < 22: # arrow head + p[y][x] = Y + elif 22 <= y < 34 and 58 <= x < 70: # arrow shaft + p[y][x] = Y + return p + +def rgb565(p): return b''.join(struct.pack('> 3) << 11 | (g >> 2) << 5 | b >> 3) for row in p for (r, g, b) in row) +def xrgb8888(p): return b''.join(struct.pack('I', len(b)) + t + b + struct.pack('>I', zlib.crc32(t + b) & 0xffffffff) + rows = [] + for row in p: + line = b'\0' + b''.join(bytes(c) * s for c in row) + rows += [line] * s + open(path, 'wb').write(b'\x89PNG\r\n\x1a\n' + ch(b'IHDR', struct.pack('>IIBBBBB', W * s, H * s, 8, 2, 0, 0, 0)) + + ch(b'IDAT', zlib.compress(b''.join(rows))) + ch(b'IEND', b'')) + +frames = {'red': solid(R), 'green': solid(G), 'blue': solid(B), 'white': solid(Wh), 'black': solid(K), 'geo': geo()} +for n, p in frames.items(): + open(f'{O}/{n}.565', 'wb').write(rgb565(p)) + open(f'{O}/{n}.8888', 'wb').write(xrgb8888(p)) +png(f'{O}/geo-expected.png', frames['geo'], 3) +print('ok', sorted(os.listdir(O))) diff --git a/b9/b9b/mk-panel-fw.py b/b9/b9b/mk-panel-fw.py new file mode 100644 index 0000000..c7e72a8 --- /dev/null +++ b/b9/b9b/mk-panel-fw.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python3 +"""B9B: build the panel-mipi-dbi firmware file from the stock Aurora ST7735S init sequence. +Source of truth = stock LK command table (lk.bin @0x8f64849c, 19 entries); it must equal stock dtb_01 +qcom,mdss-spi-on-command byte-for-byte (else STOP). Nothing is "improved": same commands, same parameters, same +delays. Only the final RAMWR (0x2c, no params) is dropped - the mipi-dbi driver issues CASET/RASET/RAMWR itself +for every frame update. +Format (drivers/gpu/drm/tiny/panel-mipi-dbi.c): "MIPI DBI" + 7x00 + version 1, then cmd, nparams, params...; +delay = cmd 0x00 with 1 param (ms). +usage: mk-panel-fw.py lk.bin dtb_01.dts out.bin""" +import importlib.util, os, sys + +spec = importlib.util.spec_from_file_location('dp', os.path.join(os.path.dirname(__file__), '../b9a/decode-panel.py')) +sys_argv = sys.argv; sys.argv = [sys_argv[0], sys_argv[1], sys_argv[2]] +import io, contextlib +dp = importlib.util.module_from_spec(spec) +with contextlib.redirect_stdout(io.StringIO()): + spec.loader.exec_module(dp) # defines lkc (LK table) and dtc (DT on-command) +sys.argv = sys_argv + +lk, dt = dp.lkc, dp.dtc +if lk != dt or len(lk) != 19: + sys.exit('STOP: stock LK table != stock DT on-command') +assert lk[-1] == (b'\x2c', 0), lk[-1] + +out = bytearray(b'MIPI DBI' + bytes(7) + bytes([1])) +for payload, wait in lk[:-1]: # 18 commands, RAMWR dropped + out += bytes([payload[0], len(payload) - 1]) + payload[1:] + if wait: + assert wait <= 255 + out += bytes([0x00, 0x01, wait]) +open(sys.argv[3], 'wb').write(out) + +# human-readable listing +for payload, wait in lk[:-1]: + print(f'{payload[0]:02x} {dp.NAMES.get(payload[0], "?"):8s} {payload[1:].hex(" ")}' + (f' + delay {wait} ms' if wait else '')) +print(f'dropped: 2c RAMWR (driver writes memory itself); file {len(out)} bytes') diff --git a/b9/b9b/out/SHA256SUMS b/b9/b9b/out/SHA256SUMS new file mode 100644 index 0000000..4581d29 --- /dev/null +++ b/b9/b9b/out/SHA256SUMS @@ -0,0 +1,8 @@ +afdddcef1af3928a27dc6eb3973cd2a1fe1177c55ccf4b74f78555095d4897d5 Image.gz +7ca9cc794a3b85d3b7240f6311ad03bee9e1a4a59aae2ed9438318e853f7c3dc aurora-b9b.dtb +21e4a93311c3e288d3a8fca6277ed365f806735fca0aaf4c6201d5b872ef9f02 Image.gz-dtb +95d59390fee6367b0a2c0de97617dd0d693422d29aa3361e3b93a629e3f1e574 config-b9b +58697d4db45a9af85ec09e03a4212955ae3c7eed7d9f6bda82071da1b44329b4 jz08au,aurora-st7735s.bin +5b5e07bd145e549b3e6f194f51937895436f57ea8333f03a1fc307911f65174d overlay-b9b.cpio.gz +8a97e93b4a9460343d7cc9788505e35c756a0b74838637b8cc14498d43cee8c7 initramfs-b9b.cpio.gz +46e7a6822cf5dd13e50feccb7d205f9fddb155c19ba6eaab8d42d5f9fa8ecf4e aurora-b9b.img diff --git a/b9/b9b/out/overlay-b9b.list b/b9/b9b/out/overlay-b9b.list new file mode 100644 index 0000000..912e4ae --- /dev/null +++ b/b9/b9b/out/overlay-b9b.list @@ -0,0 +1,18 @@ +dir /lib/firmware 0755 0 0 +file /lib/firmware/jz08au,aurora-st7735s.bin out/jz08au,aurora-st7735s.bin 0644 0 0 +dir /usr/libexec/aurora 0755 0 0 +dir /usr/libexec/aurora/b9b 0755 0 0 +file /usr/libexec/aurora/b9b/b9b-test.sh rootfs/usr/libexec/aurora/b9b/b9b-test.sh 0755 0 0 +dir /usr/libexec/aurora/b9b/patterns 0755 0 0 +file /usr/libexec/aurora/b9b/patterns/black.565 out/patterns/black.565 0644 0 0 +file /usr/libexec/aurora/b9b/patterns/blue.565 out/patterns/blue.565 0644 0 0 +file /usr/libexec/aurora/b9b/patterns/geo.565 out/patterns/geo.565 0644 0 0 +file /usr/libexec/aurora/b9b/patterns/green.565 out/patterns/green.565 0644 0 0 +file /usr/libexec/aurora/b9b/patterns/red.565 out/patterns/red.565 0644 0 0 +file /usr/libexec/aurora/b9b/patterns/white.565 out/patterns/white.565 0644 0 0 +file /usr/libexec/aurora/b9b/patterns/black.8888 out/patterns/black.8888 0644 0 0 +file /usr/libexec/aurora/b9b/patterns/blue.8888 out/patterns/blue.8888 0644 0 0 +file /usr/libexec/aurora/b9b/patterns/geo.8888 out/patterns/geo.8888 0644 0 0 +file /usr/libexec/aurora/b9b/patterns/green.8888 out/patterns/green.8888 0644 0 0 +file /usr/libexec/aurora/b9b/patterns/red.8888 out/patterns/red.8888 0644 0 0 +file /usr/libexec/aurora/b9b/patterns/white.8888 out/patterns/white.8888 0644 0 0 diff --git a/b9/b9b/out/panel-fw.txt b/b9/b9b/out/panel-fw.txt new file mode 100644 index 0000000..e492446 --- /dev/null +++ b/b9/b9b/out/panel-fw.txt @@ -0,0 +1,19 @@ +11 SLPOUT + delay 120 ms +b1 FRMCTR1 05 3a 3a +b2 FRMCTR2 05 3a 3a +b3 FRMCTR3 05 3a 3a 05 3a 3a +b4 INVCTR 03 +c0 PWCTR1 62 02 04 +c1 PWCTR2 c0 +c2 PWCTR3 0d 00 +c3 PWCTR4 8d 6a +c4 PWCTR5 8d ee +c5 VMCTR1 12 +e0 GMCTRP1 03 1b 12 11 3f 3a 32 34 2f 2b 30 3a 00 01 02 05 +e1 GMCTRN1 03 1b 12 11 32 2f 2a 2f 2e 2c 35 3f 00 00 01 05 +36 MADCTL c8 +3a COLMOD 05 +2a CASET 00 02 00 81 +2b RASET 00 03 00 82 +29 DISPON +dropped: 2c RAMWR (driver writes memory itself); file 121 bytes diff --git a/b9/b9b/rootfs/usr/libexec/aurora/b9b/b9b-test.sh b/b9/b9b/rootfs/usr/libexec/aurora/b9b/b9b-test.sh new file mode 100644 index 0000000..4f21125 --- /dev/null +++ b/b9/b9b/rootfs/usr/libexec/aurora/b9b/b9b-test.sh @@ -0,0 +1,40 @@ +#!/bin/sh +# B9B board-side test helper (RAM image only). Read-only except: +# show NAME -> writes a 128x128 frame to /dev/fb0 (RAM framebuffer -> SPI panel) +# bl on|off -> backlight through the kernel gpio-backlight driver (sysfs), never raw PMIC writes +# PMIC registers are only READ (regmap debugfs positioned reads). +P=/usr/libexec/aurora/b9b +grep -q " /sys/kernel/debug " /proc/mounts || mount -t debugfs debugfs /sys/kernel/debug +rd() { R=/sys/kernel/debug/regmap/0-0$1/registers; echo "# PMIC sid$1 $2 +$3"; dd if=$R bs=9 skip=$(($2)) count=$(($3)) 2>/dev/null; } +mpp4() { echo "--- MPP4 0xa340..0xa34f (40 MODE,41 VIN,42 PULL,46 EN,48 AOUT,4a AIN,4c SINK)"; rd 0 0xa340 16; } +fbinfo() { for f in name bits_per_pixel virtual_size stride; do printf 'fb0 %s=%s\n' $f "$(cat /sys/class/graphics/fb0/$f 2>/dev/null)"; done; } +BL=$(ls -d /sys/class/backlight/* 2>/dev/null | head -1) +blinfo() { [ -n "$BL" ] && for f in bl_power brightness actual_brightness max_brightness; do printf '%s %s=%s\n' ${BL##*/} $f "$(cat $BL/$f)"; done; } +case "$1" in +state) + echo B9B-STATE-BEGIN; cat /proc/uptime; cat /proc/device-tree/model; echo; uname -r + echo "--- regulators"; for r in /sys/class/regulator/regulator.*; do n=$(cat $r/name); case $n in l6|l17) printf '%s state=%s uV=%s users=%s\n' $n "$(cat $r/state)" "$(cat $r/microvolts)" "$(cat $r/num_users)";; esac; done + grep -E ' l6 | l17 |^ +l6|^ +l17|spi|panel' /sys/kernel/debug/regulator/regulator_summary + echo "--- PMIC L6 (sid1 0x4500) / L17 (0x5000): 08 STATUS, 40/41 VSET, 46 EN"; rd 1 0x4508 1; rd 1 0x4540 2; rd 1 0x4546 1; rd 1 0x5008 1; rd 1 0x5040 2; rd 1 0x5046 1 + mpp4 + echo "--- dmesg"; dmesg | grep -iE 'drm|panel|mipi|dbi|spi|78b8000|backlight|fb0|framebuffer|firmware|l17|regulator' | grep -v aurora-modem + echo "--- devices"; ls -la /dev/dri /dev/fb0 2>&1; ls /sys/class/drm /sys/class/graphics /sys/class/backlight /sys/bus/spi/devices 2>&1 + fbinfo; blinfo + echo "--- gpio"; grep -E 'gpio(12|13|14|15|116|118) |mpp4' /sys/kernel/debug/gpio + for f in /sys/kernel/debug/pinctrl/1000000.pinctrl*/pinmux-pins; do grep -E '^pin (12|13|14|15|116|118) ' $f; done + cat /sys/kernel/debug/pinctrl/*mpps*/pinconf-pins 2>/dev/null | grep mpp4 + echo "--- clk"; grep -E 'qup4_spi' /sys/kernel/debug/clk/clk_summary + echo "--- emmc"; cat /sys/block/mmcblk0/stat + echo B9B-STATE-END;; +show) + b=$(cat /sys/class/graphics/fb0/bits_per_pixel); case $b in 16) e=565;; 32) e=8888;; *) echo "unsupported bpp $b"; exit 1;; esac + cat $P/patterns/$2.$e > /dev/fb0 && echo "SHOW $2 ($b bpp) OK";; +bl) + [ -n "$BL" ] || { echo "no backlight device"; exit 1; } + case "$2" in + on) echo 0 > $BL/bl_power; echo 1 > $BL/brightness;; + off) echo 0 > $BL/brightness;; + esac + blinfo; mpp4;; +*) echo "usage: $0 state|show NAME|bl on|off"; exit 2;; +esac diff --git a/b9/b9c/SHA256SUMS b/b9/b9c/SHA256SUMS new file mode 100644 index 0000000..114fa98 --- /dev/null +++ b/b9/b9c/SHA256SUMS @@ -0,0 +1,6 @@ +0dc217f0b65f08734337070a4eac9f57e82cf719f286f9d5f8f503ee0251ed67 build-b9c.sh +6efae7a7f7a7d88d9bb5efd63efc2df37cf35d8399bf8ae39bdfec8d1431b6f4 b9c-boot.sh +0fef41b262917c8ae308fa222da0017e2b3cb3ec5da1ca8ba18d0318476761a3 cmdline.txt +b509a57b40e095af1d9346dbd041eacbb5fda202f7cc47f25e7c1f1257bd3e9b rootfs/init +451bc06d243c92c9c14ccdf13b88953f1544ec6764a292ff77764e41df8c8aa7 rootfs/usr/sbin/aurora-display +54618e80edb44a3bb65aa59a723e3643ef29b6728b3ec072bbafcaaac3802f35 rootfs/etc/init.d/aurora-display diff --git a/b9/b9c/b9c-boot.sh b/b9/b9c/b9c-boot.sh new file mode 100644 index 0000000..6d48fce --- /dev/null +++ b/b9/b9c/b9c-boot.sh @@ -0,0 +1,53 @@ +#!/bin/sh +# 480s side, B9C boot K MODE (derived from b8f-boot.sh). MODE=ram: RESET-held power-on -> lk1st fastboot -> `fastboot boot` B9C RAM image. +# MODE=cold: normal power-on (no RESET, no fastboot) -> lk2nd extlinux from eMMC cache. Script only observes + reads over telnet; +# nothing is written to eMMC. Visual display checks need the operator. Adds display/fbcon/getty/console checks to the B8F snapshot. +K=$1; MODE=$2; case "$MODE" in ram|cold) ;; *) echo "usage: $0 K ram|cold"; exit 2;; esac +cd ~/doc/modem/jz08-aurora; O=logs/b9/b9c/$MODE$K; mkdir -p $O; IMG=b9/b9c/out/aurora-b9c.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"; } +OLD=$(ps -eo pid,cmd | grep "[u]artlog.py /dev/ttyUSB0" | awk '{print $1}'); [ -n "$OLD" ] && kill $OLD; sleep 1 +U=logs/uart/b9c-$MODE$K-$(date +%Y%m%d-%H%M%S); setsid nohup python3 tools/uartlog.py /dev/ttyUSB0 $U > $U.stderr 2>&1 < /dev/null & +if [ $MODE = ram ]; then + echo "fa855e1c84763861d8b2f6bd7ed669e8ab625aa42178317883fabff39dec4fce $IMG" | sha256sum -c || exit 1 + act "B9C $MODE$K: waiting for fastboot (power off >= 90 s, then RESET held + battery -> USB)" + if fastboot devices 2>/dev/null | grep -q ; then act "already in fastboot - wait for power-off"; until ! fastboot devices 2>/dev/null | grep -q ; do sleep 1; done; fi + i=0; until fastboot devices 2>/dev/null | grep -q ; do i=$((i+1)); [ $i -ge 600 ] && { act "ABORT: no fastboot"; exit 1; }; sleep 2; done + act "fastboot present"; { fastboot boot $IMG 2>&1; echo "rc=$?"; } | tee -a $A +else + act "B9C $MODE$K: waiting for the board to go away (power off >= 90 s), then normal power-on WITHOUT RESET" + until ! ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do sleep 1; done; act "board unreachable (powered off)" + until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do fastboot devices 2>/dev/null | grep -q && { act "ABORT: board is in fastboot - RESET was held?"; exit 1; }; sleep 1; done +fi +i=0; until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do i=$((i+1)); [ $i -ge 180 ] && { act "ABORT: NCM not up"; cp $U.log $O/uart.log; exit 1; }; sleep 1; done; act "NCM ping ok" +R=$(grep -a "rtc-pm8xxx.*setting system clock" $U.log | tail -1 | sed -n 's/.*(\([0-9]*\)).*/\1/p'); C=B; [ -n "$R" ] && [ "$R" -lt 40 ] && C=A; act "RTC at boot ${R:-?} s -> class $C" +printf 'cat /proc/device-tree/model; echo; uname -r; 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 +tn $O/.w 3 | grep -aE "Aurora|aurora-b8|START OK|FAIL" | tee -a $A +printf 'grep -E "AP ENABLED|FAIL" /run/aurora-wifi/wifi.log | tail -1\n' > $O/.a +i=0; until tn $O/.a 3 | grep -qE "^\[[0-9.]+\] (=== AP ENABLED|FAIL)"; do i=$((i+1)); [ $i -ge 20 ] && { act "no AP ENABLED/FAIL after ~3 min"; break; }; sleep 6; done +act "wifi: $(tn $O/.a 3 | grep -E '^\[[0-9.]+\] (=== AP ENABLED|FAIL)' | tail -1)" +printf 'grep -E "SNTP (check|STEP|: )" /run/aurora-modem/lifecycle.log | tail -2\n' > $O/.s +i=0; until tn $O/.s 3 | grep -qE "^\[[0-9.]+\] SNTP"; do i=$((i+1)); [ $i -ge 15 ] && break; sleep 4; done; act "sntp: $(tn $O/.s 3 | grep -E '^\[[0-9.]+\] SNTP' | tail -2 | tr '\n' ' ')" +cat > $O/.c <<'C' +echo SNAP-BEGIN; cat /proc/uptime; date -u; cat /proc/device-tree/model; echo; uname -a; cat /proc/cmdline +echo ---time; cat /run/aurora-modem/time-set; grep -E "TIME|SNTP" /run/aurora-modem/lifecycle.log | tail -4 +echo ---modem; /etc/init.d/aurora-modem status +echo ---wifi; /etc/init.d/aurora-wifi status; echo ---wifilog; cat /run/aurora-wifi/wifi.log; cat /run/aurora-wifi/service.log; echo ---hostapdlog; cat /run/aurora-wifi/hostapd.log +for r in /sys/class/remoteproc/*; do echo "RP $(cat $r/name)=$(cat $r/state)"; done; iw dev +echo ---dmesg-wifi; dmesg | grep -iE "wcn36xx|wcnss|a204000|cfg80211|aurora-wifi|crash|watchdog" +echo ---ping; ping -c4 -W3 -I wwan0 77.88.8.8 | tail -2 +echo ---display; /etc/init.d/aurora-display status; cat /run/aurora-display/display.log; cat /run/aurora-display/service.log +echo ---consoles; cat /sys/class/tty/console/active; for v in /sys/class/vtconsole/vtcon*; do echo "$v $(cat $v/bind) $(cat $v/name)"; done; ls -l /proc/[0-9]*/fd/0 2>/dev/null | grep -E "ttyMSM0|tty1|console" | sed "s/.* \/proc/\/proc/" +echo ---getty; hostname; ps | grep -E "[g]etty|[c]ttyhack| sh$" +echo ---fb; ls -l /dev/dri/card0 /dev/fb0; for f in name bits_per_pixel virtual_size stride; do echo "fb0 $f=$(cat /sys/class/graphics/fb0/$f)"; done; cat /sys/class/drm/card0-SPI-1/enabled /sys/class/drm/card0-SPI-1/dpms +echo ---regs; for r in /sys/class/regulator/regulator.*; do n=$(cat $r/name); case $n in l6|l17) echo "$n $(cat $r/state) $(cat $r/microvolts) users=$(cat $r/num_users)";; esac; done +echo ---bl; for f in bl_power brightness actual_brightness; do echo "bl $f=$(cat /sys/class/backlight/backlight/$f)"; done +echo ---dmesg-display; dmesg | grep -iE "drm|panel|mipi|spi_qup|78b8000|fbcon|Console: |frame buffer|backlight|aurora-display|l17" +echo ---display-errors; dmesg | grep -iE "drm|panel|mipi|spi0|fbcon|backlight|aurora-display" | grep -ciE "err|fail|timeout|warn" +echo ---emmc; awk "{print \"w=\"\$5\" s=\"\$7}" /sys/block/mmcblk0/stat +echo SNAP-END +C +tn $O/.c 25 > $O/snapshot.txt; act "snapshot: $(grep -c SNAP-END $O/snapshot.txt) end markers; $(grep -E '^RP a204' $O/snapshot.txt)" +printf 'dmesg > /tmp/dm.txt; nc -l -p 9881 < /tmp/dm.txt &\n' > $O/.d; tn $O/.d 3 >/dev/null; sleep 1; ncat --recv-only 172.16.42.1 9881 > $O/dmesg.full +cp $U.log $O/uart.log; act "B9C $MODE$K END - operator visual check next" diff --git a/b9/b9c/build-b9c.sh b/b9/b9c/build-b9c.sh new file mode 100644 index 0000000..1eb7cff --- /dev/null +++ b/b9/b9c/build-b9c.sh @@ -0,0 +1,36 @@ +#!/bin/sh +# B9C image: persistent display (fbcon tty1 + backlight) on top of B8F. +# kernel = out-b9c (b9b + FRAMEBUFFER_CONSOLE + FONTS/FONT_6x8 only; linux/aurora-b9c.config) +# DTB = B9B DTB unchanged (7ca9cc79) +# initramfs = exact B8F initramfs + overlay: /init (B8F + hostname/display/getty), aurora-display, panel firmware +# cmdline = B8F cmdline + console=tty0 (placed BEFORE console=ttyMSM0 so /dev/console stays the UART) + fbcon=font:6x8 consoleblank=0 +# Outputs: RAM image (fastboot boot pretest) + parts for the cache candidate. out/ contains the B8F initramfs (Wi-Fi PSK): never publish. +set -e; cd "$(dirname "$0")"; O=out; KB=/home/q/aurora-kbuild/out-b9c; F8=../../b8/b8f/out; B9B=../b9b/out +GEN=../../linux/out/usr/gen_init_cpio; TS=1790726400; FW='jz08au,aurora-st7735s.bin' +mkdir -p $O +echo "abb3bd6757e77eae90b3c9eb9d8b3f09e7a906256a53c80033853eb82b8e3f2f $F8/initramfs-b8f.cpio.gz" | sha256sum -c +echo "7ca9cc794a3b85d3b7240f6311ad03bee9e1a4a59aae2ed9438318e853f7c3dc $B9B/aurora-b9b.dtb" | sha256sum -c +echo "58697d4db45a9af85ec09e03a4212955ae3c7eed7d9f6bda82071da1b44329b4 $B9B/$FW" | sha256sum -c +for s in FRAMEBUFFER_CONSOLE=y FONT_6x8=y DRM_PANEL_MIPI_DBI=y DRM_FBDEV_EMULATION=y VT_CONSOLE=y 'LOCALVERSION="-aurora-b9c"'; do grep -q "^CONFIG_$s\$" $KB/.config || { echo "STOP: CONFIG_$s"; exit 1; }; done +grep -q '^CONFIG_FONT_8x16=y' $KB/.config && { echo "STOP: extra fonts"; exit 1; } +diff -u ../../b8/b8f/rootfs/init rootfs/init > $O/init.diff || true +[ $(grep -c '^+[^+]' $O/init.diff) = 5 ] || { echo "STOP: init diff is not the expected 5 added lines"; exit 1; } +[ $(grep -c '^-[^-]' $O/init.diff) = 0 ] || { echo "STOP: init diff removes lines"; exit 1; } +cp $KB/arch/arm64/boot/Image.gz $O/Image.gz; cp $KB/.config $O/config-b9c; cp $B9B/aurora-b9b.dtb $O/aurora-b9c.dtb; cp "$B9B/$FW" "$O/$FW" +cat $O/Image.gz $O/aurora-b9c.dtb > $O/Image.gz-dtb +cat > $O/overlay-b9c.list < $O/overlay-b9c.cpio +gzip -9 -n -c $O/overlay-b9c.cpio > $O/overlay-b9c.cpio.gz +cat $F8/initramfs-b8f.cpio.gz $O/overlay-b9c.cpio.gz > $O/initramfs-b9c.cpio.gz +cp cmdline.txt $O/cmdline.txt +python3 ../../b6p/mkbootimg.py $O/Image.gz-dtb $O/initramfs-b9c.cpio.gz $O/cmdline.txt $O/aurora-b9c.img +SZ=$(python3 -c "import struct;print(struct.unpack_from(' SHA256SUMS; cat SHA256SUMS); ls -l $O/aurora-b9c.img diff --git a/b9/b9c/cache/B9C-PREFLIGHT.md b/b9/b9c/cache/B9C-PREFLIGHT.md new file mode 100644 index 0000000..8ebeb12 --- /dev/null +++ b/b9/b9c/cache/B9C-PREFLIGHT.md @@ -0,0 +1,36 @@ +# B9C cache write — preflight (2026-10-03) + +## Candidate +`cache-extlinux-b9c.img` **b9ce13c9…** (134217728 B, ext2, label aurora-b9c). Built on 480s by `mkfs-cache-b9c.sh` = exact B8F recipe; +only the kernel/fdt/initrd files, the append line, label and UUIDs differ. The rebuild is bit-identical and `e2fsck -fn` is clean. +**Contains the AP PSK (B8F initramfs) — never publish.** Component diff: `cache-diff-b8f-vs-b9c.txt`. + +## Evidence before the write +- RAM pretest `aurora-b9c.img` fa855e1c uses the same kernel/DTB/initramfs/cmdline as the candidate. Run: fastboot, ram1, class A (RTC 6 s). + - fbcon `21x16` (6x8) took over and the panel pipe came up by itself; `aurora-display` did no unblank, backlight on → DISPLAY READY at 8.0 s. + - getty on tty1 (pid 624); hostname aurora; `/dev/console` = ttyMSM0 (console active `tty0 ttyMSM0`); UART shell on ttyMSM0. + - START OK 69.2 s, AP ENABLED 73.5 s, MPSS/WCNSS running, display errors 0, eMMC w=0. + - Operator: text visible and readable, orientation correct, no clipping; backlight OFF→ON via sysfs confirmed. + - The login prompt scrolls away under later kernel messages (ignore_loglevel) — accepted (option A). +- lk2nd emulator (`emu/`): + - S6 regression on the live B8F cache == the B8F emu run. + - S7 candidate: "Trying to boot 'b9c'", kernel 3afc6c77 (24686600 B, image_size 0x1820000, ends at DDR+0x1820000), + DTB 7ca9cc79 @DDR+0x20A9000, ramdisk ac518e27 @DDR+0x22A9000 — no overlap. + - Fault variants F1/F3/F10 → android boot (emmc1 fallback). + +## Write / rollback +`B9C-write.sh` = B8F-write.sh with only the image, expected hashes, rollback references and log dir changed. +Gates, in order: +- loader; +- candidate sha + size; +- rollback image B8F 857c9c30 and the B8F readback backup; +- 9008 present; identity/geometry; +- GPT == A3; boot == emmc1; aboot == lk1st-autoboot; +- **live cache == B8F 857c9c30** — the pre-write readback is saved as `logs/b9/b9c/W/pre-cache.bin` (backup). + +Then: write cache only → readback cmp → verify every other partition → `B9C_WRITE_VERIFIED`. +Rollback: `B9C-rollback.sh` → B8F cache (via HW EDL). Entry: HW EDL (battery on, D+→GND, plug USB, release). + +## After the write +3 normal class-A cold boots (no RESET, no fastboot, no UART input): power off ≥ 90 s → normal power-on → `b9c-boot.sh K cold`. +In one of them, check backlight ON → OFF → ON visually via `aurora-display bl` (sysfs). diff --git a/b9/b9c/cache/B9C-rollback.sh b/b9/b9c/cache/B9C-rollback.sh new file mode 100755 index 0000000..897f9cf --- /dev/null +++ b/b9/b9c/cache/B9C-rollback.sh @@ -0,0 +1,12 @@ +#!/bin/bash +# B9C rollback — restore the B8F cache (857c9c30, operational since 2026-10-03: B7C + Wi-Fi AP). Needs 9008 via HW EDL (D+->GND). boot/aboot untouched. +# Deeper rollback: b8/b8f/cache/B8F-rollback.sh (B7C 14fe453a), b7/b7c/cache/B7C-rollback.sh (T4 9d3bc890). +cd ~/doc/modem/jz08-aurora || exit 1 +L=firehose/007050e100000000_394a2e47cf830150_fhprg_peek.bin ; O=logs/b9/b9c/rollback ; mkdir -p $O +B=b8/b8f/cache/cache-extlinux-b8f.img +[ "$(sha256sum $B | cut -d' ' -f1)" = 857c9c300055804cab673027bc8cddc010ad04bfec5d75276d8229b84846c4b2 ] || { echo "STOP: rollback image hash"; exit 1; } +lsusb | grep -q 05c6:9008 || { echo "STOP: no 9008"; exit 1; } +edl --loader=$L printgpt > $O/00-printgpt.log 2>&1 +edl --loader=$L w cache $B > $O/cache-w.log 2>&1 +edl --loader=$L r cache $O/cache-rb.bin > /dev/null 2>&1 ; cmp $B $O/cache-rb.bin && echo CACHE_RESTORED_B8F +sha256sum $B $O/cache-rb.bin diff --git a/b9/b9c/cache/B9C-write.sh b/b9/b9c/cache/B9C-write.sh new file mode 100755 index 0000000..7365392 --- /dev/null +++ b/b9/b9c/cache/B9C-write.sh @@ -0,0 +1,49 @@ +#!/bin/bash +# B9C — the ONLY write: cache := ext2 extlinux -> B9C candidate (B8F + display: b9c kernel (DRM/panel-mipi-dbi/fbcon 6x8), B9B DTB, aurora-display, tty1 getty). +# Run on 480s ONLY after explicit GO. Derived 1:1 from b8/b8f/cache/B8F-write.sh (B8F_WRITE_VERIFIED 2026-10-03); only image, expected hashes, +# rollback references and log dir changed. The pre-write readback of the live cache (must be B8F 857c9c30) is kept as backup. +# Entry: HW EDL (battery on, D+->GND, plug USB, release). Never `edl reset`. Stops at first failed gate. +cd ~/doc/modem/jz08-aurora || exit 1 +L=firehose/007050e100000000_394a2e47cf830150_fhprg_peek.bin +O=logs/b9/b9c/W ; A3=logs/b5a/A3 ; P=logs/b5a/A4pre ; mkdir -p $O +NEW=b9/b9c/cache/cache-extlinux-b9c.img ; NEW_SHA=b9ce13c9f48e36a5054c0ae3c39dc3f184b1fc2eea1d57d4b8bd8e9ae800a37b +OLD_SHA=857c9c300055804cab673027bc8cddc010ad04bfec5d75276d8229b84846c4b2 # current cache = B8F extlinux +BOOT_SHA=e9579f33c7304cd47f487f2b61cd9226dc04fd3a63775d62b4b95fc15bd3ebff +ABOOT_SHA=3b8cd2667837fc7083cb28991d849f9b408a07fa743bfd05eafee7b053760f85 +die(){ echo "STOP: $*"; exit 1; } +sha(){ sha256sum "$1" | cut -d" " -f1; } +E(){ edl --loader=$L "$@"; } +echo "== G0 inputs" +[ "$(sha $L)" = 53f193500c03248f0d671ab57bfe9ca8a42967e97f28403294b4b3f854075aca ] || die loader +[ "$(sha $NEW)" = $NEW_SHA ] && [ $(stat -c %s $NEW) = 134217728 ] || die candidate +[ "$(sha b8/b8f/cache/cache-extlinux-b8f.img)" = $OLD_SHA ] || die rollback-image +[ "$(sha logs/b8/b8f/W/11-cache-readback.bin)" = $OLD_SHA ] || die b8f-readback-backup +lsusb | grep -q 05c6:9008 || die "no 9008" +echo "== G1 identity + geometry + baseline" +E printgpt > $O/00-printgpt.log 2>&1 || die printgpt +grep -aq "Serial: *0x" $O/00-printgpt.log || grep -aq "Mode detected: firehose" $O/00-printgpt.log || die serial +grep -a "^cache:" $O/00-printgpt.log | grep -q "Offset 0x000000004118c000, Length 0x0000000008000000" || die cache-geometry +E rs 0 34 $O/pre-gptp.bin >/dev/null 2>&1; cmp $O/pre-gptp.bin $A3/gpt-primary-34.bin || die gpt-changed +E r boot $O/pre-boot.bin >/dev/null 2>&1; [ "$(sha $O/pre-boot.bin)" = $BOOT_SHA ] || die boot-not-emmc1 +E r aboot $O/pre-aboot.bin >/dev/null 2>&1; [ "$(sha $O/pre-aboot.bin)" = $ABOOT_SHA ] || die aboot-not-autoboot +E r cache $O/pre-cache.bin >/dev/null 2>&1; [ "$(sha $O/pre-cache.bin)" = $OLD_SHA ] || die cache-not-backup +echo "== W cache := candidate (LBA 2133088, 262144 sectors)" +E w cache $NEW > $O/10-cache-write.log 2>&1; echo "rc=$?"; grep -a "Wrote" $O/10-cache-write.log +E r cache $O/11-cache-readback.bin > $O/11-cache-readback.log 2>&1 || die readback-rc +sha256sum $NEW $O/11-cache-readback.bin +cmp $NEW $O/11-cache-readback.bin || die "CACHE READBACK MISMATCH — do NOT reboot; run b9/b9c/cache/B9C-rollback.sh" +echo CACHE_MATCH +echo "== V everything else unchanged" +E rs 0 34 $O/post-gptp.bin >/dev/null 2>&1; cmp $O/post-gptp.bin $A3/gpt-primary-34.bin || die gptp +E rs 7634911 33 $O/post-gptb.bin >/dev/null 2>&1; cmp $O/post-gptb.bin $A3/gpt-backup-33.bin || die gptb +E rs 305184 1024 $O/post-tzbak.bin >/dev/null 2>&1; cmp $O/post-tzbak.bin $A3/tzbak-305184.bin || die tzbak +E r boot $O/post-boot.bin >/dev/null 2>&1; [ "$(sha $O/post-boot.bin)" = $BOOT_SHA ] || die boot +E r aboot $O/post-aboot.bin >/dev/null 2>&1; [ "$(sha $O/post-aboot.bin)" = $ABOOT_SHA ] || die aboot +for p in sbl1 rpm tz hyp recovery modemst1 modemst2 fsg fsc persist; do + E r $p $O/post-$p.bin >/dev/null 2>&1; cmp $O/post-$p.bin $A3/$p.bin || die "$p changed"; echo "$p == A3" +done +for p in modem system userdata; do + E r $p $O/post-$p.bin >/dev/null 2>&1; cmp $O/post-$p.bin $P/$p.bin || die "$p changed"; echo "$p == A4pre"; rm -f $O/post-$p.bin +done +(cd $O && sha256sum *.bin > SHA256SUMS) +echo "B9C_WRITE_VERIFIED — power off fully (USB, then battery) before first boot" diff --git a/b9/b9c/cache/SHA256SUMS b/b9/b9c/cache/SHA256SUMS new file mode 100644 index 0000000..3916327 --- /dev/null +++ b/b9/b9c/cache/SHA256SUMS @@ -0,0 +1,6 @@ +b9ce13c9f48e36a5054c0ae3c39dc3f184b1fc2eea1d57d4b8bd8e9ae800a37b cache-extlinux-b9c.img +b6db2a4ba9ae55cee466e7e968a3a7dc945b3782a0e382559ae8ffbaa3fd52ea mkfs-cache-b9c.sh +bd906d6729921de01cedcbe8037008badb763d3bc7352625efabb2103b874404 B9C-write.sh +4103016467f3ca8a07fac797689b16f957655815c3c434c8f01fa12449e6c34c B9C-rollback.sh +7facbd7aec20d7a823f23a824172448dd3d21a3f9bc9cc422fe6ef4565d52e90 extlinux-b9c.conf +66cf4bc677c395503a9c68788412b58007c5ea1cb49b9fda3cb12cd9198413d1 emu/run-emu-b9c.sh diff --git a/b9/b9c/cache/cache-diff-b8f-vs-b9c.txt b/b9/b9c/cache/cache-diff-b8f-vs-b9c.txt new file mode 100644 index 0000000..aafeb85 --- /dev/null +++ b/b9/b9c/cache/cache-diff-b8f-vs-b9c.txt @@ -0,0 +1,10 @@ +B8F cache 857c9c30 (live) -> B9C candidate b9ce13c9 (ext2, 134217728 B, label aurora-b9c, same mkfs recipe) +file B8F B9C +Image.gz-dtb 50d63488 (b8d kernel be30b1fa + B8B DTB) 632a7be8 (b9c kernel 3afc6c77 = b8d + DRM/panel-mipi-dbi/fbdev + fbcon + FONT_6x8 only; + B9B DTB) +fdt aurora-b8f.dtb cc74b57d (B8B) aurora-b9c.dtb 7ca9cc79 (B9B = B8B + spi@78b8000 + ST7735S panel + L17 + MPP4 gpio-backlight) +initrd initramfs-b8f abb3bd67 initramfs-b9c ac518e27 = initramfs-b8f abb3bd67 (unchanged, first gzip member) + overlay 9e41cdda: + /init (B8F + 5 lines: hostname aurora, aurora-display start, getty tty1 loop), /usr/sbin/aurora-display, + /etc/init.d/aurora-display, /lib/firmware/jz08au,aurora-st7735s.bin 58697d4d (stock 18 init cmds) +append earlycon console=ttyMSM0,115200n8 earlycon console=tty0 console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init + ignore_loglevel loglevel=8 rdinit=/init fbcon=font:6x8 consoleblank=0 +lk2nd layout kernel end DDR+0x1760000, tags +0x20aa000 kernel end DDR+0x1820000, tags +0x20a9000, ramdisk +0x22a9000 (no overlap) diff --git a/b9/b9c/cache/emu/F1-no-conf.out b/b9/b9c/cache/emu/F1-no-conf.out new file mode 100644 index 0000000..64cc127 --- /dev/null +++ b/b9/b9c/cache/emu/F1-no-conf.out @@ -0,0 +1,42 @@ +[lk] Registering wrapper bio devices... +[lk] block devices: +[lk] | dev | label | size | Leaf | +[lk] | wrp0p26 | userdata | 2542 MiB | Yes | +[lk] | wrp0p25 | recovery | 16 MiB | Yes | +[lk] | wrp0p24 | cache | 128 MiB | Yes | +[lk] | wrp0p23 | persist | 32 MiB | Yes | +[lk] | wrp0p22 | system | 800 MiB | Yes | +[lk] | wrp0p21 | boot | 16 MiB | Yes | +[lk] | wrp0p20 | sec | 16 KiB | Yes | +[lk] | wrp0p19 | fsg | 1 MiB | Yes | +[lk] | wrp0p18 | DDR | 32 KiB | Yes | +[lk] | wrp0p17 | splash | 10 MiB | Yes | +[lk] | wrp0p16 | ssd | 8 KiB | Yes | +[lk] | wrp0p15 | fsc | 1 KiB | Yes | +[lk] | wrp0p14 | misc | 1024 KiB | Yes | +[lk] | wrp0p13 | modemst2 | 1 MiB | Yes | +[lk] | wrp0p12 | modemst1 | 1 MiB | Yes | +[lk] | wrp0p11 | pad | 1024 KiB | Yes | +[lk] | wrp0p10 | hypbak | 512 KiB | Yes | +[lk] | wrp0p9 | hyp | 512 KiB | Yes | +[lk] | wrp0p8 | tzbak | 512 KiB | Yes | +[lk] | wrp0p7 | tz | 1024 KiB | Yes | +[lk] | wrp0p6 | rpmbak | 512 KiB | Yes | +[lk] | wrp0p5 | rpm | 512 KiB | Yes | +[lk] | wrp0p4 | abootbak | 1024 KiB | Yes | +[lk] | wrp0p3 | aboot | 1024 KiB | Yes | +[lk] | wrp0p2 | sbl1bak | 512 KiB | Yes | +[lk] | wrp0p1 | sbl1 | 512 KiB | Yes | +[lk] | wrp0p0 | modem | 64 MiB | Yes | +[lk] | wrp0 | | 3728 MiB | | +[lk] boot: Trying to boot from the file system... +[lk] boot: Bootable file system not found. Reverting to android boot. +HARNESS: lk2nd_boot() returned -> aboot would continue to boot_linux_from_mmc() (Android boot partition) +HARNESS: scan-candidate wrp0p26 (userdata) ext2 mount rc=-3 +HARNESS: scan-candidate wrp0p25 (recovery) ext2 mount rc=-1 +HARNESS: scan-candidate wrp0p24 (cache) ext2 mount rc=0 +HARNESS: scan-candidate wrp0p23 (persist) ext2 mount rc=-3 +HARNESS: scan-candidate wrp0p22 (system) ext2 mount rc=-3 +HARNESS: scan-candidate wrp0p21 (boot) ext2 mount rc=-1 +HARNESS: scan-candidate wrp0p0 (modem) ext2 mount rc=-1 +HARNESS: total bytes read 45568 diff --git a/b9/b9c/cache/emu/F10-zeroed-cache.out b/b9/b9c/cache/emu/F10-zeroed-cache.out new file mode 100644 index 0000000..9de0246 --- /dev/null +++ b/b9/b9c/cache/emu/F10-zeroed-cache.out @@ -0,0 +1,42 @@ +[lk] Registering wrapper bio devices... +[lk] block devices: +[lk] | dev | label | size | Leaf | +[lk] | wrp0p26 | userdata | 2542 MiB | Yes | +[lk] | wrp0p25 | recovery | 16 MiB | Yes | +[lk] | wrp0p24 | cache | 128 MiB | Yes | +[lk] | wrp0p23 | persist | 32 MiB | Yes | +[lk] | wrp0p22 | system | 800 MiB | Yes | +[lk] | wrp0p21 | boot | 16 MiB | Yes | +[lk] | wrp0p20 | sec | 16 KiB | Yes | +[lk] | wrp0p19 | fsg | 1 MiB | Yes | +[lk] | wrp0p18 | DDR | 32 KiB | Yes | +[lk] | wrp0p17 | splash | 10 MiB | Yes | +[lk] | wrp0p16 | ssd | 8 KiB | Yes | +[lk] | wrp0p15 | fsc | 1 KiB | Yes | +[lk] | wrp0p14 | misc | 1024 KiB | Yes | +[lk] | wrp0p13 | modemst2 | 1 MiB | Yes | +[lk] | wrp0p12 | modemst1 | 1 MiB | Yes | +[lk] | wrp0p11 | pad | 1024 KiB | Yes | +[lk] | wrp0p10 | hypbak | 512 KiB | Yes | +[lk] | wrp0p9 | hyp | 512 KiB | Yes | +[lk] | wrp0p8 | tzbak | 512 KiB | Yes | +[lk] | wrp0p7 | tz | 1024 KiB | Yes | +[lk] | wrp0p6 | rpmbak | 512 KiB | Yes | +[lk] | wrp0p5 | rpm | 512 KiB | Yes | +[lk] | wrp0p4 | abootbak | 1024 KiB | Yes | +[lk] | wrp0p3 | aboot | 1024 KiB | Yes | +[lk] | wrp0p2 | sbl1bak | 512 KiB | Yes | +[lk] | wrp0p1 | sbl1 | 512 KiB | Yes | +[lk] | wrp0p0 | modem | 64 MiB | Yes | +[lk] | wrp0 | | 3728 MiB | | +[lk] boot: Trying to boot from the file system... +[lk] boot: Bootable file system not found. Reverting to android boot. +HARNESS: lk2nd_boot() returned -> aboot would continue to boot_linux_from_mmc() (Android boot partition) +HARNESS: scan-candidate wrp0p26 (userdata) ext2 mount rc=-3 +HARNESS: scan-candidate wrp0p25 (recovery) ext2 mount rc=-1 +HARNESS: scan-candidate wrp0p24 (cache) ext2 mount rc=-1 +HARNESS: scan-candidate wrp0p23 (persist) ext2 mount rc=-3 +HARNESS: scan-candidate wrp0p22 (system) ext2 mount rc=-3 +HARNESS: scan-candidate wrp0p21 (boot) ext2 mount rc=-1 +HARNESS: scan-candidate wrp0p0 (modem) ext2 mount rc=-1 +HARNESS: total bytes read 28160 diff --git a/b9/b9c/cache/emu/F3-no-initrd.out b/b9/b9c/cache/emu/F3-no-initrd.out new file mode 100644 index 0000000..036dc44 --- /dev/null +++ b/b9/b9c/cache/emu/F3-no-initrd.out @@ -0,0 +1,44 @@ +[lk] Registering wrapper bio devices... +[lk] block devices: +[lk] | dev | label | size | Leaf | +[lk] | wrp0p26 | userdata | 2542 MiB | Yes | +[lk] | wrp0p25 | recovery | 16 MiB | Yes | +[lk] | wrp0p24 | cache | 128 MiB | Yes | +[lk] | wrp0p23 | persist | 32 MiB | Yes | +[lk] | wrp0p22 | system | 800 MiB | Yes | +[lk] | wrp0p21 | boot | 16 MiB | Yes | +[lk] | wrp0p20 | sec | 16 KiB | Yes | +[lk] | wrp0p19 | fsg | 1 MiB | Yes | +[lk] | wrp0p18 | DDR | 32 KiB | Yes | +[lk] | wrp0p17 | splash | 10 MiB | Yes | +[lk] | wrp0p16 | ssd | 8 KiB | Yes | +[lk] | wrp0p15 | fsc | 1 KiB | Yes | +[lk] | wrp0p14 | misc | 1024 KiB | Yes | +[lk] | wrp0p13 | modemst2 | 1 MiB | Yes | +[lk] | wrp0p12 | modemst1 | 1 MiB | Yes | +[lk] | wrp0p11 | pad | 1024 KiB | Yes | +[lk] | wrp0p10 | hypbak | 512 KiB | Yes | +[lk] | wrp0p9 | hyp | 512 KiB | Yes | +[lk] | wrp0p8 | tzbak | 512 KiB | Yes | +[lk] | wrp0p7 | tz | 1024 KiB | Yes | +[lk] | wrp0p6 | rpmbak | 512 KiB | Yes | +[lk] | wrp0p5 | rpm | 512 KiB | Yes | +[lk] | wrp0p4 | abootbak | 1024 KiB | Yes | +[lk] | wrp0p3 | aboot | 1024 KiB | Yes | +[lk] | wrp0p2 | sbl1bak | 512 KiB | Yes | +[lk] | wrp0p1 | sbl1 | 512 KiB | Yes | +[lk] | wrp0p0 | modem | 64 MiB | Yes | +[lk] | wrp0 | | 3728 MiB | | +[lk] boot: Trying to boot from the file system... +[lk] Initramfs /wrp0p24//initramfs-b9c.cpio.gz does not exist +[lk] Failed to parse extlinux.conf +[lk] boot: Bootable file system not found. Reverting to android boot. +HARNESS: lk2nd_boot() returned -> aboot would continue to boot_linux_from_mmc() (Android boot partition) +HARNESS: scan-candidate wrp0p26 (userdata) ext2 mount rc=-3 +HARNESS: scan-candidate wrp0p25 (recovery) ext2 mount rc=-1 +HARNESS: scan-candidate wrp0p24 (cache) ext2 mount rc=0 +HARNESS: scan-candidate wrp0p23 (persist) ext2 mount rc=-3 +HARNESS: scan-candidate wrp0p22 (system) ext2 mount rc=-3 +HARNESS: scan-candidate wrp0p21 (boot) ext2 mount rc=-1 +HARNESS: scan-candidate wrp0p0 (modem) ext2 mount rc=-1 +HARNESS: total bytes read 49664 diff --git a/b9/b9c/cache/emu/S6-b8f-regression.out b/b9/b9c/cache/emu/S6-b8f-regression.out new file mode 100644 index 0000000..8c96594 --- /dev/null +++ b/b9/b9c/cache/emu/S6-b8f-regression.out @@ -0,0 +1,40 @@ +[lk] Registering wrapper bio devices... +[lk] block devices: +[lk] | dev | label | size | Leaf | +[lk] | wrp0p26 | userdata | 2542 MiB | Yes | +[lk] | wrp0p25 | recovery | 16 MiB | Yes | +[lk] | wrp0p24 | cache | 128 MiB | Yes | +[lk] | wrp0p23 | persist | 32 MiB | Yes | +[lk] | wrp0p22 | system | 800 MiB | Yes | +[lk] | wrp0p21 | boot | 16 MiB | Yes | +[lk] | wrp0p20 | sec | 16 KiB | Yes | +[lk] | wrp0p19 | fsg | 1 MiB | Yes | +[lk] | wrp0p18 | DDR | 32 KiB | Yes | +[lk] | wrp0p17 | splash | 10 MiB | Yes | +[lk] | wrp0p16 | ssd | 8 KiB | Yes | +[lk] | wrp0p15 | fsc | 1 KiB | Yes | +[lk] | wrp0p14 | misc | 1024 KiB | Yes | +[lk] | wrp0p13 | modemst2 | 1 MiB | Yes | +[lk] | wrp0p12 | modemst1 | 1 MiB | Yes | +[lk] | wrp0p11 | pad | 1024 KiB | Yes | +[lk] | wrp0p10 | hypbak | 512 KiB | Yes | +[lk] | wrp0p9 | hyp | 512 KiB | Yes | +[lk] | wrp0p8 | tzbak | 512 KiB | Yes | +[lk] | wrp0p7 | tz | 1024 KiB | Yes | +[lk] | wrp0p6 | rpmbak | 512 KiB | Yes | +[lk] | wrp0p5 | rpm | 512 KiB | Yes | +[lk] | wrp0p4 | abootbak | 1024 KiB | Yes | +[lk] | wrp0p3 | aboot | 1024 KiB | Yes | +[lk] | wrp0p2 | sbl1bak | 512 KiB | Yes | +[lk] | wrp0p1 | sbl1 | 512 KiB | Yes | +[lk] | wrp0p0 | modem | 64 MiB | Yes | +[lk] | wrp0 | | 3728 MiB | | +[lk] boot: Trying to boot from the file system... +[lk] Trying to boot 'b8f' +[lk] Decompressing the kernel... +HARNESS: boot_linux reached: kernel @DDR+0x0 tags @DDR+0x20aa000 ramdisk @DDR+0x22aa000 (16077951) boot_type 0 +HARNESS: kernel magic 0x644d5241 image_size 0x1760000 end @DDR+0x1760000 +HARNESS: cmdline 'earlycon console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init' +HARNESS: kernel sha256 be30b1fad863ffa5413157c1df74d47adbd98c86c17e517a871b20517d3b879a (23955464 bytes) +HARNESS: dtb sha256 cc74b57deeda97b8ce2bacecf78f9300923d8e5d5d37beee1a87b4c0a32b9716 (65745 bytes) +HARNESS: ramdisk sha256 abb3bd6757e77eae90b3c9eb9d8b3f09e7a906256a53c80033853eb82b8e3f2f (16077951 bytes) diff --git a/b9/b9c/cache/emu/S7-b9c-candidate.out b/b9/b9c/cache/emu/S7-b9c-candidate.out new file mode 100644 index 0000000..b3e2963 --- /dev/null +++ b/b9/b9c/cache/emu/S7-b9c-candidate.out @@ -0,0 +1,40 @@ +[lk] Registering wrapper bio devices... +[lk] block devices: +[lk] | dev | label | size | Leaf | +[lk] | wrp0p26 | userdata | 2542 MiB | Yes | +[lk] | wrp0p25 | recovery | 16 MiB | Yes | +[lk] | wrp0p24 | cache | 128 MiB | Yes | +[lk] | wrp0p23 | persist | 32 MiB | Yes | +[lk] | wrp0p22 | system | 800 MiB | Yes | +[lk] | wrp0p21 | boot | 16 MiB | Yes | +[lk] | wrp0p20 | sec | 16 KiB | Yes | +[lk] | wrp0p19 | fsg | 1 MiB | Yes | +[lk] | wrp0p18 | DDR | 32 KiB | Yes | +[lk] | wrp0p17 | splash | 10 MiB | Yes | +[lk] | wrp0p16 | ssd | 8 KiB | Yes | +[lk] | wrp0p15 | fsc | 1 KiB | Yes | +[lk] | wrp0p14 | misc | 1024 KiB | Yes | +[lk] | wrp0p13 | modemst2 | 1 MiB | Yes | +[lk] | wrp0p12 | modemst1 | 1 MiB | Yes | +[lk] | wrp0p11 | pad | 1024 KiB | Yes | +[lk] | wrp0p10 | hypbak | 512 KiB | Yes | +[lk] | wrp0p9 | hyp | 512 KiB | Yes | +[lk] | wrp0p8 | tzbak | 512 KiB | Yes | +[lk] | wrp0p7 | tz | 1024 KiB | Yes | +[lk] | wrp0p6 | rpmbak | 512 KiB | Yes | +[lk] | wrp0p5 | rpm | 512 KiB | Yes | +[lk] | wrp0p4 | abootbak | 1024 KiB | Yes | +[lk] | wrp0p3 | aboot | 1024 KiB | Yes | +[lk] | wrp0p2 | sbl1bak | 512 KiB | Yes | +[lk] | wrp0p1 | sbl1 | 512 KiB | Yes | +[lk] | wrp0p0 | modem | 64 MiB | Yes | +[lk] | wrp0 | | 3728 MiB | | +[lk] boot: Trying to boot from the file system... +[lk] Trying to boot 'b9c' +[lk] Decompressing the kernel... +HARNESS: boot_linux reached: kernel @DDR+0x0 tags @DDR+0x20a9000 ramdisk @DDR+0x22a9000 (16082426) boot_type 0 +HARNESS: kernel magic 0x644d5241 image_size 0x1820000 end @DDR+0x1820000 +HARNESS: cmdline 'earlycon console=tty0 console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init fbcon=font:6x8 consoleblank=0' +HARNESS: kernel sha256 3afc6c77f3ed4b4ad82f61914b9cca354c3bdcaf5d102d7782a0cd5577cbca61 (24686600 bytes) +HARNESS: dtb sha256 7ca9cc794a3b85d3b7240f6311ad03bee9e1a4a59aae2ed9438318e853f7c3dc (67425 bytes) +HARNESS: ramdisk sha256 ac518e27e2957ad5e4515969b9a3808024e11ef8d1a79433a899a67dbc644558 (16082426 bytes) diff --git a/b9/b9c/cache/emu/map-F1-no-conf.txt b/b9/b9c/cache/emu/map-F1-no-conf.txt new file mode 100644 index 0000000..d759b82 --- /dev/null +++ b/b9/b9c/cache/emu/map-F1-no-conf.txt @@ -0,0 +1,28 @@ +0 34 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/gpt-primary-34.bin +131072 131072 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/modem.bin +262144 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/sbl1.bin +263168 1024 /home/q/doc/modem/jz08-aurora/partitions/sbl1bak.bin +264192 2048 /home/q/doc/modem/jz08-aurora/b5a/aboot-lk1st-aurora-autoboot.pad1M +266240 2048 /home/q/doc/modem/jz08-aurora/partitions/abootbak.bin +268288 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/rpm.bin +269312 1024 /home/q/doc/modem/jz08-aurora/partitions/rpmbak.bin +270336 2048 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/tz.bin +305184 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/tzbak-305184.bin +272384 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/hyp.bin +273408 1024 /home/q/doc/modem/jz08-aurora/partitions/hypbak.bin +274432 2048 /home/q/doc/modem/jz08-aurora/partitions/pad.bin +276480 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/modemst1.bin +279552 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/modemst2.bin +282624 2048 /home/q/doc/modem/jz08-aurora/partitions/misc.bin +284672 2 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/fsc.bin +284674 16 /home/q/doc/modem/jz08-aurora/partitions/ssd.bin +284690 20480 /home/q/doc/modem/jz08-aurora/partitions/splash.bin +393216 64 /home/q/doc/modem/jz08-aurora/partitions/DDR.bin +393280 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/fsg.bin +396352 32 /home/q/doc/modem/jz08-aurora/partitions/sec.bin +396384 32768 /home/q/doc/modem/jz08-aurora/b5a/boot-emmc1-16MiB.img +429152 1638400 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/system.bin +2067552 65536 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/persist.bin +2133088 262144 /tmp/tmp.QnjFJPSggN/F1-no-conf.img +2395232 32768 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/recovery.bin +2428000 5206911 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/userdata.bin diff --git a/b9/b9c/cache/emu/map-F10-zeroed-cache.txt b/b9/b9c/cache/emu/map-F10-zeroed-cache.txt new file mode 100644 index 0000000..c512daa --- /dev/null +++ b/b9/b9c/cache/emu/map-F10-zeroed-cache.txt @@ -0,0 +1,28 @@ +0 34 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/gpt-primary-34.bin +131072 131072 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/modem.bin +262144 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/sbl1.bin +263168 1024 /home/q/doc/modem/jz08-aurora/partitions/sbl1bak.bin +264192 2048 /home/q/doc/modem/jz08-aurora/b5a/aboot-lk1st-aurora-autoboot.pad1M +266240 2048 /home/q/doc/modem/jz08-aurora/partitions/abootbak.bin +268288 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/rpm.bin +269312 1024 /home/q/doc/modem/jz08-aurora/partitions/rpmbak.bin +270336 2048 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/tz.bin +305184 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/tzbak-305184.bin +272384 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/hyp.bin +273408 1024 /home/q/doc/modem/jz08-aurora/partitions/hypbak.bin +274432 2048 /home/q/doc/modem/jz08-aurora/partitions/pad.bin +276480 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/modemst1.bin +279552 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/modemst2.bin +282624 2048 /home/q/doc/modem/jz08-aurora/partitions/misc.bin +284672 2 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/fsc.bin +284674 16 /home/q/doc/modem/jz08-aurora/partitions/ssd.bin +284690 20480 /home/q/doc/modem/jz08-aurora/partitions/splash.bin +393216 64 /home/q/doc/modem/jz08-aurora/partitions/DDR.bin +393280 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/fsg.bin +396352 32 /home/q/doc/modem/jz08-aurora/partitions/sec.bin +396384 32768 /home/q/doc/modem/jz08-aurora/b5a/boot-emmc1-16MiB.img +429152 1638400 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/system.bin +2067552 65536 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/persist.bin +2133088 262144 /tmp/tmp.QnjFJPSggN/F10-zeroed-cache.img +2395232 32768 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/recovery.bin +2428000 5206911 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/userdata.bin diff --git a/b9/b9c/cache/emu/map-F3-no-initrd.txt b/b9/b9c/cache/emu/map-F3-no-initrd.txt new file mode 100644 index 0000000..5891953 --- /dev/null +++ b/b9/b9c/cache/emu/map-F3-no-initrd.txt @@ -0,0 +1,28 @@ +0 34 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/gpt-primary-34.bin +131072 131072 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/modem.bin +262144 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/sbl1.bin +263168 1024 /home/q/doc/modem/jz08-aurora/partitions/sbl1bak.bin +264192 2048 /home/q/doc/modem/jz08-aurora/b5a/aboot-lk1st-aurora-autoboot.pad1M +266240 2048 /home/q/doc/modem/jz08-aurora/partitions/abootbak.bin +268288 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/rpm.bin +269312 1024 /home/q/doc/modem/jz08-aurora/partitions/rpmbak.bin +270336 2048 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/tz.bin +305184 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/tzbak-305184.bin +272384 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/hyp.bin +273408 1024 /home/q/doc/modem/jz08-aurora/partitions/hypbak.bin +274432 2048 /home/q/doc/modem/jz08-aurora/partitions/pad.bin +276480 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/modemst1.bin +279552 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/modemst2.bin +282624 2048 /home/q/doc/modem/jz08-aurora/partitions/misc.bin +284672 2 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/fsc.bin +284674 16 /home/q/doc/modem/jz08-aurora/partitions/ssd.bin +284690 20480 /home/q/doc/modem/jz08-aurora/partitions/splash.bin +393216 64 /home/q/doc/modem/jz08-aurora/partitions/DDR.bin +393280 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/fsg.bin +396352 32 /home/q/doc/modem/jz08-aurora/partitions/sec.bin +396384 32768 /home/q/doc/modem/jz08-aurora/b5a/boot-emmc1-16MiB.img +429152 1638400 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/system.bin +2067552 65536 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/persist.bin +2133088 262144 /tmp/tmp.QnjFJPSggN/F3-no-initrd.img +2395232 32768 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/recovery.bin +2428000 5206911 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/userdata.bin diff --git a/b9/b9c/cache/emu/map-S6-b8f-regression.txt b/b9/b9c/cache/emu/map-S6-b8f-regression.txt new file mode 100644 index 0000000..c1d7bba --- /dev/null +++ b/b9/b9c/cache/emu/map-S6-b8f-regression.txt @@ -0,0 +1,28 @@ +0 34 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/gpt-primary-34.bin +131072 131072 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/modem.bin +262144 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/sbl1.bin +263168 1024 /home/q/doc/modem/jz08-aurora/partitions/sbl1bak.bin +264192 2048 /home/q/doc/modem/jz08-aurora/b5a/aboot-lk1st-aurora-autoboot.pad1M +266240 2048 /home/q/doc/modem/jz08-aurora/partitions/abootbak.bin +268288 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/rpm.bin +269312 1024 /home/q/doc/modem/jz08-aurora/partitions/rpmbak.bin +270336 2048 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/tz.bin +305184 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/tzbak-305184.bin +272384 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/hyp.bin +273408 1024 /home/q/doc/modem/jz08-aurora/partitions/hypbak.bin +274432 2048 /home/q/doc/modem/jz08-aurora/partitions/pad.bin +276480 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/modemst1.bin +279552 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/modemst2.bin +282624 2048 /home/q/doc/modem/jz08-aurora/partitions/misc.bin +284672 2 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/fsc.bin +284674 16 /home/q/doc/modem/jz08-aurora/partitions/ssd.bin +284690 20480 /home/q/doc/modem/jz08-aurora/partitions/splash.bin +393216 64 /home/q/doc/modem/jz08-aurora/partitions/DDR.bin +393280 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/fsg.bin +396352 32 /home/q/doc/modem/jz08-aurora/partitions/sec.bin +396384 32768 /home/q/doc/modem/jz08-aurora/b5a/boot-emmc1-16MiB.img +429152 1638400 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/system.bin +2067552 65536 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/persist.bin +2133088 262144 /home/q/doc/modem/jz08-aurora/b8/b8f/cache/cache-extlinux-b8f.img +2395232 32768 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/recovery.bin +2428000 5206911 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/userdata.bin diff --git a/b9/b9c/cache/emu/map-S7-b9c-candidate.txt b/b9/b9c/cache/emu/map-S7-b9c-candidate.txt new file mode 100644 index 0000000..421b8e0 --- /dev/null +++ b/b9/b9c/cache/emu/map-S7-b9c-candidate.txt @@ -0,0 +1,28 @@ +0 34 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/gpt-primary-34.bin +131072 131072 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/modem.bin +262144 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/sbl1.bin +263168 1024 /home/q/doc/modem/jz08-aurora/partitions/sbl1bak.bin +264192 2048 /home/q/doc/modem/jz08-aurora/b5a/aboot-lk1st-aurora-autoboot.pad1M +266240 2048 /home/q/doc/modem/jz08-aurora/partitions/abootbak.bin +268288 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/rpm.bin +269312 1024 /home/q/doc/modem/jz08-aurora/partitions/rpmbak.bin +270336 2048 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/tz.bin +305184 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/tzbak-305184.bin +272384 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/hyp.bin +273408 1024 /home/q/doc/modem/jz08-aurora/partitions/hypbak.bin +274432 2048 /home/q/doc/modem/jz08-aurora/partitions/pad.bin +276480 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/modemst1.bin +279552 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/modemst2.bin +282624 2048 /home/q/doc/modem/jz08-aurora/partitions/misc.bin +284672 2 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/fsc.bin +284674 16 /home/q/doc/modem/jz08-aurora/partitions/ssd.bin +284690 20480 /home/q/doc/modem/jz08-aurora/partitions/splash.bin +393216 64 /home/q/doc/modem/jz08-aurora/partitions/DDR.bin +393280 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/fsg.bin +396352 32 /home/q/doc/modem/jz08-aurora/partitions/sec.bin +396384 32768 /home/q/doc/modem/jz08-aurora/b5a/boot-emmc1-16MiB.img +429152 1638400 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/system.bin +2067552 65536 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/persist.bin +2133088 262144 /home/q/doc/modem/jz08-aurora/b9/b9c/cache/cache-extlinux-b9c.img +2395232 32768 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/recovery.bin +2428000 5206911 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/userdata.bin diff --git a/b9/b9c/cache/emu/run-emu-b9c.sh b/b9/b9c/cache/emu/run-emu-b9c.sh new file mode 100755 index 0000000..e2a3281 --- /dev/null +++ b/b9/b9c/cache/emu/run-emu-b9c.sh @@ -0,0 +1,13 @@ +#!/bin/bash +# lk2nd-23.1 extlinux emulator (b5b/emu) on: S6 (B8F cache = current flash, regression vs b8/b8f/cache/emu), S7 B9C candidate, fault variants. Offline, 480s. +cd ~/doc/modem/jz08-aurora/b9/b9c/cache/emu; E=../../../../b5b/emu; GPT=../../../../logs/b5a/A3/gpt-primary-34.bin; C=/home/q/doc/modem/jz08-aurora/b9/b9c/cache/cache-extlinux-b9c.img +run() { python3 $E/mkmap.py $2 > map-$1.txt; $E/lk2nd-scan-emu map-$1.txt $GPT $3 > $1.out 2>&1; echo "== $1 rc=$? :: $(grep -E "Trying to boot|Reverting|boot_linux reached|ramdisk sha256|Could not" $1.out | tr '\n' ' ' | cut -c1-260)"; } +run S6-b8f-regression /home/q/doc/modem/jz08-aurora/b8/b8f/cache/cache-extlinux-b8f.img 23955464 +cmp <(grep HARNESS S6-b8f-regression.out) <(grep HARNESS ../../../../b8/b8f/cache/emu/S6-b8f-candidate.out) && echo " S6 HARNESS lines == b8/b8f/cache/emu/S6-b8f-candidate.out" +run S7-b9c-candidate $C 24686600; # kernel_len = B9C Image (3afc6c77, 24686600 B) + grep HARNESS S7-b9c-candidate.out +D=$(mktemp -d); v(){ cp $C $D/$1.img; chmod u+w $D/$1.img; } +v F3-no-initrd; /sbin/debugfs -w -R "rm /initramfs-b9c.cpio.gz" $D/F3-no-initrd.img >/dev/null 2>&1 +v F1-no-conf; /sbin/debugfs -w -R "rm /extlinux/extlinux.conf" $D/F1-no-conf.img >/dev/null 2>&1 +head -c 134217728 /dev/zero > $D/F10-zeroed-cache.img +for f in $D/F*.img; do run $(basename $f .img) $f; done; rm -rf $D diff --git a/b9/b9c/cache/extlinux-b9c.conf b/b9/b9c/cache/extlinux-b9c.conf new file mode 100644 index 0000000..33e439c --- /dev/null +++ b/b9/b9c/cache/extlinux-b9c.conf @@ -0,0 +1,6 @@ +default b9c +label b9c + linux /Image.gz-dtb + fdt /aurora-b9c.dtb + initrd /initramfs-b9c.cpio.gz + append earlycon console=tty0 console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init fbcon=font:6x8 consoleblank=0 diff --git a/b9/b9c/cache/mkfs-cache-b9c.sh b/b9/b9c/cache/mkfs-cache-b9c.sh new file mode 100755 index 0000000..a227938 --- /dev/null +++ b/b9/b9c/cache/mkfs-cache-b9c.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# B9C cache candidate: exact recipe of b8/b8f/cache/mkfs-cache-b8f.sh (857c9c30); differs only in kernel file (B9C Image.gz-dtb: b9c kernel +# + B9B DTB), fdt (B9B DTB), initrd (B9C initramfs), append (B9C cmdline = B8F + console=tty0 before the UART console + fbcon=font:6x8 +# consoleblank=0), file names, extlinux label, fs label and UUIDs. Runs on 480s (mke2fs 1.47.2). Offline only. +# The image contains the AP PSK (in the initramfs) - never publish it. +set -e +cd ~/doc/modem/jz08-aurora/b9/b9c/cache +OUT=${1:-cache-extlinux-b9c.img}; F=../out +echo "0fef41b262917c8ae308fa222da0017e2b3cb3ec5da1ca8ba18d0318476761a3 $F/cmdline.txt" | sha256sum -c +echo "632a7be801978dfaddeae633d5293b3abe385f2281cc5053772e6637897a7e5a $F/Image.gz-dtb" | sha256sum -c +echo "7ca9cc794a3b85d3b7240f6311ad03bee9e1a4a59aae2ed9438318e853f7c3dc $F/aurora-b9c.dtb" | sha256sum -c +echo "ac518e27e2957ad5e4515969b9a3808024e11ef8d1a79433a899a67dbc644558 $F/initramfs-b9c.cpio.gz" | sha256sum -c +ST=$(mktemp -d); mkdir -p $ST/extlinux +cp $F/Image.gz-dtb $F/aurora-b9c.dtb $F/initramfs-b9c.cpio.gz $ST/ +printf "default b9c\nlabel b9c\n\tlinux /Image.gz-dtb\n\tfdt /aurora-b9c.dtb\n\tinitrd /initramfs-b9c.cpio.gz\n\tappend %s\n" "$(cat $F/cmdline.txt)" > $ST/extlinux/extlinux.conf +cp $ST/extlinux/extlinux.conf extlinux-b9c.conf +chmod 0644 $ST/*.* $ST/extlinux/extlinux.conf; chmod 0755 $ST $ST/extlinux +find $ST -exec touch -h -d @1790726400 {} + +rm -f $OUT; truncate -s 134217728 $OUT +E2FSPROGS_FAKE_TIME=1790726400 /sbin/mke2fs -F -q -t ext2 -O none,filetype,sparse_super \ + -b 4096 -I 128 -N 64 -m 0 -L aurora-b9c -U 4a5a3038-b6f0-4000-8000-00000000b9c0 \ + -E root_owner=0:0,hash_seed=4a5a3038-b6f0-4000-8000-00000000b9c1 -d $ST $OUT 32768 +rm -rf $ST +for f in / /lost+found /extlinux /extlinux/extlinux.conf /Image.gz-dtb /aurora-b9c.dtb /initramfs-b9c.cpio.gz; do for t in atime ctime mtime; do echo "sif $f $t @1790726400"; done; done > /tmp/b9c-sif.$$ +/sbin/debugfs -w -f /tmp/b9c-sif.$$ $OUT >/dev/null 2>&1; rm -f /tmp/b9c-sif.$$ +/sbin/e2fsck -fn $OUT >/dev/null 2>&1 && echo "e2fsck -fn clean" +stat -c "%n %s" $OUT; sha256sum $OUT diff --git a/b9/b9c/cmdline.txt b/b9/b9c/cmdline.txt new file mode 100644 index 0000000..b08019b --- /dev/null +++ b/b9/b9c/cmdline.txt @@ -0,0 +1 @@ +earlycon console=tty0 console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init fbcon=font:6x8 consoleblank=0 \ No newline at end of file diff --git a/b9/b9c/out/SHA256SUMS b/b9/b9c/out/SHA256SUMS new file mode 100644 index 0000000..79bbfe2 --- /dev/null +++ b/b9/b9c/out/SHA256SUMS @@ -0,0 +1,9 @@ +e28f8b531193943e40848c018012093cea89250f0ca62809c040c242bbc8235c Image.gz +7ca9cc794a3b85d3b7240f6311ad03bee9e1a4a59aae2ed9438318e853f7c3dc aurora-b9c.dtb +632a7be801978dfaddeae633d5293b3abe385f2281cc5053772e6637897a7e5a Image.gz-dtb +8820db2735ce1ed58b982b0fef6159490235e3d1868bd63004a9602fe03998f8 config-b9c +58697d4db45a9af85ec09e03a4212955ae3c7eed7d9f6bda82071da1b44329b4 jz08au,aurora-st7735s.bin +0fef41b262917c8ae308fa222da0017e2b3cb3ec5da1ca8ba18d0318476761a3 cmdline.txt +9e41cdda2815b8101676c0f37455aea59d3e5d34c7ab23c02f098ad9c8639107 overlay-b9c.cpio.gz +ac518e27e2957ad5e4515969b9a3808024e11ef8d1a79433a899a67dbc644558 initramfs-b9c.cpio.gz +fa855e1c84763861d8b2f6bd7ed669e8ab625aa42178317883fabff39dec4fce aurora-b9c.img diff --git a/b9/b9c/out/cmdline.txt b/b9/b9c/out/cmdline.txt new file mode 100644 index 0000000..b08019b --- /dev/null +++ b/b9/b9c/out/cmdline.txt @@ -0,0 +1 @@ +earlycon console=tty0 console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init fbcon=font:6x8 consoleblank=0 \ No newline at end of file diff --git a/b9/b9c/out/init.diff b/b9/b9c/out/init.diff new file mode 100644 index 0000000..f063335 --- /dev/null +++ b/b9/b9c/out/init.diff @@ -0,0 +1,28 @@ +--- ../../b8/b8f/rootfs/init 2026-10-03 01:03:40.225791442 +0600 ++++ rootfs/init 2026-10-03 03:07:15.657377190 +0600 +@@ -1,6 +1,7 @@ + #!/bin/busybox sh + # Aurora RAM boot MM1 — QMI1 + ModemManager (qcom-soc) + D-Bus + polkit + eudev. + # R2/T4: B6P init + telnetd on NCM. B8F: + Wi-Fi service autostart (aurora-wifi). ++# B9C: + hostname aurora, display service (fbcon/backlight on the ST7735S) and a getty on tty1. + # B6P: after eMMC RO + /firmware RO + USB NCM, autostarts /etc/init.d/aurora-modem (B6N-proven lifecycle). + # NEVER mounts, fsck's, formats, trims or writes any mmcblk* device. + # No block devices, no firmware, no radios. Never exits (failures leave the UART shell). +@@ -10,6 +11,7 @@ + mount -t sysfs sysfs /sys + mount -t devtmpfs devtmpfs /dev 2>/dev/null + mount -t configfs configfs /sys/kernel/config ++hostname aurora # B9C: getty prompt 'aurora login:' + log() { echo "[init] $*"; echo "[init] $*" > /dev/kmsg 2>/dev/null; } + echo + echo "=== AURORA RAM BOOT MM1 + B6P modem service ===" +@@ -124,6 +126,9 @@ + if telnetd -l /bin/sh -b 172.16.42.1 -p 23; then log "T4: telnetd started on 172.16.42.1:23"; else log "T4: telnetd start FAILED"; fi + else log "T4: no 172.16.42.1 - telnetd NOT started"; fi + ++# B9C: display (no disk/radio access): fbcon on tty1 + backlight, and a display-only getty on tty1 (UART shell below unchanged). ++/etc/init.d/aurora-display start ++( while true; do getty 0 tty1 linux; sleep 2; done ) > /dev/null 2>&1 < /dev/null & + if [ "$EMMC_RO_OK" = 1 ]; then emmc_report; else log "EMMC: RO not confirmed or device missing - NO further disk access"; fi + echo "B1_OK=${B1_OK:-0}" + # B6P: modem autostart only when every eMMC device is RO and the modem FAT is mounted RO (the controller re-checks both). diff --git a/b9/b9c/out/overlay-b9c.list b/b9/b9c/out/overlay-b9c.list new file mode 100644 index 0000000..de054ac --- /dev/null +++ b/b9/b9c/out/overlay-b9c.list @@ -0,0 +1,5 @@ +file /init rootfs/init 0755 0 0 +file /usr/sbin/aurora-display rootfs/usr/sbin/aurora-display 0755 0 0 +file /etc/init.d/aurora-display rootfs/etc/init.d/aurora-display 0755 0 0 +dir /lib/firmware 0755 0 0 +file /lib/firmware/jz08au,aurora-st7735s.bin out/jz08au,aurora-st7735s.bin 0644 0 0 diff --git a/b9/b9c/rootfs/etc/init.d/aurora-display b/b9/b9c/rootfs/etc/init.d/aurora-display new file mode 100755 index 0000000..7ff912d --- /dev/null +++ b/b9/b9c/rootfs/etc/init.d/aurora-display @@ -0,0 +1,13 @@ +#!/bin/sh +# Aurora display service (B9C). Started once by /init; no OpenRC. +# /etc/init.d/aurora-display start | status — kernel cmdline 'aurora.display=off' disables autostart. +C=/usr/sbin/aurora-display; D=/run/aurora-display; L=$D/service.log +mkdir -p $D +case "$1" in +start) + grep -qw aurora.display=off /proc/cmdline && { echo "aurora-display: disabled by cmdline"; exit 0; } + ( $C start >> $L 2>&1; echo "=== service start rc=$? $(cut -d' ' -f1 /proc/uptime)" >> $L ) & + echo "aurora-display: starting (pid $!, log $D/display.log)";; +status) $C status; tail -3 $D/display.log 2>/dev/null;; +*) echo "usage: $0 start|status"; exit 2;; +esac diff --git a/b9/b9c/rootfs/init b/b9/b9c/rootfs/init new file mode 100755 index 0000000..1c7ad40 --- /dev/null +++ b/b9/b9c/rootfs/init @@ -0,0 +1,142 @@ +#!/bin/busybox sh +# Aurora RAM boot MM1 — QMI1 + ModemManager (qcom-soc) + D-Bus + polkit + eudev. +# R2/T4: B6P init + telnetd on NCM. B8F: + Wi-Fi service autostart (aurora-wifi). +# B9C: + hostname aurora, display service (fbcon/backlight on the ST7735S) and a getty on tty1. +# B6P: after eMMC RO + /firmware RO + USB NCM, autostarts /etc/init.d/aurora-modem (B6N-proven lifecycle). +# NEVER mounts, fsck's, formats, trims or writes any mmcblk* device. +# No block devices, no firmware, no radios. Never exits (failures leave the UART shell). +/bin/busybox mkdir -p /proc /sys /dev /tmp /usr/bin /usr/sbin /sbin +/bin/busybox --install -s +mount -t proc proc /proc +mount -t sysfs sysfs /sys +mount -t devtmpfs devtmpfs /dev 2>/dev/null +mount -t configfs configfs /sys/kernel/config +hostname aurora # B9C: getty prompt 'aurora login:' +log() { echo "[init] $*"; echo "[init] $*" > /dev/kmsg 2>/dev/null; } +echo +echo "=== AURORA RAM BOOT MM1 + B6P modem service ===" +uname -a +echo "--- model"; cat /proc/device-tree/model; echo +echo "--- cmdline"; cat /proc/cmdline + +emmc_ro() { + for i in $(seq 1 100); do [ -b /dev/mmcblk0 ] && break; sleep 0.1; done + if [ ! -b /dev/mmcblk0 ]; then log "EMMC: /dev/mmcblk0 did not appear"; return 1; fi + sleep 0.5 # let partition nodes settle + for d in /dev/mmcblk0 /dev/mmcblk0p* /dev/mmcblk0boot*; do [ -b "$d" ] && blockdev --setro "$d"; done + bad=0; n=0 + for d in /dev/mmcblk0 /dev/mmcblk0p* /dev/mmcblk0boot*; do + [ -b "$d" ] || continue; n=$((n+1)); r=$(blockdev --getro "$d") + [ "$r" = "1" ] || { bad=1; log "EMMC-RO FAIL $d getro=$r"; } + done + echo "EMMC-RO-SUMMARY devices=$n all_ro=$([ $bad = 0 ] && echo YES || echo NO)" + [ $bad = 0 ] || return 2 + log "EMMC: all $n block devices read-only (getro=1)" +} +emmc_report() { + echo "=== EMMC-INFO-BEGIN" + C=/sys/class/block/mmcblk0/device + for f in name manfid oemid cid date serial type; do echo "$f=$(cat $C/$f 2>/dev/null)"; done + echo "size_512=$(cat /sys/class/block/mmcblk0/size) logical_block=$(cat /sys/class/block/mmcblk0/queue/logical_block_size) bytes=$(blockdev --getsize64 /dev/mmcblk0)" + cat /proc/partitions + echo "=== EMMC-GPT-BEGIN (pN name start_512 size_512 ro)" + for p in /sys/class/block/mmcblk0p*; do + b=$(basename $p); nm=$(sed -n 's/^PARTNAME=//p' $p/uevent) + echo "$b $nm $(cat $p/start) $(cat $p/size) $(cat $p/ro)" + done + echo "=== EMMC-GPT-END" + echo "=== EMMC-SHA-BEGIN" + for want in sbl1 rpm DDR sec aboot hyp tz tzbak; do + for p in /sys/class/block/mmcblk0p*; do + nm=$(sed -n 's/^PARTNAME=//p' $p/uevent) + [ "$nm" = "$want" ] && echo "$nm $(basename $p) $(sha256sum /dev/$(basename $p) | cut -d' ' -f1)" + done + done + echo "=== EMMC-SHA-END" + echo "=== EMMC-INFO-END" +} +emmc_ro && EMMC_RO_OK=1 # RO FIRST, before anything else touches the disk + +nv_snapshot() { # $1 = before|after ; reads RO block devices only + o=/tmp/nv-$1.txt; : > $o + for want in modemst1 modemst2 fsg fsc persist; do + for p in /sys/class/block/mmcblk0p*; do + [ "$(sed -n 's/^PARTNAME=//p' $p/uevent)" = "$want" ] && echo "$want $(basename $p) $(sha256sum /dev/$(basename $p) | cut -d' ' -f1)" >> $o + done + done + echo "stat $(cat /sys/block/mmcblk0/stat)" >> $o +} +b1_modem_fat() { + mkdir -p /dev/disk/by-partlabel /firmware + for p in /sys/class/block/mmcblk0p*; do + n=$(sed -n 's/^PARTNAME=//p' $p/uevent); [ -n "$n" ] && ln -sf /dev/$(basename $p) /dev/disk/by-partlabel/$n + done + M=$(readlink /dev/disk/by-partlabel/modem); echo "B1 modem partition by PARTLABEL: modem -> $M ro=$(blockdev --getro $M)" + [ "$(blockdev --getro $M)" = 1 ] || { log "B1: modem partition not RO - NOT mounting"; return 1; } + mount -t vfat -o ro,nosuid,nodev,noexec,shortname=lower $M /firmware || { log "B1: mount failed"; return 1; } + grep " /firmware " /proc/mounts + grep " /firmware " /proc/mounts | grep -q " ro," || { log "B1: /firmware is NOT ro - unmounting"; umount /firmware; return 1; } + (cd /firmware && find . -type f | sort | while read f; do echo "$(sha256sum "$f" | cut -d' ' -f1) ${f#./}"; done) > /tmp/fw-sha.txt + echo "B1 firmware files: $(wc -l < /tmp/fw-sha.txt)" + echo -n /firmware/image > /sys/module/firmware_class/parameters/path + log "B1: modem FAT mounted RO at /firmware, firmware path /firmware/image" +} +if [ "$EMMC_RO_OK" = 1 ]; then + echo "stat-before-B1 $(cat /sys/block/mmcblk0/stat)" > /tmp/stat-before-B1.txt + nv_snapshot before + b1_modem_fat && B1_OK=1 +fi + +usb_up() { + for i in $(seq 1 50); do + udc=$(ls /sys/class/udc 2>/dev/null | head -1) + [ -n "$udc" ] && break + sleep 0.2 + done + echo "--- /sys/class/udc:"; ls -l /sys/class/udc 2>&1 + if [ -z "$udc" ]; then log "NO UDC found - USB gadget skipped"; return 1; fi + # DEVELOPMENT-ONLY IDs (same dev setup as JZ02: Google 18d1:d001) - not for production + G=/sys/kernel/config/usb_gadget/aurora + mkdir -p $G || return 1 + echo 0x18d1 > $G/idVendor + echo 0xd001 > $G/idProduct + mkdir -p $G/strings/0x409 + echo "Aurora" > $G/strings/0x409/manufacturer + echo "Aurora RAM Boot" > $G/strings/0x409/product + echo "" > $G/strings/0x409/serialnumber + mkdir -p $G/functions/ncm.usb0 || { log "ncm function create FAILED"; return 1; } + mkdir -p $G/configs/c.1/strings/0x409 + echo "NCM" > $G/configs/c.1/strings/0x409/configuration + ln -s $G/functions/ncm.usb0 $G/configs/c.1/ + echo "$udc" > $G/UDC || { log "bind to UDC '$udc' FAILED"; return 1; } + log "usb gadget bound to UDC '$udc'" + ifc=$(cat $G/functions/ncm.usb0/ifname 2>/dev/null) + log "ncm ifname='$ifc' dev_addr=$(cat $G/functions/ncm.usb0/dev_addr) host_addr=$(cat $G/functions/ncm.usb0/host_addr)" + [ -n "$ifc" ] || return 1 + ip link set lo up + ip addr add 172.16.42.1/24 dev "$ifc" + ip link set "$ifc" up + ip addr show "$ifc" + log "network: $ifc 172.16.42.1/24 up (static, no DHCP)" +} +usb_up || log "USB/NCM setup incomplete - staying on UART shell" +# R2/T4 (RAM-only, DEVELOPMENT): unauthenticated root telnet shell on the NCM link only (bind 172.16.42.1:23). +if ip addr show | grep -q " 172.16.42.1/24 "; then + mkdir -p /dev/pts; mount -t devpts devpts /dev/pts || log "T4: devpts mount FAILED" + if telnetd -l /bin/sh -b 172.16.42.1 -p 23; then log "T4: telnetd started on 172.16.42.1:23"; else log "T4: telnetd start FAILED"; fi +else log "T4: no 172.16.42.1 - telnetd NOT started"; fi + +# B9C: display (no disk/radio access): fbcon on tty1 + backlight, and a display-only getty on tty1 (UART shell below unchanged). +/etc/init.d/aurora-display start +( while true; do getty 0 tty1 linux; sleep 2; done ) > /dev/null 2>&1 < /dev/null & +if [ "$EMMC_RO_OK" = 1 ]; then emmc_report; else log "EMMC: RO not confirmed or device missing - NO further disk access"; fi +echo "B1_OK=${B1_OK:-0}" +# B6P: modem autostart only when every eMMC device is RO and the modem FAT is mounted RO (the controller re-checks both). +if [ "$EMMC_RO_OK" = 1 ] && [ "$B1_OK" = 1 ]; then /etc/init.d/aurora-modem start; else log "B6P: modem autostart SKIPPED (EMMC_RO_OK=${EMMC_RO_OK:-0} B1_OK=${B1_OK:-0})"; fi +# B8F: Wi-Fi autostart (Pronto + wcn36xx + test AP) under the same RO gates; the service itself waits for modem START OK/FAIL. +if [ "$EMMC_RO_OK" = 1 ] && [ "$B1_OK" = 1 ]; then /etc/init.d/aurora-wifi start; else log "B8F: wifi autostart SKIPPED"; fi +echo "=== entering shell (exit restarts it) ===" +while true; do + setsid cttyhack sh + echo "shell exited, restarting"; sleep 1 +done diff --git a/b9/b9c/rootfs/usr/sbin/aurora-display b/b9/b9c/rootfs/usr/sbin/aurora-display new file mode 100755 index 0000000..b5198cd --- /dev/null +++ b/b9/b9c/rootfs/usr/sbin/aurora-display @@ -0,0 +1,44 @@ +#!/bin/sh +# Aurora display controller (B9C). ST7735S on SPI via panel-mipi-dbi (DRM) -> fb0 -> fbcon (tty1) + MPP4 backlight. +# aurora-display start : wait for fb0, make sure the display pipe is enabled (fbcon takeover modeset, or one fbdev +# unblank if nothing enabled it), then switch the backlight on through the gpio-backlight driver. +# aurora-display status : one-line state summary +# aurora-display bl on|off +# Never writes PMIC/GPIO registers directly: only fb0 'blank' and backlight sysfs attributes of the kernel drivers. +D=/run/aurora-display; L=$D/display.log; mkdir -p $D +FB=/sys/class/graphics/fb0; CON=/sys/class/drm/card0-SPI-1; BL=/sys/class/backlight/backlight +t() { cut -d' ' -f1 /proc/uptime; } +log() { echo "[$(t)] $*" >> $L; echo "[aurora-display] $*" > /dev/kmsg 2>/dev/null; } +fbcon_bound() { for v in /sys/class/vtconsole/vtcon*; do grep -q "frame buffer" $v/name 2>/dev/null && [ "$(cat $v/bind)" = 1 ] && return 0; done; return 1; } +l17_users() { for r in /sys/class/regulator/regulator.*; do [ "$(cat $r/name 2>/dev/null)" = l17 ] && { cat $r/num_users; return; }; done; echo 0; } +pipe_on() { [ "$(cat $CON/enabled 2>/dev/null)" = enabled ] && [ "$(cat $CON/dpms 2>/dev/null)" = On ] && [ "$(l17_users)" -ge 1 ]; } +state() { echo "fb0=$([ -e $FB ] && cat $FB/name) fbcon=$(fbcon_bound && echo bound || echo no) conn=$(cat $CON/enabled 2>/dev/null)/$(cat $CON/dpms 2>/dev/null) l17_users=$(l17_users) bl_power=$(cat $BL/bl_power 2>/dev/null) bl=$(cat $BL/actual_brightness 2>/dev/null)"; } +wait_for() { n=$1; shift; i=0; until "$@"; do i=$((i+1)); [ $i -ge $n ] && return 1; sleep 0.2; done; } +bl() { + [ -d $BL ] || { log "FAIL: no backlight device"; return 1; } + case $1 in + on) echo 0 > $BL/bl_power; echo 1 > $BL/brightness;; + off) echo 0 > $BL/brightness;; + esac + log "backlight $1 -> bl_power=$(cat $BL/bl_power) actual_brightness=$(cat $BL/actual_brightness)" +} +case "$1" in +start) + log "start: $(state)" + wait_for 100 test -e $FB || { log "FAIL: fb0 did not appear within 20 s"; exit 1; } + fbcon_bound && log "fbcon bound to fb0" || log "fbcon NOT bound (no framebuffer console)" + if wait_for 25 pipe_on; then + log "display pipe already enabled (by fbcon takeover) - no unblank needed" + else + log "display pipe not enabled -> fbdev unblank" + echo 0 > $FB/blank + wait_for 25 pipe_on || { log "FAIL: pipe still not enabled after unblank: $(state)"; exit 1; } + log "display pipe enabled by unblank" + fi + bl on + [ "$(cat $BL/actual_brightness)" = 1 ] || { log "FAIL: backlight did not turn on: $(state)"; exit 1; } + log "=== DISPLAY READY $(state)";; +status) state;; +bl) bl "$2";; +*) echo "usage: $0 start|status|bl on|off"; exit 2;; +esac diff --git a/b9/b9l/BUILD-B9L.md b/b9/b9l/BUILD-B9L.md new file mode 100644 index 0000000..cd6191b --- /dev/null +++ b/b9/b9l/BUILD-B9L.md @@ -0,0 +1,10 @@ +# B9L lk2nd 2nd-stage build (RAM test only — never flash without a separate GO) +- Base: lk2nd 23.1 e9c8b217 (same tree as lk2nd-build/src, cloned to /home/q/aurora-lkbuild/b9l-src; the original tree is untouched). +- Patch: lk2nd-23.1-aurora-b9l.patch (msm8916 QUP4 SPI clock + iomap, gpio_config_blsp_spi, clock_config_blsp_spi clamped to 16 MHz, + module lk2nd/aurora (st7735s.c), project hook AURORA_SPI_PANEL=1). +- Command (in b9l-src): make -j4 TOOLCHAIN_PREFIX=arm-none-eabi- LK2ND_DTBS="msm8916-512mb-mtp.dtb" AURORA_SPI_PANEL=1 lk2nd-msm8916 + (differences from the B9L-0 23.1 image: no LK2ND_FORCE_FASTBOOT, + AURORA_SPI_PANEL). +- Toolchain arm-none-eabi-gcc 14.2.1 20241119. Output lk2nd-b9l-st7735s.img sha256 775986e2d562ff92840de1783d60899d23babb70fb6566a285600e99a4361499 (299024 B). +- Splash variant (2026-10-03): + AURORA_SPLASH=1 → frame = b9/b9l/splash/swag.png (128x128, alpha 255 everywhere) converted by + splash/mk-splash.py to RGB565 LE (aurora_splash.h, blob sha256 87955300). Patch: lk2nd-23.1-aurora-b9l-splash.patch. + Output lk2nd-b9l-swag.img sha256 e6849a2b. Panel init code identical to 775986e2 (geo variant). diff --git a/b9/b9l/SHA256SUMS b/b9/b9l/SHA256SUMS new file mode 100644 index 0000000..9c30b45 --- /dev/null +++ b/b9/b9l/SHA256SUMS @@ -0,0 +1,10 @@ +555826ea14078690fcdd48dcac61cedd6574017f4308adc0a591cd671396d782 lk2nd-23.1-stock.img +2b8b6519946fadb4f29a1e7d234dd7a02939941347d6ccfc44348ad4f2fea296 b9l-fb.sh +775986e2d562ff92840de1783d60899d23babb70fb6566a285600e99a4361499 lk2nd-b9l-st7735s.img +e6849a2b6fb86959bb12b79985b9a9d8dc52c2b3bcf6ceafff57f7b104fe0afe lk2nd-b9l-swag.img +bb86eb620c96064b30f03b7165db793a795e23f188a3d1d684baf3680699307e lk2nd-23.1-aurora-b9l.patch +1a0cd720faeb7cc6f34b2032f6ca96b80a8a8db0813add4eafb7bd819fb5425a lk2nd-23.1-aurora-b9l-splash.patch +53e646357505e9f1256ea0145508258a0f48d99f739ebcef687bfa3d96672202 b9l-ram.sh +f126eb214ab89d3f3f71abd7ebe8960bb4ab4a13a3a7aba7115c12614d9c7adf splash/swag.png +476c9077eeb82386f0bb6c9b17b4583945d60cf262996acf971896bb94141ec6 splash/mk-splash.py +eb3e0f33bb273a7939208f58f9249dab44e044211a1933cfaf645cf9081d9f5c splash/aurora_splash.h diff --git a/b9/b9l/b9l-fb.sh b/b9/b9l/b9l-fb.sh new file mode 100644 index 0000000..92d95cd --- /dev/null +++ b/b9/b9l/b9l-fb.sh @@ -0,0 +1,20 @@ +#!/bin/sh +# 480s side, B9L: RESET-held power-on -> current lk1st fastboot -> `fastboot boot IMG` (2nd-stage lk2nd, RAM only). +# Nothing is flashed. Logs UART + fastboot identity before/after. usage: b9l-fb.sh TAG IMG SHA256 +T=$1; IMG=$2; SHA=$3; cd ~/doc/modem/jz08-aurora; O=logs/b9/b9l/$T; mkdir -p $O; A=$O/host-actions.txt +act() { echo "$(date -u +%H:%M:%S.%3N) $*" | tee -a $A; } +echo "$SHA $IMG" | sha256sum -c || exit 1 +OLD=$(ps -eo pid,cmd | grep "[u]artlog.py /dev/ttyUSB0" | awk '{print $1}'); [ -n "$OLD" ] && kill $OLD; sleep 1 +U=logs/uart/b9l-$T-$(date +%Y%m%d-%H%M%S); setsid nohup python3 tools/uartlog.py /dev/ttyUSB0 $U > $U.stderr 2>&1 < /dev/null & +echo $U > $O/uartlog-path +act "B9L $T: waiting for lk1st fastboot (power off >= 90 s, then RESET held + battery -> USB)" +i=0; until fastboot devices 2>/dev/null | grep -q ; do i=$((i+1)); [ $i -ge 600 ] && { act "ABORT: no fastboot"; exit 1; }; sleep 2; done +act "fastboot present: product=$(fastboot getvar product 2>&1 | sed -n 's/^product: //p')" +{ fastboot boot $IMG 2>&1; echo "rc=$?"; } | tee -a $A +act "waiting for second-stage fastboot (or Linux NCM)" +i=0; while [ $i -lt 90 ]; do + if fastboot devices 2>/dev/null | grep -q ; then act "fastboot present again: product=$(fastboot getvar product 2>&1 | sed -n 's/^product: //p') version-bootloader=$(fastboot getvar version-bootloader 2>&1 | sed -n 's/^version-bootloader: //p')"; break; fi + if ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; then act "Linux NCM ping ok"; break; fi + i=$((i+1)); sleep 2 +done +sleep 3; cp $U.log $O/uart.log; act "B9L $T END" diff --git a/b9/b9l/b9l-ram.sh b/b9/b9l/b9l-ram.sh new file mode 100644 index 0000000..87cde88 --- /dev/null +++ b/b9/b9l/b9l-ram.sh @@ -0,0 +1,56 @@ +#!/bin/sh +# 480s side, B9L RAM test K (derived from b9c-boot.sh ram mode): RESET-held power-on -> lk1st fastboot -> `fastboot boot` the B9L 2nd-stage lk2nd +# (ST7735S init in LK) -> it boots the eMMC cache (B9C extlinux) -> Linux. Then the same LTE/Wi-Fi/display snapshot as B9C. +# MODE=cold: normal power-on (no RESET, no fastboot) -> lk2nd extlinux from eMMC cache. Script only observes + reads over telnet; +# nothing is written to eMMC. Visual display checks need the operator. Adds display/fbcon/getty/console checks to the B8F snapshot. +K=$1; MODE=$2; case "$MODE" in ram|cold) ;; *) echo "usage: $0 K ram|cold"; exit 2;; esac +cd ~/doc/modem/jz08-aurora; O=logs/b9/b9l/$MODE$K; mkdir -p $O; IMG=b9/b9l/lk2nd-b9l-swag.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"; } +OLD=$(ps -eo pid,cmd | grep "[u]artlog.py /dev/ttyUSB0" | awk '{print $1}'); [ -n "$OLD" ] && kill $OLD; sleep 1 +U=logs/uart/b9l-$MODE$K-$(date +%Y%m%d-%H%M%S); setsid nohup python3 tools/uartlog.py /dev/ttyUSB0 $U > $U.stderr 2>&1 < /dev/null & +if [ $MODE = ram ]; then + echo "e6849a2b6fb86959bb12b79985b9a9d8dc52c2b3bcf6ceafff57f7b104fe0afe $IMG" | sha256sum -c || exit 1 + act "B9L $MODE$K: waiting for fastboot (power off >= 90 s, then RESET held + battery -> USB)" + if fastboot devices 2>/dev/null | grep -q ; then act "already in fastboot - wait for power-off"; until ! fastboot devices 2>/dev/null | grep -q ; do sleep 1; done; fi + i=0; until fastboot devices 2>/dev/null | grep -q ; do i=$((i+1)); [ $i -ge 600 ] && { act "ABORT: no fastboot"; exit 1; }; sleep 2; done + PR=$(fastboot getvar product 2>&1 | sed -n "s/^product: //p"); act "fastboot present: product=$PR" + [ "$PR" = lk1st-msm8916 ] || { act "ABORT: not the lk1st fastboot (product=$PR) - power-cycle with RESET held"; exit 1; } + { fastboot boot $IMG 2>&1; echo "rc=$?"; } | tee -a $A +else + act "B9L $MODE$K: waiting for the board to go away (power off >= 90 s), then normal power-on WITHOUT RESET" + until ! ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do sleep 1; done; act "board unreachable (powered off)" + until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do fastboot devices 2>/dev/null | grep -q && { act "ABORT: board is in fastboot - RESET was held?"; exit 1; }; sleep 1; done +fi +i=0; until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do i=$((i+1)); [ $i -ge 180 ] && { act "ABORT: NCM not up"; cp $U.log $O/uart.log; exit 1; }; sleep 1; done; act "NCM ping ok" +R=$(grep -a "rtc-pm8xxx.*setting system clock" $U.log | tail -1 | sed -n 's/.*(\([0-9]*\)).*/\1/p'); C=B; [ -n "$R" ] && [ "$R" -lt 40 ] && C=A; act "RTC at boot ${R:-?} s -> class $C" +printf 'cat /proc/device-tree/model; echo; uname -r; 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 +tn $O/.w 3 | grep -aE "Aurora|aurora-b8|START OK|FAIL" | tee -a $A +printf 'grep -E "AP ENABLED|FAIL" /run/aurora-wifi/wifi.log | tail -1\n' > $O/.a +i=0; until tn $O/.a 3 | grep -qE "^\[[0-9.]+\] (=== AP ENABLED|FAIL)"; do i=$((i+1)); [ $i -ge 20 ] && { act "no AP ENABLED/FAIL after ~3 min"; break; }; sleep 6; done +act "wifi: $(tn $O/.a 3 | grep -E '^\[[0-9.]+\] (=== AP ENABLED|FAIL)' | tail -1)" +printf 'grep -E "SNTP (check|STEP|: )" /run/aurora-modem/lifecycle.log | tail -2\n' > $O/.s +i=0; until tn $O/.s 3 | grep -qE "^\[[0-9.]+\] SNTP"; do i=$((i+1)); [ $i -ge 15 ] && break; sleep 4; done; act "sntp: $(tn $O/.s 3 | grep -E '^\[[0-9.]+\] SNTP' | tail -2 | tr '\n' ' ')" +cat > $O/.c <<'C' +echo SNAP-BEGIN; cat /proc/uptime; date -u; cat /proc/device-tree/model; echo; uname -a; cat /proc/cmdline +echo ---time; cat /run/aurora-modem/time-set; grep -E "TIME|SNTP" /run/aurora-modem/lifecycle.log | tail -4 +echo ---modem; /etc/init.d/aurora-modem status +echo ---wifi; /etc/init.d/aurora-wifi status; echo ---wifilog; cat /run/aurora-wifi/wifi.log; cat /run/aurora-wifi/service.log; echo ---hostapdlog; cat /run/aurora-wifi/hostapd.log +for r in /sys/class/remoteproc/*; do echo "RP $(cat $r/name)=$(cat $r/state)"; done; iw dev +echo ---dmesg-wifi; dmesg | grep -iE "wcn36xx|wcnss|a204000|cfg80211|aurora-wifi|crash|watchdog" +echo ---ping; ping -c4 -W3 -I wwan0 77.88.8.8 | tail -2 +echo ---display; /etc/init.d/aurora-display status; cat /run/aurora-display/display.log; cat /run/aurora-display/service.log +echo ---consoles; cat /sys/class/tty/console/active; for v in /sys/class/vtconsole/vtcon*; do echo "$v $(cat $v/bind) $(cat $v/name)"; done; ls -l /proc/[0-9]*/fd/0 2>/dev/null | grep -E "ttyMSM0|tty1|console" | sed "s/.* \/proc/\/proc/" +echo ---getty; hostname; ps | grep -E "[g]etty|[c]ttyhack| sh$" +echo ---fb; ls -l /dev/dri/card0 /dev/fb0; for f in name bits_per_pixel virtual_size stride; do echo "fb0 $f=$(cat /sys/class/graphics/fb0/$f)"; done; cat /sys/class/drm/card0-SPI-1/enabled /sys/class/drm/card0-SPI-1/dpms +echo ---regs; for r in /sys/class/regulator/regulator.*; do n=$(cat $r/name); case $n in l6|l17) echo "$n $(cat $r/state) $(cat $r/microvolts) users=$(cat $r/num_users)";; esac; done +echo ---bl; for f in bl_power brightness actual_brightness; do echo "bl $f=$(cat /sys/class/backlight/backlight/$f)"; done +echo ---dmesg-display; dmesg | grep -iE "drm|panel|mipi|spi_qup|78b8000|fbcon|Console: |frame buffer|backlight|aurora-display|l17" +echo ---display-errors; dmesg | grep -iE "drm|panel|mipi|spi0|fbcon|backlight|aurora-display" | grep -ciE "err|fail|timeout|warn" +echo ---emmc; awk "{print \"w=\"\$5\" s=\"\$7}" /sys/block/mmcblk0/stat +echo SNAP-END +C +tn $O/.c 25 > $O/snapshot.txt; act "snapshot: $(grep -c SNAP-END $O/snapshot.txt) end markers; $(grep -E '^RP a204' $O/snapshot.txt)" +printf 'dmesg > /tmp/dm.txt; nc -l -p 9881 < /tmp/dm.txt &\n' > $O/.d; tn $O/.d 3 >/dev/null; sleep 1; ncat --recv-only 172.16.42.1 9881 > $O/dmesg.full +cp $U.log $O/uart.log; act "B9L $MODE$K END - operator visual check next" diff --git a/b9/b9l/lk2nd-23.1-aurora-b9l.patch b/b9/b9l/lk2nd-23.1-aurora-b9l.patch new file mode 100644 index 0000000..cd2c5e3 --- /dev/null +++ b/b9/b9l/lk2nd-23.1-aurora-b9l.patch @@ -0,0 +1,411 @@ +diff --git a/lk2nd/aurora/rules.mk b/lk2nd/aurora/rules.mk +new file mode 100644 +index 00000000..3c97f9cd +--- /dev/null ++++ b/lk2nd/aurora/rules.mk +@@ -0,0 +1,9 @@ ++# SPDX-License-Identifier: BSD-3-Clause ++# Aurora B9L (RAM test only): ST7735S SPI panel bring-up for the JZ08AU board (msm8916), stock-LK parameters. ++# Uses the CAF spi_qup driver directly; platform/msm_shared/mdss_spi.o is deliberately NOT built (it is hard-wired ++# to QM215/msm8909 and its presence would pull in lk2nd/device/2nd/spi-display.o, which dereferences a NULL panel.intf). ++LOCAL_DIR := $(GET_LOCAL_DIR) ++ ++OBJS += \ ++ platform/msm_shared/spi_qup.o \ ++ $(LOCAL_DIR)/st7735s.o \ +diff --git a/lk2nd/aurora/st7735s.c b/lk2nd/aurora/st7735s.c +new file mode 100644 +index 00000000..8bfaeae3 +--- /dev/null ++++ b/lk2nd/aurora/st7735s.c +@@ -0,0 +1,203 @@ ++// SPDX-License-Identifier: BSD-3-Clause ++/* ++ * Aurora JZ08AU (msm8916) ST7735S 128x128 SPI panel bring-up — B9L RAM test only. ++ * Every parameter is taken from the stock Aurora LK (aboot) analysis (logs/b9/b9a, logs/b9/lk): ++ * BLSP1 QUP4 (0x78b8000), 16 MHz, SPI mode 3 (CLK_IDLE_HIGH, INPUT_FIRST=0), CS0, TX only; ++ * D/C = GPIO116, RESET = GPIO118 (1, 0 for 1 ms, 1, wait 120 ms); the 19 stock init commands (ending with RAMWR); ++ * one RGB565 frame (16-bit words); backlight = PM8916 MPP4 current sink 40 mA (MODE 0x61, SINK 7, EN 0x80). ++ * No regulator is touched (stock LK has no regulator code either); L6/L17 state is only read and logged. ++ * The display is NOT registered with fbcon, so lk2nd's own display code cannot draw over the test frame. ++ */ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++#define DC_GPIO 116 ++#define RST_GPIO 118 ++#define W 128 ++#define H 128 ++ ++#define TLMM_CFG(n) (TLMM_BASE_ADDR + 0x1000 * (n)) ++#define TLMM_IO(n) (TLMM_BASE_ADDR + 0x1000 * (n) + 4) ++ ++static struct qup_spi_dev *dev; ++ ++/* stock LK table @0x8f64849c == stock dtb_01 qcom,mdss-spi-on-command (b9/b9a/decode-panel.py) */ ++static const struct { uint8_t len, wait; uint8_t d[17]; } cmds[] = { ++ { 1, 120, { 0x11 } }, ++ { 4, 0, { 0xb1, 0x05, 0x3a, 0x3a } }, ++ { 4, 0, { 0xb2, 0x05, 0x3a, 0x3a } }, ++ { 7, 0, { 0xb3, 0x05, 0x3a, 0x3a, 0x05, 0x3a, 0x3a } }, ++ { 2, 0, { 0xb4, 0x03 } }, ++ { 4, 0, { 0xc0, 0x62, 0x02, 0x04 } }, ++ { 2, 0, { 0xc1, 0xc0 } }, ++ { 3, 0, { 0xc2, 0x0d, 0x00 } }, ++ { 3, 0, { 0xc3, 0x8d, 0x6a } }, ++ { 3, 0, { 0xc4, 0x8d, 0xee } }, ++ { 2, 0, { 0xc5, 0x12 } }, ++ { 17, 0, { 0xe0, 0x03, 0x1b, 0x12, 0x11, 0x3f, 0x3a, 0x32, 0x34, 0x2f, 0x2b, 0x30, 0x3a, 0x00, 0x01, 0x02, 0x05 } }, ++ { 17, 0, { 0xe1, 0x03, 0x1b, 0x12, 0x11, 0x32, 0x2f, 0x2a, 0x2f, 0x2e, 0x2c, 0x35, 0x3f, 0x00, 0x00, 0x01, 0x05 } }, ++ { 2, 0, { 0x36, 0xc8 } }, ++ { 2, 0, { 0x3a, 0x05 } }, ++ { 5, 0, { 0x2a, 0x00, 0x02, 0x00, 0x81 } }, ++ { 5, 0, { 0x2b, 0x00, 0x03, 0x00, 0x82 } }, ++ { 1, 0, { 0x29 } }, ++ { 1, 0, { 0x2c } }, ++}; ++ ++static unsigned t0; ++#define LOG(fmt, ...) dprintf(INFO, "[B9L +%u ms] " fmt "\n", (unsigned)(current_time() - t0), ##__VA_ARGS__) ++ ++static int spi_cmd(uint8_t c) ++{ ++ int ret; ++ dev->bytes_per_word = 1; ++ dev->bit_shift_en = 1; ++ gpio_set_dir(DC_GPIO, 0); /* D/C low = command */ ++ ret = spi_qup_write(dev, &c, 1); ++ gpio_set_dir(DC_GPIO, 2); ++ return ret; ++} ++ ++static int spi_data(const uint8_t *b, unsigned len) ++{ ++ dev->bytes_per_word = 1; ++ dev->bit_shift_en = 1; ++ gpio_set_dir(DC_GPIO, 2); /* D/C high = parameters */ ++ return spi_qup_write(dev, b, len); ++} ++ ++static int spi_frame(const uint8_t *b, unsigned len) ++{ ++ dev->bytes_per_word = 2; /* RGB565, little-endian u16 in memory, sent MSB first (as stock LK) */ ++ dev->bit_shift_en = 1; ++ dev->unpack_en = 0; ++ gpio_set_dir(DC_GPIO, 2); ++ return spi_qup_write(dev, b, len); ++} ++ ++static uint16_t rgb(uint8_t r, uint8_t g, uint8_t b) ++{ ++ return (r >> 3) << 11 | (g >> 2) << 5 | b >> 3; ++} ++ ++/* same chart as the Linux B9B test: 1-px white border, R/G/B/W corners, R|G|B bars, yellow arrow up */ ++static void draw_geo(uint16_t *p) ++{ ++ const uint16_t R = rgb(255, 0, 0), G = rgb(0, 255, 0), B = rgb(0, 0, 255), Wh = rgb(255, 255, 255), Y = rgb(255, 255, 0); ++ int x, y; ++ ++ for (y = 0; y < H; y++) ++ for (x = 0; x < W; x++) { ++ uint16_t c = 0; ++ int ax = x * 2 - 127; /* 2*(x - 63.5) */ ++ if (x == 0 || x == W - 1 || y == 0 || y == H - 1) ++ c = Wh; ++ else if (x >= 2 && x < 26 && y >= 2 && y < 26) ++ c = R; ++ else if (x >= W - 26 && x < W - 2 && y >= 2 && y < 26) ++ c = G; ++ else if (x >= 2 && x < 26 && y >= H - 26 && y < H - 2) ++ c = B; ++ else if (x >= W - 26 && x < W - 2 && y >= H - 26 && y < H - 2) ++ c = Wh; ++ else if (y >= 40 && y < 88 && x >= 28 && x < 100) ++ c = (x - 28) < 24 ? R : (x - 28) < 48 ? G : B; ++ else if (y >= 6 && y < 22 && (ax < 0 ? -ax : ax) <= (y - 6)) ++ c = Y; ++ else if (y >= 22 && y < 34 && x >= 58 && x < 70) ++ c = Y; ++ p[y * W + x] = c; ++ } ++} ++ ++static void log_power(const char *when) ++{ ++ /* PM8916 SID1: LDO6 0x4500, LDO17 0x5000 (08 STATUS, 46 EN_CTL); SID0: MPP4 0xa300 (40 MODE, 46 EN, 4c SINK) */ ++ LOG("%s: L6 st=%02x en=%02x L17 st=%02x en=%02x vset=%02x MPP4 mode=%02x en=%02x sink=%02x", when, ++ pm8x41_reg_read(0x14508), pm8x41_reg_read(0x14546), ++ pm8x41_reg_read(0x15008), pm8x41_reg_read(0x15046), pm8x41_reg_read(0x15041), ++ pm8x41_reg_read(0xa340), pm8x41_reg_read(0xa346), pm8x41_reg_read(0xa34c)); ++} ++ ++static void log_hw(const char *when) ++{ ++ LOG("%s: TLMM cfg/io 12=%x/%x 13=%x 14=%x 15=%x 116=%x/%x 118=%x/%x QUP4 spi CBCR=%08x RCGR=%08x/%08x", when, ++ readl(TLMM_CFG(12)), readl(TLMM_IO(12)), readl(TLMM_CFG(13)), readl(TLMM_CFG(14)), readl(TLMM_CFG(15)), ++ readl(TLMM_CFG(DC_GPIO)), readl(TLMM_IO(DC_GPIO)), readl(TLMM_CFG(RST_GPIO)), readl(TLMM_IO(RST_GPIO)), ++ readl(CLK_CTL_BASE + 0x501C), readl(CLK_CTL_BASE + 0x5024), readl(CLK_CTL_BASE + 0x5028)); ++} ++ ++static void aurora_st7735s_init(void) ++{ ++ uint16_t *fb; ++ unsigned i, fails = 0; ++ int ret; ++ ++ t0 = current_time(); ++ LOG("ST7735S bring-up start (stock Aurora parameters)"); ++ log_power("before"); ++ log_hw("before"); ++ ++ /* RESET GPIO118: func0 out 8 mA, OE; 1 -> 1 ms -> 0 -> 1 ms -> 1 -> 120 ms (stock target_panel_reset) */ ++ gpio_tlmm_config(RST_GPIO, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA, 1); ++ gpio_set_dir(RST_GPIO, 2); mdelay(1); ++ gpio_set_dir(RST_GPIO, 0); mdelay(1); ++ gpio_set_dir(RST_GPIO, 2); mdelay(120); ++ LOG("reset done (GPIO118 high)"); ++ ++ dev = qup_blsp_spi_init(BLSP_ID_1, QUP_ID_3); ++ if (!dev) { ++ LOG("FAIL: qup_blsp_spi_init(BLSP1, QUP_ID_3)"); ++ return; ++ } ++ dev->force_cs_dis = 1; /* stock SPI_IO_CONTROL = 0x401: NO_TRI_STATE | CLK_IDLE_HIGH, CS0, no FORCE_CS */ ++ /* D/C GPIO116: func0 out 8 mA, OE (stock) */ ++ gpio_tlmm_config(DC_GPIO, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA, 1); ++ gpio_set_dir(DC_GPIO, 2); ++ LOG("QUP4 SPI init done: base=0x%x", dev->qup_base); ++ log_hw("after QUP init"); ++ ++ for (i = 0; i < sizeof(cmds) / sizeof(cmds[0]); i++) { ++ ret = spi_cmd(cmds[i].d[0]); ++ if (!ret && cmds[i].len > 1) ++ ret = spi_data(&cmds[i].d[1], cmds[i].len - 1); ++ if (ret) { ++ fails++; ++ LOG("cmd %u (0x%02x) FAILED ret=%d", i, cmds[i].d[0], ret); ++ } ++ if (cmds[i].wait) ++ mdelay(cmds[i].wait); ++ } ++ LOG("19 init commands sent, %u failures; SPI_IO_CONTROL=%x SPI_CONFIG=%x", fails, ++ readl(dev->qup_base + SPI_IO_CONTROL), readl(dev->qup_base + SPI_CONFIG)); ++ ++ fb = memalign(64, W * H * 2); ++ if (!fb) { ++ LOG("FAIL: no memory for frame"); ++ return; ++ } ++ draw_geo(fb); ++ ret = spi_frame((const uint8_t *)fb, W * H * 2); ++ LOG("frame %ux%u RGB565 (%u bytes) sent ret=%d (fb @%p)", W, H, W * H * 2, ret, fb); ++ ++ /* backlight: PM8916 MPP4 current sink, exactly the stock LK target_backlight_ctrl writes */ ++ pm8x41_reg_write(0xa340, 0x61); ++ pm8x41_reg_write(0xa34c, 0x07); ++ pm8x41_reg_write(0xa346, 0x80); ++ mdelay(20); ++ log_power("after backlight"); ++ log_hw("end"); ++ LOG("ST7735S bring-up end - continuing lk2nd boot"); ++} ++LK2ND_INIT(aurora_st7735s_init); +diff --git a/platform/msm8916/acpuclock.c b/platform/msm8916/acpuclock.c +index 158ab395..b7533e6c 100644 +--- a/platform/msm8916/acpuclock.c ++++ b/platform/msm8916/acpuclock.c +@@ -529,3 +529,39 @@ void clock_config_blsp_i2c(uint8_t blsp_id, uint8_t qup_id) + return; + } + } ++ ++/* ++ * Aurora B9L: SPI core clock, copied from msm8909 acpuclock.c. The CAF spi_qup driver always asks for MAX_SPEED_HZ ++ * (50 MHz, qup.h); the Aurora ST7735S panel runs at 16 MHz in stock LK (gcc_blsp1_qup4_spi_apps_clk = 16000000), ++ * so the rate is clamped here. ++ */ ++#define AURORA_SPI_MAX_HZ 16000000 ++void clock_config_blsp_spi(uint8_t blsp_id, uint8_t qup_id, unsigned long rate) ++{ ++ uint8_t ret = 0; ++ char clk_name[64]; ++ ++ qup_id = qup_id + 1; ++ ++ if (blsp_id != BLSP_ID_1) { ++ dprintf(CRITICAL, "Incorrect BLSP-%d configuration\n", blsp_id); ++ ASSERT(0); ++ } ++ if (rate > AURORA_SPI_MAX_HZ) ++ rate = AURORA_SPI_MAX_HZ; ++ ++ snprintf(clk_name, sizeof(clk_name), "blsp1_ahb_iface_clk"); ++ ret = clk_get_set_enable(clk_name, 0, 1); ++ if (ret) { ++ dprintf(CRITICAL, "%s: Failed to enable %s clock\n", __func__, clk_name); ++ return; ++ } ++ ++ snprintf(clk_name, sizeof(clk_name), "gcc_blsp1_qup%u_spi_apps_clk", qup_id); ++ ret = clk_get_set_enable(clk_name, rate, 1); ++ if (ret) { ++ dprintf(CRITICAL, "%s: Failed to enable %s\n", __func__, clk_name); ++ return; ++ } ++ dprintf(INFO, "B9L: %s enabled at %lu Hz\n", clk_name, rate); ++} +diff --git a/platform/msm8916/gpio.c b/platform/msm8916/gpio.c +index 145b81ce..2912792b 100644 +--- a/platform/msm8916/gpio.c ++++ b/platform/msm8916/gpio.c +@@ -26,6 +26,7 @@ + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + ++#include + #include + #include + #include +@@ -99,3 +100,19 @@ void gpio_config_blsp_i2c(uint8_t blsp_id, uint8_t qup_id) + ASSERT(0); + } + } ++ ++/* ++ * Aurora B9L: BLSP1 QUP4 (QUP_ID_3, 0x78b8000) SPI pins as in stock Aurora dtb_01 spi0_active/spi0_cs0_active: ++ * GPIO12 MOSI, GPIO13 MISO, GPIO15 CLK func 1, 12 mA, no pull; GPIO14 CS0 func 1 (native chip select), 2 mA, no pull. ++ */ ++void gpio_config_blsp_spi(uint8_t blsp_id, uint8_t qup_id) ++{ ++ if (blsp_id != BLSP_ID_1 || qup_id != QUP_ID_3) { ++ dprintf(CRITICAL, "Unsupported BLSP-%d QUP-%d SPI pin configuration\n", blsp_id, qup_id); ++ ASSERT(0); ++ } ++ gpio_tlmm_config(12, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_12MA, GPIO_DISABLE); ++ gpio_tlmm_config(13, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_12MA, GPIO_DISABLE); ++ gpio_tlmm_config(14, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_2MA, GPIO_DISABLE); ++ gpio_tlmm_config(15, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_12MA, GPIO_DISABLE); ++} +diff --git a/platform/msm8916/include/platform/clock.h b/platform/msm8916/include/platform/clock.h +index fab62591..c0f00312 100644 +--- a/platform/msm8916/include/platform/clock.h ++++ b/platform/msm8916/include/platform/clock.h +@@ -95,4 +95,5 @@ void gcc_dsi_clocks_disable(uint8_t dual_dsi); + void clock_ce_enable(uint8_t instance); + void clock_ce_disable(uint8_t instance); + void clock_config_blsp_i2c(uint8_t blsp_id, uint8_t qup_id); ++void clock_config_blsp_spi(uint8_t blsp_id, uint8_t qup_id, unsigned long rate); + #endif +diff --git a/platform/msm8916/include/platform/gpio.h b/platform/msm8916/include/platform/gpio.h +index 0437aff4..ec4d5859 100644 +--- a/platform/msm8916/include/platform/gpio.h ++++ b/platform/msm8916/include/platform/gpio.h +@@ -70,4 +70,5 @@ void gpio_tlmm_config(uint32_t gpio, + uint8_t drvstr, + uint32_t enable); + void gpio_config_blsp_i2c(uint8_t blsp_id, uint8_t qup_id); ++void gpio_config_blsp_spi(uint8_t blsp_id, uint8_t qup_id); + #endif +diff --git a/platform/msm8916/include/platform/iomap.h b/platform/msm8916/include/platform/iomap.h +index 86a804bb..9e9e09d0 100644 +--- a/platform/msm8916/include/platform/iomap.h ++++ b/platform/msm8916/include/platform/iomap.h +@@ -126,6 +126,13 @@ + #define GCC_BLSP1_QUP4_APPS_CBCR (CLK_CTL_BASE + 0x5020) + #define GCC_BLSP1_QUP4_CFG_RCGR (CLK_CTL_BASE + 0x5004) + #define GCC_BLSP1_QUP4_CMD_RCGR (CLK_CTL_BASE + 0x5000) ++/* Aurora B9L: BLSP1 QUP4 SPI clock (== msm8909 CAF, == Linux gcc-msm8916 0x5024/0x501c) */ ++#define GCC_BLSP1_QUP4_SPI_APPS_CBCR (CLK_CTL_BASE + 0x501C) ++#define GCC_BLSP1_QUP4_SPI_APPS_CMD_RCGR (CLK_CTL_BASE + 0x5024) ++#define GCC_BLSP1_QUP4_SPI_CFG_RCGR (CLK_CTL_BASE + 0x5028) ++#define GCC_BLSP1_QUP4_SPI_APPS_M (CLK_CTL_BASE + 0x502C) ++#define GCC_BLSP1_QUP4_SPI_APPS_N (CLK_CTL_BASE + 0x5030) ++#define GCC_BLSP1_QUP4_SPI_APPS_D (CLK_CTL_BASE + 0x5034) + + /* GPLL */ + #define GPLL0_STATUS (CLK_CTL_BASE + 0x2101C) +diff --git a/platform/msm8916/msm8916-clock.c b/platform/msm8916/msm8916-clock.c +index a1b4b773..bec650a2 100644 +--- a/platform/msm8916/msm8916-clock.c ++++ b/platform/msm8916/msm8916-clock.c +@@ -587,6 +587,45 @@ static struct branch_clk gcc_blsp1_qup4_i2c_apps_clk = { + }, + }; + ++/* Aurora B9L: BLSP1 QUP4 SPI clock, copied from msm8909-clock.c (freq table == Linux gcc-msm8916) */ ++static struct clk_freq_tbl ftbl_gcc_blsp1_qup4_spi_apps_clk[] = { ++ F( 960000, cxo, 10, 1, 2), ++ F( 4800000, cxo, 4, 0, 0), ++ F( 9600000, cxo, 2, 0, 0), ++ F( 16000000, gpll0, 10, 1, 5), ++ F( 19200000, cxo, 1, 0, 0), ++ F( 25000000, gpll0, 16, 1, 2), ++ F( 50000000, gpll0, 16, 0, 0), ++ F_END ++}; ++ ++static struct rcg_clk gcc_blsp1_qup4_spi_apps_clk_src = ++{ ++ .cmd_reg = (uint32_t *) GCC_BLSP1_QUP4_SPI_APPS_CMD_RCGR, ++ .cfg_reg = (uint32_t *) GCC_BLSP1_QUP4_SPI_CFG_RCGR, ++ .m_reg = (uint32_t *) GCC_BLSP1_QUP4_SPI_APPS_M, ++ .n_reg = (uint32_t *) GCC_BLSP1_QUP4_SPI_APPS_N, ++ .d_reg = (uint32_t *) GCC_BLSP1_QUP4_SPI_APPS_D, ++ .set_rate = clock_lib2_rcg_set_rate_mnd, ++ .freq_tbl = ftbl_gcc_blsp1_qup4_spi_apps_clk, ++ .current_freq = &rcg_dummy_freq, ++ ++ .c = { ++ .dbg_name = "gcc_blsp1_qup4_spi_apps_clk_src", ++ .ops = &clk_ops_rcg, ++ }, ++}; ++ ++static struct branch_clk gcc_blsp1_qup4_spi_apps_clk = { ++ .cbcr_reg = (uint32_t *) GCC_BLSP1_QUP4_SPI_APPS_CBCR, ++ .parent = &gcc_blsp1_qup4_spi_apps_clk_src.c, ++ ++ .c = { ++ .dbg_name = "gcc_blsp1_qup4_spi_apps_clk", ++ .ops = &clk_ops_branch, ++ }, ++}; ++ + /* Need different gpll0 source value for CPU clocks */ + #undef gpll0_source_val + #define gpll0_source_val 4 +@@ -678,6 +717,9 @@ static struct clk_lookup msm_clocks_8916[] = + CLK_LOOKUP("gcc_blsp1_qup2_i2c_apps_clk", gcc_blsp1_qup2_i2c_apps_clk.c), + + CLK_LOOKUP("blsp1_qup4_ahb_iface_clk", gcc_blsp1_ahb_clk.c), ++ CLK_LOOKUP("blsp1_ahb_iface_clk", gcc_blsp1_ahb_clk.c), /* Aurora B9L: name used by clock_config_blsp_spi */ ++ CLK_LOOKUP("gcc_blsp1_qup4_spi_apps_clk_src", gcc_blsp1_qup4_spi_apps_clk_src.c), ++ CLK_LOOKUP("gcc_blsp1_qup4_spi_apps_clk", gcc_blsp1_qup4_spi_apps_clk.c), + CLK_LOOKUP("gcc_blsp1_qup4_i2c_apps_clk_src", gcc_blsp1_qup4_i2c_apps_clk_src.c), + CLK_LOOKUP("gcc_blsp1_qup4_i2c_apps_clk", gcc_blsp1_qup4_i2c_apps_clk.c), + +diff --git a/project/lk2nd-msm8916.mk b/project/lk2nd-msm8916.mk +index 192ae770..88c41f4d 100644 +--- a/project/lk2nd-msm8916.mk ++++ b/project/lk2nd-msm8916.mk +@@ -1,3 +1,8 @@ + # SPDX-License-Identifier: BSD-3-Clause + TARGET := msm8916 + include lk2nd/project/lk2nd.mk ++ ++# Aurora B9L (RAM test only): ST7735S SPI panel bring-up module ++ifeq ($(AURORA_SPI_PANEL),1) ++MODULES += lk2nd/aurora ++endif diff --git a/b9/b9l/splash/mk-splash.py b/b9/b9l/splash/mk-splash.py new file mode 100644 index 0000000..2c744d8 --- /dev/null +++ b/b9/b9l/splash/mk-splash.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python3 +"""B9L: convert a 128x128 PNG to the LK splash: RGB565 little-endian u16 (same format as the stock Aurora LK logo +@0x8f64b004), emitted as a C header for lk2nd/aurora. Alpha is composited over black (stop if the image is not 128x128). +Also writes a 2x preview PNG rendered back from the RGB565 data. usage: mk-splash.py in.png out.h preview.png""" +import struct, sys +from PIL import Image +im = Image.open(sys.argv[1]) +if im.size != (128, 128): + sys.exit(f'STOP: image is {im.size}, need 128x128') +bg = Image.new('RGBA', im.size, (0, 0, 0, 255)) +rgb = Image.alpha_composite(bg, im.convert('RGBA')).convert('RGB') +px = list(rgb.getdata()) +words = [(r >> 3) << 11 | (g >> 2) << 5 | b >> 3 for r, g, b in px] +with open(sys.argv[2], 'w') as f: + f.write('/* Generated by b9/b9l/splash/mk-splash.py from %s: 128x128 RGB565 (LE u16 in memory) */\n' % sys.argv[1].split('/')[-1]) + f.write('static const uint16_t aurora_splash[128 * 128] = {\n') + for i in range(0, len(words), 12): + f.write('\t' + ', '.join('0x%04x' % w for w in words[i:i + 12]) + ',\n') + f.write('};\n') +prev = Image.new('RGB', (128, 128)) +prev.putdata([((w >> 11) * 255 // 31, (w >> 5 & 63) * 255 // 63, (w & 31) * 255 // 31) for w in words]) +prev.resize((256, 256), Image.NEAREST).save(sys.argv[3]) +open(sys.argv[2] + '.bin', 'wb').write(b''.join(struct.pack(' +#include "msm8916-pm8916.dtsi" /* + RPM regulators (USB PHY L7/L13) */ + +/ { + model = "JZ08AU Aurora (RAM boot B9B)"; + compatible = "jz08au,aurora", "qcom,msm8916"; + chassis-type = "embedded"; + + aliases { + serial0 = &blsp_uart2; + mmc0 = &sdhc_1; /* eMMC */ + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + /* + * B8B: WCNSS/Pronto carve-out at the stock Aurora address. Stock dtb_01 "peripheral_mem" + * (pronto PIL region) = 0x8b600000 size 0x600000; wcnss.mdt is linked at 0x8b600000. + * Directly follows mpss_mem (0x86800000 + 0x4e00000 = 0x8b600000) -> no overlap. + * Same fixed-address pattern as upstream msm8916-longcheer-l8150.dts. + */ + reserved-memory { + /delete-node/ wcnss; + + wcnss_mem: wcnss@8b600000 { + reg = <0x0 0x8b600000 0x0 0x600000>; + no-map; + }; + }; +}; + +&blsp_uart2 { + pinctrl-0 = <&blsp_uart2_console_default>; + pinctrl-1 = <&blsp_uart2_console_sleep>; + pinctrl-names = "default", "sleep"; + status = "okay"; +}; + +/* --- RAM boot MODEM1 safety: no SD slot, no Wi-Fi, no modem data plane --- */ +/* sdhc_1 (eMMC): enabled below, READ-ONLY enforced by initramfs (blockdev --setro) */ +&sdhc_2 { status = "disabled"; }; +/* usb: see peripheral block below */ +/* mpss: enabled below */ +&bam_dmux { status = "okay"; }; /* B4b1: data-plane mux driver (no bearer) */ +&bam_dmux_dma { status = "okay"; }; +/* wcnss: enabled below (B8B) */ + +/* + * USB peripheral only (ChipIdea ci-hdrc + qcom,usb-hs-phy-msm8916, upstream bindings). + * Stock Aurora: HSUSB_1p8 = L7 1.8 V, HSUSB_3p3 = L13 3.075 V, otg-control = 2 (PMIC VBUS detect), + * PHY init-seq identical to upstream. VBUS detect via PM8916 USB_IN (as on JZ02). No host, no role switch. + */ +&pm8916_usbin { + status = "okay"; +}; + +&usb { + dr_mode = "peripheral"; + extcon = <&pm8916_usbin>; + status = "okay"; +}; + +&usb_hs_phy { + extcon = <&pm8916_usbin>; +}; + +/* + * Internal eMMC (stock: bootdevice=7824900.sdhci, qcom,bus-width 8, nonremovable, + * vdd = 8916_l8 2.85-2.9 V, vdd-io = 8916_l5 1.8 V). Upstream msm8916.dtsi already provides + * bus-width = <8>, non-removable, mmc-ddr-1_8v (no HS200 = conservative), sdc1 pinctrl; + * msm8916-pm8916.dtsi provides vmmc = pm8916_l8, vqmmc = pm8916_l5. Only enable it here. + */ +&sdhc_1 { + status = "okay"; +}; + +/* + * MPSS (modem) remoteproc, native Aurora firmware from the RO-mounted modem FAT. + * mpss_mem: stock Aurora "modem_adsp_region" base 0x86800000 size 78 MiB (0x4e00000); + * Aurora modem.mdt load span 0x86800000..0x8b300000 (75 MiB), same as stock PIL log. + * mba_mem: upstream dynamic 1 MiB. pll-supply (pm8916_l7), cx/mx rpmpd from msm8916(-pm8916).dtsi. + * Driver has auto_boot = false: MSS starts only when rmtfs (-s) requests it. + * BAM-DMUX stays disabled (no data plane at this stage). + */ +&mba_mem { + status = "okay"; +}; + +&mpss_mem { + reg = <0x0 0x86800000 0x0 0x4e00000>; + status = "okay"; +}; + +&mpss { + pinctrl-0 = <&sim_ctrl_default>; + pinctrl-names = "default"; + status = "okay"; +}; + +/* + * SIM routing as found on stock Aurora (dtb_01 gpio-leds default-state and live + * Android /sys/kernel/debug/gpio): gpio1 (sim3_switch) high, gpio20 (sim_hotdet), + * gpio22 (sim1_switch), gpio23 (sim2_switch) low. Passive routing only. + */ +&tlmm { + sim_ctrl_default: sim-ctrl-default-state { + sim-low-pins { + pins = "gpio20", "gpio22", "gpio23"; + function = "gpio"; + bias-disable; + output-low; + }; + + sim-high-pins { + pins = "gpio1"; + function = "gpio"; + bias-disable; + output-high; + }; + }; +}; + +/* + * B8B: Pronto (WCNSS) remoteproc + Iris RF. Firmware = default "wcnss.mdt" from /firmware/image (RO FAT). + * Supplies come from msm8916-pm8916.dtsi and match stock dtb_01: vddpx/vddxo = L7 1.8 V, vddrfa = S3, + * vddpa = L9 3.3 V, vdddig = L5 1.8 V. + * Iris compatible: stock DT has none (generic qcom,wcnss_wlan + qcom,has-autodetect-xo). Stock voltages exclude + * WCN3660 (vddpa 2.9-3.0 V, vdddig 1.2 V); WCN3620 vs WCN3680 have identical vregs (differ in 48 MHz XO); + * stock Pronto FW caps lack DOT11AC -> WCN3620 (controlled hypothesis, see logs/b8/b8b). + * WLAN/cfg80211/wcn36xx are NOT in this kernel; wcnss_ctrl NV download is expected to fail (no NV in rootfs). + */ +&wcnss { + status = "okay"; +}; + +&wcnss_iris { + compatible = "qcom,wcn3620"; +}; + +/* + * B9B: built-in display, reconstructed from stock Aurora LK (aboot) + stock dtb_01 (logs/b9/b9a/B9A-RESULT.md). + * Panel: ST7735S 128x128 on BLSP1 QUP4 (spi@78b8000), MIPI-DBI type C 4-wire: GPIO12 MOSI, 13 MISO, 14 CS0 (native), 15 CLK; + * D/C = GPIO116 (stock "disp_dc"), RESET = GPIO118 (stock "disp_rst_n"). Stock LK: 16 MHz, SPI mode 3, TX only. + * Supplies per stock dtb_01 qcom,mdss_spi: vdd = 8916_l17 2.85 V, vddio = 8916_l6 1.8 V. + * Init sequence = exact stock 19 commands (firmware file jz08au,aurora-st7735s.bin, without trailing RAMWR). + * GRAM offset X=2 / Y=3 (stock CASET 2..129, RASET 3..130) via panel-timing back porches (panel-mipi-dbi convention). + * Backlight: PM8916 MPP4 current sink 40 mA as in stock LK (MODE_CTL 0x61, SINK_CTL 7, EN_CTL 0x80 when on). + * B9B step 1: backlight is NOT linked to the panel -> stays off (MODE_CTL 0x60) until enabled by hand via sysfs after readback. + */ +&pm8916_rpm_regulators { + pm8916_l17: l17 { + regulator-min-microvolt = <2850000>; + regulator-max-microvolt = <2850000>; + }; +}; + +&tlmm { + /* stock spi0_active: gpio12/13/15 func blsp_spi4 12 mA; spi0_cs0_active: gpio14 func blsp_spi4 2 mA (native CS0) */ + blsp_spi4_b9b_default: blsp-spi4-b9b-default-state { + spi-pins { + pins = "gpio12", "gpio13", "gpio15"; + function = "blsp_spi4"; + drive-strength = <12>; + bias-disable; + }; + + cs-pins { + pins = "gpio14"; + function = "blsp_spi4"; + drive-strength = <2>; + bias-disable; + }; + }; + + /* stock pmx_mdss active: gpio116 (D/C) + gpio118 (RESET), func gpio, 8 mA, no bias */ + lcd_b9b_default: lcd-b9b-default-state { + pins = "gpio116", "gpio118"; + function = "gpio"; + drive-strength = <8>; + bias-disable; + }; +}; + +&blsp_spi4 { + pinctrl-0 = <&blsp_spi4_b9b_default>; + pinctrl-1 = <&blsp_spi4_sleep>; + pinctrl-names = "default", "sleep"; + status = "okay"; + + panel@0 { + compatible = "jz08au,aurora-st7735s", "panel-mipi-dbi-spi"; + reg = <0>; + spi-max-frequency = <16000000>; + spi-cpol; + spi-cpha; + write-only; + + dc-gpios = <&tlmm 116 GPIO_ACTIVE_HIGH>; + reset-gpios = <&tlmm 118 GPIO_ACTIVE_HIGH>; /* mipi-dbi drives 0 = in reset, 1 = run */ + pinctrl-0 = <&lcd_b9b_default>; + pinctrl-names = "default"; + + power-supply = <&pm8916_l17>; + io-supply = <&pm8916_l6>; + + format = "r5g6b5"; + width-mm = <26>; /* 1.44" diagonal, square */ + height-mm = <26>; + + panel-timing { + hactive = <128>; + vactive = <128>; + hback-porch = <2>; /* GRAM column offset */ + vback-porch = <3>; /* GRAM row offset */ + clock-frequency = <0>; + hfront-porch = <0>; + vfront-porch = <0>; + hsync-len = <0>; + vsync-len = <0>; + }; + }; +}; + +&pm8916_mpps { + /* MPP4 current sink: mode 6 (sink), source sel 0, SINK_CTL = 7 (40 mA); output-low = sink off at probe */ + lcd_bl_mpp4_default: mpp4-sink-state { + pins = "mpp4"; + function = "sink"; + drive-strength = <7>; + output-low; + }; +}; + +/ { + lcd_backlight: backlight { + compatible = "gpio-backlight"; + gpios = <&pm8916_mpps 4 GPIO_ACTIVE_HIGH>; + pinctrl-0 = <&lcd_bl_mpp4_default>; + pinctrl-names = "default"; + }; +}; diff --git a/logs/b9/b9a/B9A-RESULT.md b/logs/b9/b9a/B9A-RESULT.md new file mode 100644 index 0000000..254136f --- /dev/null +++ b/logs/b9/b9a/B9A-RESULT.md @@ -0,0 +1,106 @@ +# B9A-RESULT — display chain audit (read-only) + +Date: 2026-10-03. Board: Aurora JZ08AU-XPA-7J-R3, running B8F (cache `857c9c30`, kernel `7.2.7-aurora-b8d #7`). +Nothing was changed: no kernel/DT build, no eMMC/cache write, no GPIO/regulator/PMIC/SPI writes, no reboot. +The live snapshot only read sysfs/debugfs and PMIC registers (regmap debugfs reads). eMMC write counter = 0. + +## Main finding + +**This is not a DSI panel and MDP is not used.** The built-in display is a **1.44" 128×128 ST7735S panel on SPI** +(MIPI-DBI type C, 4-wire: SCL/SDA/CS plus a D/C GPIO). It is driven over **BLSP1 QUP4** (`spi@78b8000`, GPIO 12–15). +The backlight is **PM8916 MPP4 used as a 40 mA current sink**. + +**Stock LK fully brings the panel up before Linux:** reset, SPI, 19 init commands, a 128×128 "4G LTE" logo built into LK, then backlight. +It happens about 210 ms after LK starts. LK then passes the panel to the kernel as continuous splash +(`mdss_mdp.panel=1:spi:0:qcom,mdss_spi_st7735s_wx144_128x128_cmd`). +Stock LK is therefore an exact reference, and it matches the stock DT byte for byte. + +## Table + +| Level | Stock | Current Linux | Status | +|---|---|---|---| +| MDP/MDSS | Present (`qcom,mdss_mdp`), used by Android only as a CPU-side fb (`fb0` 128×128, 32 bpp, `memblock-reserve 0x83200000/0xfa0000`). LK writes fb `0x83200000` and copies it over SPI, with no scanout. | `display-subsystem@1a00000` status=disabled, `DRM=n` | **Not needed**: MDP/DSI are not part of the chain | +| DSI | Only `mdss_dsi_sim_video` (simulator) and an empty `mdss_dsi@1a98000`. LK also has a DSI `st7796s_320p` (id 0) that this board never uses. | Disabled | **Not used** | +| "Display controller" = SPI host | BLSP1 QUP4 `0x78b8000`; GPIO12 MOSI, 13 MISO, 14 CS0, 15 CLK (func 1, 12 mA); clock 16 MHz; mode 3 (CPOL=1, CPHA=1); TX only. Kernel: `qcom,mdss_spi` + `mdss_spi_client` @16 MHz. | `spi@78b8000` **status=disabled**, `SPI_QUP=y`, no spi_master, GPIO 12–15 are reset defaults (in, pull-down) | **MISSING (1st point in Linux)** | +| Panel | `st7735s wx144 128x128 command mode spi panel`; in LK `panel_id = 1` is **hardcoded** (no ID read). RGB565 (COLMOD 05), MADCTL `c8` (MY\|MX\|BGR), window col 2..129 / row 3..130. The 19-command init sequence is identical in LK and DT (`b9a-stock-lk.txt` §4). Off: `28`, `10`+120 ms. An alternative `nv3023a_jz05` is in the DT, but LK never selects it. | No panel node, no driver (`DRM_PANEL_MIPI_DBI`/`DRM_ST7735R` not built) | **MISSING** | +| Regulators | Stock kernel: vdd = `8916_l17` 2.85 V, vddio = `8916_l6` 1.8 V. **Stock LK does not touch any regulator** (`target_ldo_ctrl` is a stub; LK has no RPM regulator code). | HW: **L6 ON** (EN 0x80, by SBL/RPM default). **L17 OFF** (EN 0x00, STATUS 0x00). Linux holds neither. | **Open**: is L17 needed for the panel? LK runs without enabling it (see "Open questions") | +| GPIO/reset | RESET = GPIO118 (`disp_rst_n`), D/C = GPIO116 (`disp_dc`), both out, 8 mA. Reset: high 1 ms → low 1 ms → high → 120 ms. No TE, no enable GPIO (LK touches GPIO0 only with OE=0, a CAF leftover). | GPIO116/118: in, pull-down, UNCLAIMED → **panel is held in reset** | **MISSING** | +| Backlight | PM8916 MPP4 current sink: MODE_CTL `0xa340=0x61`, SINK_CTL `0xa34c=0x07` (40 mA), EN `0xa346=0x80`. Turned on after init and the first frame. Android: `qcom,leds-qpnp` MPP4 `lcd-bl` 40 mA (trigger `bkl-trigger`). No PWM/WLED/DCS. | MPP4 regs = 00/00/00 (off), `/sys/class/backlight` empty | **MISSING** | +| DRM/fb | Android: mdss_fb `fb0` (mdssfb_d0000, 128×128, virtual 128×256, 32 bpp). LK: fbcon 16 bpp @`0x83200000`. | `DRM=n`, `FB=n`; no `/dev/dri`, `/dev/fb*`, `/sys/class/drm\|graphics` | **MISSING** | + +## Exact chain (stock → what B9 needs) + +``` +SoC display "controller": BLSP1 QUP4 SPI @0x78b8000 (gcc_blsp1_qup4_spi_apps_clk 16 MHz, mode 3, CS0, GPIO12-15 func1) +→ "DSI host": none. The SPI host itself + D/C GPIO116 = MIPI-DBI type C (4-wire) host +→ panel: ST7735S 128x128 (1.44" "wx144"), GRAM offset (2,3), RGB565, MADCTL 0xc8 +→ reset/power: L6 1.8 V on (default) [L17 2.85 V: stock kernel only, LK does not enable it]; + GPIO118 1→0 (1 ms)→1, wait 120 ms +→ init: SLPOUT +120 ms, FRMCTR1/2/3, INVCTR 03, PWCTR1-5, VMCTR1 12, GMCTRP1/N1, MADCTL c8, COLMOD 05, + CASET 2..129, RASET 3..130, DISPON, RAMWR (+ 128*128*2 B frame, D/C=1) +→ backlight: PM8916 MPP4 current sink 40 mA (0x61/0x07/0x80), after the first frame +→ framebuffer/DRM: in Linux → SPI device + panel-mipi-dbi (or st7735r) → /dev/dri/card0 (+ /dev/fb0 via fbdev emulation) +``` + +### First point where things diverge + +1. **Across the whole boot path, the first divergence is the bootloader.** Stock LK brings up the panel at ~210 ms. + The current lk1st (msm8916 lk2nd tree) has no SPI-panel code: `mdss_spi.o` is only built for msm8909/msm8952. + So the panel is never initialised, and its RESET stays low because of the SoC pull-down. +2. **Within Linux, the first missing link is the SPI host:** `spi@78b8000` is `status = "disabled"`. + Everything after it is also missing: no panel node and no driver, D/C and RESET GPIOs are not described, + there is no MPP4 backlight, and DRM/FB are off. + MDP/DSI do not belong to this chain, so their being disabled is **not** the problem. + +There is no simpledrm/simplefb path: no loader leaves the panel initialised, and an SPI panel has no scanout. +So Linux has to bring the panel up itself, which is what B9 asks for anyway. + +## Open questions (do not block B9B) + +- **L17**: it is off in hardware, while the stock kernel declares it as panel vdd and stock LK never turns it on. + So either SBL1/RPM turn it on during a stock boot (unlikely: SBL1/RPM are still stock now and L17 is off), + or the panel VDD is fed from another rail. **B9B will settle it** by testing with L17 untouched, exactly like LK. +- **Exact glass model**: LK hardcodes ST7735S and does not read an ID. The vendor DT also has `nv3023a_jz05`. + The cable/glass markings are unknown. A visual check in B9B confirms that the ST7735S init works on this glass. + An ID read (RDDID 04h) is possible later if MISO/SDA can actually be read back (LK runs TX-only). +- **Operator question**: on stock firmware, did the "4G LTE" logo appear on the screen at power-on? + (LK's built-in image: `b9a-stock-lk-embedded-logo-128x128.png`, because the stock `splash` partition is all zeros.) + +## Proposed B9B (RAM-only, ONE test) — waiting for GO + +**B9B "first light"**: boot the B8F RAM image via RESET-held power-on + `fastboot boot`. Cache B8F and the eMMC are not touched. + +- Kernel = `out-b8d` + `DRM=y`, `DRM_PANEL_MIPI_DBI=y`, `DRM_FBDEV_EMULATION=y` (+ the `FB` core it needs). + No fbcon, no MSM DRM. +- DTB = B8B DTB plus: + - `&blsp_spi4 { status = "okay"; cs-gpios = <&tlmm 14 GPIO_ACTIVE_LOW>; }` (upstream style; stock used native CS0). + - `panel@0`: `compatible = "aurora,st7735s-wx144", "panel-mipi-dbi-spi"`, `spi-max-frequency = <16000000>`, + `spi-cpol; spi-cpha`, **`write-only`** (LK is TX-only; without it the driver's `mipi_dbi_poweron_conditional_reset` would read DCS 0Ah back over SPI and might skip init because of a garbage readback), `dc-gpios = <&tlmm 116 GPIO_ACTIVE_HIGH>`, `reset-gpios = <&tlmm 118 GPIO_ACTIVE_LOW>`, + `panel-timing` 128×128 with `hback-porch = 2`, `vback-porch = 3` (the GRAM offset), and `backlight = <&lcd_bl>`. + - `lcd_bl`: `gpio-backlight` on `&pm8916_mpps 4` with pinctrl `function = "sink"`, `drive-strength = <7>` + (40 mA, as in LK). + - **No regulator references** (exactly like stock LK). +- initramfs = B8F + `/lib/firmware/aurora,st7735s-wx144.bin`: the stock 19-command sequence minus RAMWR, + in the panel-mipi-dbi format (SLPOUT, then a 120 ms delay, …, MADCTL c8, COLMOD 05, DISPON). + The driver loads `.bin`, and back-porch is used as the GRAM offset (panel-mipi-dbi.c:197, :366-367; checked against the 7.2.7 source). + The driver turns on the backlight right after the init commands; LK does it after the first frame (a small difference, acceptable for B9B). +- Test (read-mostly): check the probe in dmesg, that `/dev/dri/card0` and `/dev/fb0` exist, + and read back MPP4 = 0x61/0x07/0x80 plus GPIO 116/118/12–15. + Then write one static test frame to `/dev/fb0` (colour bars + a corner marker) and **the operator confirms** the image, colours and orientation. + LTE and Wi-Fi must keep working, and eMMC writes must stay 0. +- PASS = a correct image with backlight on, and no LTE/Wi-Fi regressions. + If the screen stays dark or white, the single next variable for B9C is the panel's `power-supply = L17 2.85 V`, as the stock kernel uses. + +STOP. B9B only after a separate GO. + +## Files + +- `b9a-stock-lk.txt` — stock LK: UART evidence, function map, structures, init table, backlight, splash +- `b9a-stock-lk-embedded-logo-128x128.png` — the logo built into stock LK (RGB565 @`0x8f64b004`) +- `b9a-stock-dt.txt` — stock dtb_01 nodes (mdss_mdp + panels, mdss_spi, spi@78b8000, pinctrl, MPP4 LED, L6/L17) +- `b9a-current-dt.txt` — current B8F DTB (dtc) display-related nodes +- `b9a-kconfig.txt` — kernel config audit +- `b9a-linux-display.txt` (+ `.raw.txt`) — live read-only snapshot of the board +- `b9a-backlight.txt` — backlight mechanism +- Scripts `b9/b9a/`: `lk-xref.py`, `lkmem.py`, `disrange.sh`, `decode-panel.py`, `render-lk-logo.py`, `dt-extract.py`, + `b9a-live.sh` (board), `b9a-run.sh` (480s) diff --git a/logs/b9/b9a/SHA256SUMS b/logs/b9/b9a/SHA256SUMS new file mode 100644 index 0000000..24e46bc --- /dev/null +++ b/logs/b9/b9a/SHA256SUMS @@ -0,0 +1,9 @@ +85a5674661774690d7257acda746690483c3c0318b1884235e97c0cc3d9f2ae3 B9A-RESULT.md +ff2b9a9d074d90cad2d48c4965241fcd7b7601046be98873a0a2db4a39786979 b9a-backlight.txt +708223a6cd9fe9e72d9b67e271236bf92ee220885c04690096554c4e321ca596 b9a-current-dt.txt +257d3c5b8217a668a6865cc890ed7811ba4201cc9c0d479413c6df50e426a102 b9a-kconfig.txt +70f8188858b4ba027c75d736c82496851ab2f892d6127aa784cc01a4e5b7ed76 b9a-linux-display.raw.txt +76f4ec786065fce93569acb886596b1a46af1ff23d3a5fa40d8a30a30c78d212 b9a-linux-display.txt +01e42eb8907a05c43bd239d981511b9d2fc5d262e74d2a05099fe2e0d601d5bc b9a-stock-dt.txt +8257fbf87bb06ee137306798a1a4f050e3dcdfd266487b468fd1852c88460341 b9a-stock-lk.txt +71d1d88f0b5d84623d701f95f805d6d4aed15eb9fa2f804e97e0f3609d80b998 b9a-stock-lk-embedded-logo-128x128.png diff --git a/logs/b9/b9a/b9a-backlight.txt b/logs/b9/b9a/b9a-backlight.txt new file mode 100644 index 0000000..695c70f --- /dev/null +++ b/logs/b9/b9a/b9a-backlight.txt @@ -0,0 +1,42 @@ +# B9A — backlight mechanism. READ-ONLY. + +## Answer: PM8916 MPP4 used as a constant CURRENT SINK (40 mA) for the LED backlight. On/off only in LK; no PWM, no WLED, no DCS, no GPIO, +## no separate LED-driver IC seen in any stock source. + +== Stock LK (bootchain/aboot-analysis/lk.bin, target_backlight_ctrl @0x8f600b54; details in b9a-stock-lk.txt) + pm8x41 MPP struct base = 0xa300 (MPP4), mode byte = 1 + write SID0 0xa340 MODE_CTL = 0x61 (mode 6 = current sink <<4, source sel 0, bit0 = 1 'on') + write SID0 0xa34c SINK_CTL = 0x07 (7 -> 40 mA; PM8916 MPP sink steps 5 mA * (n+1)) + write SID0 0xa346 EN_CTL = 0x80 (master enable) + mdelay(20) + backlight descriptor: bl_interface_type 1 ("BL_WLED" label), min 1, max 0xfff, pmic 'PMIC_8941' (CAF template values) + Order in LK: panel power/reset -> SPI init -> 19 init cmds (DISPON, RAMWR) -> logo frame -> backlight ON (msm_display_init order: + panel power_func, panel on, then bl_func) -> continuous splash (left on for the kernel). + +== Stock Android kernel (dt/dtb_01.dts) + qcom,leds@a300 (compatible qcom,leds-qpnp, label "mpp"): + qcom,led_mpp_4: linux,name "lcd-bl", default-trigger "bkl-trigger", default-state off, + qcom,max-current 40, qcom,current-setting 40 (mA), qcom,id 6 (QPNP_ID_LED_MPP), qcom,mode "manual", + qcom,source-sel 1, qcom,mode-ctrl 0x60 (current sink) + panel: qcom,mdss-spi-bl-pmic-control-type "bl_ctrl_wled", bl-min 1, bl-max 255 -> mdss_fb "lcd-backlight" led triggers "bkl-trigger" + -> lcd-bl (MPP4). No pwm node referenced. + Android sysfs (android/leds.txt): /sys/class/leds/lcd-backlight (mdss_fb_primary) and /sys/class/leds/lcd-bl (leds-qpnp-de736200) + Android userspace: com.qualcomm.display running; ro.sf.lcd_density 114; persist.sys.juzhen.soft.version JZ_MIFI_LCD_COM_20260709. + +== Who powers / who sets brightness + - Supply of the LED string: not visible in any stock source (MPP4 only sinks current; anode presumably from VPH_PWR/VBAT — unproven, board-level). + - Enable + "brightness": MPP4 SINK_CTL (5..40 mA, 8 steps) and EN. Stock uses 40 mA fixed. Fine brightness would need MPP4 DTEST/LPG PWM + (not used by stock). + - Order: backlight AFTER panel init + first frame (avoids showing GRAM garbage). + +== Current Linux (live, b9a-linux-display.txt) + MPP4: MODE_CTL 00, EN_CTL 00, SINK_CTL 00 -> OFF; /sys/class/backlight empty; /sys/class/leds has no lcd-bl. + DT: pm8916_mpps@a000 present (qcom,pm8916-mpp, gpio-controller, 4 MPPs), no pinctrl state for mpp4, pm8916_pwm disabled. + Kernel: PINCTRL_QCOM_SPMI_PMIC=y, BACKLIGHT_CLASS_DEVICE=y, BACKLIGHT_GPIO=y, LEDS_CLASS=y. + +== Upstream mapping (read-only check of /home/q/aurora-kbuild/src) + drivers/pinctrl/qcom/pinctrl-spmi-mpp.c: function "sink" => MODE_CTL mode 6; "drive-strength" written RAW to SINK_CTL (0x4c) -> use 7 + for 40 mA; "output-high"/gpio value => MODE_CTL bit0. EN_CTL = master enable. => DT: + &pm8916_mpps { lcd_bl_default: mpp4-state { pins = "mpp4"; function = "sink"; drive-strength = <7>; output-low; }; }; + backlight: backlight { compatible = "gpio-backlight"; gpios = <&pm8916_mpps 4 GPIO_ACTIVE_HIGH>; pinctrl... }; + This reproduces LK's 0x61/0x07/0x80 exactly when on (to be verified in B9B by reading back the 3 registers). diff --git a/logs/b9/b9a/b9a-current-dt.txt b/logs/b9/b9a/b9a-current-dt.txt new file mode 100644 index 0000000..2b9e903 --- /dev/null +++ b/logs/b9/b9a/b9a-current-dt.txt @@ -0,0 +1,182 @@ +# B9A current Linux DT (running B8F = cache 857c9c30: DTB b8/b8f/out/aurora-b8f.dtb sha256 cc74b57d..., source linux/dts/msm8916-jz08-aurora-b8b.dts) +# decompiled with dtc; display-relevant nodes only. Read-only. + +# aurora-b8f.dtb(dtc):409-413 + l6 { + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + phandle = <0x4e>; + }; + +# aurora-b8f.dtb(dtc):466-467 + l17 { + }; + +# aurora-b8f.dtb(dtc):1315-1332 + blsp-spi4-default-state { + phandle = <0x7d>; + + spi-pins { + pins = "gpio12", "gpio13", "gpio15"; + function = "blsp_spi4"; + drive-strength = <0x0c>; + bias-disable; + }; + + cs-pins { + pins = "gpio14"; + function = "gpio"; + drive-strength = <0x10>; + bias-disable; + output-high; + }; + }; + +# aurora-b8f.dtb(dtc):1334-1340 + blsp-spi4-sleep-state { + pins = "gpio12", "gpio13", "gpio14", "gpio15"; + function = "gpio"; + drive-strength = <0x02>; + bias-pull-down; + phandle = <0x7e>; + }; + +# aurora-b8f.dtb(dtc):1763-1857 + display-subsystem@1a00000 { + status = "disabled"; + compatible = "qcom,mdss"; + reg = <0x1a00000 0x1000 0x1ac8000 0x3000>; + reg-names = "mdss_phys", "vbif_phys"; + power-domains = <0x13 0x02>; + clocks = <0x13 0x6d 0x13 0x6e 0x13 0x73>; + clock-names = "iface", "bus", "vsync"; + interrupts = <0x00 0x48 0x04>; + resets = <0x13 0x34>; + interrupt-controller; + #interrupt-cells = <0x01>; + #address-cells = <0x01>; + #size-cells = <0x01>; + ranges; + phandle = <0x4a>; + + display-controller@1a01000 { + compatible = "qcom,msm8916-mdp5", "qcom,mdp5"; + reg = <0x1a01000 0x89000>; + reg-names = "mdp_phys"; + interrupt-parent = <0x4a>; + interrupts = <0x00>; + clocks = <0x13 0x6d 0x13 0x6e 0x13 0x71 0x13 0x73>; + clock-names = "iface", "bus", "core", "vsync"; + iommus = <0x4b 0x04>; + phandle = <0xc7>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint { + remote-endpoint = <0x4c>; + phandle = <0x4f>; + }; + }; + }; + }; + + dsi@1a98000 { + compatible = "qcom,msm8916-dsi-ctrl", "qcom,mdss-dsi-ctrl"; + reg = <0x1a98000 0x25c>; + reg-names = "dsi_ctrl"; + interrupt-parent = <0x4a>; + interrupts = <0x04>; + assigned-clocks = <0x13 0x2b 0x13 0x2e>; + assigned-clock-parents = <0x49 0x00 0x49 0x01>; + clocks = <0x13 0x71 0x13 0x6d 0x13 0x6e 0x13 0x6f 0x13 0x72 0x13 0x70>; + clock-names = "mdp_core", "iface", "bus", "byte", "pixel", "core"; + phys = <0x49>; + #address-cells = <0x01>; + #size-cells = <0x00>; + vdda-supply = <0x4d>; + vddio-supply = <0x4e>; + phandle = <0xc8>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint { + remote-endpoint = <0x4f>; + phandle = <0x4c>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + phandle = <0xc9>; + }; + }; + }; + }; + + phy@1a98300 { + compatible = "qcom,dsi-phy-28nm-lp"; + reg = <0x1a98300 0xd4 0x1a98500 0x280 0x1a98780 0x30>; + reg-names = "dsi_pll", "dsi_phy", "dsi_phy_regulator"; + #clock-cells = <0x01>; + #phy-cells = <0x00>; + clocks = <0x13 0x6d 0x19>; + clock-names = "iface", "ref"; + vddio-supply = <0x4e>; + phandle = <0x49>; + }; + }; + +# aurora-b8f.dtb(dtc):2144-2153 + mpps@a000 { + compatible = "qcom,pm8916-mpp", "qcom,spmi-mpp"; + reg = <0xa000>; + gpio-controller; + #gpio-cells = <0x02>; + gpio-ranges = <0x55 0x00 0x00 0x04>; + interrupt-controller; + #interrupt-cells = <0x02>; + phandle = <0x55>; + }; + +# aurora-b8f.dtb(dtc):2174-2179 + pwm { + compatible = "qcom,pm8916-pwm"; + #pwm-cells = <0x02>; + status = "disabled"; + phandle = <0xd3>; + }; + +# aurora-b8f.dtb(dtc):2569-2584 + spi@78b8000 { + compatible = "qcom,spi-qup-v2.2.1"; + reg = <0x78b8000 0x500>; + interrupts = <0x00 0x62 0x04>; + clocks = <0x13 0x3f 0x13 0x36>; + clock-names = "core", "iface"; + dmas = <0x6c 0x0a 0x6c 0x0b>; + dma-names = "tx", "rx"; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <0x7d>; + pinctrl-1 = <0x7e>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + phandle = <0xee>; + }; + +# search for panel/backlight/framebuffer/simple-framebuffer/mipi-dbi/st7735 strings: +(none) + +# live board confirmation: see b9a-linux-display.txt (display-subsystem status=disabled, spi@78b8000 status=disabled, no panel/backlight nodes) diff --git a/logs/b9/b9a/b9a-kconfig.txt b/logs/b9/b9a/b9a-kconfig.txt new file mode 100644 index 0000000..9cbe29a --- /dev/null +++ b/logs/b9/b9a/b9a-kconfig.txt @@ -0,0 +1,84 @@ +# B9A kernel config audit (READ-ONLY). Running kernel 7.2.7-aurora-b8d #7 (B8F cache 857c9c30). +# config: /home/q/aurora-kbuild/out-b8d/.config sha256 bfe2ac4d0b721600...; Image.gz from out-b8d is a byte-prefix of b8/b8f/out/Image.gz-dtb (verified). +# fragment linux/aurora-b8d.config adds only WLAN/CFG80211/MAC80211/WCN36XX on top of b8b. + +# CONFIG_MODULES is not set +# CONFIG_DRM is not set +CONFIG_DRM_MSM (not in .config: not selectable — dependency unmet) +CONFIG_DRM_MSM_MDP5 (not in .config: not selectable — dependency unmet) +CONFIG_DRM_MSM_DSI (not in .config: not selectable — dependency unmet) +CONFIG_DRM_PANEL (not in .config: not selectable — dependency unmet) +CONFIG_DRM_MIPI_DBI (not in .config: not selectable — dependency unmet) +CONFIG_DRM_PANEL_MIPI_DBI (not in .config: not selectable — dependency unmet) +CONFIG_DRM_ST7735R (not in .config: not selectable — dependency unmet) +CONFIG_DRM_SIMPLEDRM (not in .config: not selectable — dependency unmet) +CONFIG_DRM_FBDEV_EMULATION (not in .config: not selectable — dependency unmet) +CONFIG_DRM_CLIENT_SELECTION (not in .config: not selectable — dependency unmet) +CONFIG_DRM_KMS_HELPER (not in .config: not selectable — dependency unmet) +CONFIG_DRM_GEM_DMA_HELPER (not in .config: not selectable — dependency unmet) +# CONFIG_FB is not set +CONFIG_FB_CORE (not in .config: not selectable — dependency unmet) +CONFIG_FB_DEVICE (not in .config: not selectable — dependency unmet) +CONFIG_FB_SIMPLE (not in .config: not selectable — dependency unmet) +CONFIG_SYSFB_SIMPLEFB (not in .config: not selectable — dependency unmet) +# CONFIG_STAGING is not set +CONFIG_FB_TFT (not in .config: not selectable — dependency unmet) +CONFIG_FB_TFT_ST7735R (not in .config: not selectable — dependency unmet) +CONFIG_FRAMEBUFFER_CONSOLE (not in .config: not selectable — dependency unmet) +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_DUMMY_CONSOLE=y +CONFIG_LOGO (not in .config: not selectable — dependency unmet) +CONFIG_SPI=y +CONFIG_SPI_MASTER=y +CONFIG_SPI_QUP=y +CONFIG_SPI_SPIDEV=y +CONFIG_QCOM_BAM_DMA=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_GPIO=y +CONFIG_BACKLIGHT_PWM=y +CONFIG_BACKLIGHT_QCOM_WLED=y +# CONFIG_BACKLIGHT_LED is not set +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_QCOM_LPG=y +CONFIG_PWM=y +CONFIG_PINCTRL_MSM8916=y +CONFIG_PINCTRL_QCOM_SPMI_PMIC=y +CONFIG_GPIOLIB=y +CONFIG_GPIO_CDEV=y +CONFIG_GPIO_SYSFS (not in .config: not selectable — dependency unmet) +CONFIG_REGULATOR=y +CONFIG_REGULATOR_QCOM_SMD_RPM=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_COMMON_CLK_QCOM=y +CONFIG_MSM_GCC_8916=y +CONFIG_QCOM_RPMPD=y +CONFIG_IOMMU_SUPPORT=y +CONFIG_QCOM_IOMMU=y +CONFIG_CMA=y +CONFIG_DMA_CMA=y +CONFIG_FW_LOADER=y +CONFIG_DEBUG_FS=y + +# Summary +# - DRM=n, FB=n: no DRM core, no fbdev, no framebuffer console -> /dev/dri, /dev/fb*, /sys/class/drm|graphics cannot exist. +# - DRM_MSM (MDP5/DSI) is irrelevant for this board: the panel is NOT on DSI/MDP; it is an SPI (MIPI-DBI type C, 4-wire D/C) panel on BLSP1 QUP4. +# - SPI_QUP=y and SPI_SPIDEV=y already present (controller driver exists; DT node disabled). +# - BACKLIGHT_CLASS_DEVICE=y, BACKLIGHT_GPIO=y, PINCTRL_QCOM_SPMI_PMIC=y present -> MPP4 current-sink + gpio-backlight is buildable without new symbols. +# - Needed for an upstream panel driver: DRM + DRM_PANEL_MIPI_DBI (exact stock init via firmware file) or DRM_ST7735R (okaya,rh128128t; fixed generic init). +# Both select DRM_MIPI_DBI/DRM_KMS_HELPER/DRM_GEM_DMA_HELPER/BACKLIGHT_CLASS_DEVICE; /dev/fb0 additionally needs DRM_FBDEV_EMULATION (+FB). +# - simpledrm/simplefb NOT applicable: no scanout engine and no LK-initialised framebuffer in the current boot chain (SPI panel keeps its own GRAM). +# - CONFIG_MODULES=n -> everything must be built-in. + +# Kconfig source facts (kernel tree /home/q/aurora-kbuild/src, 7.2.7): +69:config DRM_PANEL_MIPI_DBI +70- tristate "DRM support for MIPI DBI compatible panels" +71- depends on DRM && SPI +72- select DRM_CLIENT_SELECTION +55:config DRM_ST7735R +56- tristate "DRM support for Sitronix ST7715R/ST7735R display panels" +57- depends on DRM && SPI +58- select DRM_CLIENT_SELECTION +# st7735r.c rh128128t_cfg: 128x128, left_offset=2, top_offset=3, rgb=true -> MADCTL MX|MY|RGB(bit3)=0xc8 (== stock MADCTL c8, == stock CASET 2..129 / RASET 3..130) +# but its init values differ from stock (FRMCTR 01 2c 2d vs 05 3a 3a, INVCTR 07 vs 03, PWCTR1 a2 02 84 vs 62 02 04, VMCTR1 0e vs 12, different gamma). diff --git a/logs/b9/b9a/b9a-linux-display.raw.txt b/logs/b9/b9a/b9a-linux-display.raw.txt new file mode 100644 index 0000000..00056e6 --- /dev/null +++ b/logs/b9/b9a/b9a-linux-display.raw.txt @@ -0,0 +1,166 @@ +B9A-LIVE-BEGIN +1334.94 5280.61 +JZ08AU Aurora (RAM boot B8B) +Linux (none) 7.2.7-aurora-b8d #7 SMP PREEMPT Sat Oct 3 00:22:35 +06 2026 aarch64 GNU/Linux +earlycon console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init +--- ls /sys/class/drm +ls: /sys/class/drm: No such file or directory +--- ls /sys/class/graphics +ls: /sys/class/graphics: No such file or directory +--- ls /sys/class/backlight +total 0 +drwxr-xr-x 2 root root 0 Oct 2 19:47 . +drwxr-xr-x 67 root root 0 Jan 1 1970 .. +--- ls /sys/class/leds +total 0 +drwxr-xr-x 2 root root 0 Oct 2 19:47 . +drwxr-xr-x 67 root root 0 Jan 1 1970 .. +lrwxrwxrwx 1 root root 0 Oct 2 19:47 mmc0:: -> ../../devices/platform/soc@0/7824900.mmc/leds/mmc0:: +--- ls /sys/class/spi_master +total 0 +drwxr-xr-x 2 root root 0 Oct 2 19:47 . +drwxr-xr-x 67 root root 0 Jan 1 1970 .. +--- ls /sys/bus/spi/devices +total 0 +drwxr-xr-x 2 root root 0 Oct 2 19:47 . +drwxr-xr-x 4 root root 0 Oct 2 19:47 .. +--- ls /dev/dri +ls: /dev/dri: No such file or directory +--- /dev/fb* +ls: /dev/fb*: No such file or directory +--- dmesg display/spi/backlight +[ 61.077499] [aurora-modem] mmcli -m 0 --simple-connect="apn=internet.beeline.ru,user=beeline,password=***,allowed-auth=pap,ip-type=ipv4" +--- DT nodes (status) +soc@0/display-subsystem@1a00000 status=disabled +soc@0/display-subsystem@1a00000/display-controller@1a01000 status=(none=okay) +soc@0/display-subsystem@1a00000/dsi@1a98000 status=(none=okay) +soc@0/display-subsystem@1a00000/phy@1a98300 status=(none=okay) +soc@0/spi@78b8000 status=disabled +--- DT search panel/backlight/framebuffer nodes +--- DT reserved-memory +#address-cells name smem@86300000 +#size-cells ranges tz-apps@86000000 +hypervisor@86400000 reserved@86680000 tz@86500000 +mba rfsa@867e0000 venus +mpss@86800000 rmtfs@86700000 wcnss@8b600000 +--- debugfs gpio (TLMM 12-15 SPI, 116 D/C, 118 RESET; PMIC MPP4) +gpiochip0: 122 GPIOs, parent: platform/1000000.pinctrl, 1000000.pinctrl: + gpio12 : in low func0 2mA pull down + gpio13 : in low func0 2mA pull down + gpio14 : in low func0 2mA pull down + gpio15 : in low func0 2mA pull down + gpio116 : in low func0 2mA pull down + gpio118 : in low func0 2mA pull down +gpiochip1: 4 GPIOs, parent: platform/200f000.spmi:pmic@0:mpps@a000, 200f000.spmi:pmic@0:mpps@a000: + mpp4 : --- +gpiochip2: 4 GPIOs, parent: platform/200f000.spmi:pmic@0:gpio@c000, 200f000.spmi:pmic@0:gpio@c000: +--- pinmux-pins TLMM 12-15,116,118 +# /sys/kernel/debug/pinctrl/1000000.pinctrl/pinmux-pins +pin 12 (GPIO_12): UNCLAIMED +pin 13 (GPIO_13): UNCLAIMED +pin 14 (GPIO_14): UNCLAIMED +pin 15 (GPIO_15): UNCLAIMED +pin 116 (GPIO_116): UNCLAIMED +pin 118 (GPIO_118): UNCLAIMED +# /sys/kernel/debug/pinctrl/200f000.spmi:pmic@0:gpio@c000/pinmux-pins +# /sys/kernel/debug/pinctrl/200f000.spmi:pmic@0:mpps@a000/pinmux-pins +--- pinctrl MPP +# /sys/kernel/debug/pinctrl/200f000.spmi:pmic@0:mpps@a000/pinconf-pins +Pin config settings per pin +Format: pin (name): configs +pin 0 (mpp1): +pin 1 (mpp2): +pin 2 (mpp3): +pin 3 (mpp4): +--- regulators +regulator.0 regulator-dummy state= uV= users=5 +regulator.1 s3 state=enabled uV=1300000 users=2 +regulator.10 l9 state=disabled uV=3300000 users=0 +regulator.11 l10 state=disabled uV=0 users=0 +regulator.12 l11 state=disabled uV=2950000 users=0 +regulator.13 l12 state=disabled uV=1800000 users=0 +regulator.14 l13 state=enabled uV=3075000 users=1 +regulator.15 l14 state=disabled uV=0 users=0 +regulator.16 l15 state=disabled uV=0 users=0 +regulator.17 l16 state=disabled uV=0 users=0 +regulator.18 l17 state=disabled uV=0 users=0 +regulator.19 l18 state=disabled uV=0 users=0 +regulator.2 s4 state=enabled uV=1850000 users=3 +regulator.3 l1 state=disabled uV=0 users=0 +regulator.4 l2 state=enabled uV=1200000 users=1 +regulator.5 l4 state=disabled uV=0 users=0 +regulator.6 l5 state=enabled uV=1800000 users=2 +regulator.7 l6 state=disabled uV=1800000 users=0 +regulator.8 l7 state=enabled uV=1800000 users=2 +regulator.9 l8 state=enabled uV=2900000 users=1 +--- regulator_summary (l6/l17) + regulator use open bypass opmode voltage current min max + l6 0 0 0 unknown 1800mV 0mA 1800mV 1800mV + l17 0 0 0 unknown 0mV 0mA 0mV 0mV +--- regmaps +0-00 4a9000.thermal-sensor-tm +0-01 500000.interconnect +1800000.clock-controller 580000.interconnect +1905000.hwlock b011000.mailbox +400000.interconnect b016000.clock +4a9000.thermal-sensor-srot dummy-syscon@0x0000000001937000 +--- PM8916 MPP4 block (0xa300: 04=subtype,08=status,40=MODE_CTL,41=DIG_VIN,42=PULL,46=EN_CTL,4c=SINK_CTL) +# PMIC sid0 0xa304 +2 +a304: 11 +a305: 04 +# PMIC sid0 0xa308 +1 +a308: 00 +# PMIC sid0 0xa340 +8 +a340: 00 +a341: 00 +a342: 00 +a343: 00 +a344: 00 +a345: 00 +a346: 00 +a347: 00 +# PMIC sid0 0xa34c +1 +a34c: 00 +--- PM8916 LDO6 (0x4500) / LDO17 (0x5000): 08=STATUS 40/41=VSET 45=MODE 46=EN_CTL +# PMIC sid1 0x4504 +2 +4504: 21 +4505: 2a +# PMIC sid1 0x4508 +1 +4508: 82 +# PMIC sid1 0x4540 +2 +4540: 00 +4541: 04 +# PMIC sid1 0x4545 +2 +4545: 80 +4546: 80 +# PMIC sid1 0x5004 +2 +5004: 21 +5005: 0b +# PMIC sid1 0x5008 +1 +5008: 00 +# PMIC sid1 0x5040 +2 +5040: 00 +5041: 58 +# PMIC sid1 0x5045 +2 +5045: 80 +5046: 00 +--- PM8916 PWM/LPG 0xbc00 (46=EN_CTL) +# PMIC sid1 0xbc04 +2 +bc04: 13 +bc05: 0b +# PMIC sid1 0xbc46 +1 +bc46: 00 +--- clocks (mdss/blsp1_qup4) + gcc_mdss_vsync_clk 0 0 0 19200000 0 0 50000 N deviceless no_connection_id + gcc_mdss_pclk0_clk 0 0 0 19200000 0 0 50000 N deviceless no_connection_id + gcc_mdss_mdp_clk 0 0 0 19200000 0 0 50000 N deviceless no_connection_id + gcc_mdss_esc0_clk 0 0 0 19200000 0 0 50000 N deviceless no_connection_id + gcc_mdss_byte0_clk 0 0 0 19200000 0 0 50000 N deviceless no_connection_id + blsp1_qup4_spi_apps_clk_src 0 0 0 19200000 0 0 50000 N deviceless no_connection_id + gcc_blsp1_qup4_spi_apps_clk 0 0 0 19200000 0 0 50000 N deviceless no_connection_id + gcc_mdss_axi_clk 0 0 0 200000000 0 0 50000 N deviceless no_connection_id + gcc_mdss_ahb_clk 0 0 0 100000000 0 0 50000 N deviceless no_connection_id + gcc_blsp1_ahb_clk 3 4 0 100000000 0 0 50000 Y 78b0000.serial iface +--- eMMC + 1117 45 193701 2669 0 0 0 0 0 1168 2669 0 0 0 0 0 0 +B9A-LIVE-END diff --git a/logs/b9/b9a/b9a-linux-display.txt b/logs/b9/b9a/b9a-linux-display.txt new file mode 100644 index 0000000..f783625 --- /dev/null +++ b/logs/b9/b9a/b9a-linux-display.txt @@ -0,0 +1,195 @@ +# B9A — current Linux display state (live, READ-ONLY). Board running B8F (cache 857c9c30, kernel 7.2.7-aurora-b8d #7), uptime ~1335 s. +# Collected 2026-10-03 by b9/b9a/b9a-run.sh (480s) -> b9/b9a/b9a-live.sh on board (/tmp, RAM). Raw output: b9a-linux-display.raw.txt. +# Only side effect: debugfs mount check (already mounted). No GPIO/regulator/PMIC/SPI writes. eMMC write counters unchanged (stat col 5 = 0). + +== Summary +/sys/class/drm : ABSENT (CONFIG_DRM=n) +/sys/class/graphics : ABSENT (CONFIG_FB=n) +/dev/dri/*, /dev/fb* : ABSENT +/sys/class/backlight : empty +/sys/class/leds : only mmc0:: +/sys/class/spi_master : empty (spi@78b8000 status=disabled in DT) +/sys/bus/spi/devices : empty +dmesg display/drm/fb/spi/backlight/panel : no matches (only an unrelated aurora-modem line) +DT: display-subsystem@1a00000 status=disabled (upstream MDP5/DSI nodes inherited, irrelevant), spi@78b8000 status=disabled, + no panel / backlight / framebuffer nodes +TLMM GPIO 12,13,14,15 (SPI), 116 (D/C), 118 (RESET): all "in low func0 2mA pull down" = power-on reset defaults, UNCLAIMED + => panel RESET line is held LOW by the SoC pull-down (panel kept in reset), no SPI clock. +PM8916 MPP4 (SID0 0xa300): subtype 0x11/0x04 present; MODE_CTL 0xa340=00, EN_CTL 0xa346=00, SINK_CTL 0xa34c=00 => backlight sink OFF + (stock LK writes 0x61 / 0x80 / 0x07). +PM8916 L6 (SID1 0x4500): STATUS 0x4508=0x82 (VREG_OK), EN_CTL 0x4546=0x80 => ON at HW level (1.8 V; Linux: l6 'disabled', 0 users — Linux + did not enable it; it is on by SBL/RPM default) +PM8916 L17 (SID1 0x5000): STATUS 0x5008=0x00, EN_CTL 0x5046=0x00 => OFF at HW level (Linux: l17 'disabled', 0 users, no constraints) +PM8916 LPG/PWM (SID1 0xbc00): EN 0x00 (off, DT node disabled) +Clocks: gcc_blsp1_qup4_spi_apps_clk and all gcc_mdss_* : enable_count 0 + +== Conclusion: NO part of the display pipeline exists in the current Linux (no controller bound, no panel driver, no backlight device, + no fb/DRM core). The panel itself has also never been initialised in this boot (lk1st does not touch it; RESET is held low). + +== Raw snapshot +B9A-LIVE-BEGIN +1334.94 5280.61 +JZ08AU Aurora (RAM boot B8B) +Linux (none) 7.2.7-aurora-b8d #7 SMP PREEMPT Sat Oct 3 00:22:35 +06 2026 aarch64 GNU/Linux +earlycon console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init +--- ls /sys/class/drm +ls: /sys/class/drm: No such file or directory +--- ls /sys/class/graphics +ls: /sys/class/graphics: No such file or directory +--- ls /sys/class/backlight +total 0 +drwxr-xr-x 2 root root 0 Oct 2 19:47 . +drwxr-xr-x 67 root root 0 Jan 1 1970 .. +--- ls /sys/class/leds +total 0 +drwxr-xr-x 2 root root 0 Oct 2 19:47 . +drwxr-xr-x 67 root root 0 Jan 1 1970 .. +lrwxrwxrwx 1 root root 0 Oct 2 19:47 mmc0:: -> ../../devices/platform/soc@0/7824900.mmc/leds/mmc0:: +--- ls /sys/class/spi_master +total 0 +drwxr-xr-x 2 root root 0 Oct 2 19:47 . +drwxr-xr-x 67 root root 0 Jan 1 1970 .. +--- ls /sys/bus/spi/devices +total 0 +drwxr-xr-x 2 root root 0 Oct 2 19:47 . +drwxr-xr-x 4 root root 0 Oct 2 19:47 .. +--- ls /dev/dri +ls: /dev/dri: No such file or directory +--- /dev/fb* +ls: /dev/fb*: No such file or directory +--- dmesg display/spi/backlight +[ 61.077499] [aurora-modem] mmcli -m 0 --simple-connect="apn=internet.beeline.ru,user=beeline,password=***,allowed-auth=pap,ip-type=ipv4" +--- DT nodes (status) +soc@0/display-subsystem@1a00000 status=disabled +soc@0/display-subsystem@1a00000/display-controller@1a01000 status=(none=okay) +soc@0/display-subsystem@1a00000/dsi@1a98000 status=(none=okay) +soc@0/display-subsystem@1a00000/phy@1a98300 status=(none=okay) +soc@0/spi@78b8000 status=disabled +--- DT search panel/backlight/framebuffer nodes +--- DT reserved-memory +#address-cells name smem@86300000 +#size-cells ranges tz-apps@86000000 +hypervisor@86400000 reserved@86680000 tz@86500000 +mba rfsa@867e0000 venus +mpss@86800000 rmtfs@86700000 wcnss@8b600000 +--- debugfs gpio (TLMM 12-15 SPI, 116 D/C, 118 RESET; PMIC MPP4) +gpiochip0: 122 GPIOs, parent: platform/1000000.pinctrl, 1000000.pinctrl: + gpio12 : in low func0 2mA pull down + gpio13 : in low func0 2mA pull down + gpio14 : in low func0 2mA pull down + gpio15 : in low func0 2mA pull down + gpio116 : in low func0 2mA pull down + gpio118 : in low func0 2mA pull down +gpiochip1: 4 GPIOs, parent: platform/200f000.spmi:pmic@0:mpps@a000, 200f000.spmi:pmic@0:mpps@a000: + mpp4 : --- +gpiochip2: 4 GPIOs, parent: platform/200f000.spmi:pmic@0:gpio@c000, 200f000.spmi:pmic@0:gpio@c000: +--- pinmux-pins TLMM 12-15,116,118 +# /sys/kernel/debug/pinctrl/1000000.pinctrl/pinmux-pins +pin 12 (GPIO_12): UNCLAIMED +pin 13 (GPIO_13): UNCLAIMED +pin 14 (GPIO_14): UNCLAIMED +pin 15 (GPIO_15): UNCLAIMED +pin 116 (GPIO_116): UNCLAIMED +pin 118 (GPIO_118): UNCLAIMED +# /sys/kernel/debug/pinctrl/200f000.spmi:pmic@0:gpio@c000/pinmux-pins +# /sys/kernel/debug/pinctrl/200f000.spmi:pmic@0:mpps@a000/pinmux-pins +--- pinctrl MPP +# /sys/kernel/debug/pinctrl/200f000.spmi:pmic@0:mpps@a000/pinconf-pins +Pin config settings per pin +Format: pin (name): configs +pin 0 (mpp1): +pin 1 (mpp2): +pin 2 (mpp3): +pin 3 (mpp4): +--- regulators +regulator.0 regulator-dummy state= uV= users=5 +regulator.1 s3 state=enabled uV=1300000 users=2 +regulator.10 l9 state=disabled uV=3300000 users=0 +regulator.11 l10 state=disabled uV=0 users=0 +regulator.12 l11 state=disabled uV=2950000 users=0 +regulator.13 l12 state=disabled uV=1800000 users=0 +regulator.14 l13 state=enabled uV=3075000 users=1 +regulator.15 l14 state=disabled uV=0 users=0 +regulator.16 l15 state=disabled uV=0 users=0 +regulator.17 l16 state=disabled uV=0 users=0 +regulator.18 l17 state=disabled uV=0 users=0 +regulator.19 l18 state=disabled uV=0 users=0 +regulator.2 s4 state=enabled uV=1850000 users=3 +regulator.3 l1 state=disabled uV=0 users=0 +regulator.4 l2 state=enabled uV=1200000 users=1 +regulator.5 l4 state=disabled uV=0 users=0 +regulator.6 l5 state=enabled uV=1800000 users=2 +regulator.7 l6 state=disabled uV=1800000 users=0 +regulator.8 l7 state=enabled uV=1800000 users=2 +regulator.9 l8 state=enabled uV=2900000 users=1 +--- regulator_summary (l6/l17) + regulator use open bypass opmode voltage current min max + l6 0 0 0 unknown 1800mV 0mA 1800mV 1800mV + l17 0 0 0 unknown 0mV 0mA 0mV 0mV +--- regmaps +0-00 4a9000.thermal-sensor-tm +0-01 500000.interconnect +1800000.clock-controller 580000.interconnect +1905000.hwlock b011000.mailbox +400000.interconnect b016000.clock +4a9000.thermal-sensor-srot dummy-syscon@0x0000000001937000 +--- PM8916 MPP4 block (0xa300: 04=subtype,08=status,40=MODE_CTL,41=DIG_VIN,42=PULL,46=EN_CTL,4c=SINK_CTL) +# PMIC sid0 0xa304 +2 +a304: 11 +a305: 04 +# PMIC sid0 0xa308 +1 +a308: 00 +# PMIC sid0 0xa340 +8 +a340: 00 +a341: 00 +a342: 00 +a343: 00 +a344: 00 +a345: 00 +a346: 00 +a347: 00 +# PMIC sid0 0xa34c +1 +a34c: 00 +--- PM8916 LDO6 (0x4500) / LDO17 (0x5000): 08=STATUS 40/41=VSET 45=MODE 46=EN_CTL +# PMIC sid1 0x4504 +2 +4504: 21 +4505: 2a +# PMIC sid1 0x4508 +1 +4508: 82 +# PMIC sid1 0x4540 +2 +4540: 00 +4541: 04 +# PMIC sid1 0x4545 +2 +4545: 80 +4546: 80 +# PMIC sid1 0x5004 +2 +5004: 21 +5005: 0b +# PMIC sid1 0x5008 +1 +5008: 00 +# PMIC sid1 0x5040 +2 +5040: 00 +5041: 58 +# PMIC sid1 0x5045 +2 +5045: 80 +5046: 00 +--- PM8916 PWM/LPG 0xbc00 (46=EN_CTL) +# PMIC sid1 0xbc04 +2 +bc04: 13 +bc05: 0b +# PMIC sid1 0xbc46 +1 +bc46: 00 +--- clocks (mdss/blsp1_qup4) + gcc_mdss_vsync_clk 0 0 0 19200000 0 0 50000 N deviceless no_connection_id + gcc_mdss_pclk0_clk 0 0 0 19200000 0 0 50000 N deviceless no_connection_id + gcc_mdss_mdp_clk 0 0 0 19200000 0 0 50000 N deviceless no_connection_id + gcc_mdss_esc0_clk 0 0 0 19200000 0 0 50000 N deviceless no_connection_id + gcc_mdss_byte0_clk 0 0 0 19200000 0 0 50000 N deviceless no_connection_id + blsp1_qup4_spi_apps_clk_src 0 0 0 19200000 0 0 50000 N deviceless no_connection_id + gcc_blsp1_qup4_spi_apps_clk 0 0 0 19200000 0 0 50000 N deviceless no_connection_id + gcc_mdss_axi_clk 0 0 0 200000000 0 0 50000 N deviceless no_connection_id + gcc_mdss_ahb_clk 0 0 0 100000000 0 0 50000 N deviceless no_connection_id + gcc_blsp1_ahb_clk 3 4 0 100000000 0 0 50000 Y 78b0000.serial iface +--- eMMC + 1117 45 193701 2669 0 0 0 0 0 1168 2669 0 0 0 0 0 0 +B9A-LIVE-END diff --git a/logs/b9/b9a/b9a-stock-dt.txt b/logs/b9/b9a/b9a-stock-dt.txt new file mode 100644 index 0000000..dadcdfb --- /dev/null +++ b/logs/b9/b9a/b9a-stock-dt.txt @@ -0,0 +1,449 @@ +# B9A stock DT display chain (dtb_01 = 512MB MTP board-id 8/0x100, used by stock LK; dtb_00 display nodes are byte-identical, see below) +# source: dt/dtb_01.dts (decompiled stock QCDT from partitions/boot.bin). Read-only extraction by b9/b9a/dt-extract.py + +# dt/dtb_01.dts:1183-1354 + qcom,mdss_mdp@1a00000 { + compatible = "qcom,mdss_mdp"; + reg = <0x1a00000 0x90000 0x1ac8000 0x3000>; + reg-names = "mdp_phys", "vbif_phys"; + interrupts = <0x00 0x48 0x00>; + vdd-supply = <0x40>; + qcom,msm-bus,name = "mdss_mdp"; + qcom,msm-bus,num-cases = <0x03>; + qcom,msm-bus,num-paths = <0x01>; + qcom,msm-bus,vectors-KBps = <0x16 0x200 0x00 0x00 0x16 0x200 0x00 0x61a800 0x16 0x200 0x00 0x61a800>; + qcom,mdss-ab-factor = <0x01 0x01>; + qcom,mdss-ib-factor = <0x02 0x01>; + qcom,mdss-clk-factor = <0x69 0x64>; + qcom,max-bandwidth-low-kbps = <0x10c8e0>; + qcom,max-bandwidth-high-kbps = <0x10c8e0>; + qcom,mdss-vbif-qos-rt-setting = <0x02 0x02 0x02 0x02>; + qcom,mdss-vbif-qos-nrt-setting = <0x01 0x01 0x01 0x01>; + qcom,mdss-mdp-reg-offset = <0x1000>; + qcom,max-clk-rate = <0x1312d000>; + qcom,mdss-pipe-vig-off = <0x5000>; + qcom,mdss-pipe-rgb-off = <0x15000 0x17000>; + qcom,mdss-pipe-dma-off = <0x25000>; + qcom,mdss-pipe-vig-fetch-id = <0x01>; + qcom,mdss-pipe-rgb-fetch-id = <0x07 0x08>; + qcom,mdss-pipe-dma-fetch-id = <0x04>; + qcom,mdss-pipe-vig-xin-id = <0x00>; + qcom,mdss-pipe-rgb-xin-id = <0x01 0x05>; + qcom,mdss-pipe-dma-xin-id = <0x02>; + qcom,mdss-pipe-vig-clk-ctrl-offsets = <0x2ac 0x00 0x00>; + qcom,mdss-pipe-rgb-clk-ctrl-offsets = <0x2ac 0x04 0x08 0x2b4 0x04 0x08>; + qcom,mdss-pipe-dma-clk-ctrl-offsets = <0x2ac 0x08 0x0c>; + qcom,mdss-smp-data = <0x08 0x2000>; + qcom,mdss-ctl-off = <0x2000 0x2200 0x2400>; + qcom,mdss-mixer-intf-off = <0x45000>; + qcom,mdss-mixer-wb-off = <0x48000>; + qcom,mdss-dspp-off = <0x55000>; + qcom,mdss-pingpong-off = <0x71000>; + qcom,mdss-wb-off = <0x65000 0x65800 0x66000>; + qcom,mdss-intf-off = <0x00 0x6b800>; + qcom,mdss-rot-block-size = <0x40>; + qcom,mdss-wfd-mode = "dedicated"; + qcom,mdss-has-non-scalar-rgb; + qcom,mdss-has-decimation; + qcom,mdss-traffic-shaper-enabled; + vdd-cx-supply = <0x41>; + clocks = <0x3d 0xbfb92ed3 0x3d 0x668f51de 0x3d 0x6dc1f8f1 0x3d 0x22f3521f 0x3d 0x32a09f1f>; + clock-names = "iface_clk", "bus_clk", "core_clk_src", "core_clk", "vsync_clk"; + qcom,vbif-settings = <0x04 0x01 0xd8 0x707 0x124 0x03>; + qcom,mdp-settings = <0x11e4 0x00 0x65048 0x08 0x65848 0x08 0x66048 0x08>; + qcom,mdss-prefill-outstanding-buffer-bytes = <0x400>; + qcom,mdss-prefill-y-buffer-bytes = <0x00>; + qcom,mdss-prefill-scaler-buffer-lines-bilinear = <0x02>; + qcom,mdss-prefill-scaler-buffer-lines-caf = <0x04>; + qcom,mdss-prefill-post-scaler-buffer-pixels = <0x00>; + qcom,mdss-prefill-pingpong-buffer-pixels = <0x1000>; + qcom,mdss-prefill-fbc-lines = <0x00>; + qcom,mdss-pref-prim-intf = "dsi"; + linux,phandle = <0x45>; + phandle = <0x45>; + + qcom,mdss_fb_primary { + cell-index = <0x00>; + compatible = "qcom,mdss-fb"; + qcom,memblock-reserve = <0x83200000 0xfa0000>; + linux,phandle = <0x44>; + phandle = <0x44>; + }; + + qcom,mdss_fb_wfd { + cell-index = <0x01>; + compatible = "qcom,mdss-fb"; + }; + + qcom,mdss_dsi_sim_video { + qcom,mdss-dsi-panel-name = "Simulator video mode dsi panel"; + qcom,mdss-dsi-panel-controller = <0x42>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-framerate = <0x3c>; + qcom,mdss-dsi-virtual-channel-id = <0x00>; + qcom,mdss-dsi-stream = <0x00>; + qcom,mdss-dsi-panel-width = <0x280>; + qcom,mdss-dsi-panel-height = <0x1e0>; + qcom,mdss-dsi-h-front-porch = <0x06>; + qcom,mdss-dsi-h-back-porch = <0x06>; + qcom,mdss-dsi-h-pulse-width = <0x02>; + qcom,mdss-dsi-h-sync-skew = <0x00>; + qcom,mdss-dsi-v-back-porch = <0x06>; + qcom,mdss-dsi-v-front-porch = <0x06>; + qcom,mdss-dsi-v-pulse-width = <0x02>; + qcom,mdss-dsi-h-left-border = <0x00>; + qcom,mdss-dsi-h-right-border = <0x00>; + qcom,mdss-dsi-v-top-border = <0x00>; + qcom,mdss-dsi-v-bottom-border = <0x00>; + qcom,mdss-dsi-bpp = <0x18>; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0x00>; + qcom,mdss-dsi-on-command = [32 01 00 00 00 00 02 00 00]; + qcom,mdss-dsi-off-command = [22 01 00 00 00 00 02 00 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-h-sync-pulse = <0x00>; + qcom,mdss-dsi-traffic-mode = "non_burst_sync_event"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-panel-timings = <0x00 0x00 0x00>; + qcom,mdss-dsi-t-clk-post = <0x04>; + qcom,mdss-dsi-t-clk-pre = <0x1b>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-reset-sequence = <0x01 0x14 0x00 0xc8 0x01 0x14>; + }; + + qcom,mdss_spi_st7735s_wx144_128x128_cmd { + qcom,mdss-spi-panel-name = "st7735s wx144 128x128 command mode spi panel"; + qcom,mdss-spi-panel-destination = "display_1"; + qcom,mdss-spi-panel-controller = <0x43>; + qcom,mdss-spi-panel-framerate = <0x14>; + qcom,mdss-spi-panel-width = <0x80>; + qcom,mdss-spi-panel-height = <0x80>; + qcom,mdss-spi-h-front-porch = <0x4f>; + qcom,mdss-spi-h-back-porch = <0x3b>; + qcom,mdss-spi-h-pulse-width = <0x3c>; + qcom,mdss-spi-v-back-porch = <0x0a>; + qcom,mdss-spi-v-front-porch = <0x07>; + qcom,mdss-spi-v-pulse-width = <0x02>; + qcom,mdss-spi-h-left-border = <0x00>; + qcom,mdss-spi-h-right-border = <0x00>; + qcom,mdss-spi-v-top-border = <0x00>; + qcom,mdss-spi-v-bottom-border = <0x00>; + qcom,mdss-spi-bpp = <0x10>; + qcom,mdss-spi-on-command = [78 01 11 00 04 b1 05 3a 3a 00 04 b2 05 3a 3a 00 07 b3 05 3a 3a 05 3a 3a 00 02 b4 03 00 04 c0 62 02 04 00 02 c1 c0 00 03 c2 0d 00 00 03 c3 8d 6a 00 03 c4 8d ee 00 02 c5 12 00 11 e0 03 1b 12 11 3f 3a 32 34 2f 2b 30 3a 00 01 02 05 00 11 e1 03 1b 12 11 32 2f 2a 2f 2e 2c 35 3f 00 00 01 05 00 02 36 c8 00 02 3a 05 00 05 2a 00 02 00 81 00 05 2b 00 03 00 82 00 01 29 00 01 2c]; + qcom,mdss-spi-off-command = [00 01 28 78 01 10]; + qcom,mdss-spi-bl-min-level = <0x01>; + qcom,mdss-spi-bl-max-level = <0xff>; + qcom,mdss-spi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-spi-reset-sequence = <0x01 0x01 0x00 0x01 0x01 0x78>; + qcom,cont-splash-enabled; + linux,phandle = <0x48>; + phandle = <0x48>; + }; + + qcom,mdss_spi_nv3023a_jz05_128x128_cmd { + qcom,mdss-spi-panel-name = "nv3023a jz05 128x128 command mode spi panel"; + qcom,mdss-spi-panel-destination = "display_1"; + qcom,mdss-spi-panel-controller = <0x43>; + qcom,mdss-spi-panel-framerate = <0x1b>; + qcom,mdss-spi-panel-width = <0x80>; + qcom,mdss-spi-panel-height = <0x80>; + qcom,mdss-spi-h-front-porch = <0x4f>; + qcom,mdss-spi-h-back-porch = <0x3b>; + qcom,mdss-spi-h-pulse-width = <0x3c>; + qcom,mdss-spi-v-back-porch = <0x0a>; + qcom,mdss-spi-v-front-porch = <0x07>; + qcom,mdss-spi-v-pulse-width = <0x02>; + qcom,mdss-spi-h-left-border = <0x00>; + qcom,mdss-spi-h-right-border = <0x00>; + qcom,mdss-spi-v-top-border = <0x00>; + qcom,mdss-spi-v-bottom-border = <0x00>; + qcom,mdss-spi-bpp = <0x10>; + qcom,mdss-spi-on-command = [00 02 ff a5 00 02 3e 09 00 02 3a 65 00 02 82 00 00 02 63 0f 00 02 64 0f 00 02 b4 24 00 02 b5 30 00 02 83 03 00 02 86 04 00 02 87 16 00 02 88 0f 00 02 89 2d 00 02 93 63 00 02 96 81 00 02 c3 10 00 02 e6 00 00 02 99 01 00 02 70 07 00 02 71 15 00 02 72 18 00 02 73 10 00 02 74 17 00 02 75 1b 00 02 76 38 00 02 77 0a 00 02 78 04 00 02 79 3c 00 02 7a 06 00 02 7b 0c 00 02 7c 11 00 02 7d 0b 00 02 7e 08 00 02 7f 12 00 02 a0 0d 00 02 a1 3e 00 02 a2 0b 00 02 a3 0f 00 02 a4 0a 00 02 a5 23 00 02 a6 48 00 02 a7 04 00 02 a8 05 00 02 a9 45 00 02 aa 0a 00 02 ab 12 00 02 ac 0d 00 02 ad 06 00 02 ae 3e 00 02 af 12 00 02 ff 00 78 01 11 00 02 36 88 00 01 21 00 05 2a 00 00 00 7f 00 05 2b 00 00 00 7f 0a 01 29 00 01 2c]; + qcom,mdss-spi-off-command = [00 01 28 78 01 10]; + qcom,mdss-spi-bl-min-level = <0x01>; + qcom,mdss-spi-bl-max-level = <0xff>; + qcom,mdss-spi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-spi-reset-sequence = <0x01 0x01 0x00 0x01 0x01 0x14>; + }; + }; + +# dt/dtb_01.dts:1356-1359 + qcom,mdss_dsi@1a98000 { + linux,phandle = <0x42>; + phandle = <0x42>; + }; + +# dt/dtb_01.dts:1361-1399 + qcom,mdss_spi { + compatible = "qcom,mdss-spi-display"; + label = "mdss spi panel"; + qcom,mdss-fb-map = <0x44>; + qcom,mdss-mdp = <0x45>; + vdd-supply = <0x46>; + vddio-supply = <0x47>; + qcom,spi-pref-prim-pan = <0x48>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <0x49>; + pinctrl-1 = <0x4a>; + qcom,platform-reset-gpio = <0x4b 0x76 0x00>; + qcom,platform-spi-dc-gpio = <0x4b 0x74 0x00>; + linux,phandle = <0x43>; + phandle = <0x43>; + + qcom,panel-supply-entries { + #address-cells = <0x01>; + #size-cells = <0x00>; + + qcom,panel-supply-entry@0 { + reg = <0x00>; + qcom,supply-name = "vdd"; + qcom,supply-min-voltage = <0x2b7cd0>; + qcom,supply-max-voltage = <0x2b7cd0>; + qcom,supply-enable-load = <0x186a0>; + qcom,supply-disable-load = <0x64>; + }; + + qcom,panel-supply-entry@1 { + reg = <0x01>; + qcom,supply-name = "vddio"; + qcom,supply-min-voltage = <0x1b7740>; + qcom,supply-max-voltage = <0x1b7740>; + qcom,supply-enable-load = <0x186a0>; + qcom,supply-disable-load = <0x64>; + }; + }; + }; + +# dt/dtb_01.dts:1401-1437 + qcom,mdss_dsi_pll@1a98300 { + label = "MDSS DSI 0 PLL"; + cell-index = <0x00>; + #clock-cells = <0x01>; + reg = <0x1a98300 0xd4>; + reg-names = "pll_base"; + gdsc-supply = <0x40>; + vddio-supply = <0x47>; + clocks = <0x3d 0xbfb92ed3>; + clock-names = "iface_clk"; + clock-rate = <0x00>; + linux,phandle = <0xa7>; + phandle = <0xa7>; + + qcom,platform-supply-entries { + #address-cells = <0x01>; + #size-cells = <0x00>; + + qcom,platform-supply-entry@0 { + reg = <0x00>; + qcom,supply-name = "gdsc"; + qcom,supply-min-voltage = <0x00>; + qcom,supply-max-voltage = <0x00>; + qcom,supply-enable-load = <0x00>; + qcom,supply-disable-load = <0x00>; + }; + + qcom,platform-supply-entry@1 { + reg = <0x01>; + qcom,supply-name = "vddio"; + qcom,supply-min-voltage = <0x1b7740>; + qcom,supply-max-voltage = <0x1b7740>; + qcom,supply-enable-load = <0x186a0>; + qcom,supply-disable-load = <0x64>; + }; + }; + }; + +# dt/dtb_01.dts:3487-3506 + rpm-regulator-ldoa6 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <0x06>; + qcom,regulator-type = <0x00>; + qcom,hpm-min-load = <0x2710>; + status = "okay"; + + regulator-l6 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "8916_l6"; + qcom,set = <0x03>; + status = "okay"; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + qcom,init-voltage = <0x1b7740>; + linux,phandle = <0x47>; + phandle = <0x47>; + }; + }; + +# dt/dtb_01.dts:3732-3751 + rpm-regulator-ldoa17 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <0x11>; + qcom,regulator-type = <0x00>; + qcom,hpm-min-load = <0x2710>; + status = "okay"; + + regulator-l17 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "8916_l17"; + qcom,set = <0x03>; + status = "okay"; + regulator-min-microvolt = <0x2b7cd0>; + regulator-max-microvolt = <0x2b7cd0>; + qcom,init-voltage = <0x2b7cd0>; + linux,phandle = <0x46>; + phandle = <0x46>; + }; + }; + +# dt/dtb_01.dts:4333-4362 + spi@78b8000 { + compatible = "qcom,spi-qup-v2"; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg-names = "spi_physical", "spi_bam_physical"; + reg = <0x78b8000 0x600 0x7884000 0x23000>; + interrupt-names = "spi_irq", "spi_bam_irq"; + interrupts = <0x00 0x62 0x00 0x00 0xee 0x00>; + spi-max-frequency = <0x2faf080>; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <0xc6 0xc7>; + pinctrl-1 = <0xc8 0xc9>; + clocks = <0x3d 0x8caa5b4f 0x3d 0x80f8722f>; + clock-names = "iface_clk", "core_clk"; + qcom,infinite-mode = <0x00>; + qcom,use-bam; + qcom,use-pinctrl; + qcom,ver-reg-exists; + qcom,bam-consumer-pipe-index = <0x0a>; + qcom,bam-producer-pipe-index = <0x0b>; + qcom,master-id = <0x56>; + status = "okay"; + + qcom,mdss_spi_client { + reg = <0x00>; + compatible = "qcom,mdss-spi-client"; + label = "MDSS SPI QUP4 CLIENT"; + spi-max-frequency = <0xf42400>; + }; + }; + +# dt/dtb_01.dts:4893-4911 + qcom,leds@a300 { + compatible = "qcom,leds-qpnp"; + reg = <0xa300 0x100>; + label = "mpp"; + status = "okay"; + + qcom,led_mpp_4 { + label = "mpp"; + linux,name = "lcd-bl"; + linux,default-trigger = "bkl-trigger"; + qcom,default-state = "off"; + qcom,max-current = <0x28>; + qcom,current-setting = <0x28>; + qcom,id = <0x06>; + qcom,mode = "manual"; + qcom,source-sel = <0x01>; + qcom,mode-ctrl = <0x60>; + }; + }; + +# dt/dtb_01.dts:6017-6029 + spi0_active { + qcom,pins = <0xde 0x0c 0xde 0x0d 0xde 0x0f>; + qcom,num-grp-pins = <0x03>; + qcom,pin-func = <0x01>; + label = "spi0-active"; + + default { + drive-strength = <0x0c>; + bias-disable = <0x00>; + linux,phandle = <0xc6>; + phandle = <0xc6>; + }; + }; + +# dt/dtb_01.dts:6031-6043 + spi0_suspend { + qcom,pins = <0xde 0x0c 0xde 0x0d 0xde 0x0f>; + qcom,num-grp-pins = <0x03>; + qcom,pin-func = <0x00>; + label = "spi0-suspend"; + + sleep { + drive-strength = <0x02>; + bias-pull-down; + linux,phandle = <0xc8>; + phandle = <0xc8>; + }; + }; + +# dt/dtb_01.dts:6045-6057 + spi0_cs0_active { + qcom,pins = <0xde 0x0e>; + qcom,num-grp-pins = <0x01>; + qcom,pin-func = <0x01>; + label = "spi0-cs0-active"; + + cs0_active { + drive-strength = <0x02>; + bias-disable = <0x00>; + linux,phandle = <0xc7>; + phandle = <0xc7>; + }; + }; + +# dt/dtb_01.dts:6059-6071 + spi0_cs0_suspend { + qcom,pins = <0xde 0x0e>; + qcom,num-grp-pins = <0x01>; + qcom,pin-func = <0x00>; + label = "spi0-cs0-suspend"; + + cs0_sleep { + drive-strength = <0x02>; + bias-disable = <0x00>; + linux,phandle = <0xc9>; + phandle = <0xc9>; + }; + }; + +# dt/dtb_01.dts:6389-6410 + pmx_mdss { + label = "mdss-pins"; + qcom,pin-func = <0x00>; + qcom,num-grp-pins = <0x02>; + qcom,pins = <0xde 0x76 0xde 0x74>; + + active { + drive-strength = <0x08>; + bias-disable = <0x00>; + output-high; + linux,phandle = <0x49>; + phandle = <0x49>; + }; + + suspend { + drive-strength = <0x02>; + bias-pull-down; + output-low; + linux,phandle = <0x4a>; + phandle = <0x4a>; + }; + }; + +# reserved memory / splash +1246: qcom,memblock-reserve = <0x83200000 0xfa0000>; +1324: qcom,cont-splash-enabled; + +# dtb_00 vs dtb_01 display-node sha (phandles stripped): identical diff --git a/logs/b9/b9a/b9a-stock-lk.txt b/logs/b9/b9a/b9a-stock-lk.txt new file mode 100644 index 0000000..8dea35f --- /dev/null +++ b/logs/b9/b9a/b9a-stock-lk.txt @@ -0,0 +1,134 @@ +# B9A — stock LK (aboot) display analysis. READ-ONLY. +# Source: partitions/aboot.bin (stock backup, ELF, entry 0x8f600000) -> bootchain/aboot-analysis/lk.bin (load seg 0x8f600000+0x530c8), +# lk-arm.dis (objdump). Tools: b9/b9a/lk-xref.py, lkmem.py, disrange.sh, decode-panel.py, render-lk-logo.py. +# NOTE: stock LK is no longer on the eMMC (aboot = lk1st-aurora-autoboot since B5a); this is the saved original. + +## VERDICT: YES — stock LK fully brings up the panel before Linux (power/reset, SPI init, 19-cmd init, frame write, backlight), +## at ~210 ms after LK start, and hands it to the kernel as continuous splash (cmdline mdss_mdp.panel=1:spi:0:qcom,mdss_spi_st7735s_wx144_128x128_cmd). + +== 1. UART evidence (stock boots, logs/uart/coldboot-20260929-200018.log, preflight-recovery-20260929-201150.log) +20:01:01.630 [0] welcome to lk +20:01:01.630 [10] target_init() +20:01:01.830 [210] Panel power on done +20:01:01.830 [210] Config SPI PANEL. +20:01:02.230 [500] cmdline: console=ttyHSL0,115200,n8 androidboot.console=ttyHSL0 androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x3F ehci-hcd.park=3 androidboot.bootdevice=7824900.sdhci andro +20:01:46.857 [0] welcome to lk +20:01:46.857 [10] target_init() +20:01:47.057 [210] Panel power on done +20:01:47.057 [210] Config SPI PANEL. +logs/uart/lk2nd-boottest-20260929-203353.log:20:34:56.320 [210] Panel power on done +logs/uart/lk2nd-boottest-20260929-203353.log:20:34:56.320 [210] Config SPI PANEL. +logs/uart/preflight-recovery-20260929-201150.log:20:12:20.096 [210] Panel power on done +logs/uart/preflight-recovery-20260929-201150.log:20:12:20.096 [210] Config SPI PANEL. +logs/uart/preflight-recovery-20260929-201150.log:20:13:09.732 [210] Panel power on done +logs/uart/preflight-recovery-20260929-201150.log:20:13:09.732 [210] Config SPI PANEL. +logs/uart/preflight-recovery-20260929-201150.log:20:19:21.864 [210] Panel power on done +logs/uart/preflight-recovery-20260929-201150.log:20:19:21.864 [210] Config SPI PANEL. +logs/uart/preflight-recovery-20260929-201150.log:20:19:49.496 [210] Panel power on done +logs/uart/preflight-recovery-20260929-201150.log:20:19:49.496 [210] Config SPI PANEL. +logs/uart/preflight-recovery-20260929-201150.log:20:33:24.573 [210] Panel power on done +logs/uart/preflight-recovery-20260929-201150.log:20:33:24.574 [210] Config SPI PANEL. +logs/uart/preflight-recovery-20260929-201150.log:20:33:39.596 [210] Panel power on done +logs/uart/preflight-recovery-20260929-201150.log:20:33:39.596 [210] Config SPI PANEL. +20:01:04.031 [ 0.000000] Node qcom,mdss_fb_primary memblock_reserve memory 83200000-841a0000 +20:01:04.231 [ 0.000000] Kernel command line: console=ttyHSL0,115200,n8 androidboot.console=ttyHSL0 androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x3F ehci-hcd.park=3 androidboot.bootdevice=7824900.sdhci androidboot.emmc=true androidboot.serialno=3 +20:01:04.632 [ 0.144515] KPI: Bootloader display count = 23838 +20:01:05.834 [ 0.620091] mdss_spi_panel_probe: Ctrl name = mdss spi panel +20:01:05.835 [ 0.620348] mdss_spi_panel_init: Panel Name = st7735s wx144 128x128 command mode spi panel +20:01:05.835 [ 0.620665] mdss_spi_panel_init: Continuous splash enabled +20:01:07.439 [ 4.037439] mdss_fb_register: FrameBuffer[0] 128x128 registered successfully! +Current chain (lk1st-aurora-autoboot, e.g. logs/uart/b7cV1-20261002-195525.log): NO "Panel power on"/"Config SPI PANEL" lines. +lk2nd source: platform/msm_shared/rules.mk builds mdss_spi.o only for PLATFORM msm8909/msm8952; lk2nd/device/2nd/spi-display.c only +re-uses a panel "initialized by previous bootloader" (240x320 fixed). => current msm8916 lk1st has no SPI-panel code at all. + +== 2. Function map (stock LK, addresses in 0x8f6xxxxx) +0x8f600eac display init loop -> gcdb_display_init(0x8f616918)(rev, MDP_REV=12, fb_base=0x83200000) +0x8f600f20 oem_panel_select(): panel_id := 1 (HARDCODED, mov r5,#1; str -> 0x8f654408), prints "lcd_id == st7735s spi lcd" + unconditionally (NO ID read over SPI, no ID GPIO). id 0 -> qcom,mdss_dsi_st7796s_320p_video (DSI), id 1 -> st7735s (19 cmds), + id 2 -> qcom,mdss_spi_nv3023a_jz05_128x128_cmd (58 cmds). Aurora stock LK always uses id 1. +0x8f616918 gcdb_display_init(): "SPI panel select and init start", pinfo.type = 13 (SPI_PANEL), power_func=0x8f6165e0, bl_func=0x8f616698 +0x8f6165e0 mdss_spi panel power: target_ldo_ctrl(0x8f600e98) then target_panel_reset(0x8f600bb8); prints "Panel power on done" +0x8f600e98 target_ldo_ctrl(): STUB `mov r0,#0; bx lr` -> stock LK switches NO regulator. No RPM 'ldoa'/'smpa' request code in LK at all. +0x8f600bb8 target_panel_reset(enable): (board hw_id 8 MTP) gpio_tlmm_config(0,...,enable=0)+gpio_set(0,HIGH) [CAF enable_gpio leftover, + OE bit 9 = 0 -> GPIO0 not driven], then reset GPIO 118: tlmm_config(118, func0, dir out, nopull, drv=3 (8 mA), OE=1), + set HIGH, then seq pin_state {1,0,1} / sleep {1,1,120} ms => RST high 1 ms, LOW 1 ms, HIGH, wait 120 ms. + (QRD hw_id 11/subtype 4 branch drives TPS65132 on I2C 0x3e — not this board.) +0x8f600b54 target_backlight_ctrl(bl, en): if bl_interface_type != 2 (DCS): PM8916 MPP4 (base 0xa300, SID0): + MODE_CTL(0xa340) = 0x60|1 = 0x61 (current-sink mode, enable), SINK_CTL(0xa34c) = 7 (=40 mA), EN_CTL(0xa346) = en<<7 (0x80); + mdelay(20). No PWM/LPG, no WLED (PM8916 has no WLED; "bl_ctrl_wled" in panel data is a CAF label). +0x8f6107e4 spi_qup_init(blsp=1, qup=3): base = (3+0x78b5)<<12 = 0x078b8000 (BLSP1 QUP4) +0x8f601bc8 BLSP1 QUP4 pinmux: TLMM cfg regs 0x0100c000..0x0100f000 = GPIO12 (MOSI), 13 (MISO), 14 (CS_N), 15 (CLK), func 1 +0x8f6019d4 clock_config_blsp_spi: gcc_blsp1_qup4_spi_apps_clk = 16 000 000 Hz (0x00f42400) +0x8f610924 QUP regs: QUP_CONFIG=0x180 (SPI mode, NO_INPUT), SPI_CONFIG(0x300)=0 (INPUT_FIRST=0 -> CPHA=1), SPI_IO_CONTROL(0x304)=0x401 + (NO_TRI_STATE|CLK_IDLE_HIGH -> CPOL=1) => SPI mode 3 (spi-qup.c semantics), write-only (TX), native CS0. +0x8f610b6c mdss_spi panel on: D/C GPIO 116 tlmm_config(func0, out, nopull, drv 3, OE); per cmd: D/C LOW + 1 cmd byte (0x8f6109f4), + D/C HIGH + params (0x8f610a80), mdelay(wait). Frame: D/C HIGH, 16-bit words, len = w*h*bpp/8 (0x8f610b00/0x8f610c64). +0x8f61659c display_image_on_screen(): fbcon_clear; fetch splash partition; if no "SPLASH!!" header -> built-in 128x128 RGB565 image + @0x8f64b004 (memcpy 128*128*2 to fb 0x83200000, then SPI flush). Stock splash partition = 10 MiB of zeros (sha in + partitions/SHA256SUMS) => stock shows the built-in "4G LTE" logo (rendered: b9a-stock-lk-embedded-logo-128x128.png). +0x8f60d78c "Continuous splash enabled, keeping panel alive." -> panel left ON for the kernel. +0x8f6166e8 cmdline builder: " mdss_mdp.panel=" + "1:spi:0:" + panel node id. + +== 3. Panel data structures (stock LK, panel_id 1) +paneldata @0x8f648288: node 'qcom,mdss_spi_st7735s_wx144_128x128_cmd', controller 'spi:0:', compatible 'qcom,mdss-spi-panel', + interface 10, destination DISPLAY_1, framerate 27 (DT node says 20; irrelevant for a GRAM panel) +resolution @0x8f647e8c: 128 x 128, h fp/bp/pw 79/59/60, v 10/7/2 (porches meaningless for SPI command-mode) +color @0x8f648410: 16 bpp (RGB565), order 0 +reset @0x8f6483ec: pin_state {1,0,1,0,0} sleep {1,1,120,0,0} ms, direction 2 (== DT qcom,mdss-spi-reset-sequence <1 1 0 1 1 0x78>) +backlight @0x8f648728: interface 1 (BL_WLED label -> MPP4 path above), min 1, max 0xfff, step 100, pmic ctrl 1, model 'PMIC_8941' +on-commands @0x8f64849c: 19 x {u32 size, u32 ptr, u32 wait, u8 post_tg}, count 19 (pinfo+0xf0/0xf4) + +== 4. Init sequence: stock LK vs stock DT (b9/b9a/decode-panel.py) +== stock LK st7735s (0x8f64849c): 19 commands + 0 11 SLPOUT wait=120 ms + 1 b1 FRMCTR1 05 3a 3a wait=0 ms + 2 b2 FRMCTR2 05 3a 3a wait=0 ms + 3 b3 FRMCTR3 05 3a 3a 05 3a 3a wait=0 ms + 4 b4 INVCTR 03 wait=0 ms + 5 c0 PWCTR1 62 02 04 wait=0 ms + 6 c1 PWCTR2 c0 wait=0 ms + 7 c2 PWCTR3 0d 00 wait=0 ms + 8 c3 PWCTR4 8d 6a wait=0 ms + 9 c4 PWCTR5 8d ee wait=0 ms + 10 c5 VMCTR1 12 wait=0 ms + 11 e0 GMCTRP1 03 1b 12 11 3f 3a 32 34 2f 2b 30 3a 00 01 02 05 wait=0 ms + 12 e1 GMCTRN1 03 1b 12 11 32 2f 2a 2f 2e 2c 35 3f 00 00 01 05 wait=0 ms + 13 36 MADCTL c8 wait=0 ms + 14 3a COLMOD 05 wait=0 ms + 15 2a CASET 00 02 00 81 wait=0 ms + 16 2b RASET 00 03 00 82 wait=0 ms + 17 29 DISPON wait=0 ms + 18 2c RAMWR wait=0 ms +== stock dtb_01 st7735s on-command: 19 commands + 0 11 SLPOUT wait=120 ms + 1 b1 FRMCTR1 05 3a 3a wait=0 ms + 2 b2 FRMCTR2 05 3a 3a wait=0 ms + 3 b3 FRMCTR3 05 3a 3a 05 3a 3a wait=0 ms + 4 b4 INVCTR 03 wait=0 ms + 5 c0 PWCTR1 62 02 04 wait=0 ms + 6 c1 PWCTR2 c0 wait=0 ms + 7 c2 PWCTR3 0d 00 wait=0 ms + 8 c3 PWCTR4 8d 6a wait=0 ms + 9 c4 PWCTR5 8d ee wait=0 ms + 10 c5 VMCTR1 12 wait=0 ms + 11 e0 GMCTRP1 03 1b 12 11 3f 3a 32 34 2f 2b 30 3a 00 01 02 05 wait=0 ms + 12 e1 GMCTRN1 03 1b 12 11 32 2f 2a 2f 2e 2c 35 3f 00 00 01 05 wait=0 ms + 13 36 MADCTL c8 wait=0 ms + 14 3a COLMOD 05 wait=0 ms + 15 2a CASET 00 02 00 81 wait=0 ms + 16 2b RASET 00 03 00 82 wait=0 ms + 17 29 DISPON wait=0 ms + 18 2c RAMWR wait=0 ms +LK == DT (payload+wait): True +== stock dtb_01 st7735s off-command: 2 commands + 0 28 DISPOFF wait=0 ms + 1 10 SLPIN wait=120 ms + +Interpretation: ST7735S (ST7735-family command set; MADCTL 0xc8 = MY|MX|BGR, COLMOD 0x05 = 16 bpp RGB565, +visible window column 2..129, row 3..130 => 128x128 glass on a 132x162 GRAM with offset (2,3)). + +== 5. Things stock LK does NOT do +- no regulator control (L17/L6 untouched; whatever SBL1/RPM left on is used) +- no panel ID read (hardcoded id 1) +- no TE GPIO, no DSI, no MDP scanout (SPI panel has own GRAM; fb 0x83200000 is only a CPU-side buffer) +- no PWM brightness (MPP4 sink fixed 40 mA, on/off) diff --git a/logs/b9/b9b/B9B-RESULT.md b/logs/b9/b9b/B9B-RESULT.md new file mode 100644 index 0000000..ac50b8a --- /dev/null +++ b/logs/b9/b9b/B9B-RESULT.md @@ -0,0 +1,83 @@ +# B9B-RESULT — first light: ST7735S through Linux DRM / MIPI-DBI (RAM-only) + +Date: 2026-10-03. **Result: PASS.** + +The image was RAM-booted with `fastboot boot` after a RESET-held power-on. Nothing was flashed. +The eMMC cache is still B8F `857c9c30`, and `mmcblk0` writes = 0 for the whole boot. + +## Image + +| Component | sha256 | Notes | +|---|---|---| +| `b9/b9b/out/aurora-b9b.img` | `46e7a682…` | boot.img v0, golden mm1 cmdline | +| kernel `Image.gz` | `afdddcef…` | `7.2.7-aurora-b9b #8`. b8d plus `DRM`, `DRM_PANEL_MIPI_DBI`, `DRM_FBDEV_EMULATION`, `FB_DEVICE`, and the symbols they select. No fbcon, no MSM DRM (fragment `linux/aurora-b9b.config`). image_size 0x1820000, so the kernel ends at 0x81820000, below the DTB at 0x81e00000. | +| `aurora-b9b.dtb` | `7ca9cc79…` | `linux/dts/msm8916-jz08-aurora-b9b.dts` = B8B plus the display nodes | +| `jz08au,aurora-st7735s.bin` | `58697d4d…` | 121 B. The stock LK 19-command table, with an assert that it equals stock dtb_01; only the trailing RAMWR is dropped. Generated by `b9/b9b/mk-panel-fw.py`. | +| initramfs | `8a97e93b…` | Exact B8F initramfs (`abb3bd67`) plus an overlay: firmware, test frames, `b9b-test.sh` | + +The out dir contains the B8F initramfs, which includes the Wi-Fi PSK, so `b9/b9b/out` must never be published. +The logs were scanned for the PSK: none found. + +## DT (as used) + +- `spi@78b8000` (BLSP1 QUP4): okay. Pinctrl as in stock: GPIO12/13/15 `blsp_spi4` 12 mA, GPIO14 `blsp_spi4` 2 mA (native CS0). +- `panel@0`: + - compatible `jz08au,aurora-st7735s` + `panel-mipi-dbi-spi`; `spi-max-frequency 16000000`; `spi-cpol` + `spi-cpha` (mode 3); `write-only`. + - `dc-gpios` tlmm 116, `reset-gpios` tlmm 118; GPIOs configured as gpio, 8 mA, no bias (stock pmx_mdss). + - `power-supply` = L17 2.85 V, `io-supply` = L6 1.8 V. + - `format "r5g6b5"`; `panel-timing` 128×128 with `hback-porch 2` / `vback-porch 3` (the GRAM offset). +- Backlight: `gpio-backlight` on `pm8916_mpps 4`, pinctrl `function "sink"`, `drive-strength 7`, `output-low`. + It is deliberately not linked to the panel (B9B step split), and is switched only through the kernel driver (sysfs). + +## Steps and evidence (logs `ram1/`: `host-actions.txt`, `uart.log`, `state-boot.txt`, `steps.txt`) + +1. **fastboot boot:** OK, rc=0. NCM up 11 s later. +2. **Probe:** + - `spi_qup 78b8000.spi: IN:block:16, fifo:64…` at 0.71 s. + - `l17: Bringing 0uV into 2850000-2850000uV`. + - `[drm] Initialized panel-mipi-dbi 1.0.0 for spi0.0 on minor 0` at 1.43 s. + - `panel-mipi-dbi-spi spi0.0: [drm] fb0: panel-mipi-dbid frame buffer device`. + - No display-related errors. +3. **Devices:** `/dev/dri/card0`, `/sys/class/drm/card0-SPI-1`, `/dev/fb0`. + fb0 is 16 bpp, 128×128, stride 256; `/sys/class/backlight/backlight` exists. +4. **Regulators:** + - After boot: L17/L6 opened by `spi0.0-power` / `spi0.0-io` but with use=0, because without fbcon nothing had done a modeset yet. + L17 was physically off (EN 0x00). + - The modeset was triggered the normal way: `echo 0 > /sys/class/graphics/fb0/blank` (fbdev unblank → atomic commit → pipe enable). + After that: L17 **STATUS 0x82, EN 0x80, 2.85 V**, L6 use 1, `gcc_blsp1_qup4_spi_apps_clk` = **16 000 000 Hz**. + GPIO118 high (out of reset), GPIO116 driven. +5. **Frame:** `b9b-test.sh show geo` wrote the RGB565 frame into `/dev/fb0`. +6. **Backlight MPP4** (PMIC reads only; nothing written raw): + + | State | 0xa340 MODE | 0xa346 EN | 0xa34c SINK | 0xa341/42/48/4a | + |---|---|---|---|---| + | Before Linux (B9A, reset defaults) | 00 | 00 | 00 | 00 | + | Probe (pinctrl "sink", off) | 60 | 80 | 07 | 00 (unchanged) | + | `bl on` (sysfs bl_power 0, brightness 1) | **61** | **80** | **07** | 00 | + | `bl off` | 60 | 80 | 07 | 00 | + | `bl on` again | 61 | 80 | 07 | 00 | + + On = **exactly the stock LK values** (0x61 / 0x07 / 0x80: current sink, 40 mA, enabled). + Off/on control works through the driver. +7. **Operator visual check** (geo chart: white 1-px border, R/G/B/W corners, R|G|B bars, yellow arrow): + **image visible, arrow points up, colours correct, border complete on all 4 sides.** + So 128×128, offset X=2/Y=3, MADCTL `c8` + RGB565 and orientation are all correct with no changes. +8. **LTE/Wi-Fi:** START OK in 62.3 s; `ping -I wwan0 77.88.8.8` 5/5; AP `aurora-b8f` ch6 ENABLED in 66 s; MPSS and WCNSS remoteproc running. + Same boot-time-only messages as B8F (early `wcnss.mdt` -2 before /firmware is mounted, no `regulatory.db`). +9. **eMMC:** `/sys/block/mmcblk0/stat` write fields = 0 at 96 s and at 219 s. + +## Differences from stock LK (by design or inherent to the driver) + +- The mipi-dbi driver does its own hardware reset (low ≥20 µs, high, 120 ms) and sends SWRESET (0x01) before the firmware commands. + Stock does high 1 ms → low 1 ms → high → 120 ms, with no SWRESET. The init commands, parameters and the 120 ms delay are otherwise identical. +- Linux enables L17/L6 explicitly; stock LK switches no regulators. +- Without fbcon, the fbdev client does not modeset by itself. Pipe enable needs an unblank, or a future DRM/fbdev user. + This matters for B9C/persistent integration: the init script must unblank (or open DRM) at boot. + +## Open (not blocking) + +- With the backlight on, the panel is off/on via MPP4 only (no dimming; sink 5–40 mA is possible later via drive-strength or an LPG). +- Backlight off was verified by register readback only; the operator visually confirmed "on". +- Autostart (unblank + backlight), panel blanking and suspend are not done yet. **Router stack: not touched.** + +STOP — B9B complete, waiting for the next GO. diff --git a/logs/b9/b9b/SHA256SUMS b/logs/b9/b9b/SHA256SUMS new file mode 100644 index 0000000..05865f8 --- /dev/null +++ b/logs/b9/b9b/SHA256SUMS @@ -0,0 +1,10 @@ +0b571177616cf16b7dec19feaa55a8a7ff4935325daaec4d4b8a1b315e150bd5 ./B9B-RESULT.md +e1c577339d830d981229a197879d6a9307755ea60e9900bd26e9c8444396871e ./boot1.console +a039d82f47d8a6263b7db20fb06853b3deb849dff77ee83c53d7d141c5080e59 ./ram1/.a +a54d5eb31dbb832e75c5489b1ee7008bf233a502b89092cabc3cacad161b0c6d ./ram1/host-actions.txt +cc363512e90d041b0a6b79f99de2eda29983a1268b444ff98342aa5c281c55e2 ./ram1/.s +7edb3b16941e63f52513fc2f13127ca5ea0a3cf5b4298a6d6c9b5129844402d9 ./ram1/state-boot.txt +dc948a390a5a29c1faac0250e63b68093036ff786611d12060e57945008b044c ./ram1/steps.txt +4b23f2ae345bf8b2bec8f19033e536138b4433beb5a7f3aaf42c0dcf407ed027 ./ram1/uart.log +71b5fb5c834761fae804e1377fd5f22639cf3a06629e5ded0a21d915dc56c0b4 ./ram1/uartlog-path +bb904287620f59f51fd40ef729cffd48464ce407d72f901933a02957b451b17d ./ram1/.w diff --git a/logs/b9/b9b/ram1/host-actions.txt b/logs/b9/b9b/ram1/host-actions.txt new file mode 100644 index 0000000..be54d58 --- /dev/null +++ b/logs/b9/b9b/ram1/host-actions.txt @@ -0,0 +1,13 @@ +20:54:54.067 B9B ram1: waiting for fastboot (power off >= 90 s, then RESET held + battery -> USB) +20:57:44.431 fastboot present +Sending 'boot.img' (24948 KB) OKAY [ 0.787s] +Booting OKAY [ 0.542s] +Finished. Total time: 1.350s +rc=0 +20:57:55.799 NCM ping ok +~ # cat /proc/device-tree/model; echo; uname -r; grep -E "START OK|FAIL in|rollb +JZ08AU Aurora (RAM boot B9B) +7.2.7-aurora-b9b +[71.69] === START OK in 62.3s (wwan0 10.45.150.163/29, routes: 10.10.22.3 194.186.191.1 77.88.8.8 1.1.1.1 ) +20:59:21.884 wifi: [75.52] === AP ENABLED ssid=aurora-b8f ch=6 pid=2537 in 66.16s +20:59:34.893 state saved (116 lines) diff --git a/logs/b9/b9b/ram1/state-boot.txt b/logs/b9/b9b/ram1/state-boot.txt new file mode 100644 index 0000000..acbfb98 --- /dev/null +++ b/logs/b9/b9b/ram1/state-boot.txt @@ -0,0 +1,116 @@ +B9B-STATE-BEGIN +96.35 345.00 +JZ08AU Aurora (RAM boot B9B) +7.2.7-aurora-b9b +--- regulators +l17 state=disabled uV=2850000 users=0 +l6 state=disabled uV=1800000 users=0 + l6 0 1 0 unknown 1800mV 0mA 1800mV 1800mV + spi0.0-io 0 0mA 0mV 0mV + l17 0 1 0 unknown 2850mV 0mA 2850mV 2850mV + spi0.0-power 0 0mA 0mV 0mV +--- PMIC L6 (sid1 0x4500) / L17 (0x5000): 08 STATUS, 40/41 VSET, 46 EN +# PMIC sid1 0x4508 +1 +4508: 82 +# PMIC sid1 0x4540 +2 +4540: 00 +4541: 04 +# PMIC sid1 0x4546 +1 +4546: 80 +# PMIC sid1 0x5008 +1 +5008: 00 +# PMIC sid1 0x5040 +2 +5040: 00 +5041: 58 +# PMIC sid1 0x5046 +1 +5046: 00 +--- MPP4 0xa340..0xa34f (40 MODE,41 VIN,42 PULL,46 EN,48 AOUT,4a AIN,4c SINK) +# PMIC sid0 0xa340 +16 +a340: 60 +a341: 00 +a342: 00 +a343: 00 +a344: 00 +a345: 00 +a346: 80 +a347: 00 +a348: 00 +a349: 00 +a34a: 00 +a34b: 00 +a34c: 07 +a34d: 00 +a34e: 00 +a34f: 00 +--- dmesg +[ 0.000000] psci: PSCIv1.0 detected in firmware. +[ 0.000000] psci: [Firmware Bug]: failed to set PC mode: -3 +[ 0.397114] qcom_scm firmware:scm: SHM Bridge not supported +[ 0.401809] qcom_scm firmware:scm: qseecom: found qseecom with version 0x800000 +[ 0.406963] qcom_scm firmware:scm: qseecom: untested machine, skipping +[ 0.709853] spi_qup 78b8000.spi: IN:block:16, fifo:64, OUT:block:16, fifo:64 +[ 0.996260] qcom-wcnss-pil a204000.remoteproc: supply vddcx not found, using dummy regulator +[ 1.007264] a204000.remoteproc.iris: failed to get regulators +[ 1.048298] qcom-wcnss-pil a204000.remoteproc: supply vddcx not found, using dummy regulator +[ 1.051116] l17: Bringing 0uV into 2850000-2850000uV +[ 1.419418] remoteproc remoteproc1: Direct firmware load for wcnss.mdt failed with error -2 +[ 1.430342] remoteproc remoteproc1: Direct firmware load for wcnss.mdt failed with error -2 +[ 1.430518] [drm] Initialized panel-mipi-dbi 1.0.0 for spi0.0 on minor 0 +[ 1.436520] remoteproc remoteproc1: request_firmware failed: -2 +[ 1.452334] panel-mipi-dbi-spi spi0.0: [drm] fb0: panel-mipi-dbid frame buffer device +[ 1.460144] cfg80211: Loading compiled-in X.509 certificates for regulatory database +[ 1.485907] faux_driver regulatory: Direct firmware load for regulatory.db failed with error -2 +[ 1.489931] cfg80211: failed to load regulatory.db +[ 7.154116] [init] B1: modem FAT mounted RO at /firmware, firmware path /firmware/image +[ 74.564849] wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO' and CRM version 'CNSS-PR-1-4-2-c4-00084' +[ 74.564953] wcn36xx: firmware API 1.5.1.2, 41 stations, 2 bssids +[ 74.617786] [aurora-wifi] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +--- devices +crw------- 1 root root 29, 0 Oct 2 20:58 /dev/fb0 + +/dev/dri: +total 0 +drwxr-xr-x 3 root root 80 Oct 2 20:58 . +drwxr-xr-x 11 root root 4220 Oct 2 20:58 .. +drwxr-xr-x 2 root root 60 Oct 2 20:58 by-path +crw------- 1 root root 226, 0 Oct 2 20:58 card0 +/sys/bus/spi/devices: +spi0.0 + +/sys/class/backlight: +backlight + +/sys/class/drm: +card0 card0-SPI-1 version + +/sys/class/graphics: +fb0 +fb0 name=panel-mipi-dbid +fb0 bits_per_pixel=16 +fb0 virtual_size=128,128 +fb0 stride=256 +backlight bl_power=4 +backlight brightness=1 +backlight actual_brightness=1 +backlight max_brightness=1 +--- gpio + gpio12 : in low func1 12mA no pull + gpio13 : in low func1 12mA no pull + gpio14 : in high func1 2mA no pull + gpio15 : in low func1 12mA no pull + gpio116 : out low func0 8mA no pull + gpio118 : out high func0 8mA no pull + mpp4 : out sink vin-0 0 low +pin 12 (GPIO_12): device 78b8000.spi function blsp_spi4 group gpio12 +pin 13 (GPIO_13): device 78b8000.spi function blsp_spi4 group gpio13 +pin 14 (GPIO_14): device 78b8000.spi function blsp_spi4 group gpio14 +pin 15 (GPIO_15): device 78b8000.spi function blsp_spi4 group gpio15 +pin 116 (GPIO_116): device spi0.0 function gpio group gpio116 +pin 118 (GPIO_118): device spi0.0 function gpio group gpio118 +pin 3 (mpp4): +--- clk + blsp1_qup4_spi_apps_clk_src 0 0 0 19200000 0 0 50000 N deviceless no_connection_id + gcc_blsp1_qup4_spi_apps_clk 0 0 0 19200000 0 0 50000 N 78b8000.spi core +--- emmc + 1119 43 193701 2473 0 0 0 0 0 1176 2473 0 0 0 0 0 0 +B9B-STATE-END diff --git a/logs/b9/b9b/ram1/steps.txt b/logs/b9/b9b/ram1/steps.txt new file mode 100644 index 0000000..4d188a0 --- /dev/null +++ b/logs/b9/b9b/ram1/steps.txt @@ -0,0 +1,239 @@ +=== 20:59:59 $ echo 0 > /sys/class/graphics/fb0/blank; echo rc=$?; dmesg | tail -5 +�������� +BusyBox v1.37.0 (Debian 1:1.37.0-6+b9) built-in shell (ash) +Enter 'help' for a list of built-in commands. +rc=0 +[ 74.564953] wcn36xx: firmware API 1.5.1.2, 41 stations, 2 bssids +[ 74.617786] [aurora-wifi] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +[ 75.668381] [aurora-wifi] === AP ENABLED ssid=aurora-b8f ch=6 pid=2537 in 66.16s +[ 87.277311] [aurora-modem] SNTP check ( 89.109.251.21 89.109.251.22 89.109.251.23): 14 replies; best offset delay server: +0.972631 0.056675 89.109.251.21: (offset > 0 = clock behind) +[ 87.281956] [aurora-modem] SNTP: |offset| < 1s - clock kept (no slew: STA_UNSYNC stays, RTC_SYSTOHC never engages) +~ # === 21:00:03 $ /usr/libexec/aurora/b9b/b9b-test.sh state +�������� +BusyBox v1.37.0 (Debian 1:1.37.0-6+b9) built-in shell (ash) +Enter 'help' for a list of built-in commands. +B9B-STATE-BEGIN +138.29 511.71 +JZ08AU Aurora (RAM boot B9B) +7.2.7-aurora-b9b +--- regulators +l17 state=enabled uV=2850000 users=1 +l6 state=enabled uV=1800000 users=1 + l6 1 1 0 unknown 1800mV 0mA 1800mV 1800mV + spi0.0-io 1 0mA 0mV 0mV + l17 1 1 0 unknown 2850mV 0mA 2850mV 2850mV + spi0.0-power 1 0mA 0mV 0mV +--- PMIC L6 (sid1 0x4500) / L17 (0x5000): 08 STATUS, 40/41 VSET, 46 EN +# PMIC sid1 0x4508 +1 +4508: 82 +# PMIC sid1 0x4540 +2 +4540: 00 +4541: 04 +# PMIC sid1 0x4546 +1 +4546: 80 +# PMIC sid1 0x5008 +1 +5008: 82 +# PMIC sid1 0x5040 +2 +5040: 00 +5041: 58 +# PMIC sid1 0x5046 +1 +5046: 80 +--- MPP4 0xa340..0xa34f (40 MODE,41 VIN,42 PULL,46 EN,48 AOUT,4a AIN,4c SINK) +# PMIC sid0 0xa340 +16 +a340: 60 +a341: 00 +a342: 00 +a343: 00 +a344: 00 +a345: 00 +a346: 80 +a347: 00 +a348: 00 +a349: 00 +a34a: 00 +a34b: 00 +a34c: 07 +a34d: 00 +a34e: 00 +a34f: 00 +--- dmesg +[ 0.000000] psci: PSCIv1.0 detected in firmware. +[ 0.000000] psci: [Firmware Bug]: failed to set PC mode: -3 +[ 0.397114] qcom_scm firmware:scm: SHM Bridge not supported +[ 0.401809] qcom_scm firmware:scm: qseecom: found qseecom with version 0x800000 +[ 0.406963] qcom_scm firmware:scm: qseecom: untested machine, skipping +[ 0.709853] spi_qup 78b8000.spi: IN:block:16, fifo:64, OUT:block:16, fifo:64 +[ 0.996260] qcom-wcnss-pil a204000.remoteproc: supply vddcx not found, using dummy regulator +[ 1.007264] a204000.remoteproc.iris: failed to get regulators +[ 1.048298] qcom-wcnss-pil a204000.remoteproc: supply vddcx not found, using dummy regulator +[ 1.051116] l17: Bringing 0uV into 2850000-2850000uV +[ 1.419418] remoteproc remoteproc1: Direct firmware load for wcnss.mdt failed with error -2 +[ 1.430342] remoteproc remoteproc1: Direct firmware load for wcnss.mdt failed with error -2 +[ 1.430518] [drm] Initialized panel-mipi-dbi 1.0.0 for spi0.0 on minor 0 +[ 1.436520] remoteproc remoteproc1: request_firmware failed: -2 +[ 1.452334] panel-mipi-dbi-spi spi0.0: [drm] fb0: panel-mipi-dbid frame buffer device +[ 1.460144] cfg80211: Loading compiled-in X.509 certificates for regulatory database +[ 1.485907] faux_driver regulatory: Direct firmware load for regulatory.db failed with error -2 +[ 1.489931] cfg80211: failed to load regulatory.db +[ 7.154116] [init] B1: modem FAT mounted RO at /firmware, firmware path /firmware/image +[ 74.564849] wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO' and CRM version 'CNSS-PR-1-4-2-c4-00084' +[ 74.564953] wcn36xx: firmware API 1.5.1.2, 41 stations, 2 bssids +[ 74.617786] [aurora-wifi] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +--- devices +crw------- 1 root root 29, 0 Oct 2 20:58 /dev/fb0 + +/dev/dri: +total 0 +drwxr-xr-x 3 root root 80 Oct 2 20:58 . +drwxr-xr-x 11 root root 4220 Oct 2 20:58 .. +drwxr-xr-x 2 root root 60 Oct 2 20:58 by-path +crw------- 1 root root 226, 0 Oct 2 20:58 card0 +/sys/bus/spi/devices: +spi0.0 + +/sys/class/backlight: +backlight + +/sys/class/drm: +card0 card0-SPI-1 version + +/sys/class/graphics: +fb0 +fb0 name=panel-mipi-dbid +fb0 bits_per_pixel=16 +fb0 virtual_size=128,128 +fb0 stride=256 +backlight bl_power=4 +backlight brightness=1 +backlight actual_brightness=1 +backlight max_brightness=1 +--- gpio + gpio12 : in low func1 12mA no pull + gpio13 : in low func1 12mA no pull + gpio14 : in high func1 2mA no pull + gpio15 : in high func1 12mA no pull + gpio116 : out high func0 8mA no pull + gpio118 : out high func0 8mA no pull + mpp4 : out sink vin-0 0 low +pin 12 (GPIO_12): device 78b8000.spi function blsp_spi4 group gpio12 +pin 13 (GPIO_13): device 78b8000.spi function blsp_spi4 group gpio13 +pin 14 (GPIO_14): device 78b8000.spi function blsp_spi4 group gpio14 +pin 15 (GPIO_15): device 78b8000.spi function blsp_spi4 group gpio15 +pin 116 (GPIO_116): device spi0.0 function gpio group gpio116 +pin 118 (GPIO_118): device spi0.0 function gpio group gpio118 +pin 3 (mpp4): +--- clk + blsp1_qup4_spi_apps_clk_src 0 0 0 16000000 0 0 60000 N deviceless no_connection_id + gcc_blsp1_qup4_spi_apps_clk 0 0 0 16000000 0 0 50000 N 78b8000.spi core +--- emmc + 1119 43 193701 2473 0 0 0 0 0 1176 2473 0 0 0 0 0 0 +B9B-STATE-END +~ # === 21:00:24 $ /usr/libexec/aurora/b9b/b9b-test.sh show geo; dmesg | grep -iE "drm|panel|spi|mipi" | tail -3 +�������� +BusyBox v1.37.0 (Debian 1:1.37.0-6+b9) built-in shell (ash) +Enter 'help' for a list of built-in commands. +i|mipi" | tail -3 +SHOW geo (16 bpp) OK +[ 0.709853] spi_qup 78b8000.spi: IN:block:16, fifo:64, OUT:block:16, fifo:64 +[ 1.430518] [drm] Initialized panel-mipi-dbi 1.0.0 for spi0.0 on minor 0 +[ 1.452334] panel-mipi-dbi-spi spi0.0: [drm] fb0: panel-mipi-dbid frame buffer device +~ # === 21:00:28 $ /usr/libexec/aurora/b9b/b9b-test.sh bl on +�������� +BusyBox v1.37.0 (Debian 1:1.37.0-6+b9) built-in shell (ash) +Enter 'help' for a list of built-in commands. +backlight bl_power=0 +backlight brightness=1 +backlight actual_brightness=1 +backlight max_brightness=1 +--- MPP4 0xa340..0xa34f (40 MODE,41 VIN,42 PULL,46 EN,48 AOUT,4a AIN,4c SINK) +# PMIC sid0 0xa340 +16 +a340: 61 +a341: 00 +a342: 00 +a343: 00 +a344: 00 +a345: 00 +a346: 80 +a347: 00 +a348: 00 +a349: 00 +a34a: 00 +a34b: 00 +a34c: 07 +a34d: 00 +a34e: 00 +a34f: 00 +~ # === 21:01:10 $ /usr/libexec/aurora/b9b/b9b-test.sh bl off +�������� +BusyBox v1.37.0 (Debian 1:1.37.0-6+b9) built-in shell (ash) +Enter 'help' for a list of built-in commands. +backlight bl_power=0 +backlight brightness=0 +backlight actual_brightness=0 +backlight max_brightness=1 +--- MPP4 0xa340..0xa34f (40 MODE,41 VIN,42 PULL,46 EN,48 AOUT,4a AIN,4c SINK) +# PMIC sid0 0xa340 +16 +a340: 60 +a341: 00 +a342: 00 +a343: 00 +a344: 00 +a345: 00 +a346: 80 +a347: 00 +a348: 00 +a349: 00 +a34a: 00 +a34b: 00 +a34c: 07 +a34d: 00 +a34e: 00 +a34f: 00 +~ # === 21:01:15 $ /usr/libexec/aurora/b9b/b9b-test.sh bl on +�������� +BusyBox v1.37.0 (Debian 1:1.37.0-6+b9) built-in shell (ash) +Enter 'help' for a list of built-in commands. +backlight bl_power=0 +backlight brightness=1 +backlight actual_brightness=1 +backlight max_brightness=1 +--- MPP4 0xa340..0xa34f (40 MODE,41 VIN,42 PULL,46 EN,48 AOUT,4a AIN,4c SINK) +# PMIC sid0 0xa340 +16 +a340: 61 +a341: 00 +a342: 00 +a343: 00 +a344: 00 +a345: 00 +a346: 80 +a347: 00 +a348: 00 +a349: 00 +a34a: 00 +a34b: 00 +a34c: 07 +a34d: 00 +a34e: 00 +a34f: 00 +~ # === 21:01:20 $ ping -c5 -W3 -I wwan0 77.88.8.8 | tail -2; /etc/init.d/aurora-wifi status | tail -3; iw dev wlan0 info | grep -E "ssid|type|channel"; for r in /sys/class/remoteproc/*; do echo RP $(cat $r/name)=$(cat $r/state); done; cat /sys/block/mmcblk0/stat; dmesg | grep -ciE "error|fail" ; dmesg | grep -iE "drm|panel|mipi|spi0|backlight" | grep -iE "err|fail|warn"; cat /proc/uptime +�������� +BusyBox v1.37.0 (Debian 1:1.37.0-6+b9) built-in shell (ash) +Enter 'help' for a list of built-in commands. +tail -3; iw dev wlan0 info | grep -E "ssid|type|channel"; for r in /sys/class/re +moteproc/*; do echo RP $(cat $r/name)=$(cat $r/state); done; cat /sys/block/mmcb +lk0/stat; dmesg | grep -ciE "error|fail" ; dmesg | grep -iE "drm|panel|mipi|spi0 +|backlight" | grep -iE "err|fail|warn"; cat /proc/uptime +5 packets transmitted, 5 packets received, 0% packet loss +round-trip min/avg/max = 52.104/83.332/194.048 ms +[72.41] WCNSS /sys/class/remoteproc/remoteproc1 state=running +[74.47] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +[75.52] === AP ENABLED ssid=aurora-b8f ch=6 pid=2537 in 66.16s + ssid aurora-b8f + type AP + channel 6 (2437 MHz), width: 20 MHz, center1: 2437 MHz +RP 4080000.remoteproc=running +RP a204000.remoteproc=running + 1119 43 193701 2473 0 0 0 0 0 1176 2473 0 0 0 0 0 0 +9 +219.16 833.27 +~ #  \ No newline at end of file diff --git a/logs/b9/b9b/ram1/uartlog-path b/logs/b9/b9b/ram1/uartlog-path new file mode 100644 index 0000000..b9c8ace --- /dev/null +++ b/logs/b9/b9b/ram1/uartlog-path @@ -0,0 +1 @@ +logs/uart/b9b-ram1-20261002-235454 diff --git a/logs/b9/b9c/B9C-RESULT.md b/logs/b9/b9c/B9C-RESULT.md new file mode 100644 index 0000000..eeb6a56 --- /dev/null +++ b/logs/b9/b9c/B9C-RESULT.md @@ -0,0 +1,49 @@ +# B9C-RESULT — persistent display stack (ST7735S, fbcon tty1, MPP4 backlight) — PASS (2026-10-03) + +**The eMMC cache is now B9C `b9ce13c9`** (B9C_WRITE_VERIFIED). It replaces B8F `857c9c30`; the B8F image is kept as backup/rollback. + +## What B9C adds on top of B8F +| part | change | +|---|---| +| kernel | b9c 3afc6c77 = b8d + DRM + DRM_PANEL_MIPI_DBI + DRM_FBDEV_EMULATION + FRAMEBUFFER_CONSOLE + FONTS with FONT_6x8 only (`linux/aurora-b9b.config`, `linux/aurora-b9c.config`) | +| DTB | B9B 7ca9cc79: spi@78b8000 (native CS0, stock pinctrl), panel `jz08au,aurora-st7735s` + `panel-mipi-dbi-spi` (16 MHz, mode 3, write-only, D/C 116, RESET 118, power L17 2.85 V, io L6 1.8 V, r5g6b5, 128x128, back porches 2/3), L17 constraints, MPP4 sink (drive-strength 7) + gpio-backlight | +| firmware | `/lib/firmware/jz08au,aurora-st7735s.bin` 58697d4d = the stock LK/dtb_01 init sequence (18 commands + the 120 ms SLPOUT delay; RAMWR left to the driver) | +| initramfs | B8F abb3bd67 + overlay: /init (+5 lines: `hostname aurora`, `/etc/init.d/aurora-display start`, getty loop on tty1), `/usr/sbin/aurora-display`, `/etc/init.d/aurora-display` | +| cmdline | `earlycon console=tty0 console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init fbcon=font:6x8 consoleblank=0`. `console=tty0` is placed before the UART console so that `/dev/console` (and the cttyhack UART shell) stays on ttyMSM0. | + +aurora-display: waits for fb0 → if fbcon's takeover already enabled the pipe (connector enabled/On + L17 used) it does **no** unblank (no double init); +otherwise it does one fbdev unblank → backlight on through the gpio-backlight sysfs (never raw PMIC writes) → `=== DISPLAY READY`. +In every run the fbcon takeover enabled the pipe by itself. + +## Path +- B9B (RAM): first light via panel-mipi-dbi, colours/orientation/offsets confirmed (logs/b9/b9b). +- B9C RAM pretest `aurora-b9c.img` fa855e1c (ram1, class A): fbcon 21x16, DISPLAY READY 8.0 s, getty tty1, UART shell, LTE/Wi-Fi OK; operator: text readable, + orientation right, nothing clipped, backlight OFF→ON. The login prompt scrolls away under the later kernel messages (ignore_loglevel) — accepted (option A). +- Cache candidate `b9/b9c/cache/cache-extlinux-b9c.img` b9ce13c9 (B8F mkfs recipe, bit-identical rebuild, e2fsck clean). + lk2nd emulator: S6 regression == B8F; S7 "Trying to boot 'b9c'", kernel end DDR+0x1820000 < tags +0x20a9000 < ramdisk +0x22a9000; F1/F3/F10 → emmc1 fallback. +- Write (HW EDL, `B9C-write.sh`): live cache == B8F 857c9c30 (pre-cache.bin = backup) → write → CACHE_MATCH → all other partitions == A3/A4pre → **B9C_WRITE_VERIFIED** (logs/b9/b9c/W). + +## Cold boots (normal power-on, no RESET, no fastboot, no UART input, no manual commands) +| run | class | display | console/getty | LTE / Wi-Fi | time | other | +|---|---|---|---|---|---|---| +| cold1 | **A** (RTC 3 s) | fbcon 21x16 1.77 s, DISPLAY READY 7.8 s, no unblank, errors 0 | console tty0+ttyMSM0, getty tty1, hostname aurora, UART shell on ttyMSM0 | START OK 76.4 s, AP ENABLED 80.6 s, ping 4/4 | DMS/NITZ VALID, SNTP +0.55 s | MPSS+WCNSS running, crash 0, eMMC w=0; **backlight ON→OFF→ON confirmed visually** (sysfs) | +| cold2-classB | **B** (RTC 585 s, ~12 s off) | same, DISPLAY READY 7.8 s, errors 0 | same | START OK 73.8 s, AP ENABLED 78.6 s, ping 4/4 | VALID, SNTP +0.46 s | crash 0, w=0 — **counted by operator decision (relaxed criterion)** | +| cold3 | **A** (RTC 3 s) | fbcon 1.78 s, DISPLAY READY 7.35 s, errors 0 | same | START OK 76.3 s, AP ENABLED 80.2 s, ping 4/4 | VALID, SNTP +0.09 s | crash 0, w=0 | + +Not counted: +- `cold1-invalid`: the battery dropped out at ~27 s; the second start was class B and the modem controller rolled back because the USB host was not reachable; + the display part was OK. +- `cold1-aborted`: the driver was stopped before power-on, while B9L was run in between. + +**Deviation:** the B9C criterion was "3/3 class A"; the result is 2× class A + 1× class B, accepted explicitly by the operator. + +## Rollback +`b9/b9c/cache/B9C-rollback.sh` (HW EDL) → B8F 857c9c30. Deeper: B8F-rollback.sh → B7C 14fe453a. + +## Not in scope / open +- Screen content is a live kernel console. A real UI comes in a later stage. +- No backlight dimming (MPP4 sink is on/off at 40 mA). +- About 1 s of dark screen between the bootloader and Linux. The display before Linux needs the B9L lk2nd port; B9L-RAM PASS (logs/b9/lk, logs/b9/b9l); flashing lk1st needs a separate GO. +- The device-tree model string still says "RAM boot B9B" (cosmetic, inherited from the B9B DTS). + +**B9 CLOSED.** diff --git a/logs/b9/b9c/W-console.txt b/logs/b9/b9c/W-console.txt new file mode 100644 index 0000000..1af7bd9 --- /dev/null +++ b/logs/b9/b9c/W-console.txt @@ -0,0 +1,23 @@ +== G0 inputs +== G1 identity + geometry + baseline +== W cache := candidate (LBA 2133088, 262144 sectors) +rc=0 +Wrote b9/b9c/cache/cache-extlinux-b9c.img to sector 2133088. +b9ce13c9f48e36a5054c0ae3c39dc3f184b1fc2eea1d57d4b8bd8e9ae800a37b b9/b9c/cache/cache-extlinux-b9c.img +b9ce13c9f48e36a5054c0ae3c39dc3f184b1fc2eea1d57d4b8bd8e9ae800a37b logs/b9/b9c/W/11-cache-readback.bin +CACHE_MATCH +== V everything else unchanged +sbl1 == A3 +rpm == A3 +tz == A3 +hyp == A3 +recovery == A3 +modemst1 == A3 +modemst2 == A3 +fsg == A3 +fsc == A3 +persist == A3 +modem == A4pre +system == A4pre +userdata == A4pre +B9C_WRITE_VERIFIED — power off fully (USB, then battery) before first boot diff --git a/logs/b9/b9c/W/00-printgpt.log b/logs/b9/b9c/W/00-printgpt.log new file mode 100644 index 0000000..8ec6102 --- /dev/null +++ b/logs/b9/b9c/W/00-printgpt.log @@ -0,0 +1,69 @@ +Qualcomm Sahara / Firehose Client V3.62 (c) B.Kerler 2018-2025. +main - Using loader firehose/007050e100000000_394a2e47cf830150_fhprg_peek.bin ... +main - Waiting for the device +main - Device detected :) +sahara - Protocol version: 2, Version supported: 1 +main - Mode detected: sahara +sahara - +Version 0x2 +------------------------ +HWID: 0x007050e100000000 (MSM_ID:0x007050e1,OEM_ID:0x0000,MODEL_ID:0x0000) +CPU detected: "MSM8916" +PK_HASH: 0xcc3153a80293939b90d02d3bf8b23e0292e452fef662c74998421adad42a380f +Serial: 0x + +sahara - Protocol version: 2, Version supported: 1 +sahara - Uploading loader firehose/007050e100000000_394a2e47cf830150_fhprg_peek.bin ... +sahara - 32-Bit mode detected. +sahara - Loader successfully uploaded. +main - Trying to connect to firehose loader ... +firehose_client +firehose_client - [LIB]: No --memory option set, we assume "eMMC" as default ..., if it fails, try using "--memory" with "UFS","NAND" or "spinor" instead ! +firehose +firehose - [LIB]: Host's payload to target size is too large +firehose +firehose - [LIB]: logbuf@0x0801D0A0 fh@0x08019F08 +firehose +firehose - [LIB]: !DEBUG! rsp.data: 'bytearray(b'')' +firehose - TargetName=MSM8916 +firehose - MemoryName=eMMC +firehose - Version=1 +firehose - Trying to read first storage sector... +firehose - Running configure... +firehose_client - Supported functions: +----------------- + +Parsing Lun 0: + +GPT Table: +------------- +modem: Offset 0x0000000004000000, Length 0x0000000004000000, Flags 0x1000000000000000, UUID 3d989bf0-d07d-1e91-a264-af709697f663, Type EFI_BASIC_DATA, Active False +sbl1: Offset 0x0000000008000000, Length 0x0000000000080000, Flags 0x0000000000000000, UUID 1b6c30d5-bd18-6545-356a-f1425997876e, Type 0xdea0ba2c, Active False +sbl1bak: Offset 0x0000000008080000, Length 0x0000000000080000, Flags 0x0000000000000000, UUID 9ed2083d-386f-32ef-4bef-946dce6a9277, Type EFI_BASIC_DATA, Active False +aboot: Offset 0x0000000008100000, Length 0x0000000000100000, Flags 0x0000000000000000, UUID 87b2dbde-0f34-1616-ef92-64b61e3820e1, Type 0x400ffdcd, Active False +abootbak: Offset 0x0000000008200000, Length 0x0000000000100000, Flags 0x0000000000000000, UUID 8942be05-fe81-ad19-58d5-a47cf6f28983, Type EFI_BASIC_DATA, Active False +rpm: Offset 0x0000000008300000, Length 0x0000000000080000, Flags 0x0000000000000000, UUID 78404e1a-cca3-eae7-6d9c-175a8a951490, Type 0x98df793, Active False +rpmbak: Offset 0x0000000008380000, Length 0x0000000000080000, Flags 0x0000000000000000, UUID 4c9e9f1f-a313-ae8f-6048-d077244223bf, Type EFI_BASIC_DATA, Active False +tz: Offset 0x0000000008400000, Length 0x0000000000100000, Flags 0x0000000000000000, UUID 8165e1d2-0aff-c224-31bb-8e7d26c9b865, Type 0xa053aa7f, Active False +tzbak: Offset 0x0000000009504000, Length 0x0000000000080000, Flags 0x0000000000000000, UUID 55bca949-6a02-9e27-e8d0-a6fee655f8a5, Type EFI_BASIC_DATA, Active False +hyp: Offset 0x0000000008500000, Length 0x0000000000080000, Flags 0x0000000000000000, UUID 6f3bd8d5-6441-b0b1-50f8-3db08db71a3e, Type 0xe1a6a689, Active False +hypbak: Offset 0x0000000008580000, Length 0x0000000000080000, Flags 0x0000000000000000, UUID 9453b2e0-49a9-ec07-7d3e-ecf25ee7ce30, Type EFI_BASIC_DATA, Active False +pad: Offset 0x0000000008600000, Length 0x0000000000100000, Flags 0x0000000000000000, UUID 11833981-0bdc-fe03-ff38-cf174fea4855, Type EFI_BASIC_DATA, Active False +modemst1: Offset 0x0000000008700000, Length 0x0000000000180000, Flags 0x0000000000000000, UUID 7f8fc1bc-7157-c803-b539-49204286be1f, Type 0xebbeadaf, Active False +modemst2: Offset 0x0000000008880000, Length 0x0000000000180000, Flags 0x0000000000000000, UUID a260d16e-cde5-7834-bae2-9a835e930538, Type 0xa288b1f, Active False +misc: Offset 0x0000000008a00000, Length 0x0000000000100000, Flags 0x0000000000000000, UUID 16011655-25d4-6066-a7df-90f6fee740fd, Type 0x20117f86, Active False +fsc: Offset 0x0000000008b00000, Length 0x0000000000000400, Flags 0x0000000000000000, UUID 6070d45d-e39a-201f-85ea-eff4dc5b2ad9, Type 0x57b90a16, Active False +ssd: Offset 0x0000000008b00400, Length 0x0000000000002000, Flags 0x0000000000000000, UUID eb5d446e-dca1-c48f-a46f-23ccf9a32d9d, Type 0x2c86e742, Active False +splash: Offset 0x0000000008b02400, Length 0x0000000000a00000, Flags 0x0000000000000000, UUID 17a56593-755a-4f9e-584c-a986c825d03c, Type 0x20117f86, Active False +DDR: Offset 0x000000000c000000, Length 0x0000000000008000, Flags 0x1000000000000000, UUID 708298a7-c75e-4858-bdf9-1d8e94857b8a, Type 0x20a0c19c, Active False +fsg: Offset 0x000000000c008000, Length 0x0000000000180000, Flags 0x1000000000000000, UUID 63874400-826f-d643-5a66-d6e8703754b6, Type 0x638ff8e2, Active False +sec: Offset 0x000000000c188000, Length 0x0000000000004000, Flags 0x1000000000000000, UUID 057d8b8f-2449-5ddf-8456-35cf05e7e8fb, Type 0x303e6ac3, Active False +boot: Offset 0x000000000c18c000, Length 0x0000000001000000, Flags 0x1000000000000000, UUID 61102f04-b91f-1560-ccd7-66e00ed67495, Type 0x20117f86, Active False +system: Offset 0x000000000d18c000, Length 0x0000000032000000, Flags 0x1000000000000000, UUID 1d988a4e-968a-8c2d-afc6-287f4b46ee6f, Type EFI_BASIC_DATA, Active False +persist: Offset 0x000000003f18c000, Length 0x0000000002000000, Flags 0x1000000000000000, UUID 566b9d65-2509-0732-2788-e523ed49b36a, Type EFI_BASIC_DATA, Active False +cache: Offset 0x000000004118c000, Length 0x0000000008000000, Flags 0x1000000000000000, UUID ca4b35d5-45ba-55f8-22cc-69cdc47758f4, Type EFI_BASIC_DATA, Active False +recovery: Offset 0x000000004918c000, Length 0x0000000001000000, Flags 0x1000000000000000, UUID c4bf1e63-a9c0-312d-ef3c-4f0be2d8f23f, Type 0x20117f86, Active False +userdata: Offset 0x000000004a18c000, Length 0x000000009ee6fe00, Flags 0x1000000000000000, UUID 18e3370b-8846-0ff0-bb9b-f8812f2299a4, Type EFI_BASIC_DATA, Active False + +Total disk size:0x00000000e9000000, sectors:0x0000000000748000 + diff --git a/logs/b9/b9c/W/10-cache-write.log b/logs/b9/b9c/W/10-cache-write.log new file mode 100644 index 0000000..93a4da3 --- /dev/null +++ b/logs/b9/b9c/W/10-cache-write.log @@ -0,0 +1,17 @@ +Qualcomm Sahara / Firehose Client V3.62 (c) B.Kerler 2018-2025. +main - Using loader firehose/007050e100000000_394a2e47cf830150_fhprg_peek.bin ... +main - Waiting for the device +main - Device detected :) +main - Mode detected: firehose +firehose +firehose - [LIB]: Host's payload to target size is too large +firehose +firehose - [LIB]: logbuf@0x0801D0A0 fh@0x08019F08 +firehose +firehose - [LIB]: Sector size in XML 4096 does not match disk sector size 512 + Done |----------| 0.0% Write (Sector 0x0 of 0x40000) 0.00 MB/s Done |----------| 0.0% Write (Sector 0x20 of 0x40000) 0.00 MB/s Done |----------| 0.0% Write (Sector 0x40 of 0x40000) 0.00 MB/s Done |----------| 0.0% Write (Sector 0x60 of 0x40000) 0.00 MB/s Done |----------| 0.0% Write (Sector 0x80 of 0x40000) 0.00 MB/s Progress: |----------| 0.1% Write (Sector 0xA0 of 0x40000, 03s left) 4.74 MB/s Progress: |----------| 0.2% Write (Sector 0x1A0 of 0x40000, 11s left) 6.64 MB/s Progress: |----------| 0.3% Write (Sector 0x2A0 of 0x40000, 13s left) 6.62 MB/s Progress: |----------| 0.4% Write (Sector 0x3A0 of 0x40000, 14s left) 6.69 MB/s Progress: |----------| 0.5% Write (Sector 0x4A0 of 0x40000, 15s left) 6.64 MB/s Progress: |----------| 0.6% Write (Sector 0x5C0 of 0x40000, 16s left) 7.00 MB/s Progress: |----------| 0.7% Write (Sector 0x6C0 of 0x40000, 16s left) 6.65 MB/s Progress: |----------| 0.8% Write (Sector 0x7C0 of 0x40000, 16s left) 6.69 MB/s Progress: |----------| 0.9% Write (Sector 0x8C0 of 0x40000, 17s left) 6.63 MB/s Progress: |----------| 1.0% Write (Sector 0x9C0 of 0x40000, 17s left) 6.72 MB/s Progress: |----------| 1.1% Write (Sector 0xAE0 of 0x40000, 17s left) 6.48 MB/s Progress: |----------| 1.2% Write (Sector 0xBE0 of 0x40000, 17s left) 6.69 MB/s Progress: |----------| 1.3% Write (Sector 0xCE0 of 0x40000, 17s left) 6.72 MB/s Progress: |----------| 1.4% Write (Sector 0xDE0 of 0x40000, 17s left) 6.71 MB/s Progress: |----------| 1.5% Write (Sector 0xEE0 of 0x40000, 17s left) 6.72 MB/s Progress: |----------| 1.6% Write (Sector 0xFE0 of 0x40000, 17s left) 6.80 MB/s Progress: |----------| 1.7% Write (Sector 0x1100 of 0x40000, 17s left) 7.08 MB/s Progress: |----------| 1.8% Write (Sector 0x1200 of 0x40000, 17s left) 6.82 MB/s Progress: |----------| 1.9% Write (Sector 0x1300 of 0x40000, 17s left) 6.88 MB/s Progress: |----------| 2.0% Write (Sector 0x1400 of 0x40000, 17s left) 6.85 MB/s Progress: |----------| 2.1% Write (Sector 0x1500 of 0x40000, 17s left) 6.72 MB/s Progress: |----------| 2.2% Write (Sector 0x1620 of 0x40000, 17s left) 6.49 MB/s Progress: |----------| 2.3% Write (Sector 0x1720 of 0x40000, 17s left) 6.77 MB/s Progress: |----------| 2.4% Write (Sector 0x1820 of 0x40000, 17s left) 6.55 MB/s Progress: |----------| 2.5% Write (Sector 0x1920 of 0x40000, 17s left) 6.93 MB/s Progress: |----------| 2.6% Write (Sector 0x1A20 of 0x40000, 17s left) 6.72 MB/s Progress: |----------| 2.7% Write (Sector 0x1B40 of 0x40000, 17s left) 7.10 MB/s Progress: |----------| 2.8% Write (Sector 0x1C40 of 0x40000, 17s left) 6.80 MB/s Progress: |----------| 2.9% Write (Sector 0x1D40 of 0x40000, 17s left) 6.94 MB/s Progress: |----------| 3.0% Write (Sector 0x1E40 of 0x40000, 17s left) 6.97 MB/s Progress: |----------| 3.1% Write (Sector 0x1F40 of 0x40000, 18s left) 3.79 MB/s Progress: |----------| 3.2% Write (Sector 0x2060 of 0x40000, 18s left) 6.39 MB/s Progress: |----------| 3.3% Write (Sector 0x2160 of 0x40000, 18s left) 6.70 MB/s Progress: |----------| 3.4% Write (Sector 0x2260 of 0x40000, 18s left) 6.70 MB/s Progress: |----------| 3.5% Write (Sector 0x2360 of 0x40000, 18s left) 6.62 MB/s Progress: |----------| 3.6% Write (Sector 0x2460 of 0x40000, 18s left) 6.56 MB/s Progress: |----------| 3.7% Write (Sector 0x2580 of 0x40000, 18s left) 7.08 MB/s Progress: |----------| 3.8% Write (Sector 0x2680 of 0x40000, 18s left) 6.73 MB/s Progress: |----------| 3.9% Write (Sector 0x2780 of 0x40000, 18s left) 6.56 MB/s Progress: |----------| 4.0% Write (Sector 0x2880 of 0x40000, 18s left) 6.77 MB/s Progress: |----------| 4.1% Write (Sector 0x2980 of 0x40000, 18s left) 6.69 MB/s Progress: |----------| 4.2% Write (Sector 0x2A80 of 0x40000, 18s left) 6.66 MB/s Progress: |----------| 4.3% Write (Sector 0x2BA0 of 0x40000, 18s left) 6.41 MB/s Progress: |----------| 4.4% Write (Sector 0x2CA0 of 0x40000, 18s left) 6.60 MB/s Progress: |----------| 4.5% Write (Sector 0x2DA0 of 0x40000, 18s left) 6.72 MB/s Progress: |----------| 4.6% Write (Sector 0x2EA0 of 0x40000, 18s left) 6.73 MB/s Progress: |----------| 4.7% Write (Sector 0x2FA0 of 0x40000, 18s left) 6.72 MB/s Progress: |----------| 4.8% Write (Sector 0x30C0 of 0x40000, 18s left) 7.05 MB/s Progress: |----------| 4.9% Write (Sector 0x31C0 of 0x40000, 18s left) 6.86 MB/s Progress: |----------| 5.0% Write (Sector 0x32C0 of 0x40000, 18s left) 6.71 MB/s Progress: |█---------| 5.1% Write (Sector 0x33C0 of 0x40000, 17s left) 6.88 MB/s Progress: |█---------| 5.2% Write (Sector 0x34C0 of 0x40000, 17s left) 6.85 MB/s Progress: |█---------| 5.3% Write (Sector 0x35E0 of 0x40000, 17s left) 6.51 MB/s Progress: |█---------| 5.4% Write (Sector 0x36E0 of 0x40000, 17s left) 6.74 MB/s Progress: |█---------| 5.5% Write (Sector 0x37E0 of 0x40000, 17s left) 6.84 MB/s Progress: |█---------| 5.6% Write (Sector 0x38E0 of 0x40000, 17s left) 6.89 MB/s Progress: |█---------| 5.7% Write (Sector 0x39E0 of 0x40000, 17s left) 6.91 MB/s Progress: |█---------| 5.8% Write (Sector 0x3B00 of 0x40000, 17s left) 7.15 MB/s Progress: |█---------| 5.9% Write (Sector 0x3C00 of 0x40000, 17s left) 6.78 MB/s Progress: |█---------| 6.0% Write (Sector 0x3D00 of 0x40000, 17s left) 6.82 MB/s Progress: |█---------| 6.1% Write (Sector 0x3E00 of 0x40000, 17s left) 6.93 MB/s Progress: |█---------| 6.2% Write (Sector 0x3F00 of 0x40000, 17s left) 3.82 MB/s Progress: |█---------| 6.3% Write (Sector 0x4020 of 0x40000, 17s left) 6.94 MB/s Progress: |█---------| 6.4% Write (Sector 0x4120 of 0x40000, 17s left) 6.66 MB/s Progress: |█---------| 6.5% Write (Sector 0x4220 of 0x40000, 17s left) 6.68 MB/s Progress: |█---------| 6.6% Write (Sector 0x4320 of 0x40000, 17s left) 6.63 MB/s Progress: |█---------| 6.7% Write (Sector 0x4420 of 0x40000, 17s left) 6.71 MB/s Progress: |█---------| 6.8% Write (Sector 0x4520 of 0x40000, 17s left) 6.64 MB/s Progress: |█---------| 6.9% Write (Sector 0x4640 of 0x40000, 17s left) 7.03 MB/s Progress: |█---------| 7.0% Write (Sector 0x4740 of 0x40000, 17s left) 6.72 MB/s Progress: |█---------| 7.1% Write (Sector 0x4840 of 0x40000, 17s left) 6.66 MB/s Progress: |█---------| 7.2% Write (Sector 0x4940 of 0x40000, 17s left) 6.73 MB/s Progress: |█---------| 7.3% Write (Sector 0x4A40 of 0x40000, 17s left) 6.72 MB/s Progress: |█---------| 7.4% Write (Sector 0x4B60 of 0x40000, 17s left) 6.48 MB/s Progress: |█---------| 7.5% Write (Sector 0x4C60 of 0x40000, 17s left) 6.64 MB/s Progress: |█---------| 7.6% Write (Sector 0x4D60 of 0x40000, 17s left) 6.74 MB/s Progress: |█---------| 7.7% Write (Sector 0x4E60 of 0x40000, 17s left) 6.71 MB/s Progress: |█---------| 7.8% Write (Sector 0x4F60 of 0x40000, 17s left) 6.67 MB/s Progress: |█---------| 7.9% Write (Sector 0x5080 of 0x40000, 17s left) 7.00 MB/s Progress: |█---------| 8.0% Write (Sector 0x5180 of 0x40000, 17s left) 6.68 MB/s Progress: |█---------| 8.1% Write (Sector 0x5280 of 0x40000, 17s left) 6.74 MB/s Progress: |█---------| 8.2% Write (Sector 0x5380 of 0x40000, 17s left) 6.84 MB/s Progress: |█---------| 8.3% Write (Sector 0x5480 of 0x40000, 17s left) 6.80 MB/s Progress: |█---------| 8.4% Write (Sector 0x55A0 of 0x40000, 17s left) 6.42 MB/s Progress: |█---------| 8.5% Write (Sector 0x56A0 of 0x40000, 17s left) 6.75 MB/s Progress: |█---------| 8.6% Write (Sector 0x57A0 of 0x40000, 17s left) 6.88 MB/s Progress: |█---------| 8.7% Write (Sector 0x58A0 of 0x40000, 17s left) 6.86 MB/s Progress: |█---------| 8.8% Write (Sector 0x59A0 of 0x40000, 17s left) 6.88 MB/s Progress: |█---------| 8.9% Write (Sector 0x5AA0 of 0x40000, 17s left) 6.72 MB/s Progress: |█---------| 9.0% Write (Sector 0x5BC0 of 0x40000, 17s left) 7.18 MB/s Progress: |█---------| 9.1% Write (Sector 0x5CC0 of 0x40000, 17s left) 6.77 MB/s Progress: |█---------| 9.2% Write (Sector 0x5DC0 of 0x40000, 17s left) 6.84 MB/s Progress: |█---------| 9.3% Write (Sector 0x5EC0 of 0x40000, 17s left) 6.92 MB/s Progress: |█---------| 9.4% Write (Sector 0x5FC0 of 0x40000, 17s left) 3.95 MB/s Progress: |█---------| 9.5% Write (Sector 0x60E0 of 0x40000, 17s left) 6.30 MB/s Progress: |█---------| 9.6% Write (Sector 0x61E0 of 0x40000, 17s left) 6.61 MB/s Progress: |█---------| 9.7% Write (Sector 0x62E0 of 0x40000, 17s left) 6.50 MB/s Progress: |█---------| 9.8% Write (Sector 0x63E0 of 0x40000, 17s left) 6.65 MB/s Progress: |█---------| 9.9% Write (Sector 0x64E0 of 0x40000, 17s left) 6.57 MB/s Progress: |█---------| 10.0% Write (Sector 0x6600 of 0x40000, 17s left) 6.95 MB/s Progress: |█---------| 10.1% Write (Sector 0x6700 of 0x40000, 17s left) 6.71 MB/s Progress: |█---------| 10.2% Write (Sector 0x6800 of 0x40000, 17s left) 6.66 MB/s Progress: |█---------| 10.3% Write (Sector 0x6900 of 0x40000, 17s left) 6.70 MB/s Progress: |█---------| 10.4% Write (Sector 0x6A00 of 0x40000, 17s left) 6.65 MB/s Progress: |█---------| 10.5% Write (Sector 0x6B20 of 0x40000, 17s left) 6.42 MB/s Progress: |█---------| 10.6% Write (Sector 0x6C20 of 0x40000, 17s left) 6.75 MB/s Progress: |█---------| 10.7% Write (Sector 0x6D20 of 0x40000, 17s left) 6.74 MB/s Progress: |█---------| 10.8% Write (Sector 0x6E20 of 0x40000, 17s left) 6.67 MB/s Progress: |█---------| 10.9% Write (Sector 0x6F20 of 0x40000, 17s left) 6.69 MB/s Progress: |█---------| 11.0% Write (Sector 0x7040 of 0x40000, 17s left) 7.03 MB/s Progress: |█---------| 11.1% Write (Sector 0x7140 of 0x40000, 17s left) 6.70 MB/s Progress: |█---------| 11.2% Write (Sector 0x7240 of 0x40000, 17s left) 6.74 MB/s Progress: |█---------| 11.3% Write (Sector 0x7340 of 0x40000, 17s left) 6.80 MB/s Progress: |█---------| 11.4% Write (Sector 0x7440 of 0x40000, 17s left) 6.65 MB/s Progress: |█---------| 11.5% Write (Sector 0x7540 of 0x40000, 16s left) 6.65 MB/s Progress: |█---------| 11.6% Write (Sector 0x7660 of 0x40000, 16s left) 6.37 MB/s Progress: |█---------| 11.7% Write (Sector 0x7760 of 0x40000, 16s left) 6.67 MB/s Progress: |█---------| 11.8% Write (Sector 0x7860 of 0x40000, 16s left) 6.67 MB/s Progress: |█---------| 11.9% Write (Sector 0x7960 of 0x40000, 16s left) 6.79 MB/s Progress: |█---------| 12.0% Write (Sector 0x7A60 of 0x40000, 16s left) 6.80 MB/s Progress: |█---------| 12.1% Write (Sector 0x7B80 of 0x40000, 16s left) 7.04 MB/s Progress: |█---------| 12.2% Write (Sector 0x7C80 of 0x40000, 16s left) 6.75 MB/s Progress: |█---------| 12.3% Write (Sector 0x7D80 of 0x40000, 16s left) 6.79 MB/s Progress: |█---------| 12.4% Write (Sector 0x7E80 of 0x40000, 16s left) 6.82 MB/s Progress: |█---------| 12.5% Write (Sector 0x7F80 of 0x40000, 16s left) 4.04 MB/s Progress: |█---------| 12.6% Write (Sector 0x80A0 of 0x40000, 16s left) 6.39 MB/s Progress: |█---------| 12.7% Write (Sector 0x81A0 of 0x40000, 16s left) 6.77 MB/s Progress: |█---------| 12.8% Write (Sector 0x82A0 of 0x40000, 16s left) 6.66 MB/s Progress: |█---------| 12.9% Write (Sector 0x83A0 of 0x40000, 16s left) 6.60 MB/s Progress: |█---------| 13.0% Write (Sector 0x84A0 of 0x40000, 16s left) 6.69 MB/s Progress: |█---------| 13.1% Write (Sector 0x85C0 of 0x40000, 16s left) 7.02 MB/s Progress: |█---------| 13.2% Write (Sector 0x86C0 of 0x40000, 16s left) 6.74 MB/s Progress: |█---------| 13.3% Write (Sector 0x87C0 of 0x40000, 16s left) 6.68 MB/s Progress: |█---------| 13.4% Write (Sector 0x88C0 of 0x40000, 16s left) 6.66 MB/s Progress: |█---------| 13.5% Write (Sector 0x89C0 of 0x40000, 16s left) 6.71 MB/s Progress: |█---------| 13.6% Write (Sector 0x8AE0 of 0x40000, 16s left) 6.42 MB/s Progress: |█---------| 13.7% Write (Sector 0x8BE0 of 0x40000, 16s left) 6.68 MB/s Progress: |█---------| 13.8% Write (Sector 0x8CE0 of 0x40000, 16s left) 6.72 MB/s Progress: |█---------| 13.9% Write (Sector 0x8DE0 of 0x40000, 16s left) 6.75 MB/s Progress: |█---------| 14.0% Write (Sector 0x8EE0 of 0x40000, 16s left) 6.72 MB/s Progress: |█---------| 14.1% Write (Sector 0x8FE0 of 0x40000, 16s left) 6.78 MB/s Progress: |█---------| 14.2% Write (Sector 0x9100 of 0x40000, 16s left) 7.02 MB/s Progress: |█---------| 14.3% Write (Sector 0x9200 of 0x40000, 16s left) 6.83 MB/s Progress: |█---------| 14.4% Write (Sector 0x9300 of 0x40000, 16s left) 6.86 MB/s Progress: |█---------| 14.5% Write (Sector 0x9400 of 0x40000, 16s left) 6.91 MB/s Progress: |█---------| 14.6% Write (Sector 0x9500 of 0x40000, 16s left) 6.83 MB/s Progress: |█---------| 14.7% Write (Sector 0x9620 of 0x40000, 16s left) 6.47 MB/s Progress: |█---------| 14.8% Write (Sector 0x9720 of 0x40000, 16s left) 6.80 MB/s Progress: |█---------| 14.9% Write (Sector 0x9820 of 0x40000, 16s left) 6.81 MB/s Progress: |██--------| 15.0% Write (Sector 0x9920 of 0x40000, 16s left) 6.86 MB/s Progress: |██--------| 15.1% Write (Sector 0x9A20 of 0x40000, 16s left) 6.81 MB/s Progress: |██--------| 15.2% Write (Sector 0x9B40 of 0x40000, 16s left) 7.25 MB/s Progress: |██--------| 15.3% Write (Sector 0x9C40 of 0x40000, 16s left) 6.76 MB/s Progress: |██--------| 15.4% Write (Sector 0x9D40 of 0x40000, 16s left) 6.88 MB/s Progress: |██--------| 15.5% Write (Sector 0x9E40 of 0x40000, 16s left) 6.96 MB/s Progress: |██--------| 15.6% Write (Sector 0x9F40 of 0x40000, 16s left) 4.03 MB/s Progress: |██--------| 15.7% Write (Sector 0xA060 of 0x40000, 16s left) 6.30 MB/s Progress: |██--------| 15.8% Write (Sector 0xA160 of 0x40000, 16s left) 6.66 MB/s Progress: |██--------| 15.9% Write (Sector 0xA260 of 0x40000, 16s left) 6.66 MB/s Progress: |██--------| 16.0% Write (Sector 0xA360 of 0x40000, 16s left) 6.52 MB/s Progress: |██--------| 16.1% Write (Sector 0xA460 of 0x40000, 16s left) 6.64 MB/s Progress: |██--------| 16.2% Write (Sector 0xA580 of 0x40000, 16s left) 6.93 MB/s Progress: |██--------| 16.3% Write (Sector 0xA680 of 0x40000, 16s left) 6.63 MB/s Progress: |██--------| 16.4% Write (Sector 0xA780 of 0x40000, 16s left) 6.66 MB/s Progress: |██--------| 16.5% Write (Sector 0xA880 of 0x40000, 16s left) 6.62 MB/s Progress: |██--------| 16.6% Write (Sector 0xA980 of 0x40000, 16s left) 6.64 MB/s Progress: |██--------| 16.7% Write (Sector 0xAA80 of 0x40000, 16s left) 6.64 MB/s Progress: |██--------| 16.8% Write (Sector 0xABA0 of 0x40000, 16s left) 6.34 MB/s Progress: |██--------| 16.9% Write (Sector 0xACA0 of 0x40000, 16s left) 5.41 MB/s Progress: |██--------| 17.0% Write (Sector 0xADA0 of 0x40000, 16s left) 6.73 MB/s Progress: |██--------| 17.1% Write (Sector 0xAEA0 of 0x40000, 16s left) 6.69 MB/s Progress: |██--------| 17.2% Write (Sector 0xAFA0 of 0x40000, 15s left) 6.67 MB/s Progress: |██--------| 17.3% Write (Sector 0xB0C0 of 0x40000, 15s left) 7.04 MB/s Progress: |██--------| 17.4% Write (Sector 0xB1C0 of 0x40000, 15s left) 6.73 MB/s Progress: |██--------| 17.5% Write (Sector 0xB2C0 of 0x40000, 15s left) 6.81 MB/s Progress: |██--------| 17.6% Write (Sector 0xB3C0 of 0x40000, 15s left) 6.59 MB/s Progress: |██--------| 17.7% Write (Sector 0xB4C0 of 0x40000, 15s left) 6.71 MB/s Progress: |██--------| 17.8% Write (Sector 0xB5E0 of 0x40000, 15s left) 6.47 MB/s Progress: |██--------| 17.9% Write (Sector 0xB6E0 of 0x40000, 15s left) 6.80 MB/s Progress: |██--------| 18.0% Write (Sector 0xB7E0 of 0x40000, 15s left) 6.76 MB/s Progress: |██--------| 18.1% Write (Sector 0xB8E0 of 0x40000, 15s left) 6.75 MB/s Progress: |██--------| 18.2% Write (Sector 0xB9E0 of 0x40000, 15s left) 6.74 MB/s Progress: |██--------| 18.3% Write (Sector 0xBB00 of 0x40000, 15s left) 7.13 MB/s Progress: |██--------| 18.4% Write (Sector 0xBC00 of 0x40000, 15s left) 6.71 MB/s Progress: |██--------| 18.5% Write (Sector 0xBD00 of 0x40000, 15s left) 6.79 MB/s Progress: |██--------| 18.6% Write (Sector 0xBE00 of 0x40000, 15s left) 6.89 MB/s Progress: |██--------| 18.7% Write (Sector 0xBF00 of 0x40000, 15s left) 3.79 MB/s Progress: |██--------| 18.8% Write (Sector 0xC000 of 0x40000, 15s left) 7.26 MB/s Progress: |██--------| 18.9% Write (Sector 0xC120 of 0x40000, 15s left) 6.41 MB/s Progress: |██--------| 19.0% Write (Sector 0xC220 of 0x40000, 15s left) 6.64 MB/s Progress: |██--------| 19.1% Write (Sector 0xC320 of 0x40000, 15s left) 6.62 MB/s Progress: |██--------| 19.2% Write (Sector 0xC420 of 0x40000, 15s left) 6.70 MB/s Progress: |██--------| 19.3% Write (Sector 0xC520 of 0x40000, 15s left) 6.64 MB/s Progress: |██--------| 19.4% Write (Sector 0xC640 of 0x40000, 15s left) 7.00 MB/s Progress: |██--------| 19.5% Write (Sector 0xC740 of 0x40000, 15s left) 6.72 MB/s Progress: |██--------| 19.6% Write (Sector 0xC840 of 0x40000, 15s left) 6.72 MB/s Progress: |██--------| 19.7% Write (Sector 0xC940 of 0x40000, 15s left) 6.75 MB/s Progress: |██--------| 19.8% Write (Sector 0xCA40 of 0x40000, 15s left) 6.77 MB/s Progress: |██--------| 19.9% Write (Sector 0xCB60 of 0x40000, 15s left) 6.45 MB/s Progress: |██--------| 20.0% Write (Sector 0xCC60 of 0x40000, 15s left) 6.76 MB/s Progress: |██--------| 20.1% Write (Sector 0xCD60 of 0x40000, 15s left) 6.73 MB/s Progress: |██--------| 20.2% Write (Sector 0xCE60 of 0x40000, 15s left) 6.74 MB/s Progress: |██--------| 20.3% Write (Sector 0xCF60 of 0x40000, 15s left) 6.79 MB/s Progress: |██--------| 20.4% Write (Sector 0xD080 of 0x40000, 15s left) 7.09 MB/s Progress: |██--------| 20.5% Write (Sector 0xD180 of 0x40000, 15s left) 6.75 MB/s Progress: |██--------| 20.6% Write (Sector 0xD280 of 0x40000, 15s left) 6.78 MB/s Progress: |██--------| 20.7% Write (Sector 0xD380 of 0x40000, 15s left) 6.79 MB/s Progress: |██--------| 20.8% Write (Sector 0xD480 of 0x40000, 15s left) 6.80 MB/s Progress: |██--------| 20.9% Write (Sector 0xD5A0 of 0x40000, 15s left) 6.47 MB/s Progress: |██--------| 21.0% Write (Sector 0xD6A0 of 0x40000, 15s left) 6.78 MB/s Progress: |██--------| 21.1% Write (Sector 0xD7A0 of 0x40000, 15s left) 6.84 MB/s Progress: |██--------| 21.2% Write (Sector 0xD8A0 of 0x40000, 15s left) 6.85 MB/s Progress: |██--------| 21.3% Write (Sector 0xD9A0 of 0x40000, 15s left) 6.84 MB/s Progress: |██--------| 21.4% Write (Sector 0xDAA0 of 0x40000, 15s left) 6.80 MB/s Progress: |██--------| 21.5% Write (Sector 0xDBC0 of 0x40000, 15s left) 7.11 MB/s Progress: |██--------| 21.6% Write (Sector 0xDCC0 of 0x40000, 15s left) 6.78 MB/s Progress: |██--------| 21.7% Write (Sector 0xDDC0 of 0x40000, 15s left) 6.97 MB/s Progress: |██--------| 21.8% Write (Sector 0xDEC0 of 0x40000, 15s left) 6.88 MB/s Progress: |██--------| 21.9% Write (Sector 0xDFC0 of 0x40000, 15s left) 3.98 MB/s Progress: |██--------| 22.0% Write (Sector 0xE0E0 of 0x40000, 15s left) 6.35 MB/s Progress: |██--------| 22.1% Write (Sector 0xE1E0 of 0x40000, 15s left) 6.58 MB/s Progress: |██--------| 22.2% Write (Sector 0xE2E0 of 0x40000, 15s left) 6.55 MB/s Progress: |██--------| 22.3% Write (Sector 0xE3E0 of 0x40000, 15s left) 6.67 MB/s Progress: |██--------| 22.4% Write (Sector 0xE4E0 of 0x40000, 15s left) 6.70 MB/s Progress: |██--------| 22.5% Write (Sector 0xE600 of 0x40000, 15s left) 7.07 MB/s Progress: |██--------| 22.6% Write (Sector 0xE700 of 0x40000, 14s left) 6.73 MB/s Progress: |██--------| 22.7% Write (Sector 0xE800 of 0x40000, 14s left) 6.73 MB/s Progress: |██--------| 22.8% Write (Sector 0xE900 of 0x40000, 14s left) 6.81 MB/s Progress: |██--------| 22.9% Write (Sector 0xEA00 of 0x40000, 14s left) 6.79 MB/s Progress: |██--------| 23.0% Write (Sector 0xEB20 of 0x40000, 14s left) 6.36 MB/s Progress: |██--------| 23.1% Write (Sector 0xEC20 of 0x40000, 14s left) 6.89 MB/s Progress: |██--------| 23.2% Write (Sector 0xED20 of 0x40000, 14s left) 6.80 MB/s Progress: |██--------| 23.3% Write (Sector 0xEE20 of 0x40000, 14s left) 6.70 MB/s Progress: |██--------| 23.4% Write (Sector 0xEF20 of 0x40000, 14s left) 6.83 MB/s Progress: |██--------| 23.5% Write (Sector 0xF040 of 0x40000, 14s left) 7.05 MB/s Progress: |██--------| 23.6% Write (Sector 0xF140 of 0x40000, 14s left) 6.92 MB/s Progress: |██--------| 23.7% Write (Sector 0xF240 of 0x40000, 14s left) 6.75 MB/s Progress: |██--------| 23.8% Write (Sector 0xF340 of 0x40000, 14s left) 7.04 MB/s Progress: |██--------| 23.9% Write (Sector 0xF440 of 0x40000, 14s left) 6.84 MB/s Progress: |██--------| 24.0% Write (Sector 0xF540 of 0x40000, 14s left) 6.85 MB/s Progress: |██--------| 24.1% Write (Sector 0xF660 of 0x40000, 14s left) 6.64 MB/s Progress: |██--------| 24.2% Write (Sector 0xF760 of 0x40000, 14s left) 6.77 MB/s Progress: |██--------| 24.3% Write (Sector 0xF860 of 0x40000, 14s left) 6.84 MB/s Progress: |██--------| 24.4% Write (Sector 0xF960 of 0x40000, 14s left) 6.91 MB/s Progress: |██--------| 24.5% Write (Sector 0xFA60 of 0x40000, 14s left) 6.94 MB/s Progress: |██--------| 24.6% Write (Sector 0xFB80 of 0x40000, 14s left) 7.26 MB/s Progress: |██--------| 24.7% Write (Sector 0xFC80 of 0x40000, 14s left) 6.89 MB/s Progress: |██--------| 24.8% Write (Sector 0xFD80 of 0x40000, 14s left) 6.92 MB/s Progress: |██--------| 24.9% Write (Sector 0xFE80 of 0x40000, 14s left) 7.05 MB/s Progress: |██--------| 25.0% Write (Sector 0xFF80 of 0x40000, 14s left) 4.05 MB/s Progress: |███-------| 25.1% Write (Sector 0x100A0 of 0x40000, 14s left) 6.32 MB/s Progress: |███-------| 25.2% Write (Sector 0x101A0 of 0x40000, 14s left) 6.75 MB/s Progress: |███-------| 25.3% Write (Sector 0x102A0 of 0x40000, 14s left) 6.70 MB/s Progress: |███-------| 25.4% Write (Sector 0x103A0 of 0x40000, 14s left) 6.64 MB/s Progress: |███-------| 25.5% Write (Sector 0x104A0 of 0x40000, 14s left) 6.66 MB/s Progress: |███-------| 25.6% Write (Sector 0x105C0 of 0x40000, 14s left) 7.01 MB/s Progress: |███-------| 25.7% Write (Sector 0x106C0 of 0x40000, 14s left) 6.74 MB/s Progress: |███-------| 25.8% Write (Sector 0x107C0 of 0x40000, 14s left) 6.73 MB/s Progress: |███-------| 25.9% Write (Sector 0x108C0 of 0x40000, 14s left) 6.69 MB/s Progress: |███-------| 26.0% Write (Sector 0x109C0 of 0x40000, 14s left) 6.70 MB/s Progress: |███-------| 26.1% Write (Sector 0x10AE0 of 0x40000, 14s left) 6.48 MB/s Progress: |███-------| 26.2% Write (Sector 0x10BE0 of 0x40000, 14s left) 6.76 MB/s Progress: |███-------| 26.3% Write (Sector 0x10CE0 of 0x40000, 14s left) 6.75 MB/s Progress: |███-------| 26.4% Write (Sector 0x10DE0 of 0x40000, 14s left) 6.74 MB/s Progress: |███-------| 26.5% Write (Sector 0x10EE0 of 0x40000, 14s left) 6.79 MB/s Progress: |███-------| 26.6% Write (Sector 0x10FE0 of 0x40000, 14s left) 6.81 MB/s Progress: |███-------| 26.7% Write (Sector 0x11100 of 0x40000, 14s left) 7.16 MB/s Progress: |███-------| 26.8% Write (Sector 0x11200 of 0x40000, 14s left) 6.85 MB/s Progress: |███-------| 26.9% Write (Sector 0x11300 of 0x40000, 14s left) 6.94 MB/s Progress: |███-------| 27.0% Write (Sector 0x11400 of 0x40000, 14s left) 6.82 MB/s Progress: |███-------| 27.1% Write (Sector 0x11500 of 0x40000, 14s left) 6.92 MB/s Progress: |███-------| 27.2% Write (Sector 0x11620 of 0x40000, 14s left) 6.48 MB/s Progress: |███-------| 27.3% Write (Sector 0x11720 of 0x40000, 14s left) 6.85 MB/s Progress: |███-------| 27.4% Write (Sector 0x11820 of 0x40000, 14s left) 6.84 MB/s Progress: |███-------| 27.5% Write (Sector 0x11920 of 0x40000, 13s left) 6.91 MB/s Progress: |███-------| 27.6% Write (Sector 0x11A20 of 0x40000, 13s left) 6.81 MB/s Progress: |███-------| 27.7% Write (Sector 0x11B40 of 0x40000, 13s left) 7.14 MB/s Progress: |███-------| 27.8% Write (Sector 0x11C40 of 0x40000, 13s left) 6.81 MB/s Progress: |███-------| 27.9% Write (Sector 0x11D40 of 0x40000, 13s left) 6.82 MB/s Progress: |███-------| 28.0% Write (Sector 0x11E40 of 0x40000, 13s left) 7.07 MB/s Progress: |███-------| 28.1% Write (Sector 0x11F40 of 0x40000, 13s left) 4.04 MB/s Progress: |███-------| 28.2% Write (Sector 0x12060 of 0x40000, 13s left) 6.42 MB/s Progress: |███-------| 28.3% Write (Sector 0x12160 of 0x40000, 13s left) 6.72 MB/s Progress: |███-------| 28.4% Write (Sector 0x12260 of 0x40000, 13s left) 6.66 MB/s Progress: |███-------| 28.5% Write (Sector 0x12360 of 0x40000, 13s left) 6.66 MB/s Progress: |███-------| 28.6% Write (Sector 0x12460 of 0x40000, 13s left) 6.51 MB/s Progress: |███-------| 28.7% Write (Sector 0x12580 of 0x40000, 13s left) 7.05 MB/s Progress: |███-------| 28.8% Write (Sector 0x12680 of 0x40000, 13s left) 6.21 MB/s Progress: |███-------| 28.9% Write (Sector 0x12780 of 0x40000, 13s left) 6.64 MB/s Progress: |███-------| 29.0% Write (Sector 0x12880 of 0x40000, 13s left) 6.68 MB/s Progress: |███-------| 29.1% Write (Sector 0x12980 of 0x40000, 13s left) 6.65 MB/s Progress: |███-------| 29.2% Write (Sector 0x12A80 of 0x40000, 13s left) 6.66 MB/s Progress: |███-------| 29.3% Write (Sector 0x12BA0 of 0x40000, 13s left) 6.25 MB/s Progress: |███-------| 29.4% Write (Sector 0x12CA0 of 0x40000, 13s left) 6.75 MB/s Progress: |███-------| 29.5% Write (Sector 0x12DA0 of 0x40000, 13s left) 6.72 MB/s Progress: |███-------| 29.6% Write (Sector 0x12EA0 of 0x40000, 13s left) 6.73 MB/s Progress: |███-------| 29.7% Write (Sector 0x12FA0 of 0x40000, 13s left) 6.74 MB/s Progress: |███-------| 29.8% Write (Sector 0x130C0 of 0x40000, 13s left) 7.10 MB/s Progress: |███-------| 29.9% Write (Sector 0x131C0 of 0x40000, 13s left) 6.73 MB/s Progress: |███-------| 30.0% Write (Sector 0x132C0 of 0x40000, 13s left) 6.71 MB/s Progress: |███-------| 30.1% Write (Sector 0x133C0 of 0x40000, 13s left) 6.78 MB/s Progress: |███-------| 30.2% Write (Sector 0x134C0 of 0x40000, 13s left) 6.79 MB/s Progress: |███-------| 30.3% Write (Sector 0x135E0 of 0x40000, 13s left) 6.46 MB/s Progress: |███-------| 30.4% Write (Sector 0x136E0 of 0x40000, 13s left) 6.79 MB/s Progress: |███-------| 30.5% Write (Sector 0x137E0 of 0x40000, 13s left) 6.84 MB/s Progress: |███-------| 30.6% Write (Sector 0x138E0 of 0x40000, 13s left) 6.94 MB/s Progress: |███-------| 30.7% Write (Sector 0x139E0 of 0x40000, 13s left) 6.82 MB/s Progress: |███-------| 30.8% Write (Sector 0x13B00 of 0x40000, 13s left) 7.14 MB/s Progress: |███-------| 30.9% Write (Sector 0x13C00 of 0x40000, 13s left) 6.84 MB/s Progress: |███-------| 31.0% Write (Sector 0x13D00 of 0x40000, 13s left) 6.80 MB/s Progress: |███-------| 31.1% Write (Sector 0x13E00 of 0x40000, 13s left) 6.94 MB/s Progress: |███-------| 31.2% Write (Sector 0x13F00 of 0x40000, 13s left) 3.86 MB/s Progress: |███-------| 31.3% Write (Sector 0x14020 of 0x40000, 13s left) 6.92 MB/s Progress: |███-------| 31.4% Write (Sector 0x14120 of 0x40000, 13s left) 6.73 MB/s Progress: |███-------| 31.5% Write (Sector 0x14220 of 0x40000, 13s left) 6.73 MB/s Progress: |███-------| 31.6% Write (Sector 0x14320 of 0x40000, 13s left) 6.70 MB/s Progress: |███-------| 31.7% Write (Sector 0x14420 of 0x40000, 13s left) 6.69 MB/s Progress: |███-------| 31.8% Write (Sector 0x14520 of 0x40000, 13s left) 6.65 MB/s Progress: |███-------| 31.9% Write (Sector 0x14640 of 0x40000, 13s left) 7.08 MB/s Progress: |███-------| 32.0% Write (Sector 0x14740 of 0x40000, 13s left) 6.62 MB/s Progress: |███-------| 32.1% Write (Sector 0x14840 of 0x40000, 13s left) 6.65 MB/s Progress: |███-------| 32.2% Write (Sector 0x14940 of 0x40000, 13s left) 6.68 MB/s Progress: |███-------| 32.3% Write (Sector 0x14A40 of 0x40000, 13s left) 6.36 MB/s Progress: |███-------| 32.4% Write (Sector 0x14B60 of 0x40000, 13s left) 6.50 MB/s Progress: |███-------| 32.5% Write (Sector 0x14C60 of 0x40000, 13s left) 6.66 MB/s Progress: |███-------| 32.6% Write (Sector 0x14D60 of 0x40000, 13s left) 6.72 MB/s Progress: |███-------| 32.7% Write (Sector 0x14E60 of 0x40000, 13s left) 6.66 MB/s Progress: |███-------| 32.8% Write (Sector 0x14F60 of 0x40000, 12s left) 6.73 MB/s Progress: |███-------| 32.9% Write (Sector 0x15080 of 0x40000, 12s left) 7.17 MB/s Progress: |███-------| 33.0% Write (Sector 0x15180 of 0x40000, 12s left) 6.73 MB/s Progress: |███-------| 33.1% Write (Sector 0x15280 of 0x40000, 12s left) 6.50 MB/s Progress: |███-------| 33.2% Write (Sector 0x15380 of 0x40000, 12s left) 6.80 MB/s Progress: |███-------| 33.3% Write (Sector 0x15480 of 0x40000, 12s left) 6.90 MB/s Progress: |███-------| 33.4% Write (Sector 0x155A0 of 0x40000, 12s left) 6.50 MB/s Progress: |███-------| 33.5% Write (Sector 0x156A0 of 0x40000, 12s left) 6.89 MB/s Progress: |███-------| 33.6% Write (Sector 0x157A0 of 0x40000, 12s left) 6.79 MB/s Progress: |███-------| 33.7% Write (Sector 0x158A0 of 0x40000, 12s left) 6.77 MB/s Progress: |███-------| 33.8% Write (Sector 0x159A0 of 0x40000, 12s left) 6.92 MB/s Progress: |███-------| 33.9% Write (Sector 0x15AA0 of 0x40000, 12s left) 6.85 MB/s Progress: |███-------| 34.0% Write (Sector 0x15BC0 of 0x40000, 12s left) 7.20 MB/s Progress: |███-------| 34.1% Write (Sector 0x15CC0 of 0x40000, 12s left) 6.80 MB/s Progress: |███-------| 34.2% Write (Sector 0x15DC0 of 0x40000, 12s left) 6.34 MB/s Progress: |███-------| 34.3% Write (Sector 0x15EC0 of 0x40000, 12s left) 7.52 MB/s Progress: |███-------| 34.4% Write (Sector 0x15FC0 of 0x40000, 12s left) 4.01 MB/s Progress: |███-------| 34.5% Write (Sector 0x160E0 of 0x40000, 12s left) 6.36 MB/s Progress: |███-------| 34.6% Write (Sector 0x161E0 of 0x40000, 12s left) 6.52 MB/s Progress: |███-------| 34.7% Write (Sector 0x162E0 of 0x40000, 12s left) 6.78 MB/s Progress: |███-------| 34.8% Write (Sector 0x163E0 of 0x40000, 12s left) 6.72 MB/s Progress: |███-------| 34.9% Write (Sector 0x164E0 of 0x40000, 12s left) 6.82 MB/s Progress: |████------| 35.0% Write (Sector 0x16600 of 0x40000, 12s left) 6.98 MB/s Progress: |████------| 35.1% Write (Sector 0x16700 of 0x40000, 12s left) 6.71 MB/s Progress: |████------| 35.2% Write (Sector 0x16800 of 0x40000, 12s left) 6.71 MB/s Progress: |████------| 35.3% Write (Sector 0x16900 of 0x40000, 12s left) 6.65 MB/s Progress: |████------| 35.4% Write (Sector 0x16A00 of 0x40000, 12s left) 6.70 MB/s Progress: |████------| 35.5% Write (Sector 0x16B20 of 0x40000, 12s left) 6.43 MB/s Progress: |████------| 35.6% Write (Sector 0x16C20 of 0x40000, 12s left) 6.73 MB/s Progress: |████------| 35.7% Write (Sector 0x16D20 of 0x40000, 12s left) 6.70 MB/s Progress: |████------| 35.8% Write (Sector 0x16E20 of 0x40000, 12s left) 6.75 MB/s Progress: |████------| 35.9% Write (Sector 0x16F20 of 0x40000, 12s left) 6.83 MB/s Progress: |████------| 36.0% Write (Sector 0x17040 of 0x40000, 12s left) 7.18 MB/s Progress: |████------| 36.1% Write (Sector 0x17140 of 0x40000, 12s left) 6.78 MB/s Progress: |████------| 36.2% Write (Sector 0x17240 of 0x40000, 12s left) 6.91 MB/s Progress: |████------| 36.3% Write (Sector 0x17340 of 0x40000, 12s left) 6.91 MB/s Progress: |████------| 36.4% Write (Sector 0x17440 of 0x40000, 12s left) 6.78 MB/s Progress: |████------| 36.5% Write (Sector 0x17540 of 0x40000, 12s left) 6.92 MB/s Progress: |████------| 36.6% Write (Sector 0x17660 of 0x40000, 12s left) 6.58 MB/s Progress: |████------| 36.7% Write (Sector 0x17760 of 0x40000, 12s left) 6.83 MB/s Progress: |████------| 36.8% Write (Sector 0x17860 of 0x40000, 12s left) 6.90 MB/s Progress: |████------| 36.9% Write (Sector 0x17960 of 0x40000, 12s left) 6.90 MB/s Progress: |████------| 37.0% Write (Sector 0x17A60 of 0x40000, 12s left) 6.87 MB/s Progress: |████------| 37.1% Write (Sector 0x17B80 of 0x40000, 12s left) 7.21 MB/s Progress: |████------| 37.2% Write (Sector 0x17C80 of 0x40000, 12s left) 6.86 MB/s Progress: |████------| 37.3% Write (Sector 0x17D80 of 0x40000, 12s left) 6.85 MB/s Progress: |████------| 37.4% Write (Sector 0x17E80 of 0x40000, 12s left) 6.93 MB/s Progress: |████------| 37.5% Write (Sector 0x17F80 of 0x40000, 12s left) 3.88 MB/s Progress: |████------| 37.6% Write (Sector 0x180A0 of 0x40000, 12s left) 6.33 MB/s Progress: |████------| 37.7% Write (Sector 0x181A0 of 0x40000, 12s left) 6.65 MB/s Progress: |████------| 37.8% Write (Sector 0x182A0 of 0x40000, 12s left) 6.60 MB/s Progress: |████------| 37.9% Write (Sector 0x183A0 of 0x40000, 12s left) 6.64 MB/s Progress: |████------| 38.0% Write (Sector 0x184A0 of 0x40000, 11s left) 6.75 MB/s Progress: |████------| 38.1% Write (Sector 0x185C0 of 0x40000, 11s left) 7.00 MB/s Progress: |████------| 38.2% Write (Sector 0x186C0 of 0x40000, 11s left) 6.64 MB/s Progress: |████------| 38.3% Write (Sector 0x187C0 of 0x40000, 11s left) 6.67 MB/s Progress: |████------| 38.4% Write (Sector 0x188C0 of 0x40000, 11s left) 6.67 MB/s Progress: |████------| 38.5% Write (Sector 0x189C0 of 0x40000, 11s left) 6.77 MB/s Progress: |████------| 38.6% Write (Sector 0x18AE0 of 0x40000, 11s left) 6.45 MB/s Progress: |████------| 38.7% Write (Sector 0x18BE0 of 0x40000, 11s left) 6.63 MB/s Progress: |████------| 38.8% Write (Sector 0x18CE0 of 0x40000, 11s left) 6.78 MB/s Progress: |████------| 38.9% Write (Sector 0x18DE0 of 0x40000, 11s left) 6.71 MB/s Progress: |████------| 39.0% Write (Sector 0x18EE0 of 0x40000, 11s left) 6.67 MB/s Progress: |████------| 39.1% Write (Sector 0x18FE0 of 0x40000, 11s left) 6.73 MB/s Progress: |████------| 39.2% Write (Sector 0x19100 of 0x40000, 11s left) 7.14 MB/s Progress: |████------| 39.3% Write (Sector 0x19200 of 0x40000, 11s left) 6.80 MB/s Progress: |████------| 39.4% Write (Sector 0x19300 of 0x40000, 11s left) 6.81 MB/s Progress: |████------| 39.5% Write (Sector 0x19400 of 0x40000, 11s left) 6.75 MB/s Progress: |████------| 39.6% Write (Sector 0x19500 of 0x40000, 11s left) 5.94 MB/s Progress: |████------| 39.7% Write (Sector 0x19620 of 0x40000, 11s left) 6.45 MB/s Progress: |████------| 39.8% Write (Sector 0x19720 of 0x40000, 11s left) 6.76 MB/s Progress: |████------| 39.9% Write (Sector 0x19820 of 0x40000, 11s left) 6.76 MB/s Progress: |████------| 40.0% Write (Sector 0x19920 of 0x40000, 11s left) 6.89 MB/s Progress: |████------| 40.1% Write (Sector 0x19A20 of 0x40000, 11s left) 6.78 MB/s Progress: |████------| 40.2% Write (Sector 0x19B40 of 0x40000, 11s left) 7.10 MB/s Progress: |████------| 40.3% Write (Sector 0x19C40 of 0x40000, 11s left) 6.81 MB/s Progress: |████------| 40.4% Write (Sector 0x19D40 of 0x40000, 11s left) 6.78 MB/s Progress: |████------| 40.5% Write (Sector 0x19E40 of 0x40000, 11s left) 6.83 MB/s Progress: |████------| 40.6% Write (Sector 0x19F40 of 0x40000, 11s left) 4.02 MB/s Progress: |████------| 40.7% Write (Sector 0x1A060 of 0x40000, 11s left) 6.30 MB/s Progress: |████------| 40.8% Write (Sector 0x1A160 of 0x40000, 11s left) 6.76 MB/s Progress: |████------| 40.9% Write (Sector 0x1A260 of 0x40000, 11s left) 6.55 MB/s Progress: |████------| 41.0% Write (Sector 0x1A360 of 0x40000, 11s left) 6.69 MB/s Progress: |████------| 41.1% Write (Sector 0x1A460 of 0x40000, 11s left) 6.68 MB/s Progress: |████------| 41.2% Write (Sector 0x1A580 of 0x40000, 11s left) 7.03 MB/s Progress: |████------| 41.3% Write (Sector 0x1A680 of 0x40000, 11s left) 6.72 MB/s Progress: |████------| 41.4% Write (Sector 0x1A780 of 0x40000, 11s left) 6.68 MB/s Progress: |████------| 41.5% Write (Sector 0x1A880 of 0x40000, 11s left) 6.08 MB/s Progress: |████------| 41.6% Write (Sector 0x1A980 of 0x40000, 11s left) 6.78 MB/s Progress: |████------| 41.7% Write (Sector 0x1AA80 of 0x40000, 11s left) 6.73 MB/s Progress: |████------| 41.8% Write (Sector 0x1ABA0 of 0x40000, 11s left) 6.39 MB/s Progress: |████------| 41.9% Write (Sector 0x1ACA0 of 0x40000, 11s left) 6.71 MB/s Progress: |████------| 42.0% Write (Sector 0x1ADA0 of 0x40000, 11s left) 6.70 MB/s Progress: |████------| 42.1% Write (Sector 0x1AEA0 of 0x40000, 11s left) 6.68 MB/s Progress: |████------| 42.2% Write (Sector 0x1AFA0 of 0x40000, 11s left) 6.74 MB/s Progress: |████------| 42.3% Write (Sector 0x1B0C0 of 0x40000, 11s left) 7.09 MB/s Progress: |████------| 42.4% Write (Sector 0x1B1C0 of 0x40000, 11s left) 6.74 MB/s Progress: |████------| 42.5% Write (Sector 0x1B2C0 of 0x40000, 11s left) 6.70 MB/s Progress: |████------| 42.6% Write (Sector 0x1B3C0 of 0x40000, 11s left) 6.81 MB/s Progress: |████------| 42.7% Write (Sector 0x1B4C0 of 0x40000, 11s left) 6.73 MB/s Progress: |████------| 42.8% Write (Sector 0x1B5E0 of 0x40000, 11s left) 6.45 MB/s Progress: |████------| 42.9% Write (Sector 0x1B6E0 of 0x40000, 11s left) 6.78 MB/s Progress: |████------| 43.0% Write (Sector 0x1B7E0 of 0x40000, 11s left) 6.65 MB/s Progress: |████------| 43.1% Write (Sector 0x1B8E0 of 0x40000, 11s left) 6.74 MB/s Progress: |████------| 43.2% Write (Sector 0x1B9E0 of 0x40000, 10s left) 6.76 MB/s Progress: |████------| 43.3% Write (Sector 0x1BB00 of 0x40000, 10s left) 7.13 MB/s Progress: |████------| 43.4% Write (Sector 0x1BC00 of 0x40000, 10s left) 6.71 MB/s Progress: |████------| 43.5% Write (Sector 0x1BD00 of 0x40000, 10s left) 6.81 MB/s Progress: |████------| 43.6% Write (Sector 0x1BE00 of 0x40000, 10s left) 6.95 MB/s Progress: |████------| 43.7% Write (Sector 0x1BF00 of 0x40000, 10s left) 3.83 MB/s Progress: |████------| 43.8% Write (Sector 0x1C000 of 0x40000, 10s left) 7.25 MB/s Progress: |████------| 43.9% Write (Sector 0x1C120 of 0x40000, 10s left) 6.46 MB/s Progress: |████------| 44.0% Write (Sector 0x1C220 of 0x40000, 10s left) 6.58 MB/s Progress: |████------| 44.1% Write (Sector 0x1C320 of 0x40000, 10s left) 6.58 MB/s Progress: |████------| 44.2% Write (Sector 0x1C420 of 0x40000, 10s left) 6.63 MB/s Progress: |████------| 44.3% Write (Sector 0x1C520 of 0x40000, 10s left) 6.65 MB/s Progress: |████------| 44.4% Write (Sector 0x1C640 of 0x40000, 10s left) 6.91 MB/s Progress: |████------| 44.5% Write (Sector 0x1C740 of 0x40000, 10s left) 6.72 MB/s Progress: |████------| 44.6% Write (Sector 0x1C840 of 0x40000, 10s left) 6.66 MB/s Progress: |████------| 44.7% Write (Sector 0x1C940 of 0x40000, 10s left) 6.71 MB/s Progress: |████------| 44.8% Write (Sector 0x1CA40 of 0x40000, 10s left) 6.73 MB/s Progress: |████------| 44.9% Write (Sector 0x1CB60 of 0x40000, 10s left) 6.49 MB/s Progress: |████------| 45.0% Write (Sector 0x1CC60 of 0x40000, 10s left) 6.75 MB/s Progress: |█████-----| 45.1% Write (Sector 0x1CD60 of 0x40000, 10s left) 6.69 MB/s Progress: |█████-----| 45.2% Write (Sector 0x1CE60 of 0x40000, 10s left) 6.78 MB/s Progress: |█████-----| 45.3% Write (Sector 0x1CF60 of 0x40000, 10s left) 6.71 MB/s Progress: |█████-----| 45.4% Write (Sector 0x1D080 of 0x40000, 10s left) 7.07 MB/s Progress: |█████-----| 45.5% Write (Sector 0x1D180 of 0x40000, 10s left) 6.72 MB/s Progress: |█████-----| 45.6% Write (Sector 0x1D280 of 0x40000, 10s left) 6.79 MB/s Progress: |█████-----| 45.7% Write (Sector 0x1D380 of 0x40000, 10s left) 6.82 MB/s Progress: |█████-----| 45.8% Write (Sector 0x1D480 of 0x40000, 10s left) 5.93 MB/s Progress: |█████-----| 45.9% Write (Sector 0x1D5A0 of 0x40000, 10s left) 6.43 MB/s Progress: |█████-----| 46.0% Write (Sector 0x1D6A0 of 0x40000, 10s left) 6.74 MB/s Progress: |█████-----| 46.1% Write (Sector 0x1D7A0 of 0x40000, 10s left) 6.79 MB/s Progress: |█████-----| 46.2% Write (Sector 0x1D8A0 of 0x40000, 10s left) 6.77 MB/s Progress: |█████-----| 46.3% Write (Sector 0x1D9A0 of 0x40000, 10s left) 6.78 MB/s Progress: |█████-----| 46.4% Write (Sector 0x1DAA0 of 0x40000, 10s left) 6.85 MB/s Progress: |█████-----| 46.5% Write (Sector 0x1DBC0 of 0x40000, 10s left) 7.05 MB/s Progress: |█████-----| 46.6% Write (Sector 0x1DCC0 of 0x40000, 10s left) 6.78 MB/s Progress: |█████-----| 46.7% Write (Sector 0x1DDC0 of 0x40000, 10s left) 6.92 MB/s Progress: |█████-----| 46.8% Write (Sector 0x1DEC0 of 0x40000, 10s left) 6.89 MB/s Progress: |█████-----| 46.9% Write (Sector 0x1DFC0 of 0x40000, 10s left) 4.03 MB/s Progress: |█████-----| 47.0% Write (Sector 0x1E0E0 of 0x40000, 10s left) 6.28 MB/s Progress: |█████-----| 47.1% Write (Sector 0x1E1E0 of 0x40000, 10s left) 6.64 MB/s Progress: |█████-----| 47.2% Write (Sector 0x1E2E0 of 0x40000, 10s left) 6.67 MB/s Progress: |█████-----| 47.3% Write (Sector 0x1E3E0 of 0x40000, 10s left) 6.73 MB/s Progress: |█████-----| 47.4% Write (Sector 0x1E4E0 of 0x40000, 10s left) 6.67 MB/s Progress: |█████-----| 47.5% Write (Sector 0x1E600 of 0x40000, 10s left) 6.73 MB/s Progress: |█████-----| 47.6% Write (Sector 0x1E700 of 0x40000, 10s left) 6.72 MB/s Progress: |█████-----| 47.7% Write (Sector 0x1E800 of 0x40000, 10s left) 6.62 MB/s Progress: |█████-----| 47.8% Write (Sector 0x1E900 of 0x40000, 10s left) 6.64 MB/s Progress: |█████-----| 47.9% Write (Sector 0x1EA00 of 0x40000, 10s left) 6.62 MB/s Progress: |█████-----| 48.0% Write (Sector 0x1EB20 of 0x40000, 10s left) 6.42 MB/s Progress: |█████-----| 48.1% Write (Sector 0x1EC20 of 0x40000, 10s left) 6.70 MB/s Progress: |█████-----| 48.2% Write (Sector 0x1ED20 of 0x40000, 10s left) 6.69 MB/s Progress: |█████-----| 48.3% Write (Sector 0x1EE20 of 0x40000, 10s left) 6.74 MB/s Progress: |█████-----| 48.4% Write (Sector 0x1EF20 of 0x40000, 09s left) 6.61 MB/s Progress: |█████-----| 48.5% Write (Sector 0x1F040 of 0x40000, 09s left) 7.10 MB/s Progress: |█████-----| 48.6% Write (Sector 0x1F140 of 0x40000, 09s left) 6.67 MB/s Progress: |█████-----| 48.7% Write (Sector 0x1F240 of 0x40000, 09s left) 6.77 MB/s Progress: |█████-----| 48.8% Write (Sector 0x1F340 of 0x40000, 09s left) 6.75 MB/s Progress: |█████-----| 48.9% Write (Sector 0x1F440 of 0x40000, 09s left) 6.70 MB/s Progress: |█████-----| 49.0% Write (Sector 0x1F540 of 0x40000, 09s left) 6.83 MB/s Progress: |█████-----| 49.1% Write (Sector 0x1F660 of 0x40000, 09s left) 6.49 MB/s Progress: |█████-----| 49.2% Write (Sector 0x1F760 of 0x40000, 09s left) 6.72 MB/s Progress: |█████-----| 49.3% Write (Sector 0x1F860 of 0x40000, 09s left) 6.77 MB/s Progress: |█████-----| 49.4% Write (Sector 0x1F960 of 0x40000, 09s left) 6.27 MB/s Progress: |█████-----| 49.5% Write (Sector 0x1FA60 of 0x40000, 09s left) 6.84 MB/s Progress: |█████-----| 49.6% Write (Sector 0x1FB80 of 0x40000, 09s left) 7.11 MB/s Progress: |█████-----| 49.7% Write (Sector 0x1FC80 of 0x40000, 09s left) 6.78 MB/s Progress: |█████-----| 49.8% Write (Sector 0x1FD80 of 0x40000, 09s left) 6.76 MB/s Progress: |█████-----| 49.9% Write (Sector 0x1FE80 of 0x40000, 09s left) 7.04 MB/s Progress: |█████-----| 50.0% Write (Sector 0x1FF80 of 0x40000, 09s left) 4.02 MB/s Progress: |█████-----| 50.1% Write (Sector 0x200A0 of 0x40000, 09s left) 6.34 MB/s Progress: |█████-----| 50.2% Write (Sector 0x201A0 of 0x40000, 09s left) 6.73 MB/s Progress: |█████-----| 50.3% Write (Sector 0x202A0 of 0x40000, 09s left) 6.60 MB/s Progress: |█████-----| 50.4% Write (Sector 0x203A0 of 0x40000, 09s left) 6.63 MB/s Progress: |█████-----| 50.5% Write (Sector 0x204A0 of 0x40000, 09s left) 6.68 MB/s Progress: |█████-----| 50.6% Write (Sector 0x205C0 of 0x40000, 09s left) 6.96 MB/s Progress: |█████-----| 50.7% Write (Sector 0x206C0 of 0x40000, 09s left) 6.67 MB/s Progress: |█████-----| 50.8% Write (Sector 0x207C0 of 0x40000, 09s left) 6.49 MB/s Progress: |█████-----| 50.9% Write (Sector 0x208C0 of 0x40000, 09s left) 6.73 MB/s Progress: |█████-----| 51.0% Write (Sector 0x209C0 of 0x40000, 09s left) 6.63 MB/s Progress: |█████-----| 51.1% Write (Sector 0x20AE0 of 0x40000, 09s left) 6.35 MB/s Progress: |█████-----| 51.2% Write (Sector 0x20BE0 of 0x40000, 09s left) 6.72 MB/s Progress: |█████-----| 51.3% Write (Sector 0x20CE0 of 0x40000, 09s left) 6.70 MB/s Progress: |█████-----| 51.4% Write (Sector 0x20DE0 of 0x40000, 09s left) 6.66 MB/s Progress: |█████-----| 51.5% Write (Sector 0x20EE0 of 0x40000, 09s left) 6.70 MB/s Progress: |█████-----| 51.6% Write (Sector 0x20FE0 of 0x40000, 09s left) 6.69 MB/s Progress: |█████-----| 51.7% Write (Sector 0x21100 of 0x40000, 09s left) 7.00 MB/s Progress: |█████-----| 51.8% Write (Sector 0x21200 of 0x40000, 09s left) 6.73 MB/s Progress: |█████-----| 51.9% Write (Sector 0x21300 of 0x40000, 09s left) 6.76 MB/s Progress: |█████-----| 52.0% Write (Sector 0x21400 of 0x40000, 09s left) 6.82 MB/s Progress: |█████-----| 52.1% Write (Sector 0x21500 of 0x40000, 09s left) 6.69 MB/s Progress: |█████-----| 52.2% Write (Sector 0x21620 of 0x40000, 09s left) 6.50 MB/s Progress: |█████-----| 52.3% Write (Sector 0x21720 of 0x40000, 09s left) 6.72 MB/s Progress: |█████-----| 52.4% Write (Sector 0x21820 of 0x40000, 09s left) 6.77 MB/s Progress: |█████-----| 52.5% Write (Sector 0x21920 of 0x40000, 09s left) 6.76 MB/s Progress: |█████-----| 52.6% Write (Sector 0x21A20 of 0x40000, 09s left) 6.82 MB/s Progress: |█████-----| 52.7% Write (Sector 0x21B40 of 0x40000, 09s left) 7.06 MB/s Progress: |█████-----| 52.8% Write (Sector 0x21C40 of 0x40000, 09s left) 6.74 MB/s Progress: |█████-----| 52.9% Write (Sector 0x21D40 of 0x40000, 09s left) 6.80 MB/s Progress: |█████-----| 53.0% Write (Sector 0x21E40 of 0x40000, 09s left) 6.91 MB/s Progress: |█████-----| 53.1% Write (Sector 0x21F40 of 0x40000, 09s left) 4.04 MB/s Progress: |█████-----| 53.2% Write (Sector 0x22060 of 0x40000, 09s left) 6.40 MB/s Progress: |█████-----| 53.3% Write (Sector 0x22160 of 0x40000, 09s left) 6.80 MB/s Progress: |█████-----| 53.4% Write (Sector 0x22260 of 0x40000, 09s left) 6.73 MB/s Progress: |█████-----| 53.5% Write (Sector 0x22360 of 0x40000, 09s left) 6.72 MB/s Progress: |█████-----| 53.6% Write (Sector 0x22460 of 0x40000, 08s left) 6.71 MB/s Progress: |█████-----| 53.7% Write (Sector 0x22580 of 0x40000, 08s left) 7.01 MB/s Progress: |█████-----| 53.8% Write (Sector 0x22680 of 0x40000, 08s left) 6.74 MB/s Progress: |█████-----| 53.9% Write (Sector 0x22780 of 0x40000, 08s left) 6.78 MB/s Progress: |█████-----| 54.0% Write (Sector 0x22880 of 0x40000, 08s left) 6.72 MB/s Progress: |█████-----| 54.1% Write (Sector 0x22980 of 0x40000, 08s left) 6.73 MB/s Progress: |█████-----| 54.2% Write (Sector 0x22A80 of 0x40000, 08s left) 6.74 MB/s Progress: |█████-----| 54.3% Write (Sector 0x22BA0 of 0x40000, 08s left) 6.49 MB/s Progress: |█████-----| 54.4% Write (Sector 0x22CA0 of 0x40000, 08s left) 6.74 MB/s Progress: |█████-----| 54.5% Write (Sector 0x22DA0 of 0x40000, 08s left) 6.81 MB/s Progress: |█████-----| 54.6% Write (Sector 0x22EA0 of 0x40000, 08s left) 6.80 MB/s Progress: |█████-----| 54.7% Write (Sector 0x22FA0 of 0x40000, 08s left) 6.73 MB/s Progress: |█████-----| 54.8% Write (Sector 0x230C0 of 0x40000, 08s left) 7.24 MB/s Progress: |█████-----| 54.9% Write (Sector 0x231C0 of 0x40000, 08s left) 6.81 MB/s Progress: |██████----| 55.0% Write (Sector 0x232C0 of 0x40000, 08s left) 6.92 MB/s Progress: |██████----| 55.1% Write (Sector 0x233C0 of 0x40000, 08s left) 6.88 MB/s Progress: |██████----| 55.2% Write (Sector 0x234C0 of 0x40000, 08s left) 6.92 MB/s Progress: |██████----| 55.3% Write (Sector 0x235E0 of 0x40000, 08s left) 6.60 MB/s Progress: |██████----| 55.4% Write (Sector 0x236E0 of 0x40000, 08s left) 6.89 MB/s Progress: |██████----| 55.5% Write (Sector 0x237E0 of 0x40000, 08s left) 6.82 MB/s Progress: |██████----| 55.6% Write (Sector 0x238E0 of 0x40000, 08s left) 6.95 MB/s Progress: |██████----| 55.7% Write (Sector 0x239E0 of 0x40000, 08s left) 6.85 MB/s Progress: |██████----| 55.8% Write (Sector 0x23B00 of 0x40000, 08s left) 7.20 MB/s Progress: |██████----| 55.9% Write (Sector 0x23C00 of 0x40000, 08s left) 6.87 MB/s Progress: |██████----| 56.0% Write (Sector 0x23D00 of 0x40000, 08s left) 6.89 MB/s Progress: |██████----| 56.1% Write (Sector 0x23E00 of 0x40000, 08s left) 6.99 MB/s Progress: |██████----| 56.2% Write (Sector 0x23F00 of 0x40000, 08s left) 3.89 MB/s Progress: |██████----| 56.3% Write (Sector 0x24020 of 0x40000, 08s left) 6.90 MB/s Progress: |██████----| 56.4% Write (Sector 0x24120 of 0x40000, 08s left) 6.70 MB/s Progress: |██████----| 56.5% Write (Sector 0x24220 of 0x40000, 08s left) 6.61 MB/s Progress: |██████----| 56.6% Write (Sector 0x24320 of 0x40000, 08s left) 6.72 MB/s Progress: |██████----| 56.7% Write (Sector 0x24420 of 0x40000, 08s left) 6.71 MB/s Progress: |██████----| 56.8% Write (Sector 0x24520 of 0x40000, 08s left) 6.72 MB/s Progress: |██████----| 56.9% Write (Sector 0x24640 of 0x40000, 08s left) 6.69 MB/s Progress: |██████----| 57.0% Write (Sector 0x24740 of 0x40000, 08s left) 6.72 MB/s Progress: |██████----| 57.1% Write (Sector 0x24840 of 0x40000, 08s left) 6.64 MB/s Progress: |██████----| 57.2% Write (Sector 0x24940 of 0x40000, 08s left) 6.80 MB/s Progress: |██████----| 57.3% Write (Sector 0x24A40 of 0x40000, 08s left) 6.78 MB/s Progress: |██████----| 57.4% Write (Sector 0x24B60 of 0x40000, 08s left) 6.54 MB/s Progress: |██████----| 57.5% Write (Sector 0x24C60 of 0x40000, 08s left) 6.77 MB/s Progress: |██████----| 57.6% Write (Sector 0x24D60 of 0x40000, 08s left) 6.87 MB/s Progress: |██████----| 57.7% Write (Sector 0x24E60 of 0x40000, 08s left) 6.81 MB/s Progress: |██████----| 57.8% Write (Sector 0x24F60 of 0x40000, 08s left) 6.85 MB/s Progress: |██████----| 57.9% Write (Sector 0x25080 of 0x40000, 08s left) 7.11 MB/s Progress: |██████----| 58.0% Write (Sector 0x25180 of 0x40000, 08s left) 6.78 MB/s Progress: |██████----| 58.1% Write (Sector 0x25280 of 0x40000, 08s left) 6.83 MB/s Progress: |██████----| 58.2% Write (Sector 0x25380 of 0x40000, 08s left) 6.86 MB/s Progress: |██████----| 58.3% Write (Sector 0x25480 of 0x40000, 08s left) 6.88 MB/s Progress: |██████----| 58.4% Write (Sector 0x255A0 of 0x40000, 08s left) 6.48 MB/s Progress: |██████----| 58.5% Write (Sector 0x256A0 of 0x40000, 08s left) 6.78 MB/s Progress: |██████----| 58.6% Write (Sector 0x257A0 of 0x40000, 08s left) 6.88 MB/s Progress: |██████----| 58.7% Write (Sector 0x258A0 of 0x40000, 07s left) 6.89 MB/s Progress: |██████----| 58.8% Write (Sector 0x259A0 of 0x40000, 07s left) 6.88 MB/s Progress: |██████----| 58.9% Write (Sector 0x25AA0 of 0x40000, 07s left) 6.92 MB/s Progress: |██████----| 59.0% Write (Sector 0x25BC0 of 0x40000, 07s left) 7.24 MB/s Progress: |██████----| 59.1% Write (Sector 0x25CC0 of 0x40000, 07s left) 6.91 MB/s Progress: |██████----| 59.2% Write (Sector 0x25DC0 of 0x40000, 07s left) 6.98 MB/s Progress: |██████----| 59.3% Write (Sector 0x25EC0 of 0x40000, 07s left) 7.07 MB/s Progress: |██████----| 59.4% Write (Sector 0x25FC0 of 0x40000, 07s left) 4.01 MB/s Progress: |██████----| 59.5% Write (Sector 0x260E0 of 0x40000, 07s left) 6.33 MB/s Progress: |██████----| 59.6% Write (Sector 0x261E0 of 0x40000, 07s left) 6.71 MB/s Progress: |██████----| 59.7% Write (Sector 0x262E0 of 0x40000, 07s left) 6.73 MB/s Progress: |██████----| 59.8% Write (Sector 0x263E0 of 0x40000, 07s left) 6.75 MB/s Progress: |██████----| 59.9% Write (Sector 0x264E0 of 0x40000, 07s left) 6.72 MB/s Progress: |██████----| 60.0% Write (Sector 0x26600 of 0x40000, 07s left) 6.93 MB/s Progress: |██████----| 60.1% Write (Sector 0x26700 of 0x40000, 07s left) 6.65 MB/s Progress: |██████----| 60.2% Write (Sector 0x26800 of 0x40000, 07s left) 6.68 MB/s Progress: |██████----| 60.3% Write (Sector 0x26900 of 0x40000, 07s left) 6.72 MB/s Progress: |██████----| 60.4% Write (Sector 0x26A00 of 0x40000, 07s left) 6.75 MB/s Progress: |██████----| 60.5% Write (Sector 0x26B20 of 0x40000, 07s left) 6.46 MB/s Progress: |██████----| 60.6% Write (Sector 0x26C20 of 0x40000, 07s left) 6.78 MB/s Progress: |██████----| 60.7% Write (Sector 0x26D20 of 0x40000, 07s left) 6.72 MB/s Progress: |██████----| 60.8% Write (Sector 0x26E20 of 0x40000, 07s left) 6.75 MB/s Progress: |██████----| 60.9% Write (Sector 0x26F20 of 0x40000, 07s left) 6.78 MB/s Progress: |██████----| 61.0% Write (Sector 0x27040 of 0x40000, 07s left) 7.01 MB/s Progress: |██████----| 61.1% Write (Sector 0x27140 of 0x40000, 07s left) 6.79 MB/s Progress: |██████----| 61.2% Write (Sector 0x27240 of 0x40000, 07s left) 6.73 MB/s Progress: |██████----| 61.3% Write (Sector 0x27340 of 0x40000, 07s left) 6.76 MB/s Progress: |██████----| 61.4% Write (Sector 0x27440 of 0x40000, 07s left) 6.74 MB/s Progress: |██████----| 61.5% Write (Sector 0x27540 of 0x40000, 07s left) 6.80 MB/s Progress: |██████----| 61.6% Write (Sector 0x27660 of 0x40000, 07s left) 6.50 MB/s Progress: |██████----| 61.7% Write (Sector 0x27760 of 0x40000, 07s left) 6.79 MB/s Progress: |██████----| 61.8% Write (Sector 0x27860 of 0x40000, 07s left) 6.79 MB/s Progress: |██████----| 61.9% Write (Sector 0x27960 of 0x40000, 07s left) 6.80 MB/s Progress: |██████----| 62.0% Write (Sector 0x27A60 of 0x40000, 07s left) 6.74 MB/s Progress: |██████----| 62.1% Write (Sector 0x27B80 of 0x40000, 07s left) 7.25 MB/s Progress: |██████----| 62.2% Write (Sector 0x27C80 of 0x40000, 07s left) 6.84 MB/s Progress: |██████----| 62.3% Write (Sector 0x27D80 of 0x40000, 07s left) 6.84 MB/s Progress: |██████----| 62.4% Write (Sector 0x27E80 of 0x40000, 07s left) 7.06 MB/s Progress: |██████----| 62.5% Write (Sector 0x27F80 of 0x40000, 07s left) 4.08 MB/s Progress: |██████----| 62.6% Write (Sector 0x280A0 of 0x40000, 07s left) 6.35 MB/s Progress: |██████----| 62.7% Write (Sector 0x281A0 of 0x40000, 07s left) 6.69 MB/s Progress: |██████----| 62.8% Write (Sector 0x282A0 of 0x40000, 07s left) 6.67 MB/s Progress: |██████----| 62.9% Write (Sector 0x283A0 of 0x40000, 07s left) 6.72 MB/s Progress: |██████----| 63.0% Write (Sector 0x284A0 of 0x40000, 07s left) 6.74 MB/s Progress: |██████----| 63.1% Write (Sector 0x285C0 of 0x40000, 07s left) 7.00 MB/s Progress: |██████----| 63.2% Write (Sector 0x286C0 of 0x40000, 07s left) 6.72 MB/s Progress: |██████----| 63.3% Write (Sector 0x287C0 of 0x40000, 07s left) 6.74 MB/s Progress: |██████----| 63.4% Write (Sector 0x288C0 of 0x40000, 07s left) 6.71 MB/s Progress: |██████----| 63.5% Write (Sector 0x289C0 of 0x40000, 07s left) 6.67 MB/s Progress: |██████----| 63.6% Write (Sector 0x28AE0 of 0x40000, 07s left) 6.50 MB/s Progress: |██████----| 63.7% Write (Sector 0x28BE0 of 0x40000, 07s left) 6.69 MB/s Progress: |██████----| 63.8% Write (Sector 0x28CE0 of 0x40000, 07s left) 6.81 MB/s Progress: |██████----| 63.9% Write (Sector 0x28DE0 of 0x40000, 06s left) 6.76 MB/s Progress: |██████----| 64.0% Write (Sector 0x28EE0 of 0x40000, 06s left) 6.81 MB/s Progress: |██████----| 64.1% Write (Sector 0x28FE0 of 0x40000, 06s left) 6.87 MB/s Progress: |██████----| 64.2% Write (Sector 0x29100 of 0x40000, 06s left) 7.13 MB/s Progress: |██████----| 64.3% Write (Sector 0x29200 of 0x40000, 06s left) 6.77 MB/s Progress: |██████----| 64.4% Write (Sector 0x29300 of 0x40000, 06s left) 6.82 MB/s Progress: |██████----| 64.5% Write (Sector 0x29400 of 0x40000, 06s left) 6.70 MB/s Progress: |██████----| 64.6% Write (Sector 0x29500 of 0x40000, 06s left) 6.91 MB/s Progress: |██████----| 64.7% Write (Sector 0x29620 of 0x40000, 06s left) 6.52 MB/s Progress: |██████----| 64.8% Write (Sector 0x29720 of 0x40000, 06s left) 6.78 MB/s Progress: |██████----| 64.9% Write (Sector 0x29820 of 0x40000, 06s left) 6.95 MB/s Progress: |██████----| 65.0% Write (Sector 0x29920 of 0x40000, 06s left) 6.92 MB/s Progress: |███████---| 65.1% Write (Sector 0x29A20 of 0x40000, 06s left) 6.84 MB/s Progress: |███████---| 65.2% Write (Sector 0x29B40 of 0x40000, 06s left) 7.21 MB/s Progress: |███████---| 65.3% Write (Sector 0x29C40 of 0x40000, 06s left) 6.92 MB/s Progress: |███████---| 65.4% Write (Sector 0x29D40 of 0x40000, 06s left) 6.95 MB/s Progress: |███████---| 65.5% Write (Sector 0x29E40 of 0x40000, 06s left) 7.04 MB/s Progress: |███████---| 65.6% Write (Sector 0x29F40 of 0x40000, 06s left) 4.03 MB/s Progress: |███████---| 65.7% Write (Sector 0x2A060 of 0x40000, 06s left) 6.46 MB/s Progress: |███████---| 65.8% Write (Sector 0x2A160 of 0x40000, 06s left) 6.74 MB/s Progress: |███████---| 65.9% Write (Sector 0x2A260 of 0x40000, 06s left) 6.71 MB/s Progress: |███████---| 66.0% Write (Sector 0x2A360 of 0x40000, 06s left) 6.62 MB/s Progress: |███████---| 66.1% Write (Sector 0x2A460 of 0x40000, 06s left) 6.78 MB/s Progress: |███████---| 66.2% Write (Sector 0x2A580 of 0x40000, 06s left) 7.00 MB/s Progress: |███████---| 66.3% Write (Sector 0x2A680 of 0x40000, 06s left) 6.70 MB/s Progress: |███████---| 66.4% Write (Sector 0x2A780 of 0x40000, 06s left) 6.73 MB/s Progress: |███████---| 66.5% Write (Sector 0x2A880 of 0x40000, 06s left) 6.72 MB/s Progress: |███████---| 66.6% Write (Sector 0x2A980 of 0x40000, 06s left) 6.73 MB/s Progress: |███████---| 66.7% Write (Sector 0x2AA80 of 0x40000, 06s left) 6.76 MB/s Progress: |███████---| 66.8% Write (Sector 0x2ABA0 of 0x40000, 06s left) 6.44 MB/s Progress: |███████---| 66.9% Write (Sector 0x2ACA0 of 0x40000, 06s left) 6.77 MB/s Progress: |███████---| 67.0% Write (Sector 0x2ADA0 of 0x40000, 06s left) 6.75 MB/s Progress: |███████---| 67.1% Write (Sector 0x2AEA0 of 0x40000, 06s left) 6.72 MB/s Progress: |███████---| 67.2% Write (Sector 0x2AFA0 of 0x40000, 06s left) 6.73 MB/s Progress: |███████---| 67.3% Write (Sector 0x2B0C0 of 0x40000, 06s left) 6.44 MB/s Progress: |███████---| 67.4% Write (Sector 0x2B1C0 of 0x40000, 06s left) 7.65 MB/s Progress: |███████---| 67.5% Write (Sector 0x2B2C0 of 0x40000, 06s left) 6.95 MB/s Progress: |███████---| 67.6% Write (Sector 0x2B3C0 of 0x40000, 06s left) 6.93 MB/s Progress: |███████---| 67.7% Write (Sector 0x2B4C0 of 0x40000, 06s left) 6.80 MB/s Progress: |███████---| 67.8% Write (Sector 0x2B5E0 of 0x40000, 06s left) 6.60 MB/s Progress: |███████---| 67.9% Write (Sector 0x2B6E0 of 0x40000, 06s left) 6.87 MB/s Progress: |███████---| 68.0% Write (Sector 0x2B7E0 of 0x40000, 06s left) 6.82 MB/s Progress: |███████---| 68.1% Write (Sector 0x2B8E0 of 0x40000, 06s left) 6.92 MB/s Progress: |███████---| 68.2% Write (Sector 0x2B9E0 of 0x40000, 06s left) 6.73 MB/s Progress: |███████---| 68.3% Write (Sector 0x2BB00 of 0x40000, 06s left) 7.28 MB/s Progress: |███████---| 68.4% Write (Sector 0x2BC00 of 0x40000, 06s left) 6.89 MB/s Progress: |███████---| 68.5% Write (Sector 0x2BD00 of 0x40000, 06s left) 6.92 MB/s Progress: |███████---| 68.6% Write (Sector 0x2BE00 of 0x40000, 06s left) 6.96 MB/s Progress: |███████---| 68.7% Write (Sector 0x2BF00 of 0x40000, 06s left) 3.86 MB/s Progress: |███████---| 68.8% Write (Sector 0x2C000 of 0x40000, 06s left) 7.35 MB/s Progress: |███████---| 68.9% Write (Sector 0x2C120 of 0x40000, 06s left) 6.34 MB/s Progress: |███████---| 69.0% Write (Sector 0x2C220 of 0x40000, 06s left) 6.59 MB/s Progress: |███████---| 69.1% Write (Sector 0x2C320 of 0x40000, 05s left) 6.56 MB/s Progress: |███████---| 69.2% Write (Sector 0x2C420 of 0x40000, 05s left) 6.72 MB/s Progress: |███████---| 69.3% Write (Sector 0x2C520 of 0x40000, 05s left) 6.64 MB/s Progress: |███████---| 69.4% Write (Sector 0x2C640 of 0x40000, 05s left) 7.01 MB/s Progress: |███████---| 69.5% Write (Sector 0x2C740 of 0x40000, 05s left) 6.68 MB/s Progress: |███████---| 69.6% Write (Sector 0x2C840 of 0x40000, 05s left) 6.74 MB/s Progress: |███████---| 69.7% Write (Sector 0x2C940 of 0x40000, 05s left) 6.74 MB/s Progress: |███████---| 69.8% Write (Sector 0x2CA40 of 0x40000, 05s left) 6.70 MB/s Progress: |███████---| 69.9% Write (Sector 0x2CB60 of 0x40000, 05s left) 6.45 MB/s Progress: |███████---| 70.0% Write (Sector 0x2CC60 of 0x40000, 05s left) 6.82 MB/s Progress: |███████---| 70.1% Write (Sector 0x2CD60 of 0x40000, 05s left) 6.70 MB/s Progress: |███████---| 70.2% Write (Sector 0x2CE60 of 0x40000, 05s left) 6.73 MB/s Progress: |███████---| 70.3% Write (Sector 0x2CF60 of 0x40000, 05s left) 6.73 MB/s Progress: |███████---| 70.4% Write (Sector 0x2D080 of 0x40000, 05s left) 7.04 MB/s Progress: |███████---| 70.5% Write (Sector 0x2D180 of 0x40000, 05s left) 6.70 MB/s Progress: |███████---| 70.6% Write (Sector 0x2D280 of 0x40000, 05s left) 6.76 MB/s Progress: |███████---| 70.7% Write (Sector 0x2D380 of 0x40000, 05s left) 6.76 MB/s Progress: |███████---| 70.8% Write (Sector 0x2D480 of 0x40000, 05s left) 6.66 MB/s Progress: |███████---| 70.9% Write (Sector 0x2D5A0 of 0x40000, 05s left) 6.50 MB/s Progress: |███████---| 71.0% Write (Sector 0x2D6A0 of 0x40000, 05s left) 6.76 MB/s Progress: |███████---| 71.1% Write (Sector 0x2D7A0 of 0x40000, 05s left) 6.91 MB/s Progress: |███████---| 71.2% Write (Sector 0x2D8A0 of 0x40000, 05s left) 6.83 MB/s Progress: |███████---| 71.3% Write (Sector 0x2D9A0 of 0x40000, 05s left) 6.84 MB/s Progress: |███████---| 71.4% Write (Sector 0x2DAA0 of 0x40000, 05s left) 6.83 MB/s Progress: |███████---| 71.5% Write (Sector 0x2DBC0 of 0x40000, 05s left) 7.15 MB/s Progress: |███████---| 71.6% Write (Sector 0x2DCC0 of 0x40000, 05s left) 6.90 MB/s Progress: |███████---| 71.7% Write (Sector 0x2DDC0 of 0x40000, 05s left) 6.94 MB/s Progress: |███████---| 71.8% Write (Sector 0x2DEC0 of 0x40000, 05s left) 6.93 MB/s Progress: |███████---| 71.9% Write (Sector 0x2DFC0 of 0x40000, 05s left) 0.21 MB/s Progress: |███████---| 72.0% Write (Sector 0x2E0E0 of 0x40000, 05s left) 0.16 MB/s Progress: |███████---| 72.1% Write (Sector 0x2E1E0 of 0x40000, 06s left) 0.25 MB/s Progress: |███████---| 72.2% Write (Sector 0x2E2E0 of 0x40000, 06s left) 6.75 MB/s Progress: |███████---| 72.3% Write (Sector 0x2E3E0 of 0x40000, 06s left) 6.76 MB/s Progress: |███████---| 72.4% Write (Sector 0x2E4E0 of 0x40000, 06s left) 6.58 MB/s Progress: |███████---| 72.5% Write (Sector 0x2E600 of 0x40000, 06s left) 7.01 MB/s Progress: |███████---| 72.6% Write (Sector 0x2E700 of 0x40000, 06s left) 6.69 MB/s Progress: |███████---| 72.7% Write (Sector 0x2E800 of 0x40000, 05s left) 6.77 MB/s Progress: |███████---| 72.8% Write (Sector 0x2E900 of 0x40000, 05s left) 6.74 MB/s Progress: |███████---| 72.9% Write (Sector 0x2EA00 of 0x40000, 05s left) 6.78 MB/s Progress: |███████---| 73.0% Write (Sector 0x2EB20 of 0x40000, 05s left) 6.45 MB/s Progress: |███████---| 73.1% Write (Sector 0x2EC20 of 0x40000, 05s left) 6.73 MB/s Progress: |███████---| 73.2% Write (Sector 0x2ED20 of 0x40000, 05s left) 6.90 MB/s Progress: |███████---| 73.3% Write (Sector 0x2EE20 of 0x40000, 05s left) 6.74 MB/s Progress: |███████---| 73.4% Write (Sector 0x2EF20 of 0x40000, 05s left) 6.85 MB/s Progress: |███████---| 73.5% Write (Sector 0x2F040 of 0x40000, 05s left) 7.14 MB/s Progress: |███████---| 73.6% Write (Sector 0x2F140 of 0x40000, 05s left) 6.90 MB/s Progress: |███████---| 73.7% Write (Sector 0x2F240 of 0x40000, 05s left) 6.86 MB/s Progress: |███████---| 73.8% Write (Sector 0x2F340 of 0x40000, 05s left) 6.79 MB/s Progress: |███████---| 73.9% Write (Sector 0x2F440 of 0x40000, 05s left) 6.82 MB/s Progress: |███████---| 74.0% Write (Sector 0x2F540 of 0x40000, 05s left) 6.84 MB/s Progress: |███████---| 74.1% Write (Sector 0x2F660 of 0x40000, 05s left) 6.56 MB/s Progress: |███████---| 74.2% Write (Sector 0x2F760 of 0x40000, 05s left) 6.84 MB/s Progress: |███████---| 74.3% Write (Sector 0x2F860 of 0x40000, 05s left) 6.94 MB/s Progress: |███████---| 74.4% Write (Sector 0x2F960 of 0x40000, 05s left) 6.86 MB/s Progress: |███████---| 74.5% Write (Sector 0x2FA60 of 0x40000, 05s left) 6.88 MB/s Progress: |███████---| 74.6% Write (Sector 0x2FB80 of 0x40000, 05s left) 7.14 MB/s Progress: |███████---| 74.7% Write (Sector 0x2FC80 of 0x40000, 05s left) 6.94 MB/s Progress: |███████---| 74.8% Write (Sector 0x2FD80 of 0x40000, 05s left) 6.95 MB/s Progress: |███████---| 74.9% Write (Sector 0x2FE80 of 0x40000, 05s left) 7.05 MB/s Progress: |████████--| 75.0% Write (Sector 0x2FF80 of 0x40000, 05s left) 4.04 MB/s Progress: |████████--| 75.1% Write (Sector 0x300A0 of 0x40000, 05s left) 6.33 MB/s Progress: |████████--| 75.2% Write (Sector 0x301A0 of 0x40000, 05s left) 6.76 MB/s Progress: |████████--| 75.3% Write (Sector 0x302A0 of 0x40000, 05s left) 6.64 MB/s Progress: |████████--| 75.4% Write (Sector 0x303A0 of 0x40000, 05s left) 6.66 MB/s Progress: |████████--| 75.5% Write (Sector 0x304A0 of 0x40000, 05s left) 6.68 MB/s Progress: |████████--| 75.6% Write (Sector 0x305C0 of 0x40000, 05s left) 7.02 MB/s Progress: |████████--| 75.7% Write (Sector 0x306C0 of 0x40000, 05s left) 6.09 MB/s Progress: |████████--| 75.8% Write (Sector 0x307C0 of 0x40000, 05s left) 6.57 MB/s Progress: |████████--| 75.9% Write (Sector 0x308C0 of 0x40000, 05s left) 6.75 MB/s Progress: |████████--| 76.0% Write (Sector 0x309C0 of 0x40000, 05s left) 6.70 MB/s Progress: |████████--| 76.1% Write (Sector 0x30AE0 of 0x40000, 05s left) 6.50 MB/s Progress: |████████--| 76.2% Write (Sector 0x30BE0 of 0x40000, 05s left) 6.76 MB/s Progress: |████████--| 76.3% Write (Sector 0x30CE0 of 0x40000, 05s left) 6.75 MB/s Progress: |████████--| 76.4% Write (Sector 0x30DE0 of 0x40000, 05s left) 6.75 MB/s Progress: |████████--| 76.5% Write (Sector 0x30EE0 of 0x40000, 05s left) 6.78 MB/s Progress: |████████--| 76.6% Write (Sector 0x30FE0 of 0x40000, 05s left) 6.83 MB/s Progress: |████████--| 76.7% Write (Sector 0x31100 of 0x40000, 05s left) 7.18 MB/s Progress: |████████--| 76.8% Write (Sector 0x31200 of 0x40000, 05s left) 6.77 MB/s Progress: |████████--| 76.9% Write (Sector 0x31300 of 0x40000, 05s left) 6.84 MB/s Progress: |████████--| 77.0% Write (Sector 0x31400 of 0x40000, 05s left) 6.78 MB/s Progress: |████████--| 77.1% Write (Sector 0x31500 of 0x40000, 04s left) 6.83 MB/s Progress: |████████--| 77.2% Write (Sector 0x31620 of 0x40000, 04s left) 6.56 MB/s Progress: |████████--| 77.3% Write (Sector 0x31720 of 0x40000, 04s left) 6.77 MB/s Progress: |████████--| 77.4% Write (Sector 0x31820 of 0x40000, 04s left) 6.39 MB/s Progress: |████████--| 77.5% Write (Sector 0x31920 of 0x40000, 04s left) 7.00 MB/s Progress: |████████--| 77.6% Write (Sector 0x31A20 of 0x40000, 04s left) 6.88 MB/s Progress: |████████--| 77.7% Write (Sector 0x31B40 of 0x40000, 04s left) 7.21 MB/s Progress: |████████--| 77.8% Write (Sector 0x31C40 of 0x40000, 04s left) 6.82 MB/s Progress: |████████--| 77.9% Write (Sector 0x31D40 of 0x40000, 04s left) 6.96 MB/s Progress: |████████--| 78.0% Write (Sector 0x31E40 of 0x40000, 04s left) 7.01 MB/s Progress: |████████--| 78.1% Write (Sector 0x31F40 of 0x40000, 04s left) 4.11 MB/s Progress: |████████--| 78.2% Write (Sector 0x32060 of 0x40000, 04s left) 6.30 MB/s Progress: |████████--| 78.3% Write (Sector 0x32160 of 0x40000, 04s left) 6.76 MB/s Progress: |████████--| 78.4% Write (Sector 0x32260 of 0x40000, 04s left) 6.61 MB/s Progress: |████████--| 78.5% Write (Sector 0x32360 of 0x40000, 04s left) 6.72 MB/s Progress: |████████--| 78.6% Write (Sector 0x32460 of 0x40000, 04s left) 6.75 MB/s Progress: |████████--| 78.7% Write (Sector 0x32580 of 0x40000, 04s left) 6.98 MB/s Progress: |████████--| 78.8% Write (Sector 0x32680 of 0x40000, 04s left) 6.75 MB/s Progress: |████████--| 78.9% Write (Sector 0x32780 of 0x40000, 04s left) 6.81 MB/s Progress: |████████--| 79.0% Write (Sector 0x32880 of 0x40000, 04s left) 6.75 MB/s Progress: |████████--| 79.1% Write (Sector 0x32980 of 0x40000, 04s left) 6.72 MB/s Progress: |████████--| 79.2% Write (Sector 0x32A80 of 0x40000, 04s left) 6.72 MB/s Progress: |████████--| 79.3% Write (Sector 0x32BA0 of 0x40000, 04s left) 6.44 MB/s Progress: |████████--| 79.4% Write (Sector 0x32CA0 of 0x40000, 04s left) 6.75 MB/s Progress: |████████--| 79.5% Write (Sector 0x32DA0 of 0x40000, 04s left) 6.70 MB/s Progress: |████████--| 79.6% Write (Sector 0x32EA0 of 0x40000, 04s left) 6.77 MB/s Progress: |████████--| 79.7% Write (Sector 0x32FA0 of 0x40000, 04s left) 6.83 MB/s Progress: |████████--| 79.8% Write (Sector 0x330C0 of 0x40000, 04s left) 7.19 MB/s Progress: |████████--| 79.9% Write (Sector 0x331C0 of 0x40000, 04s left) 6.79 MB/s Progress: |████████--| 80.0% Write (Sector 0x332C0 of 0x40000, 04s left) 6.78 MB/s Progress: |████████--| 80.1% Write (Sector 0x333C0 of 0x40000, 04s left) 6.82 MB/s Progress: |████████--| 80.2% Write (Sector 0x334C0 of 0x40000, 04s left) 6.62 MB/s Progress: |████████--| 80.3% Write (Sector 0x335E0 of 0x40000, 04s left) 6.66 MB/s Progress: |████████--| 80.4% Write (Sector 0x336E0 of 0x40000, 04s left) 6.80 MB/s Progress: |████████--| 80.5% Write (Sector 0x337E0 of 0x40000, 04s left) 6.79 MB/s Progress: |████████--| 80.6% Write (Sector 0x338E0 of 0x40000, 04s left) 6.87 MB/s Progress: |████████--| 80.7% Write (Sector 0x339E0 of 0x40000, 04s left) 6.86 MB/s Progress: |████████--| 80.8% Write (Sector 0x33B00 of 0x40000, 04s left) 7.22 MB/s Progress: |████████--| 80.9% Write (Sector 0x33C00 of 0x40000, 04s left) 6.82 MB/s Progress: |████████--| 81.0% Write (Sector 0x33D00 of 0x40000, 04s left) 6.91 MB/s Progress: |████████--| 81.1% Write (Sector 0x33E00 of 0x40000, 04s left) 7.00 MB/s Progress: |████████--| 81.2% Write (Sector 0x33F00 of 0x40000, 04s left) 3.87 MB/s Progress: |████████--| 81.3% Write (Sector 0x34020 of 0x40000, 04s left) 6.94 MB/s Progress: |████████--| 81.4% Write (Sector 0x34120 of 0x40000, 04s left) 6.76 MB/s Progress: |████████--| 81.5% Write (Sector 0x34220 of 0x40000, 04s left) 6.70 MB/s Progress: |████████--| 81.6% Write (Sector 0x34320 of 0x40000, 03s left) 6.71 MB/s Progress: |████████--| 81.7% Write (Sector 0x34420 of 0x40000, 03s left) 6.70 MB/s Progress: |████████--| 81.8% Write (Sector 0x34520 of 0x40000, 03s left) 6.75 MB/s Progress: |████████--| 81.9% Write (Sector 0x34640 of 0x40000, 03s left) 7.05 MB/s Progress: |████████--| 82.0% Write (Sector 0x34740 of 0x40000, 03s left) 6.67 MB/s Progress: |████████--| 82.1% Write (Sector 0x34840 of 0x40000, 03s left) 6.72 MB/s Progress: |████████--| 82.2% Write (Sector 0x34940 of 0x40000, 03s left) 6.69 MB/s Progress: |████████--| 82.3% Write (Sector 0x34A40 of 0x40000, 03s left) 6.71 MB/s Progress: |████████--| 82.4% Write (Sector 0x34B60 of 0x40000, 03s left) 6.48 MB/s Progress: |████████--| 82.5% Write (Sector 0x34C60 of 0x40000, 03s left) 6.71 MB/s Progress: |████████--| 82.6% Write (Sector 0x34D60 of 0x40000, 03s left) 6.70 MB/s Progress: |████████--| 82.7% Write (Sector 0x34E60 of 0x40000, 03s left) 6.73 MB/s Progress: |████████--| 82.8% Write (Sector 0x34F60 of 0x40000, 03s left) 6.72 MB/s Progress: |████████--| 82.9% Write (Sector 0x35080 of 0x40000, 03s left) 7.10 MB/s Progress: |████████--| 83.0% Write (Sector 0x35180 of 0x40000, 03s left) 6.82 MB/s Progress: |████████--| 83.1% Write (Sector 0x35280 of 0x40000, 03s left) 6.87 MB/s Progress: |████████--| 83.2% Write (Sector 0x35380 of 0x40000, 03s left) 6.79 MB/s Progress: |████████--| 83.3% Write (Sector 0x35480 of 0x40000, 03s left) 6.75 MB/s Progress: |████████--| 83.4% Write (Sector 0x355A0 of 0x40000, 03s left) 6.52 MB/s Progress: |████████--| 83.5% Write (Sector 0x356A0 of 0x40000, 03s left) 6.78 MB/s Progress: |████████--| 83.6% Write (Sector 0x357A0 of 0x40000, 03s left) 6.87 MB/s Progress: |████████--| 83.7% Write (Sector 0x358A0 of 0x40000, 03s left) 6.76 MB/s Progress: |████████--| 83.8% Write (Sector 0x359A0 of 0x40000, 03s left) 6.77 MB/s Progress: |████████--| 83.9% Write (Sector 0x35AA0 of 0x40000, 03s left) 6.79 MB/s Progress: |████████--| 84.0% Write (Sector 0x35BC0 of 0x40000, 03s left) 7.11 MB/s Progress: |████████--| 84.1% Write (Sector 0x35CC0 of 0x40000, 03s left) 6.76 MB/s Progress: |████████--| 84.2% Write (Sector 0x35DC0 of 0x40000, 03s left) 6.86 MB/s Progress: |████████--| 84.3% Write (Sector 0x35EC0 of 0x40000, 03s left) 6.91 MB/s Progress: |████████--| 84.4% Write (Sector 0x35FC0 of 0x40000, 03s left) 4.02 MB/s Progress: |████████--| 84.5% Write (Sector 0x360E0 of 0x40000, 03s left) 6.38 MB/s Progress: |████████--| 84.6% Write (Sector 0x361E0 of 0x40000, 03s left) 6.64 MB/s Progress: |████████--| 84.7% Write (Sector 0x362E0 of 0x40000, 03s left) 6.59 MB/s Progress: |████████--| 84.8% Write (Sector 0x363E0 of 0x40000, 03s left) 6.76 MB/s Progress: |████████--| 84.9% Write (Sector 0x364E0 of 0x40000, 03s left) 6.73 MB/s Progress: |████████--| 85.0% Write (Sector 0x36600 of 0x40000, 03s left) 7.00 MB/s Progress: |█████████-| 85.1% Write (Sector 0x36700 of 0x40000, 03s left) 6.64 MB/s Progress: |█████████-| 85.2% Write (Sector 0x36800 of 0x40000, 03s left) 6.65 MB/s Progress: |█████████-| 85.3% Write (Sector 0x36900 of 0x40000, 03s left) 6.69 MB/s Progress: |█████████-| 85.4% Write (Sector 0x36A00 of 0x40000, 03s left) 6.73 MB/s Progress: |█████████-| 85.5% Write (Sector 0x36B20 of 0x40000, 03s left) 6.49 MB/s Progress: |█████████-| 85.6% Write (Sector 0x36C20 of 0x40000, 03s left) 6.64 MB/s Progress: |█████████-| 85.7% Write (Sector 0x36D20 of 0x40000, 03s left) 6.76 MB/s Progress: |█████████-| 85.8% Write (Sector 0x36E20 of 0x40000, 03s left) 6.72 MB/s Progress: |█████████-| 85.9% Write (Sector 0x36F20 of 0x40000, 03s left) 6.75 MB/s Progress: |█████████-| 86.0% Write (Sector 0x37040 of 0x40000, 03s left) 7.08 MB/s Progress: |█████████-| 86.1% Write (Sector 0x37140 of 0x40000, 02s left) 6.78 MB/s Progress: |█████████-| 86.2% Write (Sector 0x37240 of 0x40000, 02s left) 6.78 MB/s Progress: |█████████-| 86.3% Write (Sector 0x37340 of 0x40000, 02s left) 6.81 MB/s Progress: |█████████-| 86.4% Write (Sector 0x37440 of 0x40000, 02s left) 6.71 MB/s Progress: |█████████-| 86.5% Write (Sector 0x37540 of 0x40000, 02s left) 6.81 MB/s Progress: |█████████-| 86.6% Write (Sector 0x37660 of 0x40000, 02s left) 6.49 MB/s Progress: |█████████-| 86.7% Write (Sector 0x37760 of 0x40000, 02s left) 6.23 MB/s Progress: |█████████-| 86.8% Write (Sector 0x37860 of 0x40000, 02s left) 6.93 MB/s Progress: |█████████-| 86.9% Write (Sector 0x37960 of 0x40000, 02s left) 6.78 MB/s Progress: |█████████-| 87.0% Write (Sector 0x37A60 of 0x40000, 02s left) 6.83 MB/s Progress: |█████████-| 87.1% Write (Sector 0x37B80 of 0x40000, 02s left) 7.11 MB/s Progress: |█████████-| 87.2% Write (Sector 0x37C80 of 0x40000, 02s left) 6.81 MB/s Progress: |█████████-| 87.3% Write (Sector 0x37D80 of 0x40000, 02s left) 6.82 MB/s Progress: |█████████-| 87.4% Write (Sector 0x37E80 of 0x40000, 02s left) 6.87 MB/s Progress: |█████████-| 87.5% Write (Sector 0x37F80 of 0x40000, 02s left) 3.93 MB/s Progress: |█████████-| 87.6% Write (Sector 0x380A0 of 0x40000, 02s left) 6.41 MB/s Progress: |█████████-| 87.7% Write (Sector 0x381A0 of 0x40000, 02s left) 5.78 MB/s Progress: |█████████-| 87.8% Write (Sector 0x382A0 of 0x40000, 02s left) 6.76 MB/s Progress: |█████████-| 87.9% Write (Sector 0x383A0 of 0x40000, 02s left) 6.70 MB/s Progress: |█████████-| 88.0% Write (Sector 0x384A0 of 0x40000, 02s left) 6.68 MB/s Progress: |█████████-| 88.1% Write (Sector 0x385C0 of 0x40000, 02s left) 7.14 MB/s Progress: |█████████-| 88.2% Write (Sector 0x386C0 of 0x40000, 02s left) 6.54 MB/s Progress: |█████████-| 88.3% Write (Sector 0x387C0 of 0x40000, 02s left) 6.74 MB/s Progress: |█████████-| 88.4% Write (Sector 0x388C0 of 0x40000, 02s left) 6.70 MB/s Progress: |█████████-| 88.5% Write (Sector 0x389C0 of 0x40000, 02s left) 6.71 MB/s Progress: |█████████-| 88.6% Write (Sector 0x38AE0 of 0x40000, 02s left) 6.48 MB/s Progress: |█████████-| 88.7% Write (Sector 0x38BE0 of 0x40000, 02s left) 6.74 MB/s Progress: |█████████-| 88.8% Write (Sector 0x38CE0 of 0x40000, 02s left) 6.78 MB/s Progress: |█████████-| 88.9% Write (Sector 0x38DE0 of 0x40000, 02s left) 6.71 MB/s Progress: |█████████-| 89.0% Write (Sector 0x38EE0 of 0x40000, 02s left) 6.42 MB/s Progress: |█████████-| 89.1% Write (Sector 0x38FE0 of 0x40000, 02s left) 6.94 MB/s Progress: |█████████-| 89.2% Write (Sector 0x39100 of 0x40000, 02s left) 7.28 MB/s Progress: |█████████-| 89.3% Write (Sector 0x39200 of 0x40000, 02s left) 6.88 MB/s Progress: |█████████-| 89.4% Write (Sector 0x39300 of 0x40000, 02s left) 7.00 MB/s Progress: |█████████-| 89.5% Write (Sector 0x39400 of 0x40000, 02s left) 6.80 MB/s Progress: |█████████-| 89.6% Write (Sector 0x39500 of 0x40000, 02s left) 6.92 MB/s Progress: |█████████-| 89.7% Write (Sector 0x39620 of 0x40000, 02s left) 6.60 MB/s Progress: |█████████-| 89.8% Write (Sector 0x39720 of 0x40000, 02s left) 6.87 MB/s Progress: |█████████-| 89.9% Write (Sector 0x39820 of 0x40000, 02s left) 6.91 MB/s Progress: |█████████-| 90.0% Write (Sector 0x39920 of 0x40000, 02s left) 6.83 MB/s Progress: |█████████-| 90.1% Write (Sector 0x39A20 of 0x40000, 02s left) 6.89 MB/s Progress: |█████████-| 90.2% Write (Sector 0x39B40 of 0x40000, 02s left) 7.26 MB/s Progress: |█████████-| 90.3% Write (Sector 0x39C40 of 0x40000, 02s left) 6.74 MB/s Progress: |█████████-| 90.4% Write (Sector 0x39D40 of 0x40000, 02s left) 6.85 MB/s Progress: |█████████-| 90.5% Write (Sector 0x39E40 of 0x40000, 02s left) 7.01 MB/s Progress: |█████████-| 90.6% Write (Sector 0x39F40 of 0x40000, 02s left) 4.04 MB/s Progress: |█████████-| 90.7% Write (Sector 0x3A060 of 0x40000, 01s left) 6.37 MB/s Progress: |█████████-| 90.8% Write (Sector 0x3A160 of 0x40000, 01s left) 6.68 MB/s Progress: |█████████-| 90.9% Write (Sector 0x3A260 of 0x40000, 01s left) 6.77 MB/s Progress: |█████████-| 91.0% Write (Sector 0x3A360 of 0x40000, 01s left) 6.73 MB/s Progress: |█████████-| 91.1% Write (Sector 0x3A460 of 0x40000, 01s left) 6.74 MB/s Progress: |█████████-| 91.2% Write (Sector 0x3A580 of 0x40000, 01s left) 7.07 MB/s Progress: |█████████-| 91.3% Write (Sector 0x3A680 of 0x40000, 01s left) 6.73 MB/s Progress: |█████████-| 91.4% Write (Sector 0x3A780 of 0x40000, 01s left) 6.72 MB/s Progress: |█████████-| 91.5% Write (Sector 0x3A880 of 0x40000, 01s left) 6.79 MB/s Progress: |█████████-| 91.6% Write (Sector 0x3A980 of 0x40000, 01s left) 6.84 MB/s Progress: |█████████-| 91.7% Write (Sector 0x3AA80 of 0x40000, 01s left) 6.80 MB/s Progress: |█████████-| 91.8% Write (Sector 0x3ABA0 of 0x40000, 01s left) 6.49 MB/s Progress: |█████████-| 91.9% Write (Sector 0x3ACA0 of 0x40000, 01s left) 6.69 MB/s Progress: |█████████-| 92.0% Write (Sector 0x3ADA0 of 0x40000, 01s left) 6.80 MB/s Progress: |█████████-| 92.1% Write (Sector 0x3AEA0 of 0x40000, 01s left) 6.79 MB/s Progress: |█████████-| 92.2% Write (Sector 0x3AFA0 of 0x40000, 01s left) 6.90 MB/s Progress: |█████████-| 92.3% Write (Sector 0x3B0C0 of 0x40000, 01s left) 7.18 MB/s Progress: |█████████-| 92.4% Write (Sector 0x3B1C0 of 0x40000, 01s left) 6.85 MB/s Progress: |█████████-| 92.5% Write (Sector 0x3B2C0 of 0x40000, 01s left) 6.92 MB/s Progress: |█████████-| 92.6% Write (Sector 0x3B3C0 of 0x40000, 01s left) 6.77 MB/s Progress: |█████████-| 92.7% Write (Sector 0x3B4C0 of 0x40000, 01s left) 6.81 MB/s Progress: |█████████-| 92.8% Write (Sector 0x3B5E0 of 0x40000, 01s left) 6.55 MB/s Progress: |█████████-| 92.9% Write (Sector 0x3B6E0 of 0x40000, 01s left) 6.86 MB/s Progress: |█████████-| 93.0% Write (Sector 0x3B7E0 of 0x40000, 01s left) 6.82 MB/s Progress: |█████████-| 93.1% Write (Sector 0x3B8E0 of 0x40000, 01s left) 6.80 MB/s Progress: |█████████-| 93.2% Write (Sector 0x3B9E0 of 0x40000, 01s left) 6.80 MB/s Progress: |█████████-| 93.3% Write (Sector 0x3BB00 of 0x40000, 01s left) 7.20 MB/s Progress: |█████████-| 93.4% Write (Sector 0x3BC00 of 0x40000, 01s left) 6.81 MB/s Progress: |█████████-| 93.5% Write (Sector 0x3BD00 of 0x40000, 01s left) 6.93 MB/s Progress: |█████████-| 93.6% Write (Sector 0x3BE00 of 0x40000, 01s left) 7.02 MB/s Progress: |█████████-| 93.7% Write (Sector 0x3BF00 of 0x40000, 01s left) 3.88 MB/s Progress: |█████████-| 93.8% Write (Sector 0x3C000 of 0x40000, 01s left) 7.36 MB/s Progress: |█████████-| 93.9% Write (Sector 0x3C120 of 0x40000, 01s left) 6.47 MB/s Progress: |█████████-| 94.0% Write (Sector 0x3C220 of 0x40000, 01s left) 6.67 MB/s Progress: |█████████-| 94.1% Write (Sector 0x3C320 of 0x40000, 01s left) 6.75 MB/s Progress: |█████████-| 94.2% Write (Sector 0x3C420 of 0x40000, 01s left) 6.72 MB/s Progress: |█████████-| 94.3% Write (Sector 0x3C520 of 0x40000, 01s left) 6.77 MB/s Progress: |█████████-| 94.4% Write (Sector 0x3C640 of 0x40000, 01s left) 6.77 MB/s Progress: |█████████-| 94.5% Write (Sector 0x3C740 of 0x40000, 01s left) 6.95 MB/s Progress: |█████████-| 94.6% Write (Sector 0x3C840 of 0x40000, 01s left) 6.74 MB/s Progress: |█████████-| 94.7% Write (Sector 0x3C940 of 0x40000, 01s left) 6.38 MB/s Progress: |█████████-| 94.8% Write (Sector 0x3CA40 of 0x40000, 01s left) 6.79 MB/s Progress: |█████████-| 94.9% Write (Sector 0x3CB60 of 0x40000, 01s left) 6.44 MB/s Progress: |██████████| 95.0% Write (Sector 0x3CC60 of 0x40000, 01s left) 6.73 MB/s Progress: |██████████| 95.1% Write (Sector 0x3CD60 of 0x40000, 01s left) 6.74 MB/s Progress: |██████████| 95.2% Write (Sector 0x3CE60 of 0x40000, 01s left) 6.74 MB/s Progress: |██████████| 95.3% Write (Sector 0x3CF60 of 0x40000, 01s left) 6.77 MB/s Progress: |██████████| 95.4% Write (Sector 0x3D080 of 0x40000, ) 7.10 MB/s Progress: |██████████| 95.5% Write (Sector 0x3D180 of 0x40000, ) 6.07 MB/s Progress: |██████████| 95.6% Write (Sector 0x3D280 of 0x40000, ) 7.66 MB/s Progress: |██████████| 95.7% Write (Sector 0x3D380 of 0x40000, ) 6.75 MB/s Progress: |██████████| 95.8% Write (Sector 0x3D480 of 0x40000, ) 6.76 MB/s Progress: |██████████| 95.9% Write (Sector 0x3D5A0 of 0x40000, ) 6.48 MB/s Progress: |██████████| 96.0% Write (Sector 0x3D6A0 of 0x40000, ) 6.86 MB/s Progress: |██████████| 96.1% Write (Sector 0x3D7A0 of 0x40000, ) 6.87 MB/s Progress: |██████████| 96.2% Write (Sector 0x3D8A0 of 0x40000, ) 6.79 MB/s Progress: |██████████| 96.3% Write (Sector 0x3D9A0 of 0x40000, ) 6.92 MB/s Progress: |██████████| 96.4% Write (Sector 0x3DAA0 of 0x40000, ) 6.82 MB/s Progress: |██████████| 96.5% Write (Sector 0x3DBC0 of 0x40000, ) 7.24 MB/s Progress: |██████████| 96.6% Write (Sector 0x3DCC0 of 0x40000, ) 6.87 MB/s Progress: |██████████| 96.7% Write (Sector 0x3DDC0 of 0x40000, ) 6.93 MB/s Progress: |██████████| 96.8% Write (Sector 0x3DEC0 of 0x40000, ) 6.90 MB/s Progress: |██████████| 96.9% Write (Sector 0x3DFC0 of 0x40000, ) 4.06 MB/s Progress: |██████████| 97.0% Write (Sector 0x3E0E0 of 0x40000, ) 6.50 MB/s Progress: |██████████| 97.1% Write (Sector 0x3E1E0 of 0x40000, ) 6.71 MB/s Progress: |██████████| 97.2% Write (Sector 0x3E2E0 of 0x40000, ) 6.75 MB/s Progress: |██████████| 97.3% Write (Sector 0x3E3E0 of 0x40000, ) 6.55 MB/s Progress: |██████████| 97.4% Write (Sector 0x3E4E0 of 0x40000, ) 6.77 MB/s Progress: |██████████| 97.5% Write (Sector 0x3E600 of 0x40000, ) 7.03 MB/s Progress: |██████████| 97.6% Write (Sector 0x3E700 of 0x40000, ) 6.69 MB/s Progress: |██████████| 97.7% Write (Sector 0x3E800 of 0x40000, ) 6.74 MB/s Progress: |██████████| 97.8% Write (Sector 0x3E900 of 0x40000, ) 6.83 MB/s Progress: |██████████| 97.9% Write (Sector 0x3EA00 of 0x40000, ) 6.77 MB/s Progress: |██████████| 98.0% Write (Sector 0x3EB20 of 0x40000, ) 6.54 MB/s Progress: |██████████| 98.1% Write (Sector 0x3EC20 of 0x40000, ) 6.71 MB/s Progress: |██████████| 98.2% Write (Sector 0x3ED20 of 0x40000, ) 6.75 MB/s Progress: |██████████| 98.3% Write (Sector 0x3EE20 of 0x40000, ) 6.81 MB/s Progress: |██████████| 98.4% Write (Sector 0x3EF20 of 0x40000, ) 6.84 MB/s Progress: |██████████| 98.5% Write (Sector 0x3F040 of 0x40000, ) 7.18 MB/s Progress: |██████████| 98.6% Write (Sector 0x3F140 of 0x40000, ) 6.70 MB/s Progress: |██████████| 98.7% Write (Sector 0x3F240 of 0x40000, ) 6.95 MB/s Progress: |██████████| 98.8% Write (Sector 0x3F340 of 0x40000, ) 6.89 MB/s Progress: |██████████| 98.9% Write (Sector 0x3F440 of 0x40000, ) 6.83 MB/s Progress: |██████████| 99.0% Write (Sector 0x3F540 of 0x40000, ) 6.80 MB/s Progress: |██████████| 99.1% Write (Sector 0x3F660 of 0x40000, ) 6.59 MB/s Progress: |██████████| 99.2% Write (Sector 0x3F760 of 0x40000, ) 6.92 MB/s Progress: |██████████| 99.3% Write (Sector 0x3F860 of 0x40000, ) 6.95 MB/s Progress: |██████████| 99.4% Write (Sector 0x3F960 of 0x40000, ) 6.94 MB/s Progress: |██████████| 99.5% Write (Sector 0x3FA60 of 0x40000, ) 6.60 MB/s Progress: |██████████| 99.6% Write (Sector 0x3FB80 of 0x40000, ) 7.21 MB/s Progress: |██████████| 99.7% Write (Sector 0x3FC80 of 0x40000, ) 6.91 MB/s Progress: |██████████| 99.8% Write (Sector 0x3FD80 of 0x40000, ) 6.97 MB/s Progress: |██████████| 99.9% Write (Sector 0x3FE80 of 0x40000, ) 6.93 MB/s Progress: |██████████| 100.0% Write (Sector 0x3FF80 of 0x40000, ) 4.01 MB/s + Progress: |██████████| 100.0% Write (Sector 0x3FFA0 of 0x40000, ) 4.66 MB/s + Progress: |██████████| 100.0% Write (Sector 0x3FFC0 of 0x40000, ) 10.77 MB/s + Progress: |██████████| 100.0% Write (Sector 0x3FFE0 of 0x40000, ) 4.74 MB/s + Progress: |██████████| 100.0% Write (Sector 0x40000 of 0x40000, ) 10.56 MB/s +Wrote b9/b9c/cache/cache-extlinux-b9c.img to sector 2133088. diff --git a/logs/b9/b9c/W/11-cache-readback.log b/logs/b9/b9c/W/11-cache-readback.log new file mode 100644 index 0000000..9c8786e --- /dev/null +++ b/logs/b9/b9c/W/11-cache-readback.log @@ -0,0 +1,17 @@ +Qualcomm Sahara / Firehose Client V3.62 (c) B.Kerler 2018-2025. +main - Using loader firehose/007050e100000000_394a2e47cf830150_fhprg_peek.bin ... +main - Waiting for the device +main - Device detected :) +main - Mode detected: firehose +firehose +firehose - [LIB]: Host's payload to target size is too large +firehose +firehose - [LIB]: logbuf@0x0801D0A0 fh@0x08019F08 +firehose +firehose - [LIB]: Sector size in XML 4096 does not match disk sector size 512 + Done |----------| 0.0% Read (Sector 0x0 of 0x40000) 0.00 MB/s Done |----------| 0.0% Read (Sector 0x20 of 0x40000) 0.00 MB/s Done |----------| 0.0% Read (Sector 0x40 of 0x40000) 0.00 MB/s Done |----------| 0.0% Read (Sector 0x60 of 0x40000) 0.00 MB/s Done |----------| 0.0% Read (Sector 0x80 of 0x40000) 0.00 MB/s Progress: |----------| 0.1% Read (Sector 0xA0 of 0x40000, ) 15.82 MB/s Progress: |----------| 0.2% Read (Sector 0x1A0 of 0x40000, 04s left) 15.44 MB/s Progress: |----------| 0.3% Read (Sector 0x2A0 of 0x40000, 05s left) 15.75 MB/s Progress: |----------| 0.4% Read (Sector 0x3A0 of 0x40000, 06s left) 14.50 MB/s Progress: |----------| 0.5% Read (Sector 0x4A0 of 0x40000, 06s left) 15.18 MB/s Progress: |----------| 0.6% Read (Sector 0x5C0 of 0x40000, 07s left) 15.26 MB/s Progress: |----------| 0.7% Read (Sector 0x6C0 of 0x40000, 07s left) 15.30 MB/s Progress: |----------| 0.8% Read (Sector 0x7C0 of 0x40000, 07s left) 15.11 MB/s Progress: |----------| 0.9% Read (Sector 0x8C0 of 0x40000, 07s left) 14.45 MB/s Progress: |----------| 1.0% Read (Sector 0x9C0 of 0x40000, 07s left) 14.66 MB/s Progress: |----------| 1.1% Read (Sector 0xAE0 of 0x40000, 07s left) 15.32 MB/s Progress: |----------| 1.2% Read (Sector 0xBE0 of 0x40000, 07s left) 15.22 MB/s Progress: |----------| 1.3% Read (Sector 0xCE0 of 0x40000, 07s left) 15.26 MB/s Progress: |----------| 1.4% Read (Sector 0xDE0 of 0x40000, 07s left) 15.14 MB/s Progress: |----------| 1.5% Read (Sector 0xEE0 of 0x40000, 07s left) 15.58 MB/s Progress: |----------| 1.6% Read (Sector 0xFE0 of 0x40000, 07s left) 15.27 MB/s Progress: |----------| 1.7% Read (Sector 0x1100 of 0x40000, 07s left) 15.39 MB/s Progress: |----------| 1.8% Read (Sector 0x1200 of 0x40000, 07s left) 15.30 MB/s Progress: |----------| 1.9% Read (Sector 0x1300 of 0x40000, 07s left) 12.97 MB/s Progress: |----------| 2.0% Read (Sector 0x1400 of 0x40000, 07s left) 14.84 MB/s Progress: |----------| 2.1% Read (Sector 0x1500 of 0x40000, 07s left) 15.41 MB/s Progress: |----------| 2.2% Read (Sector 0x1620 of 0x40000, 07s left) 14.85 MB/s Progress: |----------| 2.3% Read (Sector 0x1720 of 0x40000, 07s left) 15.25 MB/s Progress: |----------| 2.4% Read (Sector 0x1820 of 0x40000, 07s left) 15.24 MB/s Progress: |----------| 2.5% Read (Sector 0x1920 of 0x40000, 07s left) 15.32 MB/s Progress: |----------| 2.6% Read (Sector 0x1A20 of 0x40000, 07s left) 15.07 MB/s Progress: |----------| 2.7% Read (Sector 0x1B40 of 0x40000, 07s left) 15.51 MB/s Progress: |----------| 2.8% Read (Sector 0x1C40 of 0x40000, 07s left) 15.23 MB/s Progress: |----------| 2.9% Read (Sector 0x1D40 of 0x40000, 07s left) 14.43 MB/s Progress: |----------| 3.0% Read (Sector 0x1E40 of 0x40000, 07s left) 15.24 MB/s Progress: |----------| 3.1% Read (Sector 0x1F40 of 0x40000, 07s left) 15.31 MB/s Progress: |----------| 3.2% Read (Sector 0x2060 of 0x40000, 07s left) 15.06 MB/s Progress: |----------| 3.3% Read (Sector 0x2160 of 0x40000, 07s left) 15.34 MB/s Progress: |----------| 3.4% Read (Sector 0x2260 of 0x40000, 07s left) 15.41 MB/s Progress: |----------| 3.5% Read (Sector 0x2360 of 0x40000, 07s left) 15.26 MB/s Progress: |----------| 3.6% Read (Sector 0x2460 of 0x40000, 07s left) 15.45 MB/s Progress: |----------| 3.7% Read (Sector 0x2580 of 0x40000, 07s left) 15.26 MB/s Progress: |----------| 3.8% Read (Sector 0x2680 of 0x40000, 07s left) 15.55 MB/s Progress: |----------| 3.9% Read (Sector 0x2780 of 0x40000, 07s left) 15.31 MB/s Progress: |----------| 4.0% Read (Sector 0x2880 of 0x40000, 07s left) 15.13 MB/s Progress: |----------| 4.1% Read (Sector 0x2980 of 0x40000, 07s left) 15.02 MB/s Progress: |----------| 4.2% Read (Sector 0x2A80 of 0x40000, 07s left) 15.18 MB/s Progress: |----------| 4.3% Read (Sector 0x2BA0 of 0x40000, 07s left) 15.46 MB/s Progress: |----------| 4.4% Read (Sector 0x2CA0 of 0x40000, 07s left) 14.75 MB/s Progress: |----------| 4.5% Read (Sector 0x2DA0 of 0x40000, 07s left) 14.41 MB/s Progress: |----------| 4.6% Read (Sector 0x2EA0 of 0x40000, 07s left) 14.80 MB/s Progress: |----------| 4.7% Read (Sector 0x2FA0 of 0x40000, 07s left) 14.83 MB/s Progress: |----------| 4.8% Read (Sector 0x30C0 of 0x40000, 07s left) 15.41 MB/s Progress: |----------| 4.9% Read (Sector 0x31C0 of 0x40000, 07s left) 15.49 MB/s Progress: |----------| 5.0% Read (Sector 0x32C0 of 0x40000, 07s left) 15.24 MB/s Progress: |█---------| 5.1% Read (Sector 0x33C0 of 0x40000, 07s left) 14.84 MB/s Progress: |█---------| 5.2% Read (Sector 0x34C0 of 0x40000, 07s left) 15.48 MB/s Progress: |█---------| 5.3% Read (Sector 0x35E0 of 0x40000, 07s left) 15.25 MB/s Progress: |█---------| 5.4% Read (Sector 0x36E0 of 0x40000, 07s left) 14.89 MB/s Progress: |█---------| 5.5% Read (Sector 0x37E0 of 0x40000, 07s left) 15.19 MB/s Progress: |█---------| 5.6% Read (Sector 0x38E0 of 0x40000, 07s left) 15.41 MB/s Progress: |█---------| 5.7% Read (Sector 0x39E0 of 0x40000, 07s left) 15.51 MB/s Progress: |█---------| 5.8% Read (Sector 0x3B00 of 0x40000, 07s left) 15.21 MB/s Progress: |█---------| 5.9% Read (Sector 0x3C00 of 0x40000, 07s left) 15.47 MB/s Progress: |█---------| 6.0% Read (Sector 0x3D00 of 0x40000, 07s left) 15.08 MB/s Progress: |█---------| 6.1% Read (Sector 0x3E00 of 0x40000, 07s left) 15.18 MB/s Progress: |█---------| 6.2% Read (Sector 0x3F00 of 0x40000, 07s left) 15.55 MB/s Progress: |█---------| 6.3% Read (Sector 0x4020 of 0x40000, 07s left) 15.48 MB/s Progress: |█---------| 6.4% Read (Sector 0x4120 of 0x40000, 07s left) 15.67 MB/s Progress: |█---------| 6.5% Read (Sector 0x4220 of 0x40000, 07s left) 15.45 MB/s Progress: |█---------| 6.6% Read (Sector 0x4320 of 0x40000, 07s left) 15.34 MB/s Progress: |█---------| 6.7% Read (Sector 0x4420 of 0x40000, 07s left) 15.31 MB/s Progress: |█---------| 6.8% Read (Sector 0x4520 of 0x40000, 07s left) 15.09 MB/s Progress: |█---------| 6.9% Read (Sector 0x4640 of 0x40000, 07s left) 12.83 MB/s Progress: |█---------| 7.0% Read (Sector 0x4740 of 0x40000, 07s left) 15.35 MB/s Progress: |█---------| 7.1% Read (Sector 0x4840 of 0x40000, 07s left) 15.39 MB/s Progress: |█---------| 7.2% Read (Sector 0x4940 of 0x40000, 07s left) 15.48 MB/s Progress: |█---------| 7.3% Read (Sector 0x4A40 of 0x40000, 07s left) 15.35 MB/s Progress: |█---------| 7.4% Read (Sector 0x4B60 of 0x40000, 07s left) 14.71 MB/s Progress: |█---------| 7.5% Read (Sector 0x4C60 of 0x40000, 07s left) 15.22 MB/s Progress: |█---------| 7.6% Read (Sector 0x4D60 of 0x40000, 07s left) 15.21 MB/s Progress: |█---------| 7.7% Read (Sector 0x4E60 of 0x40000, 07s left) 14.86 MB/s Progress: |█---------| 7.8% Read (Sector 0x4F60 of 0x40000, 07s left) 15.44 MB/s Progress: |█---------| 7.9% Read (Sector 0x5080 of 0x40000, 07s left) 15.40 MB/s Progress: |█---------| 8.0% Read (Sector 0x5180 of 0x40000, 07s left) 15.26 MB/s Progress: |█---------| 8.1% Read (Sector 0x5280 of 0x40000, 07s left) 15.37 MB/s Progress: |█---------| 8.2% Read (Sector 0x5380 of 0x40000, 07s left) 15.39 MB/s Progress: |█---------| 8.3% Read (Sector 0x5480 of 0x40000, 07s left) 15.44 MB/s Progress: |█---------| 8.4% Read (Sector 0x55A0 of 0x40000, 07s left) 14.48 MB/s Progress: |█---------| 8.5% Read (Sector 0x56A0 of 0x40000, 07s left) 15.35 MB/s Progress: |█---------| 8.6% Read (Sector 0x57A0 of 0x40000, 07s left) 15.14 MB/s Progress: |█---------| 8.7% Read (Sector 0x58A0 of 0x40000, 07s left) 15.46 MB/s Progress: |█---------| 8.8% Read (Sector 0x59A0 of 0x40000, 07s left) 15.17 MB/s Progress: |█---------| 8.9% Read (Sector 0x5AA0 of 0x40000, 07s left) 15.22 MB/s Progress: |█---------| 9.0% Read (Sector 0x5BC0 of 0x40000, 07s left) 15.48 MB/s Progress: |█---------| 9.1% Read (Sector 0x5CC0 of 0x40000, 07s left) 15.15 MB/s Progress: |█---------| 9.2% Read (Sector 0x5DC0 of 0x40000, 07s left) 15.19 MB/s Progress: |█---------| 9.3% Read (Sector 0x5EC0 of 0x40000, 07s left) 14.38 MB/s Progress: |█---------| 9.4% Read (Sector 0x5FC0 of 0x40000, 07s left) 14.12 MB/s Progress: |█---------| 9.5% Read (Sector 0x60E0 of 0x40000, 07s left) 15.17 MB/s Progress: |█---------| 9.6% Read (Sector 0x61E0 of 0x40000, 07s left) 15.24 MB/s Progress: |█---------| 9.7% Read (Sector 0x62E0 of 0x40000, 07s left) 14.62 MB/s Progress: |█---------| 9.8% Read (Sector 0x63E0 of 0x40000, 07s left) 14.94 MB/s Progress: |█---------| 9.9% Read (Sector 0x64E0 of 0x40000, 07s left) 15.04 MB/s Progress: |█---------| 10.0% Read (Sector 0x6600 of 0x40000, 07s left) 14.91 MB/s Progress: |█---------| 10.1% Read (Sector 0x6700 of 0x40000, 07s left) 14.43 MB/s Progress: |█---------| 10.2% Read (Sector 0x6800 of 0x40000, 07s left) 15.31 MB/s Progress: |█---------| 10.3% Read (Sector 0x6900 of 0x40000, 07s left) 15.01 MB/s Progress: |█---------| 10.4% Read (Sector 0x6A00 of 0x40000, 07s left) 14.66 MB/s Progress: |█---------| 10.5% Read (Sector 0x6B20 of 0x40000, 07s left) 15.22 MB/s Progress: |█---------| 10.6% Read (Sector 0x6C20 of 0x40000, 07s left) 15.21 MB/s Progress: |█---------| 10.7% Read (Sector 0x6D20 of 0x40000, 07s left) 15.03 MB/s Progress: |█---------| 10.8% Read (Sector 0x6E20 of 0x40000, 07s left) 15.05 MB/s Progress: |█---------| 10.9% Read (Sector 0x6F20 of 0x40000, 07s left) 15.21 MB/s Progress: |█---------| 11.0% Read (Sector 0x7040 of 0x40000, 07s left) 14.66 MB/s Progress: |█---------| 11.1% Read (Sector 0x7140 of 0x40000, 07s left) 15.36 MB/s Progress: |█---------| 11.2% Read (Sector 0x7240 of 0x40000, 07s left) 14.81 MB/s Progress: |█---------| 11.3% Read (Sector 0x7340 of 0x40000, 07s left) 15.03 MB/s Progress: |█---------| 11.4% Read (Sector 0x7440 of 0x40000, 07s left) 15.21 MB/s Progress: |█---------| 11.5% Read (Sector 0x7540 of 0x40000, 07s left) 14.90 MB/s Progress: |█---------| 11.6% Read (Sector 0x7660 of 0x40000, 07s left) 14.98 MB/s Progress: |█---------| 11.7% Read (Sector 0x7760 of 0x40000, 07s left) 15.35 MB/s Progress: |█---------| 11.8% Read (Sector 0x7860 of 0x40000, 07s left) 14.89 MB/s Progress: |█---------| 11.9% Read (Sector 0x7960 of 0x40000, 07s left) 15.08 MB/s Progress: |█---------| 12.0% Read (Sector 0x7A60 of 0x40000, 07s left) 14.95 MB/s Progress: |█---------| 12.1% Read (Sector 0x7B80 of 0x40000, 07s left) 15.11 MB/s Progress: |█---------| 12.2% Read (Sector 0x7C80 of 0x40000, 07s left) 15.36 MB/s Progress: |█---------| 12.3% Read (Sector 0x7D80 of 0x40000, 07s left) 14.95 MB/s Progress: |█---------| 12.4% Read (Sector 0x7E80 of 0x40000, 07s left) 15.12 MB/s Progress: |█---------| 12.5% Read (Sector 0x7F80 of 0x40000, 07s left) 14.98 MB/s Progress: |█---------| 12.6% Read (Sector 0x80A0 of 0x40000, 07s left) 15.30 MB/s Progress: |█---------| 12.7% Read (Sector 0x81A0 of 0x40000, 07s left) 15.58 MB/s Progress: |█---------| 12.8% Read (Sector 0x82A0 of 0x40000, 07s left) 14.56 MB/s Progress: |█---------| 12.9% Read (Sector 0x83A0 of 0x40000, 07s left) 15.33 MB/s Progress: |█---------| 13.0% Read (Sector 0x84A0 of 0x40000, 07s left) 15.48 MB/s Progress: |█---------| 13.1% Read (Sector 0x85C0 of 0x40000, 07s left) 14.97 MB/s Progress: |█---------| 13.2% Read (Sector 0x86C0 of 0x40000, 07s left) 15.09 MB/s Progress: |█---------| 13.3% Read (Sector 0x87C0 of 0x40000, 07s left) 14.71 MB/s Progress: |█---------| 13.4% Read (Sector 0x88C0 of 0x40000, 07s left) 15.38 MB/s Progress: |█---------| 13.5% Read (Sector 0x89C0 of 0x40000, 07s left) 15.16 MB/s Progress: |█---------| 13.6% Read (Sector 0x8AE0 of 0x40000, 07s left) 15.13 MB/s Progress: |█---------| 13.7% Read (Sector 0x8BE0 of 0x40000, 07s left) 15.41 MB/s Progress: |█---------| 13.8% Read (Sector 0x8CE0 of 0x40000, 07s left) 15.11 MB/s Progress: |█---------| 13.9% Read (Sector 0x8DE0 of 0x40000, 07s left) 14.83 MB/s Progress: |█---------| 14.0% Read (Sector 0x8EE0 of 0x40000, 07s left) 15.22 MB/s Progress: |█---------| 14.1% Read (Sector 0x8FE0 of 0x40000, 07s left) 13.69 MB/s Progress: |█---------| 14.2% Read (Sector 0x9100 of 0x40000, 07s left) 12.34 MB/s Progress: |█---------| 14.3% Read (Sector 0x9200 of 0x40000, 07s left) 14.97 MB/s Progress: |█---------| 14.4% Read (Sector 0x9300 of 0x40000, 07s left) 15.15 MB/s Progress: |█---------| 14.5% Read (Sector 0x9400 of 0x40000, 07s left) 15.17 MB/s Progress: |█---------| 14.6% Read (Sector 0x9500 of 0x40000, 07s left) 15.18 MB/s Progress: |█---------| 14.7% Read (Sector 0x9620 of 0x40000, 07s left) 13.75 MB/s Progress: |█---------| 14.8% Read (Sector 0x9720 of 0x40000, 07s left) 15.01 MB/s Progress: |█---------| 14.9% Read (Sector 0x9820 of 0x40000, 07s left) 14.96 MB/s Progress: |██--------| 15.0% Read (Sector 0x9920 of 0x40000, 07s left) 15.41 MB/s Progress: |██--------| 15.1% Read (Sector 0x9A20 of 0x40000, 07s left) 14.40 MB/s Progress: |██--------| 15.2% Read (Sector 0x9B40 of 0x40000, 07s left) 13.78 MB/s Progress: |██--------| 15.3% Read (Sector 0x9C40 of 0x40000, 07s left) 15.10 MB/s Progress: |██--------| 15.4% Read (Sector 0x9D40 of 0x40000, 07s left) 15.31 MB/s Progress: |██--------| 15.5% Read (Sector 0x9E40 of 0x40000, 07s left) 14.88 MB/s Progress: |██--------| 15.6% Read (Sector 0x9F40 of 0x40000, 07s left) 14.60 MB/s Progress: |██--------| 15.7% Read (Sector 0xA060 of 0x40000, 07s left) 15.13 MB/s Progress: |██--------| 15.8% Read (Sector 0xA160 of 0x40000, 07s left) 14.85 MB/s Progress: |██--------| 15.9% Read (Sector 0xA260 of 0x40000, 07s left) 15.04 MB/s Progress: |██--------| 16.0% Read (Sector 0xA360 of 0x40000, 07s left) 15.26 MB/s Progress: |██--------| 16.1% Read (Sector 0xA460 of 0x40000, 07s left) 15.21 MB/s Progress: |██--------| 16.2% Read (Sector 0xA580 of 0x40000, 07s left) 13.86 MB/s Progress: |██--------| 16.3% Read (Sector 0xA680 of 0x40000, 07s left) 15.13 MB/s Progress: |██--------| 16.4% Read (Sector 0xA780 of 0x40000, 07s left) 15.63 MB/s Progress: |██--------| 16.5% Read (Sector 0xA880 of 0x40000, 07s left) 15.21 MB/s Progress: |██--------| 16.6% Read (Sector 0xA980 of 0x40000, 07s left) 15.00 MB/s Progress: |██--------| 16.7% Read (Sector 0xAA80 of 0x40000, 07s left) 15.20 MB/s Progress: |██--------| 16.8% Read (Sector 0xABA0 of 0x40000, 07s left) 15.40 MB/s Progress: |██--------| 16.9% Read (Sector 0xACA0 of 0x40000, 07s left) 15.14 MB/s Progress: |██--------| 17.0% Read (Sector 0xADA0 of 0x40000, 07s left) 15.35 MB/s Progress: |██--------| 17.1% Read (Sector 0xAEA0 of 0x40000, 07s left) 14.53 MB/s Progress: |██--------| 17.2% Read (Sector 0xAFA0 of 0x40000, 07s left) 15.07 MB/s Progress: |██--------| 17.3% Read (Sector 0xB0C0 of 0x40000, 06s left) 15.32 MB/s Progress: |██--------| 17.4% Read (Sector 0xB1C0 of 0x40000, 06s left) 15.21 MB/s Progress: |██--------| 17.5% Read (Sector 0xB2C0 of 0x40000, 06s left) 14.97 MB/s Progress: |██--------| 17.6% Read (Sector 0xB3C0 of 0x40000, 06s left) 15.27 MB/s Progress: |██--------| 17.7% Read (Sector 0xB4C0 of 0x40000, 06s left) 15.60 MB/s Progress: |██--------| 17.8% Read (Sector 0xB5E0 of 0x40000, 06s left) 15.10 MB/s Progress: |██--------| 17.9% Read (Sector 0xB6E0 of 0x40000, 06s left) 15.33 MB/s Progress: |██--------| 18.0% Read (Sector 0xB7E0 of 0x40000, 06s left) 14.91 MB/s Progress: |██--------| 18.1% Read (Sector 0xB8E0 of 0x40000, 06s left) 15.07 MB/s Progress: |██--------| 18.2% Read (Sector 0xB9E0 of 0x40000, 06s left) 15.24 MB/s Progress: |██--------| 18.3% Read (Sector 0xBB00 of 0x40000, 06s left) 15.20 MB/s Progress: |██--------| 18.4% Read (Sector 0xBC00 of 0x40000, 06s left) 15.14 MB/s Progress: |██--------| 18.5% Read (Sector 0xBD00 of 0x40000, 06s left) 15.30 MB/s Progress: |██--------| 18.6% Read (Sector 0xBE00 of 0x40000, 06s left) 15.18 MB/s Progress: |██--------| 18.7% Read (Sector 0xBF00 of 0x40000, 06s left) 14.69 MB/s Progress: |██--------| 18.8% Read (Sector 0xC000 of 0x40000, 06s left) 15.37 MB/s Progress: |██--------| 18.9% Read (Sector 0xC120 of 0x40000, 06s left) 15.46 MB/s Progress: |██--------| 19.0% Read (Sector 0xC220 of 0x40000, 06s left) 15.22 MB/s Progress: |██--------| 19.1% Read (Sector 0xC320 of 0x40000, 06s left) 15.48 MB/s Progress: |██--------| 19.2% Read (Sector 0xC420 of 0x40000, 06s left) 14.89 MB/s Progress: |██--------| 19.3% Read (Sector 0xC520 of 0x40000, 06s left) 15.06 MB/s Progress: |██--------| 19.4% Read (Sector 0xC640 of 0x40000, 06s left) 15.29 MB/s Progress: |██--------| 19.5% Read (Sector 0xC740 of 0x40000, 06s left) 15.32 MB/s Progress: |██--------| 19.6% Read (Sector 0xC840 of 0x40000, 06s left) 14.82 MB/s Progress: |██--------| 19.7% Read (Sector 0xC940 of 0x40000, 06s left) 15.26 MB/s Progress: |██--------| 19.8% Read (Sector 0xCA40 of 0x40000, 06s left) 15.34 MB/s Progress: |██--------| 19.9% Read (Sector 0xCB60 of 0x40000, 06s left) 15.52 MB/s Progress: |██--------| 20.0% Read (Sector 0xCC60 of 0x40000, 06s left) 15.01 MB/s Progress: |██--------| 20.1% Read (Sector 0xCD60 of 0x40000, 06s left) 14.90 MB/s Progress: |██--------| 20.2% Read (Sector 0xCE60 of 0x40000, 06s left) 15.75 MB/s Progress: |██--------| 20.3% Read (Sector 0xCF60 of 0x40000, 06s left) 15.31 MB/s Progress: |██--------| 20.4% Read (Sector 0xD080 of 0x40000, 06s left) 15.83 MB/s Progress: |██--------| 20.5% Read (Sector 0xD180 of 0x40000, 06s left) 15.42 MB/s Progress: |██--------| 20.6% Read (Sector 0xD280 of 0x40000, 06s left) 15.37 MB/s Progress: |██--------| 20.7% Read (Sector 0xD380 of 0x40000, 06s left) 15.14 MB/s Progress: |██--------| 20.8% Read (Sector 0xD480 of 0x40000, 06s left) 15.54 MB/s Progress: |██--------| 20.9% Read (Sector 0xD5A0 of 0x40000, 06s left) 15.38 MB/s Progress: |██--------| 21.0% Read (Sector 0xD6A0 of 0x40000, 06s left) 15.49 MB/s Progress: |██--------| 21.1% Read (Sector 0xD7A0 of 0x40000, 06s left) 14.93 MB/s Progress: |██--------| 21.2% Read (Sector 0xD8A0 of 0x40000, 06s left) 15.15 MB/s Progress: |██--------| 21.3% Read (Sector 0xD9A0 of 0x40000, 06s left) 15.34 MB/s Progress: |██--------| 21.4% Read (Sector 0xDAA0 of 0x40000, 06s left) 15.22 MB/s Progress: |██--------| 21.5% Read (Sector 0xDBC0 of 0x40000, 06s left) 15.40 MB/s Progress: |██--------| 21.6% Read (Sector 0xDCC0 of 0x40000, 06s left) 15.48 MB/s Progress: |██--------| 21.7% Read (Sector 0xDDC0 of 0x40000, 06s left) 15.32 MB/s Progress: |██--------| 21.8% Read (Sector 0xDEC0 of 0x40000, 06s left) 15.11 MB/s Progress: |██--------| 21.9% Read (Sector 0xDFC0 of 0x40000, 06s left) 15.33 MB/s Progress: |██--------| 22.0% Read (Sector 0xE0E0 of 0x40000, 06s left) 15.43 MB/s Progress: |██--------| 22.1% Read (Sector 0xE1E0 of 0x40000, 06s left) 15.17 MB/s Progress: |██--------| 22.2% Read (Sector 0xE2E0 of 0x40000, 06s left) 15.29 MB/s Progress: |██--------| 22.3% Read (Sector 0xE3E0 of 0x40000, 06s left) 15.38 MB/s Progress: |██--------| 22.4% Read (Sector 0xE4E0 of 0x40000, 06s left) 15.59 MB/s Progress: |██--------| 22.5% Read (Sector 0xE600 of 0x40000, 06s left) 15.79 MB/s Progress: |██--------| 22.6% Read (Sector 0xE700 of 0x40000, 06s left) 14.99 MB/s Progress: |██--------| 22.7% Read (Sector 0xE800 of 0x40000, 06s left) 15.18 MB/s Progress: |██--------| 22.8% Read (Sector 0xE900 of 0x40000, 06s left) 15.06 MB/s Progress: |██--------| 22.9% Read (Sector 0xEA00 of 0x40000, 06s left) 15.39 MB/s Progress: |██--------| 23.0% Read (Sector 0xEB20 of 0x40000, 06s left) 15.14 MB/s Progress: |██--------| 23.1% Read (Sector 0xEC20 of 0x40000, 06s left) 14.83 MB/s Progress: |██--------| 23.2% Read (Sector 0xED20 of 0x40000, 06s left) 15.24 MB/s Progress: |██--------| 23.3% Read (Sector 0xEE20 of 0x40000, 06s left) 15.48 MB/s Progress: |██--------| 23.4% Read (Sector 0xEF20 of 0x40000, 06s left) 15.29 MB/s Progress: |██--------| 23.5% Read (Sector 0xF040 of 0x40000, 06s left) 15.19 MB/s Progress: |██--------| 23.6% Read (Sector 0xF140 of 0x40000, 06s left) 15.40 MB/s Progress: |██--------| 23.7% Read (Sector 0xF240 of 0x40000, 06s left) 15.46 MB/s Progress: |██--------| 23.8% Read (Sector 0xF340 of 0x40000, 06s left) 15.58 MB/s Progress: |██--------| 23.9% Read (Sector 0xF440 of 0x40000, 06s left) 15.48 MB/s Progress: |██--------| 24.0% Read (Sector 0xF540 of 0x40000, 06s left) 15.42 MB/s Progress: |██--------| 24.1% Read (Sector 0xF660 of 0x40000, 06s left) 15.22 MB/s Progress: |██--------| 24.2% Read (Sector 0xF760 of 0x40000, 06s left) 14.96 MB/s Progress: |██--------| 24.3% Read (Sector 0xF860 of 0x40000, 06s left) 15.78 MB/s Progress: |██--------| 24.4% Read (Sector 0xF960 of 0x40000, 06s left) 14.90 MB/s Progress: |██--------| 24.5% Read (Sector 0xFA60 of 0x40000, 06s left) 15.52 MB/s Progress: |██--------| 24.6% Read (Sector 0xFB80 of 0x40000, 06s left) 15.03 MB/s Progress: |██--------| 24.7% Read (Sector 0xFC80 of 0x40000, 06s left) 15.45 MB/s Progress: |██--------| 24.8% Read (Sector 0xFD80 of 0x40000, 06s left) 15.29 MB/s Progress: |██--------| 24.9% Read (Sector 0xFE80 of 0x40000, 06s left) 15.08 MB/s Progress: |██--------| 25.0% Read (Sector 0xFF80 of 0x40000, 06s left) 14.92 MB/s Progress: |███-------| 25.1% Read (Sector 0x100A0 of 0x40000, 06s left) 13.98 MB/s Progress: |███-------| 25.2% Read (Sector 0x101A0 of 0x40000, 06s left) 15.28 MB/s Progress: |███-------| 25.3% Read (Sector 0x102A0 of 0x40000, 06s left) 14.66 MB/s Progress: |███-------| 25.4% Read (Sector 0x103A0 of 0x40000, 06s left) 15.22 MB/s Progress: |███-------| 25.5% Read (Sector 0x104A0 of 0x40000, 06s left) 15.40 MB/s Progress: |███-------| 25.6% Read (Sector 0x105C0 of 0x40000, 06s left) 15.12 MB/s Progress: |███-------| 25.7% Read (Sector 0x106C0 of 0x40000, 06s left) 15.42 MB/s Progress: |███-------| 25.8% Read (Sector 0x107C0 of 0x40000, 06s left) 15.39 MB/s Progress: |███-------| 25.9% Read (Sector 0x108C0 of 0x40000, 06s left) 15.35 MB/s Progress: |███-------| 26.0% Read (Sector 0x109C0 of 0x40000, 06s left) 15.19 MB/s Progress: |███-------| 26.1% Read (Sector 0x10AE0 of 0x40000, 06s left) 15.43 MB/s Progress: |███-------| 26.2% Read (Sector 0x10BE0 of 0x40000, 06s left) 15.30 MB/s Progress: |███-------| 26.3% Read (Sector 0x10CE0 of 0x40000, 06s left) 14.89 MB/s Progress: |███-------| 26.4% Read (Sector 0x10DE0 of 0x40000, 06s left) 15.48 MB/s Progress: |███-------| 26.5% Read (Sector 0x10EE0 of 0x40000, 06s left) 15.24 MB/s Progress: |███-------| 26.6% Read (Sector 0x10FE0 of 0x40000, 06s left) 14.35 MB/s Progress: |███-------| 26.7% Read (Sector 0x11100 of 0x40000, 06s left) 14.75 MB/s Progress: |███-------| 26.8% Read (Sector 0x11200 of 0x40000, 06s left) 15.43 MB/s Progress: |███-------| 26.9% Read (Sector 0x11300 of 0x40000, 06s left) 14.87 MB/s Progress: |███-------| 27.0% Read (Sector 0x11400 of 0x40000, 06s left) 15.20 MB/s Progress: |███-------| 27.1% Read (Sector 0x11500 of 0x40000, 06s left) 15.03 MB/s Progress: |███-------| 27.2% Read (Sector 0x11620 of 0x40000, 06s left) 15.15 MB/s Progress: |███-------| 27.3% Read (Sector 0x11720 of 0x40000, 06s left) 15.25 MB/s Progress: |███-------| 27.4% Read (Sector 0x11820 of 0x40000, 06s left) 15.39 MB/s Progress: |███-------| 27.5% Read (Sector 0x11920 of 0x40000, 06s left) 14.84 MB/s Progress: |███-------| 27.6% Read (Sector 0x11A20 of 0x40000, 06s left) 14.94 MB/s Progress: |███-------| 27.7% Read (Sector 0x11B40 of 0x40000, 06s left) 15.60 MB/s Progress: |███-------| 27.8% Read (Sector 0x11C40 of 0x40000, 06s left) 15.46 MB/s Progress: |███-------| 27.9% Read (Sector 0x11D40 of 0x40000, 06s left) 15.40 MB/s Progress: |███-------| 28.0% Read (Sector 0x11E40 of 0x40000, 06s left) 14.69 MB/s Progress: |███-------| 28.1% Read (Sector 0x11F40 of 0x40000, 06s left) 14.97 MB/s Progress: |███-------| 28.2% Read (Sector 0x12060 of 0x40000, 06s left) 14.75 MB/s Progress: |███-------| 28.3% Read (Sector 0x12160 of 0x40000, 06s left) 14.60 MB/s Progress: |███-------| 28.4% Read (Sector 0x12260 of 0x40000, 06s left) 15.29 MB/s Progress: |███-------| 28.5% Read (Sector 0x12360 of 0x40000, 06s left) 14.88 MB/s Progress: |███-------| 28.6% Read (Sector 0x12460 of 0x40000, 06s left) 15.36 MB/s Progress: |███-------| 28.7% Read (Sector 0x12580 of 0x40000, 06s left) 15.78 MB/s Progress: |███-------| 28.8% Read (Sector 0x12680 of 0x40000, 06s left) 15.11 MB/s Progress: |███-------| 28.9% Read (Sector 0x12780 of 0x40000, 06s left) 15.53 MB/s Progress: |███-------| 29.0% Read (Sector 0x12880 of 0x40000, 05s left) 15.68 MB/s Progress: |███-------| 29.1% Read (Sector 0x12980 of 0x40000, 05s left) 14.73 MB/s Progress: |███-------| 29.2% Read (Sector 0x12A80 of 0x40000, 05s left) 15.21 MB/s Progress: |███-------| 29.3% Read (Sector 0x12BA0 of 0x40000, 05s left) 15.08 MB/s Progress: |███-------| 29.4% Read (Sector 0x12CA0 of 0x40000, 05s left) 14.71 MB/s Progress: |███-------| 29.5% Read (Sector 0x12DA0 of 0x40000, 05s left) 15.32 MB/s Progress: |███-------| 29.6% Read (Sector 0x12EA0 of 0x40000, 05s left) 15.24 MB/s Progress: |███-------| 29.7% Read (Sector 0x12FA0 of 0x40000, 05s left) 15.45 MB/s Progress: |███-------| 29.8% Read (Sector 0x130C0 of 0x40000, 05s left) 15.35 MB/s Progress: |███-------| 29.9% Read (Sector 0x131C0 of 0x40000, 05s left) 15.19 MB/s Progress: |███-------| 30.0% Read (Sector 0x132C0 of 0x40000, 05s left) 14.19 MB/s Progress: |███-------| 30.1% Read (Sector 0x133C0 of 0x40000, 05s left) 14.53 MB/s Progress: |███-------| 30.2% Read (Sector 0x134C0 of 0x40000, 05s left) 15.07 MB/s Progress: |███-------| 30.3% Read (Sector 0x135E0 of 0x40000, 05s left) 15.86 MB/s Progress: |███-------| 30.4% Read (Sector 0x136E0 of 0x40000, 05s left) 14.55 MB/s Progress: |███-------| 30.5% Read (Sector 0x137E0 of 0x40000, 05s left) 13.67 MB/s Progress: |███-------| 30.6% Read (Sector 0x138E0 of 0x40000, 05s left) 14.82 MB/s Progress: |███-------| 30.7% Read (Sector 0x139E0 of 0x40000, 05s left) 15.13 MB/s Progress: |███-------| 30.8% Read (Sector 0x13B00 of 0x40000, 05s left) 15.14 MB/s Progress: |███-------| 30.9% Read (Sector 0x13C00 of 0x40000, 05s left) 15.38 MB/s Progress: |███-------| 31.0% Read (Sector 0x13D00 of 0x40000, 05s left) 14.70 MB/s Progress: |███-------| 31.1% Read (Sector 0x13E00 of 0x40000, 05s left) 15.09 MB/s Progress: |███-------| 31.2% Read (Sector 0x13F00 of 0x40000, 05s left) 15.05 MB/s Progress: |███-------| 31.3% Read (Sector 0x14020 of 0x40000, 05s left) 15.23 MB/s Progress: |███-------| 31.4% Read (Sector 0x14120 of 0x40000, 05s left) 15.68 MB/s Progress: |███-------| 31.5% Read (Sector 0x14220 of 0x40000, 05s left) 15.32 MB/s Progress: |███-------| 31.6% Read (Sector 0x14320 of 0x40000, 05s left) 15.04 MB/s Progress: |███-------| 31.7% Read (Sector 0x14420 of 0x40000, 05s left) 15.59 MB/s Progress: |███-------| 31.8% Read (Sector 0x14520 of 0x40000, 05s left) 15.14 MB/s Progress: |███-------| 31.9% Read (Sector 0x14640 of 0x40000, 05s left) 15.38 MB/s Progress: |███-------| 32.0% Read (Sector 0x14740 of 0x40000, 05s left) 15.27 MB/s Progress: |███-------| 32.1% Read (Sector 0x14840 of 0x40000, 05s left) 15.50 MB/s Progress: |███-------| 32.2% Read (Sector 0x14940 of 0x40000, 05s left) 15.35 MB/s Progress: |███-------| 32.3% Read (Sector 0x14A40 of 0x40000, 05s left) 15.81 MB/s Progress: |███-------| 32.4% Read (Sector 0x14B60 of 0x40000, 05s left) 15.43 MB/s Progress: |███-------| 32.5% Read (Sector 0x14C60 of 0x40000, 05s left) 14.92 MB/s Progress: |███-------| 32.6% Read (Sector 0x14D60 of 0x40000, 05s left) 15.63 MB/s Progress: |███-------| 32.7% Read (Sector 0x14E60 of 0x40000, 05s left) 15.36 MB/s Progress: |███-------| 32.8% Read (Sector 0x14F60 of 0x40000, 05s left) 15.32 MB/s Progress: |███-------| 32.9% Read (Sector 0x15080 of 0x40000, 05s left) 15.68 MB/s Progress: |███-------| 33.0% Read (Sector 0x15180 of 0x40000, 05s left) 15.27 MB/s Progress: |███-------| 33.1% Read (Sector 0x15280 of 0x40000, 05s left) 15.67 MB/s Progress: |███-------| 33.2% Read (Sector 0x15380 of 0x40000, 05s left) 15.15 MB/s Progress: |███-------| 33.3% Read (Sector 0x15480 of 0x40000, 05s left) 15.07 MB/s Progress: |███-------| 33.4% Read (Sector 0x155A0 of 0x40000, 05s left) 15.43 MB/s Progress: |███-------| 33.5% Read (Sector 0x156A0 of 0x40000, 05s left) 14.98 MB/s Progress: |███-------| 33.6% Read (Sector 0x157A0 of 0x40000, 05s left) 14.63 MB/s Progress: |███-------| 33.7% Read (Sector 0x158A0 of 0x40000, 05s left) 13.90 MB/s Progress: |███-------| 33.8% Read (Sector 0x159A0 of 0x40000, 05s left) 15.39 MB/s Progress: |███-------| 33.9% Read (Sector 0x15AA0 of 0x40000, 05s left) 15.09 MB/s Progress: |███-------| 34.0% Read (Sector 0x15BC0 of 0x40000, 05s left) 14.94 MB/s Progress: |███-------| 34.1% Read (Sector 0x15CC0 of 0x40000, 05s left) 14.77 MB/s Progress: |███-------| 34.2% Read (Sector 0x15DC0 of 0x40000, 05s left) 15.57 MB/s Progress: |███-------| 34.3% Read (Sector 0x15EC0 of 0x40000, 05s left) 15.21 MB/s Progress: |███-------| 34.4% Read (Sector 0x15FC0 of 0x40000, 05s left) 15.17 MB/s Progress: |███-------| 34.5% Read (Sector 0x160E0 of 0x40000, 05s left) 15.30 MB/s Progress: |███-------| 34.6% Read (Sector 0x161E0 of 0x40000, 05s left) 15.14 MB/s Progress: |███-------| 34.7% Read (Sector 0x162E0 of 0x40000, 05s left) 15.12 MB/s Progress: |███-------| 34.8% Read (Sector 0x163E0 of 0x40000, 05s left) 15.58 MB/s Progress: |███-------| 34.9% Read (Sector 0x164E0 of 0x40000, 05s left) 15.37 MB/s Progress: |████------| 35.0% Read (Sector 0x16600 of 0x40000, 05s left) 14.22 MB/s Progress: |████------| 35.1% Read (Sector 0x16700 of 0x40000, 05s left) 15.16 MB/s Progress: |████------| 35.2% Read (Sector 0x16800 of 0x40000, 05s left) 15.37 MB/s Progress: |████------| 35.3% Read (Sector 0x16900 of 0x40000, 05s left) 15.34 MB/s Progress: |████------| 35.4% Read (Sector 0x16A00 of 0x40000, 05s left) 15.06 MB/s Progress: |████------| 35.5% Read (Sector 0x16B20 of 0x40000, 05s left) 15.02 MB/s Progress: |████------| 35.6% Read (Sector 0x16C20 of 0x40000, 05s left) 15.71 MB/s Progress: |████------| 35.7% Read (Sector 0x16D20 of 0x40000, 05s left) 15.37 MB/s Progress: |████------| 35.8% Read (Sector 0x16E20 of 0x40000, 05s left) 15.07 MB/s Progress: |████------| 35.9% Read (Sector 0x16F20 of 0x40000, 05s left) 15.05 MB/s Progress: |████------| 36.0% Read (Sector 0x17040 of 0x40000, 05s left) 15.64 MB/s Progress: |████------| 36.1% Read (Sector 0x17140 of 0x40000, 05s left) 15.60 MB/s Progress: |████------| 36.2% Read (Sector 0x17240 of 0x40000, 05s left) 15.68 MB/s Progress: |████------| 36.3% Read (Sector 0x17340 of 0x40000, 05s left) 15.33 MB/s Progress: |████------| 36.4% Read (Sector 0x17440 of 0x40000, 05s left) 14.91 MB/s Progress: |████------| 36.5% Read (Sector 0x17540 of 0x40000, 05s left) 15.39 MB/s Progress: |████------| 36.6% Read (Sector 0x17660 of 0x40000, 05s left) 14.89 MB/s Progress: |████------| 36.7% Read (Sector 0x17760 of 0x40000, 05s left) 15.30 MB/s Progress: |████------| 36.8% Read (Sector 0x17860 of 0x40000, 05s left) 15.19 MB/s Progress: |████------| 36.9% Read (Sector 0x17960 of 0x40000, 05s left) 15.50 MB/s Progress: |████------| 37.0% Read (Sector 0x17A60 of 0x40000, 05s left) 14.34 MB/s Progress: |████------| 37.1% Read (Sector 0x17B80 of 0x40000, 05s left) 15.66 MB/s Progress: |████------| 37.2% Read (Sector 0x17C80 of 0x40000, 05s left) 15.51 MB/s Progress: |████------| 37.3% Read (Sector 0x17D80 of 0x40000, 05s left) 15.42 MB/s Progress: |████------| 37.4% Read (Sector 0x17E80 of 0x40000, 05s left) 15.24 MB/s Progress: |████------| 37.5% Read (Sector 0x17F80 of 0x40000, 05s left) 14.75 MB/s Progress: |████------| 37.6% Read (Sector 0x180A0 of 0x40000, 05s left) 13.74 MB/s Progress: |████------| 37.7% Read (Sector 0x181A0 of 0x40000, 05s left) 15.00 MB/s Progress: |████------| 37.8% Read (Sector 0x182A0 of 0x40000, 05s left) 15.04 MB/s Progress: |████------| 37.9% Read (Sector 0x183A0 of 0x40000, 05s left) 12.38 MB/s Progress: |████------| 38.0% Read (Sector 0x184A0 of 0x40000, 05s left) 15.24 MB/s Progress: |████------| 38.1% Read (Sector 0x185C0 of 0x40000, 05s left) 14.44 MB/s Progress: |████------| 38.2% Read (Sector 0x186C0 of 0x40000, 05s left) 15.63 MB/s Progress: |████------| 38.3% Read (Sector 0x187C0 of 0x40000, 05s left) 15.55 MB/s Progress: |████------| 38.4% Read (Sector 0x188C0 of 0x40000, 05s left) 15.28 MB/s Progress: |████------| 38.5% Read (Sector 0x189C0 of 0x40000, 05s left) 15.62 MB/s Progress: |████------| 38.6% Read (Sector 0x18AE0 of 0x40000, 05s left) 15.33 MB/s Progress: |████------| 38.7% Read (Sector 0x18BE0 of 0x40000, 05s left) 15.75 MB/s Progress: |████------| 38.8% Read (Sector 0x18CE0 of 0x40000, 05s left) 15.41 MB/s Progress: |████------| 38.9% Read (Sector 0x18DE0 of 0x40000, 05s left) 15.00 MB/s Progress: |████------| 39.0% Read (Sector 0x18EE0 of 0x40000, 05s left) 15.07 MB/s Progress: |████------| 39.1% Read (Sector 0x18FE0 of 0x40000, 05s left) 15.57 MB/s Progress: |████------| 39.2% Read (Sector 0x19100 of 0x40000, 05s left) 15.33 MB/s Progress: |████------| 39.3% Read (Sector 0x19200 of 0x40000, 05s left) 15.02 MB/s Progress: |████------| 39.4% Read (Sector 0x19300 of 0x40000, 05s left) 14.55 MB/s Progress: |████------| 39.5% Read (Sector 0x19400 of 0x40000, 05s left) 15.45 MB/s Progress: |████------| 39.6% Read (Sector 0x19500 of 0x40000, 05s left) 15.12 MB/s Progress: |████------| 39.7% Read (Sector 0x19620 of 0x40000, 05s left) 15.42 MB/s Progress: |████------| 39.8% Read (Sector 0x19720 of 0x40000, 05s left) 15.01 MB/s Progress: |████------| 39.9% Read (Sector 0x19820 of 0x40000, 05s left) 14.99 MB/s Progress: |████------| 40.0% Read (Sector 0x19920 of 0x40000, 05s left) 15.52 MB/s Progress: |████------| 40.1% Read (Sector 0x19A20 of 0x40000, 05s left) 15.08 MB/s Progress: |████------| 40.2% Read (Sector 0x19B40 of 0x40000, 05s left) 15.16 MB/s Progress: |████------| 40.3% Read (Sector 0x19C40 of 0x40000, 05s left) 15.28 MB/s Progress: |████------| 40.4% Read (Sector 0x19D40 of 0x40000, 05s left) 15.35 MB/s Progress: |████------| 40.5% Read (Sector 0x19E40 of 0x40000, 05s left) 15.52 MB/s Progress: |████------| 40.6% Read (Sector 0x19F40 of 0x40000, 05s left) 15.51 MB/s Progress: |████------| 40.7% Read (Sector 0x1A060 of 0x40000, 05s left) 15.28 MB/s Progress: |████------| 40.8% Read (Sector 0x1A160 of 0x40000, 04s left) 15.36 MB/s Progress: |████------| 40.9% Read (Sector 0x1A260 of 0x40000, 04s left) 15.21 MB/s Progress: |████------| 41.0% Read (Sector 0x1A360 of 0x40000, 04s left) 15.20 MB/s Progress: |████------| 41.1% Read (Sector 0x1A460 of 0x40000, 04s left) 15.31 MB/s Progress: |████------| 41.2% Read (Sector 0x1A580 of 0x40000, 04s left) 14.91 MB/s Progress: |████------| 41.3% Read (Sector 0x1A680 of 0x40000, 04s left) 10.37 MB/s Progress: |████------| 41.4% Read (Sector 0x1A780 of 0x40000, 04s left) 15.32 MB/s Progress: |████------| 41.5% Read (Sector 0x1A880 of 0x40000, 04s left) 15.30 MB/s Progress: |████------| 41.6% Read (Sector 0x1A980 of 0x40000, 04s left) 15.09 MB/s Progress: |████------| 41.7% Read (Sector 0x1AA80 of 0x40000, 04s left) 15.33 MB/s Progress: |████------| 41.8% Read (Sector 0x1ABA0 of 0x40000, 04s left) 14.80 MB/s Progress: |████------| 41.9% Read (Sector 0x1ACA0 of 0x40000, 04s left) 14.77 MB/s Progress: |████------| 42.0% Read (Sector 0x1ADA0 of 0x40000, 04s left) 14.78 MB/s Progress: |████------| 42.1% Read (Sector 0x1AEA0 of 0x40000, 04s left) 15.20 MB/s Progress: |████------| 42.2% Read (Sector 0x1AFA0 of 0x40000, 04s left) 15.38 MB/s Progress: |████------| 42.3% Read (Sector 0x1B0C0 of 0x40000, 04s left) 15.30 MB/s Progress: |████------| 42.4% Read (Sector 0x1B1C0 of 0x40000, 04s left) 14.92 MB/s Progress: |████------| 42.5% Read (Sector 0x1B2C0 of 0x40000, 04s left) 15.53 MB/s Progress: |████------| 42.6% Read (Sector 0x1B3C0 of 0x40000, 04s left) 15.35 MB/s Progress: |████------| 42.7% Read (Sector 0x1B4C0 of 0x40000, 04s left) 14.54 MB/s Progress: |████------| 42.8% Read (Sector 0x1B5E0 of 0x40000, 04s left) 14.69 MB/s Progress: |████------| 42.9% Read (Sector 0x1B6E0 of 0x40000, 04s left) 15.56 MB/s Progress: |████------| 43.0% Read (Sector 0x1B7E0 of 0x40000, 04s left) 14.85 MB/s Progress: |████------| 43.1% Read (Sector 0x1B8E0 of 0x40000, 04s left) 14.92 MB/s Progress: |████------| 43.2% Read (Sector 0x1B9E0 of 0x40000, 04s left) 15.33 MB/s Progress: |████------| 43.3% Read (Sector 0x1BB00 of 0x40000, 04s left) 15.00 MB/s Progress: |████------| 43.4% Read (Sector 0x1BC00 of 0x40000, 04s left) 15.33 MB/s Progress: |████------| 43.5% Read (Sector 0x1BD00 of 0x40000, 04s left) 15.23 MB/s Progress: |████------| 43.6% Read (Sector 0x1BE00 of 0x40000, 04s left) 15.36 MB/s Progress: |████------| 43.7% Read (Sector 0x1BF00 of 0x40000, 04s left) 15.20 MB/s Progress: |████------| 43.8% Read (Sector 0x1C000 of 0x40000, 04s left) 14.71 MB/s Progress: |████------| 43.9% Read (Sector 0x1C120 of 0x40000, 04s left) 15.18 MB/s Progress: |████------| 44.0% Read (Sector 0x1C220 of 0x40000, 04s left) 15.32 MB/s Progress: |████------| 44.1% Read (Sector 0x1C320 of 0x40000, 04s left) 15.30 MB/s Progress: |████------| 44.2% Read (Sector 0x1C420 of 0x40000, 04s left) 15.28 MB/s Progress: |████------| 44.3% Read (Sector 0x1C520 of 0x40000, 04s left) 15.14 MB/s Progress: |████------| 44.4% Read (Sector 0x1C640 of 0x40000, 04s left) 15.26 MB/s Progress: |████------| 44.5% Read (Sector 0x1C740 of 0x40000, 04s left) 15.10 MB/s Progress: |████------| 44.6% Read (Sector 0x1C840 of 0x40000, 04s left) 15.14 MB/s Progress: |████------| 44.7% Read (Sector 0x1C940 of 0x40000, 04s left) 14.39 MB/s Progress: |████------| 44.8% Read (Sector 0x1CA40 of 0x40000, 04s left) 12.66 MB/s Progress: |████------| 44.9% Read (Sector 0x1CB60 of 0x40000, 04s left) 15.21 MB/s Progress: |████------| 45.0% Read (Sector 0x1CC60 of 0x40000, 04s left) 15.21 MB/s Progress: |█████-----| 45.1% Read (Sector 0x1CD60 of 0x40000, 04s left) 11.87 MB/s Progress: |█████-----| 45.2% Read (Sector 0x1CE60 of 0x40000, 04s left) 9.90 MB/s Progress: |█████-----| 45.3% Read (Sector 0x1CF60 of 0x40000, 04s left) 10.30 MB/s Progress: |█████-----| 45.4% Read (Sector 0x1D080 of 0x40000, 04s left) 13.94 MB/s Progress: |█████-----| 45.5% Read (Sector 0x1D180 of 0x40000, 04s left) 13.78 MB/s Progress: |█████-----| 45.6% Read (Sector 0x1D280 of 0x40000, 04s left) 14.83 MB/s Progress: |█████-----| 45.7% Read (Sector 0x1D380 of 0x40000, 04s left) 14.48 MB/s Progress: |█████-----| 45.8% Read (Sector 0x1D480 of 0x40000, 04s left) 14.94 MB/s Progress: |█████-----| 45.9% Read (Sector 0x1D5A0 of 0x40000, 04s left) 15.42 MB/s Progress: |█████-----| 46.0% Read (Sector 0x1D6A0 of 0x40000, 04s left) 13.52 MB/s Progress: |█████-----| 46.1% Read (Sector 0x1D7A0 of 0x40000, 04s left) 14.75 MB/s Progress: |█████-----| 46.2% Read (Sector 0x1D8A0 of 0x40000, 04s left) 15.31 MB/s Progress: |█████-----| 46.3% Read (Sector 0x1D9A0 of 0x40000, 04s left) 15.10 MB/s Progress: |█████-----| 46.4% Read (Sector 0x1DAA0 of 0x40000, 04s left) 14.34 MB/s Progress: |█████-----| 46.5% Read (Sector 0x1DBC0 of 0x40000, 04s left) 11.17 MB/s Progress: |█████-----| 46.6% Read (Sector 0x1DCC0 of 0x40000, 04s left) 15.44 MB/s Progress: |█████-----| 46.7% Read (Sector 0x1DDC0 of 0x40000, 04s left) 15.32 MB/s Progress: |█████-----| 46.8% Read (Sector 0x1DEC0 of 0x40000, 04s left) 14.87 MB/s Progress: |█████-----| 46.9% Read (Sector 0x1DFC0 of 0x40000, 04s left) 15.15 MB/s Progress: |█████-----| 47.0% Read (Sector 0x1E0E0 of 0x40000, 04s left) 15.40 MB/s Progress: |█████-----| 47.1% Read (Sector 0x1E1E0 of 0x40000, 04s left) 14.77 MB/s Progress: |█████-----| 47.2% Read (Sector 0x1E2E0 of 0x40000, 04s left) 13.31 MB/s Progress: |█████-----| 47.3% Read (Sector 0x1E3E0 of 0x40000, 04s left) 14.24 MB/s Progress: |█████-----| 47.4% Read (Sector 0x1E4E0 of 0x40000, 04s left) 15.27 MB/s Progress: |█████-----| 47.5% Read (Sector 0x1E600 of 0x40000, 04s left) 14.29 MB/s Progress: |█████-----| 47.6% Read (Sector 0x1E700 of 0x40000, 04s left) 15.24 MB/s Progress: |█████-----| 47.7% Read (Sector 0x1E800 of 0x40000, 04s left) 14.61 MB/s Progress: |█████-----| 47.8% Read (Sector 0x1E900 of 0x40000, 04s left) 14.97 MB/s Progress: |█████-----| 47.9% Read (Sector 0x1EA00 of 0x40000, 04s left) 14.77 MB/s Progress: |█████-----| 48.0% Read (Sector 0x1EB20 of 0x40000, 04s left) 11.88 MB/s Progress: |█████-----| 48.1% Read (Sector 0x1EC20 of 0x40000, 04s left) 15.06 MB/s Progress: |█████-----| 48.2% Read (Sector 0x1ED20 of 0x40000, 04s left) 15.69 MB/s Progress: |█████-----| 48.3% Read (Sector 0x1EE20 of 0x40000, 04s left) 14.22 MB/s Progress: |█████-----| 48.4% Read (Sector 0x1EF20 of 0x40000, 04s left) 10.85 MB/s Progress: |█████-----| 48.5% Read (Sector 0x1F040 of 0x40000, 04s left) 14.75 MB/s Progress: |█████-----| 48.6% Read (Sector 0x1F140 of 0x40000, 04s left) 13.88 MB/s Progress: |█████-----| 48.7% Read (Sector 0x1F240 of 0x40000, 04s left) 14.47 MB/s Progress: |█████-----| 48.8% Read (Sector 0x1F340 of 0x40000, 04s left) 15.04 MB/s Progress: |█████-----| 48.9% Read (Sector 0x1F440 of 0x40000, 04s left) 14.39 MB/s Progress: |█████-----| 49.0% Read (Sector 0x1F540 of 0x40000, 04s left) 12.47 MB/s Progress: |█████-----| 49.1% Read (Sector 0x1F660 of 0x40000, 04s left) 15.08 MB/s Progress: |█████-----| 49.2% Read (Sector 0x1F760 of 0x40000, 04s left) 15.64 MB/s Progress: |█████-----| 49.3% Read (Sector 0x1F860 of 0x40000, 04s left) 15.23 MB/s Progress: |█████-----| 49.4% Read (Sector 0x1F960 of 0x40000, 04s left) 14.69 MB/s Progress: |█████-----| 49.5% Read (Sector 0x1FA60 of 0x40000, 04s left) 15.54 MB/s Progress: |█████-----| 49.6% Read (Sector 0x1FB80 of 0x40000, 04s left) 15.27 MB/s Progress: |█████-----| 49.7% Read (Sector 0x1FC80 of 0x40000, 04s left) 13.45 MB/s Progress: |█████-----| 49.8% Read (Sector 0x1FD80 of 0x40000, 04s left) 15.10 MB/s Progress: |█████-----| 49.9% Read (Sector 0x1FE80 of 0x40000, 04s left) 15.25 MB/s Progress: |█████-----| 50.0% Read (Sector 0x1FF80 of 0x40000, 04s left) 15.19 MB/s Progress: |█████-----| 50.1% Read (Sector 0x200A0 of 0x40000, 04s left) 15.90 MB/s Progress: |█████-----| 50.2% Read (Sector 0x201A0 of 0x40000, 04s left) 15.31 MB/s Progress: |█████-----| 50.3% Read (Sector 0x202A0 of 0x40000, 04s left) 13.51 MB/s Progress: |█████-----| 50.4% Read (Sector 0x203A0 of 0x40000, 04s left) 15.00 MB/s Progress: |█████-----| 50.5% Read (Sector 0x204A0 of 0x40000, 04s left) 14.84 MB/s Progress: |█████-----| 50.6% Read (Sector 0x205C0 of 0x40000, 04s left) 13.11 MB/s Progress: |█████-----| 50.7% Read (Sector 0x206C0 of 0x40000, 04s left) 14.88 MB/s Progress: |█████-----| 50.8% Read (Sector 0x207C0 of 0x40000, 04s left) 13.67 MB/s Progress: |█████-----| 50.9% Read (Sector 0x208C0 of 0x40000, 04s left) 14.39 MB/s Progress: |█████-----| 51.0% Read (Sector 0x209C0 of 0x40000, 04s left) 14.01 MB/s Progress: |█████-----| 51.1% Read (Sector 0x20AE0 of 0x40000, 04s left) 13.98 MB/s Progress: |█████-----| 51.2% Read (Sector 0x20BE0 of 0x40000, 04s left) 15.22 MB/s Progress: |█████-----| 51.3% Read (Sector 0x20CE0 of 0x40000, 04s left) 15.08 MB/s Progress: |█████-----| 51.4% Read (Sector 0x20DE0 of 0x40000, 04s left) 15.03 MB/s Progress: |█████-----| 51.5% Read (Sector 0x20EE0 of 0x40000, 04s left) 15.22 MB/s Progress: |█████-----| 51.6% Read (Sector 0x20FE0 of 0x40000, 04s left) 15.09 MB/s Progress: |█████-----| 51.7% Read (Sector 0x21100 of 0x40000, 04s left) 15.47 MB/s Progress: |█████-----| 51.8% Read (Sector 0x21200 of 0x40000, 04s left) 15.20 MB/s Progress: |█████-----| 51.9% Read (Sector 0x21300 of 0x40000, 04s left) 15.08 MB/s Progress: |█████-----| 52.0% Read (Sector 0x21400 of 0x40000, 04s left) 14.81 MB/s Progress: |█████-----| 52.1% Read (Sector 0x21500 of 0x40000, 04s left) 14.83 MB/s Progress: |█████-----| 52.2% Read (Sector 0x21620 of 0x40000, 04s left) 12.75 MB/s Progress: |█████-----| 52.3% Read (Sector 0x21720 of 0x40000, 04s left) 14.39 MB/s Progress: |█████-----| 52.4% Read (Sector 0x21820 of 0x40000, 04s left) 14.93 MB/s Progress: |█████-----| 52.5% Read (Sector 0x21920 of 0x40000, 04s left) 14.81 MB/s Progress: |█████-----| 52.6% Read (Sector 0x21A20 of 0x40000, 04s left) 15.13 MB/s Progress: |█████-----| 52.7% Read (Sector 0x21B40 of 0x40000, 04s left) 14.03 MB/s Progress: |█████-----| 52.8% Read (Sector 0x21C40 of 0x40000, 04s left) 15.29 MB/s Progress: |█████-----| 52.9% Read (Sector 0x21D40 of 0x40000, 04s left) 15.38 MB/s Progress: |█████-----| 53.0% Read (Sector 0x21E40 of 0x40000, 04s left) 14.47 MB/s Progress: |█████-----| 53.1% Read (Sector 0x21F40 of 0x40000, 04s left) 11.81 MB/s Progress: |█████-----| 53.2% Read (Sector 0x22060 of 0x40000, 03s left) 13.32 MB/s Progress: |█████-----| 53.3% Read (Sector 0x22160 of 0x40000, 03s left) 15.35 MB/s Progress: |█████-----| 53.4% Read (Sector 0x22260 of 0x40000, 03s left) 13.77 MB/s Progress: |█████-----| 53.5% Read (Sector 0x22360 of 0x40000, 03s left) 10.98 MB/s Progress: |█████-----| 53.6% Read (Sector 0x22460 of 0x40000, 03s left) 14.97 MB/s Progress: |█████-----| 53.7% Read (Sector 0x22580 of 0x40000, 03s left) 15.20 MB/s Progress: |█████-----| 53.8% Read (Sector 0x22680 of 0x40000, 03s left) 15.16 MB/s Progress: |█████-----| 53.9% Read (Sector 0x22780 of 0x40000, 03s left) 14.84 MB/s Progress: |█████-----| 54.0% Read (Sector 0x22880 of 0x40000, 03s left) 15.24 MB/s Progress: |█████-----| 54.1% Read (Sector 0x22980 of 0x40000, 03s left) 15.50 MB/s Progress: |█████-----| 54.2% Read (Sector 0x22A80 of 0x40000, 03s left) 14.69 MB/s Progress: |█████-----| 54.3% Read (Sector 0x22BA0 of 0x40000, 03s left) 15.22 MB/s Progress: |█████-----| 54.4% Read (Sector 0x22CA0 of 0x40000, 03s left) 14.93 MB/s Progress: |█████-----| 54.5% Read (Sector 0x22DA0 of 0x40000, 03s left) 15.50 MB/s Progress: |█████-----| 54.6% Read (Sector 0x22EA0 of 0x40000, 03s left) 13.69 MB/s Progress: |█████-----| 54.7% Read (Sector 0x22FA0 of 0x40000, 03s left) 14.99 MB/s Progress: |█████-----| 54.8% Read (Sector 0x230C0 of 0x40000, 03s left) 15.32 MB/s Progress: |█████-----| 54.9% Read (Sector 0x231C0 of 0x40000, 03s left) 14.98 MB/s Progress: |██████----| 55.0% Read (Sector 0x232C0 of 0x40000, 03s left) 11.31 MB/s Progress: |██████----| 55.1% Read (Sector 0x233C0 of 0x40000, 03s left) 15.04 MB/s Progress: |██████----| 55.2% Read (Sector 0x234C0 of 0x40000, 03s left) 15.36 MB/s Progress: |██████----| 55.3% Read (Sector 0x235E0 of 0x40000, 03s left) 15.23 MB/s Progress: |██████----| 55.4% Read (Sector 0x236E0 of 0x40000, 03s left) 12.68 MB/s Progress: |██████----| 55.5% Read (Sector 0x237E0 of 0x40000, 03s left) 12.37 MB/s Progress: |██████----| 55.6% Read (Sector 0x238E0 of 0x40000, 03s left) 15.49 MB/s Progress: |██████----| 55.7% Read (Sector 0x239E0 of 0x40000, 03s left) 15.04 MB/s Progress: |██████----| 55.8% Read (Sector 0x23B00 of 0x40000, 03s left) 14.92 MB/s Progress: |██████----| 55.9% Read (Sector 0x23C00 of 0x40000, 03s left) 14.87 MB/s Progress: |██████----| 56.0% Read (Sector 0x23D00 of 0x40000, 03s left) 14.41 MB/s Progress: |██████----| 56.1% Read (Sector 0x23E00 of 0x40000, 03s left) 15.27 MB/s Progress: |██████----| 56.2% Read (Sector 0x23F00 of 0x40000, 03s left) 13.23 MB/s Progress: |██████----| 56.3% Read (Sector 0x24020 of 0x40000, 03s left) 15.06 MB/s Progress: |██████----| 56.4% Read (Sector 0x24120 of 0x40000, 03s left) 15.08 MB/s Progress: |██████----| 56.5% Read (Sector 0x24220 of 0x40000, 03s left) 14.62 MB/s Progress: |██████----| 56.6% Read (Sector 0x24320 of 0x40000, 03s left) 11.84 MB/s Progress: |██████----| 56.7% Read (Sector 0x24420 of 0x40000, 03s left) 13.51 MB/s Progress: |██████----| 56.8% Read (Sector 0x24520 of 0x40000, 03s left) 14.66 MB/s Progress: |██████----| 56.9% Read (Sector 0x24640 of 0x40000, 03s left) 14.45 MB/s Progress: |██████----| 57.0% Read (Sector 0x24740 of 0x40000, 03s left) 12.63 MB/s Progress: |██████----| 57.1% Read (Sector 0x24840 of 0x40000, 03s left) 15.19 MB/s Progress: |██████----| 57.2% Read (Sector 0x24940 of 0x40000, 03s left) 14.58 MB/s Progress: |██████----| 57.3% Read (Sector 0x24A40 of 0x40000, 03s left) 13.64 MB/s Progress: |██████----| 57.4% Read (Sector 0x24B60 of 0x40000, 03s left) 14.32 MB/s Progress: |██████----| 57.5% Read (Sector 0x24C60 of 0x40000, 03s left) 13.70 MB/s Progress: |██████----| 57.6% Read (Sector 0x24D60 of 0x40000, 03s left) 15.17 MB/s Progress: |██████----| 57.7% Read (Sector 0x24E60 of 0x40000, 03s left) 14.96 MB/s Progress: |██████----| 57.8% Read (Sector 0x24F60 of 0x40000, 03s left) 9.98 MB/s Progress: |██████----| 57.9% Read (Sector 0x25080 of 0x40000, 03s left) 15.11 MB/s Progress: |██████----| 58.0% Read (Sector 0x25180 of 0x40000, 03s left) 14.88 MB/s Progress: |██████----| 58.1% Read (Sector 0x25280 of 0x40000, 03s left) 12.95 MB/s Progress: |██████----| 58.2% Read (Sector 0x25380 of 0x40000, 03s left) 11.21 MB/s Progress: |██████----| 58.3% Read (Sector 0x25480 of 0x40000, 03s left) 14.53 MB/s Progress: |██████----| 58.4% Read (Sector 0x255A0 of 0x40000, 03s left) 13.95 MB/s Progress: |██████----| 58.5% Read (Sector 0x256A0 of 0x40000, 03s left) 15.44 MB/s Progress: |██████----| 58.6% Read (Sector 0x257A0 of 0x40000, 03s left) 15.26 MB/s Progress: |██████----| 58.7% Read (Sector 0x258A0 of 0x40000, 03s left) 14.63 MB/s Progress: |██████----| 58.8% Read (Sector 0x259A0 of 0x40000, 03s left) 14.22 MB/s Progress: |██████----| 58.9% Read (Sector 0x25AA0 of 0x40000, 03s left) 15.01 MB/s Progress: |██████----| 59.0% Read (Sector 0x25BC0 of 0x40000, 03s left) 15.07 MB/s Progress: |██████----| 59.1% Read (Sector 0x25CC0 of 0x40000, 03s left) 15.04 MB/s Progress: |██████----| 59.2% Read (Sector 0x25DC0 of 0x40000, 03s left) 14.26 MB/s Progress: |██████----| 59.3% Read (Sector 0x25EC0 of 0x40000, 03s left) 14.74 MB/s Progress: |██████----| 59.4% Read (Sector 0x25FC0 of 0x40000, 03s left) 14.75 MB/s Progress: |██████----| 59.5% Read (Sector 0x260E0 of 0x40000, 03s left) 14.72 MB/s Progress: |██████----| 59.6% Read (Sector 0x261E0 of 0x40000, 03s left) 15.12 MB/s Progress: |██████----| 59.7% Read (Sector 0x262E0 of 0x40000, 03s left) 14.96 MB/s Progress: |██████----| 59.8% Read (Sector 0x263E0 of 0x40000, 03s left) 15.65 MB/s Progress: |██████----| 59.9% Read (Sector 0x264E0 of 0x40000, 03s left) 15.21 MB/s Progress: |██████----| 60.0% Read (Sector 0x26600 of 0x40000, 03s left) 14.79 MB/s Progress: |██████----| 60.1% Read (Sector 0x26700 of 0x40000, 03s left) 14.14 MB/s Progress: |██████----| 60.2% Read (Sector 0x26800 of 0x40000, 03s left) 13.33 MB/s Progress: |██████----| 60.3% Read (Sector 0x26900 of 0x40000, 03s left) 14.25 MB/s Progress: |██████----| 60.4% Read (Sector 0x26A00 of 0x40000, 03s left) 14.87 MB/s Progress: |██████----| 60.5% Read (Sector 0x26B20 of 0x40000, 03s left) 14.47 MB/s Progress: |██████----| 60.6% Read (Sector 0x26C20 of 0x40000, 03s left) 14.62 MB/s Progress: |██████----| 60.7% Read (Sector 0x26D20 of 0x40000, 03s left) 15.26 MB/s Progress: |██████----| 60.8% Read (Sector 0x26E20 of 0x40000, 03s left) 15.10 MB/s Progress: |██████----| 60.9% Read (Sector 0x26F20 of 0x40000, 03s left) 15.49 MB/s Progress: |██████----| 61.0% Read (Sector 0x27040 of 0x40000, 03s left) 15.43 MB/s Progress: |██████----| 61.1% Read (Sector 0x27140 of 0x40000, 03s left) 15.60 MB/s Progress: |██████----| 61.2% Read (Sector 0x27240 of 0x40000, 03s left) 15.22 MB/s Progress: |██████----| 61.3% Read (Sector 0x27340 of 0x40000, 03s left) 15.27 MB/s Progress: |██████----| 61.4% Read (Sector 0x27440 of 0x40000, 03s left) 15.00 MB/s Progress: |██████----| 61.5% Read (Sector 0x27540 of 0x40000, 03s left) 15.23 MB/s Progress: |██████----| 61.6% Read (Sector 0x27660 of 0x40000, 03s left) 14.08 MB/s Progress: |██████----| 61.7% Read (Sector 0x27760 of 0x40000, 03s left) 14.39 MB/s Progress: |██████----| 61.8% Read (Sector 0x27860 of 0x40000, 03s left) 15.15 MB/s Progress: |██████----| 61.9% Read (Sector 0x27960 of 0x40000, 03s left) 15.08 MB/s Progress: |██████----| 62.0% Read (Sector 0x27A60 of 0x40000, 03s left) 15.37 MB/s Progress: |██████----| 62.1% Read (Sector 0x27B80 of 0x40000, 03s left) 15.36 MB/s Progress: |██████----| 62.2% Read (Sector 0x27C80 of 0x40000, 03s left) 15.53 MB/s Progress: |██████----| 62.3% Read (Sector 0x27D80 of 0x40000, 03s left) 15.11 MB/s Progress: |██████----| 62.4% Read (Sector 0x27E80 of 0x40000, 03s left) 13.54 MB/s Progress: |██████----| 62.5% Read (Sector 0x27F80 of 0x40000, 03s left) 11.05 MB/s Progress: |██████----| 62.6% Read (Sector 0x280A0 of 0x40000, 03s left) 14.72 MB/s Progress: |██████----| 62.7% Read (Sector 0x281A0 of 0x40000, 03s left) 13.80 MB/s Progress: |██████----| 62.8% Read (Sector 0x282A0 of 0x40000, 03s left) 13.48 MB/s Progress: |██████----| 62.9% Read (Sector 0x283A0 of 0x40000, 03s left) 15.26 MB/s Progress: |██████----| 63.0% Read (Sector 0x284A0 of 0x40000, 03s left) 13.62 MB/s Progress: |██████----| 63.1% Read (Sector 0x285C0 of 0x40000, 03s left) 14.16 MB/s Progress: |██████----| 63.2% Read (Sector 0x286C0 of 0x40000, 03s left) 14.89 MB/s Progress: |██████----| 63.3% Read (Sector 0x287C0 of 0x40000, 03s left) 15.07 MB/s Progress: |██████----| 63.4% Read (Sector 0x288C0 of 0x40000, 03s left) 12.12 MB/s Progress: |██████----| 63.5% Read (Sector 0x289C0 of 0x40000, 03s left) 14.72 MB/s Progress: |██████----| 63.6% Read (Sector 0x28AE0 of 0x40000, 03s left) 14.99 MB/s Progress: |██████----| 63.7% Read (Sector 0x28BE0 of 0x40000, 03s left) 15.45 MB/s Progress: |██████----| 63.8% Read (Sector 0x28CE0 of 0x40000, 03s left) 15.16 MB/s Progress: |██████----| 63.9% Read (Sector 0x28DE0 of 0x40000, 03s left) 13.72 MB/s Progress: |██████----| 64.0% Read (Sector 0x28EE0 of 0x40000, 03s left) 12.99 MB/s Progress: |██████----| 64.1% Read (Sector 0x28FE0 of 0x40000, 03s left) 15.51 MB/s Progress: |██████----| 64.2% Read (Sector 0x29100 of 0x40000, 03s left) 15.42 MB/s Progress: |██████----| 64.3% Read (Sector 0x29200 of 0x40000, 03s left) 15.57 MB/s Progress: |██████----| 64.4% Read (Sector 0x29300 of 0x40000, 03s left) 12.29 MB/s Progress: |██████----| 64.5% Read (Sector 0x29400 of 0x40000, 03s left) 14.70 MB/s Progress: |██████----| 64.6% Read (Sector 0x29500 of 0x40000, 03s left) 15.29 MB/s Progress: |██████----| 64.7% Read (Sector 0x29620 of 0x40000, 03s left) 14.54 MB/s Progress: |██████----| 64.8% Read (Sector 0x29720 of 0x40000, 03s left) 15.25 MB/s Progress: |██████----| 64.9% Read (Sector 0x29820 of 0x40000, 03s left) 14.12 MB/s Progress: |██████----| 65.0% Read (Sector 0x29920 of 0x40000, 03s left) 14.45 MB/s Progress: |███████---| 65.1% Read (Sector 0x29A20 of 0x40000, 03s left) 15.39 MB/s Progress: |███████---| 65.2% Read (Sector 0x29B40 of 0x40000, 02s left) 14.88 MB/s Progress: |███████---| 65.3% Read (Sector 0x29C40 of 0x40000, 02s left) 14.82 MB/s Progress: |███████---| 65.4% Read (Sector 0x29D40 of 0x40000, 02s left) 14.55 MB/s Progress: |███████---| 65.5% Read (Sector 0x29E40 of 0x40000, 02s left) 14.61 MB/s Progress: |███████---| 65.6% Read (Sector 0x29F40 of 0x40000, 02s left) 15.33 MB/s Progress: |███████---| 65.7% Read (Sector 0x2A060 of 0x40000, 02s left) 15.43 MB/s Progress: |███████---| 65.8% Read (Sector 0x2A160 of 0x40000, 02s left) 15.04 MB/s Progress: |███████---| 65.9% Read (Sector 0x2A260 of 0x40000, 02s left) 14.92 MB/s Progress: |███████---| 66.0% Read (Sector 0x2A360 of 0x40000, 02s left) 15.12 MB/s Progress: |███████---| 66.1% Read (Sector 0x2A460 of 0x40000, 02s left) 14.74 MB/s Progress: |███████---| 66.2% Read (Sector 0x2A580 of 0x40000, 02s left) 14.30 MB/s Progress: |███████---| 66.3% Read (Sector 0x2A680 of 0x40000, 02s left) 13.58 MB/s Progress: |███████---| 66.4% Read (Sector 0x2A780 of 0x40000, 02s left) 15.52 MB/s Progress: |███████---| 66.5% Read (Sector 0x2A880 of 0x40000, 02s left) 15.16 MB/s Progress: |███████---| 66.6% Read (Sector 0x2A980 of 0x40000, 02s left) 15.33 MB/s Progress: |███████---| 66.7% Read (Sector 0x2AA80 of 0x40000, 02s left) 15.29 MB/s Progress: |███████---| 66.8% Read (Sector 0x2ABA0 of 0x40000, 02s left) 12.51 MB/s Progress: |███████---| 66.9% Read (Sector 0x2ACA0 of 0x40000, 02s left) 14.03 MB/s Progress: |███████---| 67.0% Read (Sector 0x2ADA0 of 0x40000, 02s left) 15.38 MB/s Progress: |███████---| 67.1% Read (Sector 0x2AEA0 of 0x40000, 02s left) 15.19 MB/s Progress: |███████---| 67.2% Read (Sector 0x2AFA0 of 0x40000, 02s left) 14.98 MB/s Progress: |███████---| 67.3% Read (Sector 0x2B0C0 of 0x40000, 02s left) 14.26 MB/s Progress: |███████---| 67.4% Read (Sector 0x2B1C0 of 0x40000, 02s left) 14.46 MB/s Progress: |███████---| 67.5% Read (Sector 0x2B2C0 of 0x40000, 02s left) 15.02 MB/s Progress: |███████---| 67.6% Read (Sector 0x2B3C0 of 0x40000, 02s left) 14.73 MB/s Progress: |███████---| 67.7% Read (Sector 0x2B4C0 of 0x40000, 02s left) 15.39 MB/s Progress: |███████---| 67.8% Read (Sector 0x2B5E0 of 0x40000, 02s left) 14.63 MB/s Progress: |███████---| 67.9% Read (Sector 0x2B6E0 of 0x40000, 02s left) 13.95 MB/s Progress: |███████---| 68.0% Read (Sector 0x2B7E0 of 0x40000, 02s left) 14.52 MB/s Progress: |███████---| 68.1% Read (Sector 0x2B8E0 of 0x40000, 02s left) 15.16 MB/s Progress: |███████---| 68.2% Read (Sector 0x2B9E0 of 0x40000, 02s left) 14.92 MB/s Progress: |███████---| 68.3% Read (Sector 0x2BB00 of 0x40000, 02s left) 14.68 MB/s Progress: |███████---| 68.4% Read (Sector 0x2BC00 of 0x40000, 02s left) 14.85 MB/s Progress: |███████---| 68.5% Read (Sector 0x2BD00 of 0x40000, 02s left) 14.11 MB/s Progress: |███████---| 68.6% Read (Sector 0x2BE00 of 0x40000, 02s left) 12.91 MB/s Progress: |███████---| 68.7% Read (Sector 0x2BF00 of 0x40000, 02s left) 15.06 MB/s Progress: |███████---| 68.8% Read (Sector 0x2C000 of 0x40000, 02s left) 14.95 MB/s Progress: |███████---| 68.9% Read (Sector 0x2C120 of 0x40000, 02s left) 15.18 MB/s Progress: |███████---| 69.0% Read (Sector 0x2C220 of 0x40000, 02s left) 13.84 MB/s Progress: |███████---| 69.1% Read (Sector 0x2C320 of 0x40000, 02s left) 12.09 MB/s Progress: |███████---| 69.2% Read (Sector 0x2C420 of 0x40000, 02s left) 12.25 MB/s Progress: |███████---| 69.3% Read (Sector 0x2C520 of 0x40000, 02s left) 14.89 MB/s Progress: |███████---| 69.4% Read (Sector 0x2C640 of 0x40000, 02s left) 13.16 MB/s Progress: |███████---| 69.5% Read (Sector 0x2C740 of 0x40000, 02s left) 12.44 MB/s Progress: |███████---| 69.6% Read (Sector 0x2C840 of 0x40000, 02s left) 11.70 MB/s Progress: |███████---| 69.7% Read (Sector 0x2C940 of 0x40000, 02s left) 15.15 MB/s Progress: |███████---| 69.8% Read (Sector 0x2CA40 of 0x40000, 02s left) 15.64 MB/s Progress: |███████---| 69.9% Read (Sector 0x2CB60 of 0x40000, 02s left) 15.36 MB/s Progress: |███████---| 70.0% Read (Sector 0x2CC60 of 0x40000, 02s left) 15.14 MB/s Progress: |███████---| 70.1% Read (Sector 0x2CD60 of 0x40000, 02s left) 13.38 MB/s Progress: |███████---| 70.2% Read (Sector 0x2CE60 of 0x40000, 02s left) 14.29 MB/s Progress: |███████---| 70.3% Read (Sector 0x2CF60 of 0x40000, 02s left) 14.96 MB/s Progress: |███████---| 70.4% Read (Sector 0x2D080 of 0x40000, 02s left) 15.17 MB/s Progress: |███████---| 70.5% Read (Sector 0x2D180 of 0x40000, 02s left) 14.64 MB/s Progress: |███████---| 70.6% Read (Sector 0x2D280 of 0x40000, 02s left) 14.30 MB/s Progress: |███████---| 70.7% Read (Sector 0x2D380 of 0x40000, 02s left) 15.10 MB/s Progress: |███████---| 70.8% Read (Sector 0x2D480 of 0x40000, 02s left) 15.07 MB/s Progress: |███████---| 70.9% Read (Sector 0x2D5A0 of 0x40000, 02s left) 15.31 MB/s Progress: |███████---| 71.0% Read (Sector 0x2D6A0 of 0x40000, 02s left) 15.21 MB/s Progress: |███████---| 71.1% Read (Sector 0x2D7A0 of 0x40000, 02s left) 15.12 MB/s Progress: |███████---| 71.2% Read (Sector 0x2D8A0 of 0x40000, 02s left) 15.22 MB/s Progress: |███████---| 71.3% Read (Sector 0x2D9A0 of 0x40000, 02s left) 14.91 MB/s Progress: |███████---| 71.4% Read (Sector 0x2DAA0 of 0x40000, 02s left) 14.65 MB/s Progress: |███████---| 71.5% Read (Sector 0x2DBC0 of 0x40000, 02s left) 14.70 MB/s Progress: |███████---| 71.6% Read (Sector 0x2DCC0 of 0x40000, 02s left) 14.50 MB/s Progress: |███████---| 71.7% Read (Sector 0x2DDC0 of 0x40000, 02s left) 14.20 MB/s Progress: |███████---| 71.8% Read (Sector 0x2DEC0 of 0x40000, 02s left) 14.43 MB/s Progress: |███████---| 71.9% Read (Sector 0x2DFC0 of 0x40000, 02s left) 15.44 MB/s Progress: |███████---| 72.0% Read (Sector 0x2E0E0 of 0x40000, 02s left) 13.69 MB/s Progress: |███████---| 72.1% Read (Sector 0x2E1E0 of 0x40000, 02s left) 14.34 MB/s Progress: |███████---| 72.2% Read (Sector 0x2E2E0 of 0x40000, 02s left) 14.81 MB/s Progress: |███████---| 72.3% Read (Sector 0x2E3E0 of 0x40000, 02s left) 15.26 MB/s Progress: |███████---| 72.4% Read (Sector 0x2E4E0 of 0x40000, 02s left) 15.39 MB/s Progress: |███████---| 72.5% Read (Sector 0x2E600 of 0x40000, 02s left) 15.30 MB/s Progress: |███████---| 72.6% Read (Sector 0x2E700 of 0x40000, 02s left) 15.03 MB/s Progress: |███████---| 72.7% Read (Sector 0x2E800 of 0x40000, 02s left) 15.34 MB/s Progress: |███████---| 72.8% Read (Sector 0x2E900 of 0x40000, 02s left) 15.23 MB/s Progress: |███████---| 72.9% Read (Sector 0x2EA00 of 0x40000, 02s left) 14.76 MB/s Progress: |███████---| 73.0% Read (Sector 0x2EB20 of 0x40000, 02s left) 14.62 MB/s Progress: |███████---| 73.1% Read (Sector 0x2EC20 of 0x40000, 02s left) 15.29 MB/s Progress: |███████---| 73.2% Read (Sector 0x2ED20 of 0x40000, 02s left) 14.95 MB/s Progress: |███████---| 73.3% Read (Sector 0x2EE20 of 0x40000, 02s left) 15.23 MB/s Progress: |███████---| 73.4% Read (Sector 0x2EF20 of 0x40000, 02s left) 14.84 MB/s Progress: |███████---| 73.5% Read (Sector 0x2F040 of 0x40000, 02s left) 15.22 MB/s Progress: |███████---| 73.6% Read (Sector 0x2F140 of 0x40000, 02s left) 15.30 MB/s Progress: |███████---| 73.7% Read (Sector 0x2F240 of 0x40000, 02s left) 15.05 MB/s Progress: |███████---| 73.8% Read (Sector 0x2F340 of 0x40000, 02s left) 14.16 MB/s Progress: |███████---| 73.9% Read (Sector 0x2F440 of 0x40000, 02s left) 14.07 MB/s Progress: |███████---| 74.0% Read (Sector 0x2F540 of 0x40000, 02s left) 15.29 MB/s Progress: |███████---| 74.1% Read (Sector 0x2F660 of 0x40000, 02s left) 14.77 MB/s Progress: |███████---| 74.2% Read (Sector 0x2F760 of 0x40000, 02s left) 14.40 MB/s Progress: |███████---| 74.3% Read (Sector 0x2F860 of 0x40000, 02s left) 15.68 MB/s Progress: |███████---| 74.4% Read (Sector 0x2F960 of 0x40000, 02s left) 15.15 MB/s Progress: |███████---| 74.5% Read (Sector 0x2FA60 of 0x40000, 02s left) 14.65 MB/s Progress: |███████---| 74.6% Read (Sector 0x2FB80 of 0x40000, 02s left) 15.06 MB/s Progress: |███████---| 74.7% Read (Sector 0x2FC80 of 0x40000, 02s left) 15.47 MB/s Progress: |███████---| 74.8% Read (Sector 0x2FD80 of 0x40000, 02s left) 14.73 MB/s Progress: |███████---| 74.9% Read (Sector 0x2FE80 of 0x40000, 02s left) 14.60 MB/s Progress: |████████--| 75.0% Read (Sector 0x2FF80 of 0x40000, 02s left) 15.49 MB/s Progress: |████████--| 75.1% Read (Sector 0x300A0 of 0x40000, 02s left) 15.12 MB/s Progress: |████████--| 75.2% Read (Sector 0x301A0 of 0x40000, 02s left) 13.90 MB/s Progress: |████████--| 75.3% Read (Sector 0x302A0 of 0x40000, 02s left) 12.57 MB/s Progress: |████████--| 75.4% Read (Sector 0x303A0 of 0x40000, 02s left) 11.03 MB/s Progress: |████████--| 75.5% Read (Sector 0x304A0 of 0x40000, 02s left) 12.18 MB/s Progress: |████████--| 75.6% Read (Sector 0x305C0 of 0x40000, 02s left) 13.63 MB/s Progress: |████████--| 75.7% Read (Sector 0x306C0 of 0x40000, 02s left) 15.04 MB/s Progress: |████████--| 75.8% Read (Sector 0x307C0 of 0x40000, 02s left) 14.43 MB/s Progress: |████████--| 75.9% Read (Sector 0x308C0 of 0x40000, 02s left) 14.74 MB/s Progress: |████████--| 76.0% Read (Sector 0x309C0 of 0x40000, 02s left) 14.53 MB/s Progress: |████████--| 76.1% Read (Sector 0x30AE0 of 0x40000, 02s left) 14.62 MB/s Progress: |████████--| 76.2% Read (Sector 0x30BE0 of 0x40000, 02s left) 12.92 MB/s Progress: |████████--| 76.3% Read (Sector 0x30CE0 of 0x40000, 02s left) 12.81 MB/s Progress: |████████--| 76.4% Read (Sector 0x30DE0 of 0x40000, 02s left) 14.07 MB/s Progress: |████████--| 76.5% Read (Sector 0x30EE0 of 0x40000, 02s left) 15.07 MB/s Progress: |████████--| 76.6% Read (Sector 0x30FE0 of 0x40000, 02s left) 15.13 MB/s Progress: |████████--| 76.7% Read (Sector 0x31100 of 0x40000, 02s left) 14.70 MB/s Progress: |████████--| 76.8% Read (Sector 0x31200 of 0x40000, 02s left) 14.86 MB/s Progress: |████████--| 76.9% Read (Sector 0x31300 of 0x40000, 01s left) 15.15 MB/s Progress: |████████--| 77.0% Read (Sector 0x31400 of 0x40000, 01s left) 15.32 MB/s Progress: |████████--| 77.1% Read (Sector 0x31500 of 0x40000, 01s left) 14.83 MB/s Progress: |████████--| 77.2% Read (Sector 0x31620 of 0x40000, 01s left) 15.40 MB/s Progress: |████████--| 77.3% Read (Sector 0x31720 of 0x40000, 01s left) 15.30 MB/s Progress: |████████--| 77.4% Read (Sector 0x31820 of 0x40000, 01s left) 14.93 MB/s Progress: |████████--| 77.5% Read (Sector 0x31920 of 0x40000, 01s left) 14.15 MB/s Progress: |████████--| 77.6% Read (Sector 0x31A20 of 0x40000, 01s left) 14.86 MB/s Progress: |████████--| 77.7% Read (Sector 0x31B40 of 0x40000, 01s left) 11.72 MB/s Progress: |████████--| 77.8% Read (Sector 0x31C40 of 0x40000, 01s left) 15.14 MB/s Progress: |████████--| 77.9% Read (Sector 0x31D40 of 0x40000, 01s left) 15.32 MB/s Progress: |████████--| 78.0% Read (Sector 0x31E40 of 0x40000, 01s left) 15.64 MB/s Progress: |████████--| 78.1% Read (Sector 0x31F40 of 0x40000, 01s left) 14.92 MB/s Progress: |████████--| 78.2% Read (Sector 0x32060 of 0x40000, 01s left) 14.33 MB/s Progress: |████████--| 78.3% Read (Sector 0x32160 of 0x40000, 01s left) 15.45 MB/s Progress: |████████--| 78.4% Read (Sector 0x32260 of 0x40000, 01s left) 15.33 MB/s Progress: |████████--| 78.5% Read (Sector 0x32360 of 0x40000, 01s left) 14.97 MB/s Progress: |████████--| 78.6% Read (Sector 0x32460 of 0x40000, 01s left) 13.72 MB/s Progress: |████████--| 78.7% Read (Sector 0x32580 of 0x40000, 01s left) 13.40 MB/s Progress: |████████--| 78.8% Read (Sector 0x32680 of 0x40000, 01s left) 15.23 MB/s Progress: |████████--| 78.9% Read (Sector 0x32780 of 0x40000, 01s left) 14.30 MB/s Progress: |████████--| 79.0% Read (Sector 0x32880 of 0x40000, 01s left) 15.02 MB/s Progress: |████████--| 79.1% Read (Sector 0x32980 of 0x40000, 01s left) 13.23 MB/s Progress: |████████--| 79.2% Read (Sector 0x32A80 of 0x40000, 01s left) 14.79 MB/s Progress: |████████--| 79.3% Read (Sector 0x32BA0 of 0x40000, 01s left) 15.29 MB/s Progress: |████████--| 79.4% Read (Sector 0x32CA0 of 0x40000, 01s left) 15.03 MB/s Progress: |████████--| 79.5% Read (Sector 0x32DA0 of 0x40000, 01s left) 15.73 MB/s Progress: |████████--| 79.6% Read (Sector 0x32EA0 of 0x40000, 01s left) 15.25 MB/s Progress: |████████--| 79.7% Read (Sector 0x32FA0 of 0x40000, 01s left) 14.68 MB/s Progress: |████████--| 79.8% Read (Sector 0x330C0 of 0x40000, 01s left) 14.97 MB/s Progress: |████████--| 79.9% Read (Sector 0x331C0 of 0x40000, 01s left) 14.24 MB/s Progress: |████████--| 80.0% Read (Sector 0x332C0 of 0x40000, 01s left) 14.86 MB/s Progress: |████████--| 80.1% Read (Sector 0x333C0 of 0x40000, 01s left) 14.86 MB/s Progress: |████████--| 80.2% Read (Sector 0x334C0 of 0x40000, 01s left) 15.24 MB/s Progress: |████████--| 80.3% Read (Sector 0x335E0 of 0x40000, 01s left) 15.32 MB/s Progress: |████████--| 80.4% Read (Sector 0x336E0 of 0x40000, 01s left) 15.33 MB/s Progress: |████████--| 80.5% Read (Sector 0x337E0 of 0x40000, 01s left) 14.28 MB/s Progress: |████████--| 80.6% Read (Sector 0x338E0 of 0x40000, 01s left) 12.37 MB/s Progress: |████████--| 80.7% Read (Sector 0x339E0 of 0x40000, 01s left) 15.35 MB/s Progress: |████████--| 80.8% Read (Sector 0x33B00 of 0x40000, 01s left) 14.59 MB/s Progress: |████████--| 80.9% Read (Sector 0x33C00 of 0x40000, 01s left) 14.40 MB/s Progress: |████████--| 81.0% Read (Sector 0x33D00 of 0x40000, 01s left) 14.35 MB/s Progress: |████████--| 81.1% Read (Sector 0x33E00 of 0x40000, 01s left) 15.58 MB/s Progress: |████████--| 81.2% Read (Sector 0x33F00 of 0x40000, 01s left) 15.21 MB/s Progress: |████████--| 81.3% Read (Sector 0x34020 of 0x40000, 01s left) 15.08 MB/s Progress: |████████--| 81.4% Read (Sector 0x34120 of 0x40000, 01s left) 15.39 MB/s Progress: |████████--| 81.5% Read (Sector 0x34220 of 0x40000, 01s left) 13.86 MB/s Progress: |████████--| 81.6% Read (Sector 0x34320 of 0x40000, 01s left) 12.97 MB/s Progress: |████████--| 81.7% Read (Sector 0x34420 of 0x40000, 01s left) 15.02 MB/s Progress: |████████--| 81.8% Read (Sector 0x34520 of 0x40000, 01s left) 15.22 MB/s Progress: |████████--| 81.9% Read (Sector 0x34640 of 0x40000, 01s left) 14.48 MB/s Progress: |████████--| 82.0% Read (Sector 0x34740 of 0x40000, 01s left) 12.70 MB/s Progress: |████████--| 82.1% Read (Sector 0x34840 of 0x40000, 01s left) 13.88 MB/s Progress: |████████--| 82.2% Read (Sector 0x34940 of 0x40000, 01s left) 15.39 MB/s Progress: |████████--| 82.3% Read (Sector 0x34A40 of 0x40000, 01s left) 15.54 MB/s Progress: |████████--| 82.4% Read (Sector 0x34B60 of 0x40000, 01s left) 14.58 MB/s Progress: |████████--| 82.5% Read (Sector 0x34C60 of 0x40000, 01s left) 13.76 MB/s Progress: |████████--| 82.6% Read (Sector 0x34D60 of 0x40000, 01s left) 14.92 MB/s Progress: |████████--| 82.7% Read (Sector 0x34E60 of 0x40000, 01s left) 14.93 MB/s Progress: |████████--| 82.8% Read (Sector 0x34F60 of 0x40000, 01s left) 14.57 MB/s Progress: |████████--| 82.9% Read (Sector 0x35080 of 0x40000, 01s left) 14.09 MB/s Progress: |████████--| 83.0% Read (Sector 0x35180 of 0x40000, 01s left) 12.05 MB/s Progress: |████████--| 83.1% Read (Sector 0x35280 of 0x40000, 01s left) 13.49 MB/s Progress: |████████--| 83.2% Read (Sector 0x35380 of 0x40000, 01s left) 12.63 MB/s Progress: |████████--| 83.3% Read (Sector 0x35480 of 0x40000, 01s left) 13.84 MB/s Progress: |████████--| 83.4% Read (Sector 0x355A0 of 0x40000, 01s left) 13.49 MB/s Progress: |████████--| 83.5% Read (Sector 0x356A0 of 0x40000, 01s left) 13.55 MB/s Progress: |████████--| 83.6% Read (Sector 0x357A0 of 0x40000, 01s left) 12.03 MB/s Progress: |████████--| 83.7% Read (Sector 0x358A0 of 0x40000, 01s left) 14.75 MB/s Progress: |████████--| 83.8% Read (Sector 0x359A0 of 0x40000, 01s left) 14.59 MB/s Progress: |████████--| 83.9% Read (Sector 0x35AA0 of 0x40000, 01s left) 15.10 MB/s Progress: |████████--| 84.0% Read (Sector 0x35BC0 of 0x40000, 01s left) 15.37 MB/s Progress: |████████--| 84.1% Read (Sector 0x35CC0 of 0x40000, 01s left) 14.26 MB/s Progress: |████████--| 84.2% Read (Sector 0x35DC0 of 0x40000, 01s left) 11.62 MB/s Progress: |████████--| 84.3% Read (Sector 0x35EC0 of 0x40000, 01s left) 13.06 MB/s Progress: |████████--| 84.4% Read (Sector 0x35FC0 of 0x40000, 01s left) 14.65 MB/s Progress: |████████--| 84.5% Read (Sector 0x360E0 of 0x40000, 01s left) 15.08 MB/s Progress: |████████--| 84.6% Read (Sector 0x361E0 of 0x40000, 01s left) 15.15 MB/s Progress: |████████--| 84.7% Read (Sector 0x362E0 of 0x40000, 01s left) 15.03 MB/s Progress: |████████--| 84.8% Read (Sector 0x363E0 of 0x40000, 01s left) 15.04 MB/s Progress: |████████--| 84.9% Read (Sector 0x364E0 of 0x40000, 01s left) 14.74 MB/s Progress: |████████--| 85.0% Read (Sector 0x36600 of 0x40000, 01s left) 14.35 MB/s Progress: |█████████-| 85.1% Read (Sector 0x36700 of 0x40000, 01s left) 14.97 MB/s Progress: |█████████-| 85.2% Read (Sector 0x36800 of 0x40000, 01s left) 14.77 MB/s Progress: |█████████-| 85.3% Read (Sector 0x36900 of 0x40000, 01s left) 14.72 MB/s Progress: |█████████-| 85.4% Read (Sector 0x36A00 of 0x40000, 01s left) 14.45 MB/s Progress: |█████████-| 85.5% Read (Sector 0x36B20 of 0x40000, 01s left) 15.33 MB/s Progress: |█████████-| 85.6% Read (Sector 0x36C20 of 0x40000, 01s left) 14.93 MB/s Progress: |█████████-| 85.7% Read (Sector 0x36D20 of 0x40000, 01s left) 14.87 MB/s Progress: |█████████-| 85.8% Read (Sector 0x36E20 of 0x40000, 01s left) 14.76 MB/s Progress: |█████████-| 85.9% Read (Sector 0x36F20 of 0x40000, 01s left) 14.55 MB/s Progress: |█████████-| 86.0% Read (Sector 0x37040 of 0x40000, 01s left) 14.69 MB/s Progress: |█████████-| 86.1% Read (Sector 0x37140 of 0x40000, 01s left) 14.55 MB/s Progress: |█████████-| 86.2% Read (Sector 0x37240 of 0x40000, 01s left) 14.69 MB/s Progress: |█████████-| 86.3% Read (Sector 0x37340 of 0x40000, 01s left) 15.31 MB/s Progress: |█████████-| 86.4% Read (Sector 0x37440 of 0x40000, 01s left) 14.93 MB/s Progress: |█████████-| 86.5% Read (Sector 0x37540 of 0x40000, 01s left) 14.82 MB/s Progress: |█████████-| 86.6% Read (Sector 0x37660 of 0x40000, 01s left) 14.57 MB/s Progress: |█████████-| 86.7% Read (Sector 0x37760 of 0x40000, 01s left) 14.57 MB/s Progress: |█████████-| 86.8% Read (Sector 0x37860 of 0x40000, 01s left) 14.70 MB/s Progress: |█████████-| 86.9% Read (Sector 0x37960 of 0x40000, 01s left) 15.14 MB/s Progress: |█████████-| 87.0% Read (Sector 0x37A60 of 0x40000, 01s left) 15.52 MB/s Progress: |█████████-| 87.1% Read (Sector 0x37B80 of 0x40000, 01s left) 14.55 MB/s Progress: |█████████-| 87.2% Read (Sector 0x37C80 of 0x40000, 01s left) 14.79 MB/s Progress: |█████████-| 87.3% Read (Sector 0x37D80 of 0x40000, 01s left) 14.71 MB/s Progress: |█████████-| 87.4% Read (Sector 0x37E80 of 0x40000, 01s left) 15.28 MB/s Progress: |█████████-| 87.5% Read (Sector 0x37F80 of 0x40000, 01s left) 15.11 MB/s Progress: |█████████-| 87.6% Read (Sector 0x380A0 of 0x40000, 01s left) 14.97 MB/s Progress: |█████████-| 87.7% Read (Sector 0x381A0 of 0x40000, 01s left) 13.79 MB/s Progress: |█████████-| 87.8% Read (Sector 0x382A0 of 0x40000, 01s left) 14.83 MB/s Progress: |█████████-| 87.9% Read (Sector 0x383A0 of 0x40000, 01s left) 15.11 MB/s Progress: |█████████-| 88.0% Read (Sector 0x384A0 of 0x40000, 01s left) 14.74 MB/s Progress: |█████████-| 88.1% Read (Sector 0x385C0 of 0x40000, 01s left) 15.34 MB/s Progress: |█████████-| 88.2% Read (Sector 0x386C0 of 0x40000, 01s left) 15.25 MB/s Progress: |█████████-| 88.3% Read (Sector 0x387C0 of 0x40000, 01s left) 12.00 MB/s Progress: |█████████-| 88.4% Read (Sector 0x388C0 of 0x40000, 01s left) 14.62 MB/s Progress: |█████████-| 88.5% Read (Sector 0x389C0 of 0x40000, ) 14.67 MB/s Progress: |█████████-| 88.6% Read (Sector 0x38AE0 of 0x40000, ) 15.14 MB/s Progress: |█████████-| 88.7% Read (Sector 0x38BE0 of 0x40000, ) 15.01 MB/s Progress: |█████████-| 88.8% Read (Sector 0x38CE0 of 0x40000, ) 13.22 MB/s Progress: |█████████-| 88.9% Read (Sector 0x38DE0 of 0x40000, ) 14.03 MB/s Progress: |█████████-| 89.0% Read (Sector 0x38EE0 of 0x40000, ) 14.32 MB/s Progress: |█████████-| 89.1% Read (Sector 0x38FE0 of 0x40000, ) 15.43 MB/s Progress: |█████████-| 89.2% Read (Sector 0x39100 of 0x40000, ) 14.33 MB/s Progress: |█████████-| 89.3% Read (Sector 0x39200 of 0x40000, ) 15.43 MB/s Progress: |█████████-| 89.4% Read (Sector 0x39300 of 0x40000, ) 14.56 MB/s Progress: |█████████-| 89.5% Read (Sector 0x39400 of 0x40000, ) 14.35 MB/s Progress: |█████████-| 89.6% Read (Sector 0x39500 of 0x40000, ) 14.16 MB/s Progress: |█████████-| 89.7% Read (Sector 0x39620 of 0x40000, ) 15.08 MB/s Progress: |█████████-| 89.8% Read (Sector 0x39720 of 0x40000, ) 14.95 MB/s Progress: |█████████-| 89.9% Read (Sector 0x39820 of 0x40000, ) 14.16 MB/s Progress: |█████████-| 90.0% Read (Sector 0x39920 of 0x40000, ) 13.72 MB/s Progress: |█████████-| 90.1% Read (Sector 0x39A20 of 0x40000, ) 15.33 MB/s Progress: |█████████-| 90.2% Read (Sector 0x39B40 of 0x40000, ) 14.69 MB/s Progress: |█████████-| 90.3% Read (Sector 0x39C40 of 0x40000, ) 14.01 MB/s Progress: |█████████-| 90.4% Read (Sector 0x39D40 of 0x40000, ) 15.09 MB/s Progress: |█████████-| 90.5% Read (Sector 0x39E40 of 0x40000, ) 13.38 MB/s Progress: |█████████-| 90.6% Read (Sector 0x39F40 of 0x40000, ) 15.25 MB/s Progress: |█████████-| 90.7% Read (Sector 0x3A060 of 0x40000, ) 14.25 MB/s Progress: |█████████-| 90.8% Read (Sector 0x3A160 of 0x40000, ) 15.34 MB/s Progress: |█████████-| 90.9% Read (Sector 0x3A260 of 0x40000, ) 15.12 MB/s Progress: |█████████-| 91.0% Read (Sector 0x3A360 of 0x40000, ) 14.19 MB/s Progress: |█████████-| 91.1% Read (Sector 0x3A460 of 0x40000, ) 14.39 MB/s Progress: |█████████-| 91.2% Read (Sector 0x3A580 of 0x40000, ) 15.14 MB/s Progress: |█████████-| 91.3% Read (Sector 0x3A680 of 0x40000, ) 14.61 MB/s Progress: |█████████-| 91.4% Read (Sector 0x3A780 of 0x40000, ) 13.32 MB/s Progress: |█████████-| 91.5% Read (Sector 0x3A880 of 0x40000, ) 14.84 MB/s Progress: |█████████-| 91.6% Read (Sector 0x3A980 of 0x40000, ) 15.49 MB/s Progress: |█████████-| 91.7% Read (Sector 0x3AA80 of 0x40000, ) 15.34 MB/s Progress: |█████████-| 91.8% Read (Sector 0x3ABA0 of 0x40000, ) 13.68 MB/s Progress: |█████████-| 91.9% Read (Sector 0x3ACA0 of 0x40000, ) 14.05 MB/s Progress: |█████████-| 92.0% Read (Sector 0x3ADA0 of 0x40000, ) 15.25 MB/s Progress: |█████████-| 92.1% Read (Sector 0x3AEA0 of 0x40000, ) 14.96 MB/s Progress: |█████████-| 92.2% Read (Sector 0x3AFA0 of 0x40000, ) 14.93 MB/s Progress: |█████████-| 92.3% Read (Sector 0x3B0C0 of 0x40000, ) 14.42 MB/s Progress: |█████████-| 92.4% Read (Sector 0x3B1C0 of 0x40000, ) 15.76 MB/s Progress: |█████████-| 92.5% Read (Sector 0x3B2C0 of 0x40000, ) 14.78 MB/s Progress: |█████████-| 92.6% Read (Sector 0x3B3C0 of 0x40000, ) 14.60 MB/s Progress: |█████████-| 92.7% Read (Sector 0x3B4C0 of 0x40000, ) 15.47 MB/s Progress: |█████████-| 92.8% Read (Sector 0x3B5E0 of 0x40000, ) 14.46 MB/s Progress: |█████████-| 92.9% Read (Sector 0x3B6E0 of 0x40000, ) 15.68 MB/s Progress: |█████████-| 93.0% Read (Sector 0x3B7E0 of 0x40000, ) 15.36 MB/s Progress: |█████████-| 93.1% Read (Sector 0x3B8E0 of 0x40000, ) 15.58 MB/s Progress: |█████████-| 93.2% Read (Sector 0x3B9E0 of 0x40000, ) 14.81 MB/s Progress: |█████████-| 93.3% Read (Sector 0x3BB00 of 0x40000, ) 12.94 MB/s Progress: |█████████-| 93.4% Read (Sector 0x3BC00 of 0x40000, ) 14.50 MB/s Progress: |█████████-| 93.5% Read (Sector 0x3BD00 of 0x40000, ) 15.13 MB/s Progress: |█████████-| 93.6% Read (Sector 0x3BE00 of 0x40000, ) 15.39 MB/s Progress: |█████████-| 93.7% Read (Sector 0x3BF00 of 0x40000, ) 15.08 MB/s Progress: |█████████-| 93.8% Read (Sector 0x3C000 of 0x40000, ) 15.45 MB/s Progress: |█████████-| 93.9% Read (Sector 0x3C120 of 0x40000, ) 15.18 MB/s Progress: |█████████-| 94.0% Read (Sector 0x3C220 of 0x40000, ) 15.16 MB/s Progress: |█████████-| 94.1% Read (Sector 0x3C320 of 0x40000, ) 14.83 MB/s Progress: |█████████-| 94.2% Read (Sector 0x3C420 of 0x40000, ) 14.09 MB/s Progress: |█████████-| 94.3% Read (Sector 0x3C520 of 0x40000, ) 14.07 MB/s Progress: |█████████-| 94.4% Read (Sector 0x3C640 of 0x40000, ) 15.23 MB/s Progress: |█████████-| 94.5% Read (Sector 0x3C740 of 0x40000, ) 14.69 MB/s Progress: |█████████-| 94.6% Read (Sector 0x3C840 of 0x40000, ) 14.31 MB/s Progress: |█████████-| 94.7% Read (Sector 0x3C940 of 0x40000, ) 14.94 MB/s Progress: |█████████-| 94.8% Read (Sector 0x3CA40 of 0x40000, ) 14.57 MB/s Progress: |█████████-| 94.9% Read (Sector 0x3CB60 of 0x40000, ) 14.66 MB/s Progress: |██████████| 95.0% Read (Sector 0x3CC60 of 0x40000, ) 15.68 MB/s Progress: |██████████| 95.1% Read (Sector 0x3CD60 of 0x40000, ) 15.21 MB/s Progress: |██████████| 95.2% Read (Sector 0x3CE60 of 0x40000, ) 14.97 MB/s Progress: |██████████| 95.3% Read (Sector 0x3CF60 of 0x40000, ) 15.37 MB/s Progress: |██████████| 95.4% Read (Sector 0x3D080 of 0x40000, ) 15.38 MB/s Progress: |██████████| 95.5% Read (Sector 0x3D180 of 0x40000, ) 15.46 MB/s Progress: |██████████| 95.6% Read (Sector 0x3D280 of 0x40000, ) 14.91 MB/s Progress: |██████████| 95.7% Read (Sector 0x3D380 of 0x40000, ) 14.25 MB/s Progress: |██████████| 95.8% Read (Sector 0x3D480 of 0x40000, ) 14.65 MB/s Progress: |██████████| 95.9% Read (Sector 0x3D5A0 of 0x40000, ) 15.13 MB/s Progress: |██████████| 96.0% Read (Sector 0x3D6A0 of 0x40000, ) 15.63 MB/s Progress: |██████████| 96.1% Read (Sector 0x3D7A0 of 0x40000, ) 15.32 MB/s Progress: |██████████| 96.2% Read (Sector 0x3D8A0 of 0x40000, ) 14.33 MB/s Progress: |██████████| 96.3% Read (Sector 0x3D9A0 of 0x40000, ) 13.60 MB/s Progress: |██████████| 96.4% Read (Sector 0x3DAA0 of 0x40000, ) 15.39 MB/s Progress: |██████████| 96.5% Read (Sector 0x3DBC0 of 0x40000, ) 15.22 MB/s Progress: |██████████| 96.6% Read (Sector 0x3DCC0 of 0x40000, ) 14.46 MB/s Progress: |██████████| 96.7% Read (Sector 0x3DDC0 of 0x40000, ) 15.02 MB/s Progress: |██████████| 96.8% Read (Sector 0x3DEC0 of 0x40000, ) 14.94 MB/s Progress: |██████████| 96.9% Read (Sector 0x3DFC0 of 0x40000, ) 15.01 MB/s Progress: |██████████| 97.0% Read (Sector 0x3E0E0 of 0x40000, ) 15.35 MB/s Progress: |██████████| 97.1% Read (Sector 0x3E1E0 of 0x40000, ) 15.61 MB/s Progress: |██████████| 97.2% Read (Sector 0x3E2E0 of 0x40000, ) 14.65 MB/s Progress: |██████████| 97.3% Read (Sector 0x3E3E0 of 0x40000, ) 15.39 MB/s Progress: |██████████| 97.4% Read (Sector 0x3E4E0 of 0x40000, ) 15.31 MB/s Progress: |██████████| 97.5% Read (Sector 0x3E600 of 0x40000, ) 15.61 MB/s Progress: |██████████| 97.6% Read (Sector 0x3E700 of 0x40000, ) 15.28 MB/s Progress: |██████████| 97.7% Read (Sector 0x3E800 of 0x40000, ) 15.24 MB/s Progress: |██████████| 97.8% Read (Sector 0x3E900 of 0x40000, ) 15.44 MB/s Progress: |██████████| 97.9% Read (Sector 0x3EA00 of 0x40000, ) 15.67 MB/s Progress: |██████████| 98.0% Read (Sector 0x3EB20 of 0x40000, ) 14.97 MB/s Progress: |██████████| 98.1% Read (Sector 0x3EC20 of 0x40000, ) 14.68 MB/s Progress: |██████████| 98.2% Read (Sector 0x3ED20 of 0x40000, ) 15.38 MB/s Progress: |██████████| 98.3% Read (Sector 0x3EE20 of 0x40000, ) 15.43 MB/s Progress: |██████████| 98.4% Read (Sector 0x3EF20 of 0x40000, ) 15.02 MB/s Progress: |██████████| 98.5% Read (Sector 0x3F040 of 0x40000, ) 15.27 MB/s Progress: |██████████| 98.6% Read (Sector 0x3F140 of 0x40000, ) 15.80 MB/s Progress: |██████████| 98.7% Read (Sector 0x3F240 of 0x40000, ) 13.46 MB/s Progress: |██████████| 98.8% Read (Sector 0x3F340 of 0x40000, ) 15.07 MB/s Progress: |██████████| 98.9% Read (Sector 0x3F440 of 0x40000, ) 12.97 MB/s Progress: |██████████| 99.0% Read (Sector 0x3F540 of 0x40000, ) 13.90 MB/s Progress: |██████████| 99.1% Read (Sector 0x3F660 of 0x40000, ) 12.99 MB/s Progress: |██████████| 99.2% Read (Sector 0x3F760 of 0x40000, ) 14.93 MB/s Progress: |██████████| 99.3% Read (Sector 0x3F860 of 0x40000, ) 15.27 MB/s Progress: |██████████| 99.4% Read (Sector 0x3F960 of 0x40000, ) 15.22 MB/s Progress: |██████████| 99.5% Read (Sector 0x3FA60 of 0x40000, ) 14.62 MB/s Progress: |██████████| 99.6% Read (Sector 0x3FB80 of 0x40000, ) 15.31 MB/s Progress: |██████████| 99.7% Read (Sector 0x3FC80 of 0x40000, ) 15.30 MB/s Progress: |██████████| 99.8% Read (Sector 0x3FD80 of 0x40000, ) 15.33 MB/s Progress: |██████████| 99.9% Read (Sector 0x3FE80 of 0x40000, ) 15.49 MB/s Progress: |██████████| 100.0% Read (Sector 0x3FF80 of 0x40000, ) 15.48 MB/s + Progress: |██████████| 100.0% Read (Sector 0x3FFA0 of 0x40000, ) 15.48 MB/s + Progress: |██████████| 100.0% Read (Sector 0x3FFC0 of 0x40000, ) 16.12 MB/s + Progress: |██████████| 100.0% Read (Sector 0x3FFE0 of 0x40000, ) 15.42 MB/s + Progress: |██████████| 100.0% Read (Sector 0x40000 of 0x40000, ) 15.52 MB/s +Dumped sector 2133088 with sector count 262144 as logs/b9/b9c/W/11-cache-readback.bin. diff --git a/logs/b9/b9c/W/SHA256SUMS b/logs/b9/b9c/W/SHA256SUMS new file mode 100644 index 0000000..8bfc053 --- /dev/null +++ b/logs/b9/b9c/W/SHA256SUMS @@ -0,0 +1,20 @@ +b9ce13c9f48e36a5054c0ae3c39dc3f184b1fc2eea1d57d4b8bd8e9ae800a37b 11-cache-readback.bin +3b8cd2667837fc7083cb28991d849f9b408a07fa743bfd05eafee7b053760f85 post-aboot.bin +e9579f33c7304cd47f487f2b61cd9226dc04fd3a63775d62b4b95fc15bd3ebff post-boot.bin +5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef post-fsc.bin +b0a3b7e46bc420f39120cfa7f2049027cba59383d52c78ad9576049ad40982aa post-fsg.bin +795952a1a5965ca2118afcb0add9cd1d358a09ec9a43ca4208cfad40c99de18f post-gptb.bin +6e850a5dfe5400da346962a54e41491cb0e4c5ac3543dd4799c8bc0ee5c3b8b6 post-gptp.bin +1a963047a4302569da2ddbda726b65c57f5181c0e290ca983dcd2fc529f74555 post-hyp.bin +637a71d17f1a43017aad52b9fdd4c8534e84672f1e602340f7350f293c8ed52a post-modemst1.bin +9bb101903b2e17f815f0139773d5381384fba2511528fc81e2cb49da9bee94f5 post-modemst2.bin +ee48a8438c4e5473d3f59bc25f1c5976510d09b1879fe7246f5d7bbb9949b915 post-persist.bin +0dfa60a03a742ab2bf9f6e91e3887142cb7a0af2dd37c6373f7942703cd011e1 post-recovery.bin +5a9b857ba6c3af1c848c6e57bbaf9cefcedc3629e5536d27e87b336c67a281fd post-rpm.bin +6a661ec947c1d935316f9d8731b5314e7502bde5825ebbfc3d2860d081b4096d post-sbl1.bin +8481892fe56fc810e4322b7e6838bf071695e4fc1380c16b21973d7fab325363 post-tz.bin +c6f7db266a14227ca7e7b0343661089298e4c4320a9522e3e695b5e069e6b4af post-tzbak.bin +3b8cd2667837fc7083cb28991d849f9b408a07fa743bfd05eafee7b053760f85 pre-aboot.bin +e9579f33c7304cd47f487f2b61cd9226dc04fd3a63775d62b4b95fc15bd3ebff pre-boot.bin +857c9c300055804cab673027bc8cddc010ad04bfec5d75276d8229b84846c4b2 pre-cache.bin +6e850a5dfe5400da346962a54e41491cb0e4c5ac3543dd4799c8bc0ee5c3b8b6 pre-gptp.bin diff --git a/logs/b9/b9c/cold1-aborted/ABORTED.txt b/logs/b9/b9c/cold1-aborted/ABORTED.txt new file mode 100644 index 0000000..16368ea --- /dev/null +++ b/logs/b9/b9c/cold1-aborted/ABORTED.txt @@ -0,0 +1 @@ +driver stopped before power-on (B9L inserted) diff --git a/logs/b9/b9c/cold1-aborted/host-actions.txt b/logs/b9/b9c/cold1-aborted/host-actions.txt new file mode 100644 index 0000000..1217bdc --- /dev/null +++ b/logs/b9/b9c/cold1-aborted/host-actions.txt @@ -0,0 +1,2 @@ +21:35:01.808 B9C cold1: waiting for the board to go away (power off >= 90 s), then normal power-on WITHOUT RESET +21:35:25.924 board unreachable (powered off) diff --git a/logs/b9/b9c/cold1-invalid/INVALID.txt b/logs/b9/b9c/cold1-invalid/INVALID.txt new file mode 100644 index 0000000..17558d2 --- /dev/null +++ b/logs/b9/b9c/cold1-invalid/INVALID.txt @@ -0,0 +1 @@ +INVALID: operator power events - battery dropped at ~27 s in boot 1, boot 2 class B (RTC 31 s) + modem usb0-ping rollback; display part OK diff --git a/logs/b9/b9c/cold1-invalid/host-actions.txt b/logs/b9/b9c/cold1-invalid/host-actions.txt new file mode 100644 index 0000000..aeef921 --- /dev/null +++ b/logs/b9/b9c/cold1-invalid/host-actions.txt @@ -0,0 +1,10 @@ +21:28:50.833 B9C cold1: waiting for the board to go away (power off >= 90 s), then normal power-on WITHOUT RESET +21:28:51.837 board unreachable (powered off) +21:29:42.806 NCM ping ok +21:29:42.811 RTC at boot 3 s -> class A +~ # cat /proc/device-tree/model; echo; uname -r; grep -E "START OK|FAIL in|rollb +JZ08AU Aurora (RAM boot B9B) +21:31:12.907 wifi: [25.91] === AP ENABLED ssid=aurora-b8f ch=6 pid=1705 in 16.56s +21:33:13.128 sntp: +21:33:39.145 snapshot: 2 end markers; RP a204000.remoteproc=running +21:33:44.176 B9C cold1 END - operator visual check next diff --git a/logs/b9/b9c/cold1-invalid/snapshot.txt b/logs/b9/b9c/cold1-invalid/snapshot.txt new file mode 100644 index 0000000..3e93b91 --- /dev/null +++ b/logs/b9/b9c/cold1-invalid/snapshot.txt @@ -0,0 +1,190 @@ +�������� + + +BusyBox v1.37.0 (Debian 1:1.37.0-6+b9) built-in shell (ash) +Enter 'help' for a list of built-in commands. + +~ # echo SNAP-BEGIN; cat /proc/uptime; date -u; cat /proc/device-tree/model; ech +o; uname -a; cat /proc/cmdline +SNAP-BEGIN +191.38 750.11 +Thu Jan 1 00:03:42 UTC 1970 +JZ08AU Aurora (RAM boot B9B) +Linux aurora 7.2.7-aurora-b9c #9 SMP PREEMPT Sat Oct 3 03:06:50 +06 2026 aarch64 GNU/Linux +earlycon console=tty0 console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init fbcon=font:6x8 consoleblank=0 +~ # echo ---time; cat /run/aurora-modem/time-set; grep -E "TIME|SNTP" /run/auror +a-modem/lifecycle.log | tail -4 +---time +cat: can't open '/run/aurora-modem/time-set': No such file or directory +[13.30] TIME probe 1 [QMI_READY]: dms_ms=3247 dms_utc=315964803.247 nitz=none dms-nitz=- clock=44 -> INVALID (year<2026) +[13.47] TIME probe 2 [SIM_READY]: dms_ms=3417 dms_utc=315964803.417 nitz=none dms-nitz=- clock=44 -> INVALID (year<2026) +[16.84] TIME probe 3 [RADIO_ONLINE]: dms_ms=6790 dms_utc=315964806.790 nitz=none dms-nitz=- clock=47 -> INVALID (year<2026) +~ # echo ---modem; /etc/init.d/aurora-modem status +---modem +service: idle +controller: OFF +remoteproc: 4080000.remoteproc offline (/sys/class/remoteproc/remoteproc0) fw=mba.mbn +rmtfs: pid='' writes_logged=0 +qmi dev: absent qmi-proxy='' +daemons: udevd='' dbus='' polkitd='' ModemManager='' + mm: n/a +wwan up: 0 of 8 +routes: +bam-dmux: suspended active_ms=0 suspended_ms=190733 control=auto +usb0: 172.16.42.1/24 route-to-host: 172.16.42.2 dev usb0 src 172.16.42.1 +emmc: writes_completed=0 sectors_written=0 +time: 1970-01-01 00:03:42 UTC; set: no; probes: 3 +dmesg-errs: 0 +~ # echo ---wifi; /etc/init.d/aurora-wifi status; echo ---wifilog; cat /run/auro +ra-wifi/wifi.log; cat /run/aurora-wifi/service.log; echo ---hostapdlog; cat /run +/aurora-wifi/hostapd.log +---wifi +service: idle +remoteproc: a204000.remoteproc running (/sys/class/remoteproc/remoteproc1) +crash=0 watchdog=0 fatal=0 +wlan0: wlan0: ssid aurora-b8f type AP channel 6 (2437 MHz), width: 20 MHz, center1: 2437 MHz +hostapd: pid=1705 0 connects, 0 disconnects +[23.01] WCNSS /sys/class/remoteproc/remoteproc1 state=running +[24.87] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +[25.91] === AP ENABLED ssid=aurora-b8f ch=6 pid=1705 in 16.56s +---wifilog +[9.35] === WIFI START (wait for modem START OK/FAIL up to 300s) +[22.47] modem gate after 13s: [22.04] rollback: full stop +[23.01] WCNSS /sys/class/remoteproc/remoteproc1 state=running +[24.87] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +[25.91] === AP ENABLED ssid=aurora-b8f ch=6 pid=1705 in 16.56s +[9.35] === WIFI START (wait for modem START OK/FAIL up to 300s) +[22.47] modem gate after 13s: [22.04] rollback: full stop +[23.01] WCNSS /sys/class/remoteproc/remoteproc1 state=running +[24.87] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +[25.91] === AP ENABLED ssid=aurora-b8f ch=6 pid=1705 in 16.56s +=== service start rc=0 25.92 +---hostapdlog +56.152522: VLAN: vlan_set_name_type: SET_VLAN_NAME_TYPE_CMD name_type=2 failed: No error information +56.260276: wlan0: interface state UNINITIALIZED->ENABLED +56.260394: wlan0: AP-ENABLED +~ # for r in /sys/class/remoteproc/*; do echo "RP $(cat $r/name)=$(cat $r/state) +"; done; iw dev +RP 4080000.remoteproc=offline +RP a204000.remoteproc=running +phy#0 + Interface wlan0 + ifindex 12 + wdev 0x1 + addr + ssid aurora-b8f + type AP + channel 6 (2437 MHz), width: 20 MHz, center1: 2437 MHz + txpower 20.00 dBm + multicast TXQ: + qsz-byt qsz-pkt flows drops marks overlmt hashcol tx-bytes tx-packets + 0 0 0 0 0 0 0 0 0 +~ # echo ---dmesg-wifi; dmesg | grep -iE "wcn36xx|wcnss|a204000|cfg80211|aurora- +wifi|crash|watchdog" +---dmesg-wifi +[ 0.000000] OF: reserved mem: 0x000000008b600000..0x000000008bbfffff (6144 KiB) nomap non-reusable wcnss@8b600000 +[ 0.967917] remoteproc remoteproc0: releasing a204000.remoteproc +[ 0.997334] qcom-wcnss-pil a204000.remoteproc: supply vddcx not found, using dummy regulator +[ 1.007298] a204000.remoteproc.iris: failed to get regulators +[ 1.019899] remoteproc remoteproc0: releasing a204000.remoteproc +[ 1.050982] qcom-wcnss-pil a204000.remoteproc: supply vddcx not found, using dummy regulator +[ 1.059076] remoteproc remoteproc1: a204000.remoteproc is available +[ 1.082517] cfg80211: Loading compiled-in X.509 certificates for regulatory database +[ 1.413433] remoteproc remoteproc1: Direct firmware load for wcnss.mdt failed with error -2 +[ 1.416180] remoteproc remoteproc1: powering up a204000.remoteproc +[ 1.416301] remoteproc remoteproc1: Direct firmware load for wcnss.mdt failed with error -2 +[ 1.474319] cfg80211: failed to load regulatory.db +[ 9.499887] [aurora-wifi] === WIFI START (wait for modem START OK/FAIL up to 300s) +[ 22.627081] [aurora-wifi] modem gate after 13s: [22.04] rollback: full stop +[ 22.650546] remoteproc remoteproc1: powering up a204000.remoteproc +[ 22.656102] remoteproc remoteproc1: Booting fw image wcnss.mdt, size 7260 +[ 23.142056] remoteproc remoteproc1: remote processor a204000.remoteproc is now up +[ 23.158300] [aurora-wifi] WCNSS /sys/class/remoteproc/remoteproc1 state=running +[ 23.263446] qcom_wcnss_ctrl remoteproc1:smd-edge.WCNSS_CTRL.-1.-1: WCNSS Version 1.5 1.2 +[ 23.285578] wcn36xx: mac address: +[ 24.957953] wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO' and CRM version 'CNSS-PR-1-4-2-c4-00084' +[ 24.972180] wcn36xx: firmware API 1.5.1.2, 41 stations, 2 bssids +[ 25.020230] [aurora-wifi] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +[ 26.064437] [aurora-wifi] === AP ENABLED ssid=aurora-b8f ch=6 pid=1705 in 16.56s +~ # echo ---ping; ping -c4 -W3 -I wwan0 77.88.8.8 | tail -2 +---ping +ping: sendto: Network is unreachable +PING 77.88.8.8 (77.88.8.8): 56 data bytes +~ # echo ---display; /etc/init.d/aurora-display status; cat /run/aurora-display/ +display.log; cat /run/aurora-display/service.log +---display +fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=0 bl=1 +[7.18] display pipe already enabled (by fbcon takeover) - no unblank needed +[7.20] backlight on -> bl_power=0 actual_brightness=1 +[7.27] === DISPLAY READY fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=0 bl=1 +[7.08] start: fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=4 bl=1 +[7.11] fbcon bound to fb0 +[7.18] display pipe already enabled (by fbcon takeover) - no unblank needed +[7.20] backlight on -> bl_power=0 actual_brightness=1 +[7.27] === DISPLAY READY fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=0 bl=1 +=== service start rc=0 7.27 +~ # echo ---consoles; cat /sys/class/tty/console/active; for v in /sys/class/vtc +onsole/vtcon*; do echo "$v $(cat $v/bind) $(cat $v/name)"; done; ls -l /proc/[0- +9]*/fd/0 2>/dev/null | grep -E "ttyMSM0|tty1|console" | sed "s/.* \/proc/\/proc/ +" +---consoles +tty0 ttyMSM0 +/sys/class/vtconsole/vtcon0 0 (S) dummy device +/sys/class/vtconsole/vtcon1 1 (M) frame buffer device +/proc/1/fd/0 -> /dev/console +/proc/1118/fd/0 -> /dev/ttyMSM0 +/proc/627/fd/0 -> /dev/tty1 +~ # echo ---getty; hostname; ps | grep -E "[g]etty|[c]ttyhack| sh$" +---getty +aurora + 627 root getty 0 tty1 linux + 1118 root sh +~ # echo ---fb; ls -l /dev/dri/card0 /dev/fb0; for f in name bits_per_pixel virt +ual_size stride; do echo "fb0 $f=$(cat /sys/class/graphics/fb0/$f)"; done; cat / +sys/class/drm/card0-SPI-1/enabled /sys/class/drm/card0-SPI-1/dpms +---fb +crw------- 1 root root 226, 0 Jan 1 00:00 /dev/dri/card0 +crw------- 1 root root 29, 0 Jan 1 00:00 /dev/fb0 +fb0 name=panel-mipi-dbid +fb0 bits_per_pixel=16 +fb0 virtual_size=128,128 +fb0 stride=256 +enabled +On +~ # echo ---regs; for r in /sys/class/regulator/regulator.*; do n=$(cat $r/name) +; case $n in l6|l17) echo "$n $(cat $r/state) $(cat $r/microvolts) users=$(cat $ +r/num_users)";; esac; done +---regs +l17 enabled 2850000 users=1 +l6 enabled 1800000 users=1 +~ # echo ---bl; for f in bl_power brightness actual_brightness; do echo "bl $f=$ +(cat /sys/class/backlight/backlight/$f)"; done +---bl +bl bl_power=0 +bl brightness=1 +bl actual_brightness=1 +~ # echo ---dmesg-display; dmesg | grep -iE "drm|panel|mipi|spi_qup|78b8000|fbco +n|Console: |frame buffer|backlight|aurora-display|l17" +---dmesg-display +[ 0.000000] Kernel command line: earlycon console=tty0 console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init fbcon=font:6x8 consoleblank=0 +[ 0.010993] Console: colour dummy device 80x25 +[ 0.717746] spi_qup 78b8000.spi: IN:block:16, fifo:64, OUT:block:16, fifo:64 +[ 1.066705] l17: Bringing 0uV into 2850000-2850000uV +[ 1.416263] [drm] Initialized panel-mipi-dbi 1.0.0 for spi0.0 on minor 0 +[ 1.796720] Console: switching to colour frame buffer device 21x16 +[ 1.860388] panel-mipi-dbi-spi spi0.0: [drm] fb0: panel-mipi-dbid frame buffer device +[ 7.233896] [aurora-display] start: fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=4 bl=1 +[ 7.258541] [aurora-display] fbcon bound to fb0 +[ 7.333314] [aurora-display] display pipe already enabled (by fbcon takeover) - no unblank needed +[ 7.354476] [aurora-display] backlight on -> bl_power=0 actual_brightness=1 +[ 7.418169] [aurora-display] === DISPLAY READY fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=0 bl=1 +~ # echo ---display-errors; dmesg | grep -iE "drm|panel|mipi|spi0|fbcon|backligh +t|aurora-display" | grep -ciE "err|fail|timeout|warn" +---display-errors +0 +~ # echo ---emmc; awk "{print \"w=\"\$5\" s=\"\$7}" /sys/block/mmcblk0/stat +---emmc +w=0 s=0 +~ # echo SNAP-END +SNAP-END +~ #  \ No newline at end of file diff --git a/logs/b9/b9c/cold1/VERDICT.txt b/logs/b9/b9c/cold1/VERDICT.txt new file mode 100644 index 0000000..03a5067 --- /dev/null +++ b/logs/b9/b9c/cold1/VERDICT.txt @@ -0,0 +1 @@ +COLD1 PASS (class A, LTE, Wi-Fi, time, display, fbcon, getty, UART, bl visual) diff --git a/logs/b9/b9c/cold1/bl-test.txt b/logs/b9/b9c/cold1/bl-test.txt new file mode 100644 index 0000000..a9013b3 --- /dev/null +++ b/logs/b9/b9c/cold1/bl-test.txt @@ -0,0 +1,10 @@ +=== 22:23:55 bl off +[168.43] backlight off -> bl_power=0 actual_brightness=0 +=== 22:27:48 bl on (repeat, operator missed off) +[401.38] backlight on -> bl_power=0 actual_brightness=1 +=== 22:28:01 bl off (operator watching) +[414.51] backlight off -> bl_power=0 actual_brightness=0 +=== 22:29:23 bl on (final) +[496.52] backlight on -> bl_power=0 actual_brightness=1 +operator: console visible with bl on (22:27:48), screen dark after bl off (22:28:01) +operator: screen back on with console after final bl on (22:29:23) -> backlight ON->OFF->ON visual PASS diff --git a/logs/b9/b9c/cold1/host-actions.txt b/logs/b9/b9c/cold1/host-actions.txt new file mode 100644 index 0000000..a1dc6d0 --- /dev/null +++ b/logs/b9/b9c/cold1/host-actions.txt @@ -0,0 +1,11 @@ +22:18:59.176 B9C cold1: waiting for the board to go away (power off >= 90 s), then normal power-on WITHOUT RESET +22:19:29.333 board unreachable (powered off) +22:21:17.262 NCM ping ok +22:21:17.266 RTC at boot 3 s -> class A +~ # cat /proc/device-tree/model; echo; uname -r; grep -E "START OK|FAIL in|rollb +JZ08AU Aurora (RAM boot B9B) +[86.21] === START OK in 76.4s (wwan0 10.87.46.139/29, routes: 10.10.22.3 194.186.191.1 77.88.8.8 1.1.1.1 ) +22:22:53.435 wifi: [90.41] === AP ENABLED ssid=aurora-b8f ch=6 pid=2784 in 80.6s +22:23:01.457 sntp: [101.66] SNTP check ( 89.109.251.21 89.109.251.22 89.109.251.23): 14 replies; best offset delay server: +0.553920 0.063431 89.109.251.23: (offset > 0 = clock behind) +22:23:27.478 snapshot: 2 end markers; RP a204000.remoteproc=running +22:23:32.512 B9C cold1 END - operator visual check next diff --git a/logs/b9/b9c/cold1/snapshot.txt b/logs/b9/b9c/cold1/snapshot.txt new file mode 100644 index 0000000..149cf77 --- /dev/null +++ b/logs/b9/b9c/cold1/snapshot.txt @@ -0,0 +1,200 @@ +�������� + + +BusyBox v1.37.0 (Debian 1:1.37.0-6+b9) built-in shell (ash) +Enter 'help' for a list of built-in commands. + +~ # echo SNAP-BEGIN; cat /proc/uptime; date -u; cat /proc/device-tree/model; ech +o; uname -a; cat /proc/cmdline +SNAP-BEGIN +114.57 415.96 +Fri Oct 2 22:23:01 UTC 2026 +JZ08AU Aurora (RAM boot B9B) +Linux aurora 7.2.7-aurora-b9c #9 SMP PREEMPT Sat Oct 3 03:06:50 +06 2026 aarch64 GNU/Linux +earlycon console=tty0 console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init fbcon=font:6x8 consoleblank=0 +~ # echo ---time; cat /run/aurora-modem/time-set; grep -E "TIME|SNTP" /run/auror +a-modem/lifecycle.log | tail -4 +---time +1790979692 24.63 REG:registered/attached qmi-dms +[24.78] TIME probe 6 [REGISTERED]: dms_ms=1475014892088 dms_utc=1790979692.088 nitz=2026-10-02 22:21:32 dms-nitz=+0.12 clock=1790979692 -> VALID (ok) +[86.32] TIME probe 7 [BEARER_CONNECTED]: dms_ms=1475014953624 dms_utc=1790979753.624 nitz=2026-10-02 22:22:33 dms-nitz=+0.66 clock=1790979753 -> VALID (ok) +[101.66] SNTP check ( 89.109.251.21 89.109.251.22 89.109.251.23): 14 replies; best offset delay server: +0.553920 0.063431 89.109.251.23: (offset > 0 = clock behind) +[101.68] SNTP: |offset| < 1s - clock kept (no slew: STA_UNSYNC stays, RTC_SYSTOHC never engages) +~ # echo ---modem; /etc/init.d/aurora-modem status +---modem +service: idle +controller: BEARER_CONNECTED +remoteproc: 4080000.remoteproc running (/sys/class/remoteproc/remoteproc0) fw=mba.mbn +rmtfs: pid='1158' writes_logged=1 +qmi dev: /dev/wwan0qmi0 qmi-proxy='2040' +daemons: udevd='1917' dbus='1947' polkitd='1951' ModemManager='1962' + mm plugin: qcom-soc + mm primary port: wwan0qmi0 + mm state: connected + mm power state: on + mm access tech: lte + mm signal quality: 67% (recent) + mm operator name: Beeline + mm registration: home + bearer 1: Status connected: yes; interface: wwan0; address: 10.87.46.139; +wwan: wwan0 UP 10.87.46.139/29 +wwan up: 1 of 8 +routes: 1.1.1.1 dev wwan0 scope link src 10.87.46.139 ;10.10.22.3 dev wwan0 scope link src 10.87.46.139 ;10.87.46.136/29 dev wwan0 scope link src 10.87.46.139 ;77.88.8.8 dev wwan0 scope link src 10.87.46.139 ;89.109.251.21 dev wwan0 scope link src 10.87.46.139 ;89.109.251.22 dev wwan0 scope link src 10.87.46.139 ;89.109.251.23 dev wwan0 scope link src 10.87.46.139 ;194.186.191.1 dev wwan0 scope link src 10.87.46.139 ; +bam-dmux: suspended active_ms=8114 suspended_ms=106102 control=auto +usb0: 172.16.42.1/24 route-to-host: 172.16.42.2 dev usb0 src 172.16.42.1 +emmc: writes_completed=0 sectors_written=0 +time: 2026-10-02 22:23:02 UTC; set: 1790979692 24.63 REG:registered/attached qmi-dms; probes: 7 +dmesg-errs: 0 +~ # echo ---wifi; /etc/init.d/aurora-wifi status; echo ---wifilog; cat /run/auro +ra-wifi/wifi.log; cat /run/aurora-wifi/service.log; echo ---hostapdlog; cat /run +/aurora-wifi/hostapd.log +---wifi +service: idle +remoteproc: a204000.remoteproc running (/sys/class/remoteproc/remoteproc1) +crash=0 watchdog=0 fatal=0 +wlan0: wlan0: ssid aurora-b8f type AP channel 6 (2437 MHz), width: 20 MHz, center1: 2437 MHz +hostapd: pid=2784 0 connects, 0 disconnects +[87.06] WCNSS /sys/class/remoteproc/remoteproc1 state=running +[89.37] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +[90.41] === AP ENABLED ssid=aurora-b8f ch=6 pid=2784 in 80.6s +---wifilog +[9.81] === WIFI START (wait for modem START OK/FAIL up to 300s) +[86.52] modem gate after 76s: [86.21] === START OK in 76.4s (wwan0 10.87.46.139/29, routes: 10.10.22.3 194.186 +[87.06] WCNSS /sys/class/remoteproc/remoteproc1 state=running +[89.37] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +[90.41] === AP ENABLED ssid=aurora-b8f ch=6 pid=2784 in 80.6s +[9.81] === WIFI START (wait for modem START OK/FAIL up to 300s) +[86.52] modem gate after 76s: [86.21] === START OK in 76.4s (wwan0 10.87.46.139/29, routes: 10.10.22.3 194.186 +[87.06] WCNSS /sys/class/remoteproc/remoteproc1 state=running +[89.37] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +[90.41] === AP ENABLED ssid=aurora-b8f ch=6 pid=2784 in 80.6s +=== service start rc=0 90.43 +---hostapdlog +1790979757.163659: VLAN: vlan_set_name_type: SET_VLAN_NAME_TYPE_CMD name_type=2 failed: No error information +1790979757.271190: wlan0: interface state UNINITIALIZED->ENABLED +1790979757.271302: wlan0: AP-ENABLED +~ # for r in /sys/class/remoteproc/*; do echo "RP $(cat $r/name)=$(cat $r/state) +"; done; iw dev +RP 4080000.remoteproc=running +RP a204000.remoteproc=running +phy#0 + Interface wlan0 + ifindex 12 + wdev 0x1 + addr + ssid aurora-b8f + type AP + channel 6 (2437 MHz), width: 20 MHz, center1: 2437 MHz + txpower 20.00 dBm + multicast TXQ: + qsz-byt qsz-pkt flows drops marks overlmt hashcol tx-bytes tx-packets + 0 0 0 0 0 0 0 0 0 +~ # echo ---dmesg-wifi; dmesg | grep -iE "wcn36xx|wcnss|a204000|cfg80211|aurora- +wifi|crash|watchdog" +---dmesg-wifi +[ 0.000000] OF: reserved mem: 0x000000008b600000..0x000000008bbfffff (6144 KiB) nomap non-reusable wcnss@8b600000 +[ 0.967574] remoteproc remoteproc0: releasing a204000.remoteproc +[ 1.000995] qcom-wcnss-pil a204000.remoteproc: supply vddcx not found, using dummy regulator +[ 1.011579] a204000.remoteproc.iris: failed to get regulators +[ 1.029461] remoteproc remoteproc0: releasing a204000.remoteproc +[ 1.054067] qcom-wcnss-pil a204000.remoteproc: supply vddcx not found, using dummy regulator +[ 1.069841] remoteproc remoteproc1: a204000.remoteproc is available +[ 1.411647] remoteproc remoteproc1: Direct firmware load for wcnss.mdt failed with error -2 +[ 1.414316] remoteproc remoteproc1: powering up a204000.remoteproc +[ 1.422554] remoteproc remoteproc1: Direct firmware load for wcnss.mdt failed with error -2 +[ 1.802566] cfg80211: Loading compiled-in X.509 certificates for regulatory database +[ 1.828827] cfg80211: failed to load regulatory.db +[ 9.962967] [aurora-wifi] === WIFI START (wait for modem START OK/FAIL up to 300s) +[ 86.675329] [aurora-wifi] modem gate after 76s: [86.21] === START OK in 76.4s (wwan0 10.87.46.139/29, routes: 10.10.22.3 194.186 +[ 86.709311] remoteproc remoteproc1: powering up a204000.remoteproc +[ 86.716131] remoteproc remoteproc1: Booting fw image wcnss.mdt, size 7260 +[ 87.198893] remoteproc remoteproc1: remote processor a204000.remoteproc is now up +[ 87.210890] [aurora-wifi] WCNSS /sys/class/remoteproc/remoteproc1 state=running +[ 87.315033] qcom_wcnss_ctrl remoteproc1:smd-edge.WCNSS_CTRL.-1.-1: WCNSS Version 1.5 1.2 +[ 87.339677] wcn36xx: mac address: +[ 89.457602] wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO' and CRM version 'CNSS-PR-1-4-2-c4-00084' +[ 89.472006] wcn36xx: firmware API 1.5.1.2, 41 stations, 2 bssids +[ 89.520503] [aurora-wifi] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +[ 90.566277] [aurora-wifi] === AP ENABLED ssid=aurora-b8f ch=6 pid=2784 in 80.6s +~ # echo ---ping; ping -c4 -W3 -I wwan0 77.88.8.8 | tail -2 +---ping +4 packets transmitted, 4 packets received, 0% packet loss +round-trip min/avg/max = 50.970/90.957/201.941 ms +~ # echo ---display; /etc/init.d/aurora-display status; cat /run/aurora-display/ +display.log; cat /run/aurora-display/service.log +---display +fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=0 bl=1 +[7.76] display pipe already enabled (by fbcon takeover) - no unblank needed +[7.78] backlight on -> bl_power=0 actual_brightness=1 +[7.84] === DISPLAY READY fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=0 bl=1 +[7.68] start: fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=4 bl=1 +[7.70] fbcon bound to fb0 +[7.76] display pipe already enabled (by fbcon takeover) - no unblank needed +[7.78] backlight on -> bl_power=0 actual_brightness=1 +[7.84] === DISPLAY READY fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=0 bl=1 +=== service start rc=0 7.85 +~ # echo ---consoles; cat /sys/class/tty/console/active; for v in /sys/class/vtc +onsole/vtcon*; do echo "$v $(cat $v/bind) $(cat $v/name)"; done; ls -l /proc/[0- +9]*/fd/0 2>/dev/null | grep -E "ttyMSM0|tty1|console" | sed "s/.* \/proc/\/proc/ +" +---consoles +tty0 ttyMSM0 +/sys/class/vtconsole/vtcon0 0 (S) dummy device +/sys/class/vtconsole/vtcon1 1 (M) frame buffer device +/proc/1/fd/0 -> /dev/console +/proc/1120/fd/0 -> /dev/ttyMSM0 +/proc/627/fd/0 -> /dev/tty1 +~ # echo ---getty; hostname; ps | grep -E "[g]etty|[c]ttyhack| sh$" +---getty +aurora + 627 root getty 0 tty1 linux + 1120 root sh +~ # echo ---fb; ls -l /dev/dri/card0 /dev/fb0; for f in name bits_per_pixel virt +ual_size stride; do echo "fb0 $f=$(cat /sys/class/graphics/fb0/$f)"; done; cat / +sys/class/drm/card0-SPI-1/enabled /sys/class/drm/card0-SPI-1/dpms +---fb +crw------- 1 root root 226, 0 Oct 2 22:21 /dev/dri/card0 +crw------- 1 root root 29, 0 Oct 2 22:21 /dev/fb0 +fb0 name=panel-mipi-dbid +fb0 bits_per_pixel=16 +fb0 virtual_size=128,128 +fb0 stride=256 +enabled +On +~ # echo ---regs; for r in /sys/class/regulator/regulator.*; do n=$(cat $r/name) +; case $n in l6|l17) echo "$n $(cat $r/state) $(cat $r/microvolts) users=$(cat $ +r/num_users)";; esac; done +---regs +l17 enabled 2850000 users=1 +l6 enabled 1800000 users=1 +~ # echo ---bl; for f in bl_power brightness actual_brightness; do echo "bl $f=$ +(cat /sys/class/backlight/backlight/$f)"; done +---bl +bl bl_power=0 +bl brightness=1 +bl actual_brightness=1 +~ # echo ---dmesg-display; dmesg | grep -iE "drm|panel|mipi|spi_qup|78b8000|fbco +n|Console: |frame buffer|backlight|aurora-display|l17" +---dmesg-display +[ 0.000000] Kernel command line: earlycon console=tty0 console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init fbcon=font:6x8 consoleblank=0 +[ 0.010997] Console: colour dummy device 80x25 +[ 0.716749] spi_qup 78b8000.spi: IN:block:16, fifo:64, OUT:block:16, fifo:64 +[ 1.057090] l17: Bringing 0uV into 2850000-2850000uV +[ 1.422655] [drm] Initialized panel-mipi-dbi 1.0.0 for spi0.0 on minor 0 +[ 1.770186] Console: switching to colour frame buffer device 21x16 +[ 1.793786] panel-mipi-dbi-spi spi0.0: [drm] fb0: panel-mipi-dbid frame buffer device +[ 7.836096] [aurora-display] start: fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=4 bl=1 +[ 7.855541] [aurora-display] fbcon bound to fb0 +[ 7.912706] [aurora-display] display pipe already enabled (by fbcon takeover) - no unblank needed +[ 7.928810] [aurora-display] backlight on -> bl_power=0 actual_brightness=1 +[ 7.994088] [aurora-display] === DISPLAY READY fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=0 bl=1 +~ # echo ---display-errors; dmesg | grep -iE "drm|panel|mipi|spi0|fbcon|backligh +t|aurora-display" | grep -ciE "err|fail|timeout|warn" +---display-errors +0 +~ # echo ---emmc; awk "{print \"w=\"\$5\" s=\"\$7}" /sys/block/mmcblk0/stat +---emmc +w=0 s=0 +~ # echo SNAP-END +SNAP-END +~ #  \ No newline at end of file diff --git a/logs/b9/b9c/cold2-classB/VERDICT.txt b/logs/b9/b9c/cold2-classB/VERDICT.txt new file mode 100644 index 0000000..bda83c7 --- /dev/null +++ b/logs/b9/b9c/cold2-classB/VERDICT.txt @@ -0,0 +1,2 @@ +NOT COUNTED: class B (RTC 585 s, ~12 s off). Functionally all PASS. +COUNTED as run 2/3 by operator decision (relaxed criterion: one class-B run accepted). Functionally all PASS. diff --git a/logs/b9/b9c/cold2-classB/host-actions.txt b/logs/b9/b9c/cold2-classB/host-actions.txt new file mode 100644 index 0000000..ad867a1 --- /dev/null +++ b/logs/b9/b9c/cold2-classB/host-actions.txt @@ -0,0 +1,11 @@ +22:30:28.274 B9C cold2: waiting for the board to go away (power off >= 90 s), then normal power-on WITHOUT RESET +22:30:47.353 board unreachable (powered off) +22:30:59.932 NCM ping ok +22:30:59.940 RTC at boot 585 s -> class B +~ # cat /proc/device-tree/model; echo; uname -r; grep -E "START OK|FAIL in|rollb +JZ08AU Aurora (RAM boot B9B) +[83.58] === START OK in 73.8s (wwan0 10.47.129.24/28, routes: 10.10.22.1 194.186.191.1 77.88.8.8 1.1.1.1 ) +22:32:36.091 wifi: [88.40] === AP ENABLED ssid=aurora-b8f ch=6 pid=2727 in 78.59s +22:32:44.112 sntp: [99.04] SNTP check ( 89.109.251.21 89.109.251.22 89.109.251.23): 12 replies; best offset delay server: +0.462342 0.043965 89.109.251.22: (offset > 0 = clock behind) +22:33:10.126 snapshot: 2 end markers; RP a204000.remoteproc=running +22:33:15.159 B9C cold2 END - operator visual check next diff --git a/logs/b9/b9c/cold2-classB/snapshot.txt b/logs/b9/b9c/cold2-classB/snapshot.txt new file mode 100644 index 0000000..23fe624 --- /dev/null +++ b/logs/b9/b9c/cold2-classB/snapshot.txt @@ -0,0 +1,200 @@ +�������� + + +BusyBox v1.37.0 (Debian 1:1.37.0-6+b9) built-in shell (ash) +Enter 'help' for a list of built-in commands. + +~ # echo SNAP-BEGIN; cat /proc/uptime; date -u; cat /proc/device-tree/model; ech +o; uname -a; cat /proc/cmdline +SNAP-BEGIN +114.64 415.93 +Fri Oct 2 22:32:44 UTC 2026 +JZ08AU Aurora (RAM boot B9B) +Linux aurora 7.2.7-aurora-b9c #9 SMP PREEMPT Sat Oct 3 03:06:50 +06 2026 aarch64 GNU/Linux +earlycon console=tty0 console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init fbcon=font:6x8 consoleblank=0 +~ # echo ---time; cat /run/aurora-modem/time-set; grep -E "TIME|SNTP" /run/auror +a-modem/lifecycle.log | tail -4 +---time +1790980272 21.96 REG:registered/attached qmi-dms +[22.10] TIME probe 6 [REGISTERED]: dms_ms=1475015472076 dms_utc=1790980272.076 nitz=2026-10-02 22:31:12 dms-nitz=+0.11 clock=1790980272 -> VALID (ok) +[83.69] TIME probe 7 [BEARER_CONNECTED]: dms_ms=1475015533658 dms_utc=1790980333.658 nitz=2026-10-02 22:32:13 dms-nitz=+0.69 clock=1790980333 -> VALID (ok) +[99.04] SNTP check ( 89.109.251.21 89.109.251.22 89.109.251.23): 12 replies; best offset delay server: +0.462342 0.043965 89.109.251.22: (offset > 0 = clock behind) +[99.05] SNTP: |offset| < 1s - clock kept (no slew: STA_UNSYNC stays, RTC_SYSTOHC never engages) +~ # echo ---modem; /etc/init.d/aurora-modem status +---modem +service: idle +controller: BEARER_CONNECTED +remoteproc: 4080000.remoteproc running (/sys/class/remoteproc/remoteproc0) fw=mba.mbn +rmtfs: pid='1157' writes_logged=1 +qmi dev: /dev/wwan0qmi0 qmi-proxy='1978' +daemons: udevd='1857' dbus='1886' polkitd='1890' ModemManager='1901' + mm plugin: qcom-soc + mm primary port: wwan0qmi0 + mm state: connected + mm power state: on + mm access tech: lte + mm signal quality: 70% (recent) + mm operator name: Beeline + mm registration: home + bearer 1: Status connected: yes; interface: wwan0; address: 10.47.129.24; +wwan: wwan0 UP 10.47.129.24/28 +wwan up: 1 of 8 +routes: 1.1.1.1 dev wwan0 scope link src 10.47.129.24 ;10.10.22.1 dev wwan0 scope link src 10.47.129.24 ;10.47.129.16/28 dev wwan0 scope link src 10.47.129.24 ;77.88.8.8 dev wwan0 scope link src 10.47.129.24 ;89.109.251.21 dev wwan0 scope link src 10.47.129.24 ;89.109.251.22 dev wwan0 scope link src 10.47.129.24 ;89.109.251.23 dev wwan0 scope link src 10.47.129.24 ;194.186.191.1 dev wwan0 scope link src 10.47.129.24 ; +bam-dmux: suspended active_ms=9350 suspended_ms=104936 control=auto +usb0: 172.16.42.1/24 route-to-host: 172.16.42.2 dev usb0 src 172.16.42.1 +emmc: writes_completed=0 sectors_written=0 +time: 2026-10-02 22:32:45 UTC; set: 1790980272 21.96 REG:registered/attached qmi-dms; probes: 7 +dmesg-errs: 0 +~ # echo ---wifi; /etc/init.d/aurora-wifi status; echo ---wifilog; cat /run/auro +ra-wifi/wifi.log; cat /run/aurora-wifi/service.log; echo ---hostapdlog; cat /run +/aurora-wifi/hostapd.log +---wifi +service: idle +remoteproc: a204000.remoteproc running (/sys/class/remoteproc/remoteproc1) +crash=0 watchdog=0 fatal=0 +wlan0: wlan0: ssid aurora-b8f type AP channel 6 (2437 MHz), width: 20 MHz, center1: 2437 MHz +hostapd: pid=2727 0 connects, 0 disconnects +[85.03] WCNSS /sys/class/remoteproc/remoteproc1 state=running +[87.35] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +[88.40] === AP ENABLED ssid=aurora-b8f ch=6 pid=2727 in 78.59s +---wifilog +[9.81] === WIFI START (wait for modem START OK/FAIL up to 300s) +[84.52] modem gate after 74s: [83.58] === START OK in 73.8s (wwan0 10.47.129.24/28, routes: 10.10.22.1 194.186 +[85.03] WCNSS /sys/class/remoteproc/remoteproc1 state=running +[87.35] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +[88.40] === AP ENABLED ssid=aurora-b8f ch=6 pid=2727 in 78.59s +[9.81] === WIFI START (wait for modem START OK/FAIL up to 300s) +[84.52] modem gate after 74s: [83.58] === START OK in 73.8s (wwan0 10.47.129.24/28, routes: 10.10.22.1 194.186 +[85.03] WCNSS /sys/class/remoteproc/remoteproc1 state=running +[87.35] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +[88.40] === AP ENABLED ssid=aurora-b8f ch=6 pid=2727 in 78.59s +=== service start rc=0 88.41 +---hostapdlog +1790980337.783765: VLAN: vlan_set_name_type: SET_VLAN_NAME_TYPE_CMD name_type=2 failed: No error information +1790980337.896921: wlan0: interface state UNINITIALIZED->ENABLED +1790980337.897032: wlan0: AP-ENABLED +~ # for r in /sys/class/remoteproc/*; do echo "RP $(cat $r/name)=$(cat $r/state) +"; done; iw dev +RP 4080000.remoteproc=running +RP a204000.remoteproc=running +phy#0 + Interface wlan0 + ifindex 12 + wdev 0x1 + addr + ssid aurora-b8f + type AP + channel 6 (2437 MHz), width: 20 MHz, center1: 2437 MHz + txpower 20.00 dBm + multicast TXQ: + qsz-byt qsz-pkt flows drops marks overlmt hashcol tx-bytes tx-packets + 0 0 0 0 0 0 0 0 0 +~ # echo ---dmesg-wifi; dmesg | grep -iE "wcn36xx|wcnss|a204000|cfg80211|aurora- +wifi|crash|watchdog" +---dmesg-wifi +[ 0.000000] OF: reserved mem: 0x000000008b600000..0x000000008bbfffff (6144 KiB) nomap non-reusable wcnss@8b600000 +[ 0.965312] remoteproc remoteproc0: releasing a204000.remoteproc +[ 1.002622] qcom-wcnss-pil a204000.remoteproc: supply vddcx not found, using dummy regulator +[ 1.011184] a204000.remoteproc.iris: failed to get regulators +[ 1.023968] remoteproc remoteproc0: releasing a204000.remoteproc +[ 1.051759] qcom-wcnss-pil a204000.remoteproc: supply vddcx not found, using dummy regulator +[ 1.062237] remoteproc remoteproc1: a204000.remoteproc is available +[ 1.419707] remoteproc remoteproc1: Direct firmware load for wcnss.mdt failed with error -2 +[ 1.422378] remoteproc remoteproc1: powering up a204000.remoteproc +[ 1.430632] remoteproc remoteproc1: Direct firmware load for wcnss.mdt failed with error -2 +[ 1.826329] cfg80211: Loading compiled-in X.509 certificates for regulatory database +[ 1.845885] cfg80211: failed to load regulatory.db +[ 9.964582] [aurora-wifi] === WIFI START (wait for modem START OK/FAIL up to 300s) +[ 84.671514] [aurora-wifi] modem gate after 74s: [83.58] === START OK in 73.8s (wwan0 10.47.129.24/28, routes: 10.10.22.1 194.186 +[ 84.688451] remoteproc remoteproc1: powering up a204000.remoteproc +[ 84.690305] remoteproc remoteproc1: Booting fw image wcnss.mdt, size 7260 +[ 85.175943] remoteproc remoteproc1: remote processor a204000.remoteproc is now up +[ 85.186871] [aurora-wifi] WCNSS /sys/class/remoteproc/remoteproc1 state=running +[ 85.301221] qcom_wcnss_ctrl remoteproc1:smd-edge.WCNSS_CTRL.-1.-1: WCNSS Version 1.5 1.2 +[ 85.321899] wcn36xx: mac address: +[ 87.439645] wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO' and CRM version 'CNSS-PR-1-4-2-c4-00084' +[ 87.454042] wcn36xx: firmware API 1.5.1.2, 41 stations, 2 bssids +[ 87.502627] [aurora-wifi] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +[ 88.553268] [aurora-wifi] === AP ENABLED ssid=aurora-b8f ch=6 pid=2727 in 78.59s +~ # echo ---ping; ping -c4 -W3 -I wwan0 77.88.8.8 | tail -2 +---ping +4 packets transmitted, 4 packets received, 0% packet loss +round-trip min/avg/max = 52.127/95.256/200.200 ms +~ # echo ---display; /etc/init.d/aurora-display status; cat /run/aurora-display/ +display.log; cat /run/aurora-display/service.log +---display +fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=0 bl=1 +[7.76] display pipe already enabled (by fbcon takeover) - no unblank needed +[7.77] backlight on -> bl_power=0 actual_brightness=1 +[7.83] === DISPLAY READY fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=0 bl=1 +[7.67] start: fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=4 bl=1 +[7.69] fbcon bound to fb0 +[7.76] display pipe already enabled (by fbcon takeover) - no unblank needed +[7.77] backlight on -> bl_power=0 actual_brightness=1 +[7.83] === DISPLAY READY fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=0 bl=1 +=== service start rc=0 7.84 +~ # echo ---consoles; cat /sys/class/tty/console/active; for v in /sys/class/vtc +onsole/vtcon*; do echo "$v $(cat $v/bind) $(cat $v/name)"; done; ls -l /proc/[0- +9]*/fd/0 2>/dev/null | grep -E "ttyMSM0|tty1|console" | sed "s/.* \/proc/\/proc/ +" +---consoles +tty0 ttyMSM0 +/sys/class/vtconsole/vtcon0 0 (S) dummy device +/sys/class/vtconsole/vtcon1 1 (M) frame buffer device +/proc/1/fd/0 -> /dev/console +/proc/1119/fd/0 -> /dev/ttyMSM0 +/proc/625/fd/0 -> /dev/tty1 +~ # echo ---getty; hostname; ps | grep -E "[g]etty|[c]ttyhack| sh$" +---getty +aurora + 625 root getty 0 tty1 linux + 1119 root sh +~ # echo ---fb; ls -l /dev/dri/card0 /dev/fb0; for f in name bits_per_pixel virt +ual_size stride; do echo "fb0 $f=$(cat /sys/class/graphics/fb0/$f)"; done; cat / +sys/class/drm/card0-SPI-1/enabled /sys/class/drm/card0-SPI-1/dpms +---fb +crw------- 1 root root 226, 0 Oct 2 22:31 /dev/dri/card0 +crw------- 1 root root 29, 0 Oct 2 22:31 /dev/fb0 +fb0 name=panel-mipi-dbid +fb0 bits_per_pixel=16 +fb0 virtual_size=128,128 +fb0 stride=256 +enabled +On +~ # echo ---regs; for r in /sys/class/regulator/regulator.*; do n=$(cat $r/name) +; case $n in l6|l17) echo "$n $(cat $r/state) $(cat $r/microvolts) users=$(cat $ +r/num_users)";; esac; done +---regs +l17 enabled 2850000 users=1 +l6 enabled 1800000 users=1 +~ # echo ---bl; for f in bl_power brightness actual_brightness; do echo "bl $f=$ +(cat /sys/class/backlight/backlight/$f)"; done +---bl +bl bl_power=0 +bl brightness=1 +bl actual_brightness=1 +~ # echo ---dmesg-display; dmesg | grep -iE "drm|panel|mipi|spi_qup|78b8000|fbco +n|Console: |frame buffer|backlight|aurora-display|l17" +---dmesg-display +[ 0.000000] Kernel command line: earlycon console=tty0 console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init fbcon=font:6x8 consoleblank=0 +[ 0.010994] Console: colour dummy device 80x25 +[ 0.715619] spi_qup 78b8000.spi: IN:block:16, fifo:64, OUT:block:16, fifo:64 +[ 1.056985] l17: Bringing 0uV into 2850000-2850000uV +[ 1.430753] [drm] Initialized panel-mipi-dbi 1.0.0 for spi0.0 on minor 0 +[ 1.767397] Console: switching to colour frame buffer device 21x16 +[ 1.813450] panel-mipi-dbi-spi spi0.0: [drm] fb0: panel-mipi-dbid frame buffer device +[ 7.827222] [aurora-display] start: fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=4 bl=1 +[ 7.842854] [aurora-display] fbcon bound to fb0 +[ 7.908096] [aurora-display] display pipe already enabled (by fbcon takeover) - no unblank needed +[ 7.922579] [aurora-display] backlight on -> bl_power=0 actual_brightness=1 +[ 7.987211] [aurora-display] === DISPLAY READY fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=0 bl=1 +~ # echo ---display-errors; dmesg | grep -iE "drm|panel|mipi|spi0|fbcon|backligh +t|aurora-display" | grep -ciE "err|fail|timeout|warn" +---display-errors +0 +~ # echo ---emmc; awk "{print \"w=\"\$5\" s=\"\$7}" /sys/block/mmcblk0/stat +---emmc +w=0 s=0 +~ # echo SNAP-END +SNAP-END +~ #  \ No newline at end of file diff --git a/logs/b9/b9c/cold3/host-actions.txt b/logs/b9/b9c/cold3/host-actions.txt new file mode 100644 index 0000000..736f5e0 --- /dev/null +++ b/logs/b9/b9c/cold3/host-actions.txt @@ -0,0 +1,11 @@ +22:36:40.791 B9C cold3: waiting for the board to go away (power off >= 90 s), then normal power-on WITHOUT RESET +22:36:41.800 board unreachable (powered off) +22:37:58.090 NCM ping ok +22:37:58.094 RTC at boot 3 s -> class A +~ # cat /proc/device-tree/model; echo; uname -r; grep -E "START OK|FAIL in|rollb +JZ08AU Aurora (RAM boot B9B) +[85.70] === START OK in 76.3s (wwan0 10.46.48.247/28, routes: 10.10.22.1 194.186.191.1 77.88.8.8 1.1.1.1 ) +22:39:34.245 wifi: [89.59] === AP ENABLED ssid=aurora-b8f ch=6 pid=2875 in 80.16s +22:39:42.268 sntp: [101.14] SNTP check ( 89.109.251.21 89.109.251.22 89.109.251.23): 14 replies; best offset delay server: +0.094072 0.039913 89.109.251.21: (offset > 0 = clock behind) +22:40:08.281 snapshot: 2 end markers; RP a204000.remoteproc=running +22:40:13.313 B9C cold3 END - operator visual check next diff --git a/logs/b9/b9c/cold3/snapshot.txt b/logs/b9/b9c/cold3/snapshot.txt new file mode 100644 index 0000000..0f5df53 --- /dev/null +++ b/logs/b9/b9c/cold3/snapshot.txt @@ -0,0 +1,200 @@ +�������� + + +BusyBox v1.37.0 (Debian 1:1.37.0-6+b9) built-in shell (ash) +Enter 'help' for a list of built-in commands. + +~ # echo SNAP-BEGIN; cat /proc/uptime; date -u; cat /proc/device-tree/model; ech +o; uname -a; cat /proc/cmdline +SNAP-BEGIN +115.38 418.39 +Fri Oct 2 22:39:43 UTC 2026 +JZ08AU Aurora (RAM boot B9B) +Linux aurora 7.2.7-aurora-b9c #9 SMP PREEMPT Sat Oct 3 03:06:50 +06 2026 aarch64 GNU/Linux +earlycon console=tty0 console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init fbcon=font:6x8 consoleblank=0 +~ # echo ---time; cat /run/aurora-modem/time-set; grep -E "TIME|SNTP" /run/auror +a-modem/lifecycle.log | tail -4 +---time +1790980689 21.17 REG:not-registered-searching/detached qmi-dms +[24.73] TIME probe 7 [REGISTERED]: dms_ms=1475015892501 dms_utc=1790980692.501 nitz=2026-10-02 22:38:12 dms-nitz=+0.54 clock=1790980692 -> VALID (ok) +[85.85] TIME probe 8 [BEARER_CONNECTED]: dms_ms=1475015953596 dms_utc=1790980753.596 nitz=2026-10-02 22:39:13 dms-nitz=+0.64 clock=1790980753 -> VALID (ok) +[101.14] SNTP check ( 89.109.251.21 89.109.251.22 89.109.251.23): 14 replies; best offset delay server: +0.094072 0.039913 89.109.251.21: (offset > 0 = clock behind) +[101.16] SNTP: |offset| < 1s - clock kept (no slew: STA_UNSYNC stays, RTC_SYSTOHC never engages) +~ # echo ---modem; /etc/init.d/aurora-modem status +---modem +service: idle +controller: BEARER_CONNECTED +remoteproc: 4080000.remoteproc running (/sys/class/remoteproc/remoteproc0) fw=mba.mbn +rmtfs: pid='1159' writes_logged=1 +qmi dev: /dev/wwan0qmi0 qmi-proxy='2129' +daemons: udevd='2009' dbus='2037' polkitd='2041' ModemManager='2052' + mm plugin: qcom-soc + mm primary port: wwan0qmi0 + mm state: connected + mm power state: on + mm access tech: lte + mm signal quality: 57% (recent) + mm operator name: Beeline + mm registration: home + bearer 1: Status connected: yes; interface: wwan0; address: 10.46.48.247; +wwan: wwan0 UP 10.46.48.247/28 +wwan up: 1 of 8 +routes: 1.1.1.1 dev wwan0 scope link src 10.46.48.247 ;10.10.22.1 dev wwan0 scope link src 10.46.48.247 ;10.46.48.240/28 dev wwan0 scope link src 10.46.48.247 ;77.88.8.8 dev wwan0 scope link src 10.46.48.247 ;89.109.251.21 dev wwan0 scope link src 10.46.48.247 ;89.109.251.22 dev wwan0 scope link src 10.46.48.247 ;89.109.251.23 dev wwan0 scope link src 10.46.48.247 ;194.186.191.1 dev wwan0 scope link src 10.46.48.247 ; +bam-dmux: suspended active_ms=10351 suspended_ms=104686 control=auto +usb0: 172.16.42.1/24 route-to-host: 172.16.42.2 dev usb0 src 172.16.42.1 +emmc: writes_completed=0 sectors_written=0 +time: 2026-10-02 22:39:43 UTC; set: 1790980689 21.17 REG:not-registered-searching/detached qmi-dms; probes: 8 +dmesg-errs: 0 +~ # echo ---wifi; /etc/init.d/aurora-wifi status; echo ---wifilog; cat /run/auro +ra-wifi/wifi.log; cat /run/aurora-wifi/service.log; echo ---hostapdlog; cat /run +/aurora-wifi/hostapd.log +---wifi +service: idle +remoteproc: a204000.remoteproc running (/sys/class/remoteproc/remoteproc1) +crash=0 watchdog=0 fatal=0 +wlan0: wlan0: ssid aurora-b8f type AP channel 6 (2437 MHz), width: 20 MHz, center1: 2437 MHz +hostapd: pid=2875 0 connects, 0 disconnects +[86.69] WCNSS /sys/class/remoteproc/remoteproc1 state=running +[88.53] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +[89.59] === AP ENABLED ssid=aurora-b8f ch=6 pid=2875 in 80.16s +---wifilog +[9.44] === WIFI START (wait for modem START OK/FAIL up to 300s) +[86.19] modem gate after 76s: [85.70] === START OK in 76.3s (wwan0 10.46.48.247/28, routes: 10.10.22.1 194.186 +[86.69] WCNSS /sys/class/remoteproc/remoteproc1 state=running +[88.53] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +[89.59] === AP ENABLED ssid=aurora-b8f ch=6 pid=2875 in 80.16s +[9.44] === WIFI START (wait for modem START OK/FAIL up to 300s) +[86.19] modem gate after 76s: [85.70] === START OK in 76.3s (wwan0 10.46.48.247/28, routes: 10.10.22.1 194.186 +[86.69] WCNSS /sys/class/remoteproc/remoteproc1 state=running +[88.53] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +[89.59] === AP ENABLED ssid=aurora-b8f ch=6 pid=2875 in 80.16s +=== service start rc=0 89.61 +---hostapdlog +1790980756.755702: VLAN: vlan_set_name_type: SET_VLAN_NAME_TYPE_CMD name_type=2 failed: No error information +1790980756.855176: wlan0: interface state UNINITIALIZED->ENABLED +1790980756.855299: wlan0: AP-ENABLED +~ # for r in /sys/class/remoteproc/*; do echo "RP $(cat $r/name)=$(cat $r/state) +"; done; iw dev +RP 4080000.remoteproc=running +RP a204000.remoteproc=running +phy#0 + Interface wlan0 + ifindex 12 + wdev 0x1 + addr + ssid aurora-b8f + type AP + channel 6 (2437 MHz), width: 20 MHz, center1: 2437 MHz + txpower 20.00 dBm + multicast TXQ: + qsz-byt qsz-pkt flows drops marks overlmt hashcol tx-bytes tx-packets + 0 0 0 0 0 0 0 0 0 +~ # echo ---dmesg-wifi; dmesg | grep -iE "wcn36xx|wcnss|a204000|cfg80211|aurora- +wifi|crash|watchdog" +---dmesg-wifi +[ 0.000000] OF: reserved mem: 0x000000008b600000..0x000000008bbfffff (6144 KiB) nomap non-reusable wcnss@8b600000 +[ 0.957567] remoteproc remoteproc0: releasing a204000.remoteproc +[ 0.994394] qcom-wcnss-pil a204000.remoteproc: supply vddcx not found, using dummy regulator +[ 1.003641] a204000.remoteproc.iris: failed to get regulators +[ 1.016164] remoteproc remoteproc0: releasing a204000.remoteproc +[ 1.042751] qcom-wcnss-pil a204000.remoteproc: supply vddcx not found, using dummy regulator +[ 1.049686] remoteproc remoteproc1: a204000.remoteproc is available +[ 1.073565] cfg80211: Loading compiled-in X.509 certificates for regulatory database +[ 1.410083] remoteproc remoteproc1: Direct firmware load for wcnss.mdt failed with error -2 +[ 1.412861] cfg80211: failed to load regulatory.db +[ 1.412895] remoteproc remoteproc1: powering up a204000.remoteproc +[ 1.440730] remoteproc remoteproc1: Direct firmware load for wcnss.mdt failed with error -2 +[ 9.592677] [aurora-wifi] === WIFI START (wait for modem START OK/FAIL up to 300s) +[ 86.337924] [aurora-wifi] modem gate after 76s: [85.70] === START OK in 76.3s (wwan0 10.46.48.247/28, routes: 10.10.22.1 194.186 +[ 86.365190] remoteproc remoteproc1: powering up a204000.remoteproc +[ 86.370800] remoteproc remoteproc1: Booting fw image wcnss.mdt, size 7260 +[ 86.834752] remoteproc remoteproc1: remote processor a204000.remoteproc is now up +[ 86.843016] [aurora-wifi] WCNSS /sys/class/remoteproc/remoteproc1 state=running +[ 86.959391] qcom_wcnss_ctrl remoteproc1:smd-edge.WCNSS_CTRL.-1.-1: WCNSS Version 1.5 1.2 +[ 86.984542] wcn36xx: mac address: +[ 88.623626] wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO' and CRM version 'CNSS-PR-1-4-2-c4-00084' +[ 88.638275] wcn36xx: firmware API 1.5.1.2, 41 stations, 2 bssids +[ 88.686700] [aurora-wifi] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +[ 89.749483] [aurora-wifi] === AP ENABLED ssid=aurora-b8f ch=6 pid=2875 in 80.16s +~ # echo ---ping; ping -c4 -W3 -I wwan0 77.88.8.8 | tail -2 +---ping +4 packets transmitted, 4 packets received, 0% packet loss +round-trip min/avg/max = 54.312/93.723/199.633 ms +~ # echo ---display; /etc/init.d/aurora-display status; cat /run/aurora-display/ +display.log; cat /run/aurora-display/service.log +---display +fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=0 bl=1 +[7.28] display pipe already enabled (by fbcon takeover) - no unblank needed +[7.29] backlight on -> bl_power=0 actual_brightness=1 +[7.35] === DISPLAY READY fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=0 bl=1 +[7.20] start: fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=4 bl=1 +[7.22] fbcon bound to fb0 +[7.28] display pipe already enabled (by fbcon takeover) - no unblank needed +[7.29] backlight on -> bl_power=0 actual_brightness=1 +[7.35] === DISPLAY READY fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=0 bl=1 +=== service start rc=0 7.36 +~ # echo ---consoles; cat /sys/class/tty/console/active; for v in /sys/class/vtc +onsole/vtcon*; do echo "$v $(cat $v/bind) $(cat $v/name)"; done; ls -l /proc/[0- +9]*/fd/0 2>/dev/null | grep -E "ttyMSM0|tty1|console" | sed "s/.* \/proc/\/proc/ +" +---consoles +tty0 ttyMSM0 +/sys/class/vtconsole/vtcon0 0 (S) dummy device +/sys/class/vtconsole/vtcon1 1 (M) frame buffer device +/proc/1/fd/0 -> /dev/console +/proc/1121/fd/0 -> /dev/ttyMSM0 +/proc/627/fd/0 -> /dev/tty1 +~ # echo ---getty; hostname; ps | grep -E "[g]etty|[c]ttyhack| sh$" +---getty +aurora + 627 root getty 0 tty1 linux + 1121 root sh +~ # echo ---fb; ls -l /dev/dri/card0 /dev/fb0; for f in name bits_per_pixel virt +ual_size stride; do echo "fb0 $f=$(cat /sys/class/graphics/fb0/$f)"; done; cat / +sys/class/drm/card0-SPI-1/enabled /sys/class/drm/card0-SPI-1/dpms +---fb +crw------- 1 root root 226, 0 Oct 2 22:38 /dev/dri/card0 +crw------- 1 root root 29, 0 Oct 2 22:38 /dev/fb0 +fb0 name=panel-mipi-dbid +fb0 bits_per_pixel=16 +fb0 virtual_size=128,128 +fb0 stride=256 +enabled +On +~ # echo ---regs; for r in /sys/class/regulator/regulator.*; do n=$(cat $r/name) +; case $n in l6|l17) echo "$n $(cat $r/state) $(cat $r/microvolts) users=$(cat $ +r/num_users)";; esac; done +---regs +l17 enabled 2850000 users=1 +l6 enabled 1800000 users=1 +~ # echo ---bl; for f in bl_power brightness actual_brightness; do echo "bl $f=$ +(cat /sys/class/backlight/backlight/$f)"; done +---bl +bl bl_power=0 +bl brightness=1 +bl actual_brightness=1 +~ # echo ---dmesg-display; dmesg | grep -iE "drm|panel|mipi|spi_qup|78b8000|fbco +n|Console: |frame buffer|backlight|aurora-display|l17" +---dmesg-display +[ 0.000000] Kernel command line: earlycon console=tty0 console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init fbcon=font:6x8 consoleblank=0 +[ 0.010997] Console: colour dummy device 80x25 +[ 0.708997] spi_qup 78b8000.spi: IN:block:16, fifo:64, OUT:block:16, fifo:64 +[ 1.057948] l17: Bringing 0uV into 2850000-2850000uV +[ 1.412965] [drm] Initialized panel-mipi-dbi 1.0.0 for spi0.0 on minor 0 +[ 1.782025] Console: switching to colour frame buffer device 21x16 +[ 1.820979] panel-mipi-dbi-spi spi0.0: [drm] fb0: panel-mipi-dbid frame buffer device +[ 7.354443] [aurora-display] start: fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=4 bl=1 +[ 7.375150] [aurora-display] fbcon bound to fb0 +[ 7.429145] [aurora-display] display pipe already enabled (by fbcon takeover) - no unblank needed +[ 7.438990] [aurora-display] backlight on -> bl_power=0 actual_brightness=1 +[ 7.505174] [aurora-display] === DISPLAY READY fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=0 bl=1 +~ # echo ---display-errors; dmesg | grep -iE "drm|panel|mipi|spi0|fbcon|backligh +t|aurora-display" | grep -ciE "err|fail|timeout|warn" +---display-errors +0 +~ # echo ---emmc; awk "{print \"w=\"\$5\" s=\"\$7}" /sys/block/mmcblk0/stat +---emmc +w=0 s=0 +~ # echo SNAP-END +SNAP-END +~ #  \ No newline at end of file diff --git a/logs/b9/b9c/ram1/bl-test.txt b/logs/b9/b9c/ram1/bl-test.txt new file mode 100644 index 0000000..ce0b5b5 --- /dev/null +++ b/logs/b9/b9c/ram1/bl-test.txt @@ -0,0 +1,22 @@ +=== 21:13:37 bl off +[165.04] backlight off -> bl_power=0 actual_brightness=0 +=== 21:15:16 bl on +[264.48] backlight on -> bl_power=0 actual_brightness=1 +VCS-BEGIN + 0 = clock behind) +[ 94.748364] [auror +a-modem] SNTP: |offse +t| < 1s - clock kept +(no slew: STA_UNSYNC +stays, RTC_SYSTOHC ne +ver engages) +[ 165.192028] [auror +a-display] backlight +off -> bl_power=0 act +ual_brightness=0 +[ 264.634290] [auror +a-display] backlight +on -> bl_power=0 actu +al_brightness=1 + +VCS-END diff --git a/logs/b9/b9c/ram1/host-actions.txt b/logs/b9/b9c/ram1/host-actions.txt new file mode 100644 index 0000000..cf5939f --- /dev/null +++ b/logs/b9/b9c/ram1/host-actions.txt @@ -0,0 +1,15 @@ +21:08:25.167 B9C ram1: waiting for fastboot (power off >= 90 s, then RESET held + battery -> USB) +21:10:51.321 fastboot present +Sending 'boot.img' (24964 KB) OKAY [ 0.788s] +Booting OKAY [ 0.537s] +Finished. Total time: 1.347s +rc=0 +21:11:04.685 NCM ping ok +21:11:04.688 RTC at boot 6 s -> class A +~ # cat /proc/device-tree/model; echo; uname -r; grep -E "START OK|FAIL in|rollb +JZ08AU Aurora (RAM boot B9B) +[79.16] === START OK in 69.2s (wwan0 10.40.174.62/30, routes: 10.10.22.3 194.186.191.1 77.88.8.8 1.1.1.1 ) +21:12:30.772 wifi: [83.49] === AP ENABLED ssid=aurora-b8f ch=6 pid=2798 in 73.51s +21:12:38.787 sntp: [94.58] SNTP check ( 89.109.251.21 89.109.251.22 89.109.251.23): 14 replies; best offset delay server: +0.200034 0.058931 89.109.251.23: (offset > 0 = clock behind) +21:13:04.797 snapshot: 2 end markers; RP a204000.remoteproc=running +21:13:09.819 B9C ram1 END - operator visual check next diff --git a/logs/b9/b9c/ram1/snapshot.txt b/logs/b9/b9c/ram1/snapshot.txt new file mode 100644 index 0000000..e90635e --- /dev/null +++ b/logs/b9/b9c/ram1/snapshot.txt @@ -0,0 +1,200 @@ +�������� + + +BusyBox v1.37.0 (Debian 1:1.37.0-6+b9) built-in shell (ash) +Enter 'help' for a list of built-in commands. + +~ # echo SNAP-BEGIN; cat /proc/uptime; date -u; cat /proc/device-tree/model; ech +o; uname -a; cat /proc/cmdline +SNAP-BEGIN +106.35 382.47 +Fri Oct 2 21:12:39 UTC 2026 +JZ08AU Aurora (RAM boot B9B) +Linux aurora 7.2.7-aurora-b9c #9 SMP PREEMPT Sat Oct 3 03:06:50 +06 2026 aarch64 GNU/Linux +earlycon console=tty0 console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init fbcon=font:6x8 consoleblank=0 +~ # echo ---time; cat /run/aurora-modem/time-set; grep -E "TIME|SNTP" /run/auror +a-modem/lifecycle.log | tail -4 +---time +1790975479 25.72 REG:registered/attached qmi-dms +[25.88] TIME probe 7 [REGISTERED]: dms_ms=1475010679079 dms_utc=1790975479.079 nitz=2026-10-02 21:11:19 dms-nitz=+0.12 clock=1790975479 -> VALID (ok) +[79.27] TIME probe 8 [BEARER_CONNECTED]: dms_ms=1475010732480 dms_utc=1790975532.480 nitz=2026-10-02 21:12:12 dms-nitz=+0.52 clock=1790975532 -> VALID (ok) +[94.58] SNTP check ( 89.109.251.21 89.109.251.22 89.109.251.23): 14 replies; best offset delay server: +0.200034 0.058931 89.109.251.23: (offset > 0 = clock behind) +[94.60] SNTP: |offset| < 1s - clock kept (no slew: STA_UNSYNC stays, RTC_SYSTOHC never engages) +~ # echo ---modem; /etc/init.d/aurora-modem status +---modem +service: idle +controller: BEARER_CONNECTED +remoteproc: 4080000.remoteproc running (/sys/class/remoteproc/remoteproc0) fw=mba.mbn +rmtfs: pid='1157' writes_logged=1 +qmi dev: /dev/wwan0qmi0 qmi-proxy='2131' +daemons: udevd='2008' dbus='2039' polkitd='2043' ModemManager='2054' + mm plugin: qcom-soc + mm primary port: wwan0qmi0 + mm state: connected + mm power state: on + mm access tech: lte + mm signal quality: 75% (recent) + mm operator name: Beeline + mm registration: home + bearer 1: Status connected: yes; interface: wwan0; address: 10.40.174.62; +wwan: wwan0 UP 10.40.174.62/30 +wwan up: 1 of 8 +routes: 1.1.1.1 dev wwan0 scope link src 10.40.174.62 ;10.10.22.3 dev wwan0 scope link src 10.40.174.62 ;10.40.174.60/30 dev wwan0 scope link src 10.40.174.62 ;77.88.8.8 dev wwan0 scope link src 10.40.174.62 ;89.109.251.21 dev wwan0 scope link src 10.40.174.62 ;89.109.251.22 dev wwan0 scope link src 10.40.174.62 ;89.109.251.23 dev wwan0 scope link src 10.40.174.62 ;194.186.191.1 dev wwan0 scope link src 10.40.174.62 ; +bam-dmux: suspended active_ms=10408 suspended_ms=95595 control=auto +usb0: 172.16.42.1/24 route-to-host: 172.16.42.2 dev usb0 src 172.16.42.1 +emmc: writes_completed=0 sectors_written=0 +time: 2026-10-02 21:12:40 UTC; set: 1790975479 25.72 REG:registered/attached qmi-dms; probes: 8 +dmesg-errs: 0 +~ # echo ---wifi; /etc/init.d/aurora-wifi status; echo ---wifilog; cat /run/auro +ra-wifi/wifi.log; cat /run/aurora-wifi/service.log; echo ---hostapdlog; cat /run +/aurora-wifi/hostapd.log +---wifi +service: idle +remoteproc: a204000.remoteproc running (/sys/class/remoteproc/remoteproc1) +crash=0 watchdog=0 fatal=0 +wlan0: wlan0: ssid aurora-b8f type AP channel 6 (2437 MHz), width: 20 MHz, center1: 2437 MHz +hostapd: pid=2798 0 connects, 0 disconnects +[80.14] WCNSS /sys/class/remoteproc/remoteproc1 state=running +[82.43] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +[83.49] === AP ENABLED ssid=aurora-b8f ch=6 pid=2798 in 73.51s +---wifilog +[9.97] === WIFI START (wait for modem START OK/FAIL up to 300s) +[79.64] modem gate after 69s: [79.16] === START OK in 69.2s (wwan0 10.40.174.62/30, routes: 10.10.22.3 194.186 +[80.14] WCNSS /sys/class/remoteproc/remoteproc1 state=running +[82.43] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +[83.49] === AP ENABLED ssid=aurora-b8f ch=6 pid=2798 in 73.51s +[9.97] === WIFI START (wait for modem START OK/FAIL up to 300s) +[79.64] modem gate after 69s: [79.16] === START OK in 69.2s (wwan0 10.40.174.62/30, routes: 10.10.22.3 194.186 +[80.14] WCNSS /sys/class/remoteproc/remoteproc1 state=running +[82.43] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +[83.49] === AP ENABLED ssid=aurora-b8f ch=6 pid=2798 in 73.51s +=== service start rc=0 83.49 +---hostapdlog +1790975536.099229: VLAN: vlan_set_name_type: SET_VLAN_NAME_TYPE_CMD name_type=2 failed: No error information +1790975536.207331: wlan0: interface state UNINITIALIZED->ENABLED +1790975536.207374: wlan0: AP-ENABLED +~ # for r in /sys/class/remoteproc/*; do echo "RP $(cat $r/name)=$(cat $r/state) +"; done; iw dev +RP 4080000.remoteproc=running +RP a204000.remoteproc=running +phy#0 + Interface wlan0 + ifindex 12 + wdev 0x1 + addr + ssid aurora-b8f + type AP + channel 6 (2437 MHz), width: 20 MHz, center1: 2437 MHz + txpower 20.00 dBm + multicast TXQ: + qsz-byt qsz-pkt flows drops marks overlmt hashcol tx-bytes tx-packets + 0 0 0 0 0 0 0 0 0 +~ # echo ---dmesg-wifi; dmesg | grep -iE "wcn36xx|wcnss|a204000|cfg80211|aurora- +wifi|crash|watchdog" +---dmesg-wifi +[ 0.000000] OF: reserved mem: 0x000000008b600000..0x000000008bbfffff (6144 KiB) nomap non-reusable wcnss@8b600000 +[ 0.961935] remoteproc remoteproc0: releasing a204000.remoteproc +[ 1.003548] qcom-wcnss-pil a204000.remoteproc: supply vddcx not found, using dummy regulator +[ 1.013128] a204000.remoteproc.iris: failed to get regulators +[ 1.025283] remoteproc remoteproc0: releasing a204000.remoteproc +[ 1.052213] qcom-wcnss-pil a204000.remoteproc: supply vddcx not found, using dummy regulator +[ 1.059124] remoteproc remoteproc1: a204000.remoteproc is available +[ 1.412647] remoteproc remoteproc1: Direct firmware load for wcnss.mdt failed with error -2 +[ 1.415410] remoteproc remoteproc1: powering up a204000.remoteproc +[ 1.423546] remoteproc remoteproc1: Direct firmware load for wcnss.mdt failed with error -2 +[ 1.820229] cfg80211: Loading compiled-in X.509 certificates for regulatory database +[ 1.844138] cfg80211: failed to load regulatory.db +[ 10.128085] [aurora-wifi] === WIFI START (wait for modem START OK/FAIL up to 300s) +[ 79.793435] [aurora-wifi] modem gate after 69s: [79.16] === START OK in 69.2s (wwan0 10.40.174.62/30, routes: 10.10.22.3 194.186 +[ 79.810171] remoteproc remoteproc1: powering up a204000.remoteproc +[ 79.812850] remoteproc remoteproc1: Booting fw image wcnss.mdt, size 7260 +[ 80.285375] remoteproc remoteproc1: remote processor a204000.remoteproc is now up +[ 80.293907] [aurora-wifi] WCNSS /sys/class/remoteproc/remoteproc1 state=running +[ 80.405386] qcom_wcnss_ctrl remoteproc1:smd-edge.WCNSS_CTRL.-1.-1: WCNSS Version 1.5 1.2 +[ 80.430465] wcn36xx: mac address: +[ 82.520309] wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO' and CRM version 'CNSS-PR-1-4-2-c4-00084' +[ 82.534379] wcn36xx: firmware API 1.5.1.2, 41 stations, 2 bssids +[ 82.582629] [aurora-wifi] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +[ 83.641068] [aurora-wifi] === AP ENABLED ssid=aurora-b8f ch=6 pid=2798 in 73.51s +~ # echo ---ping; ping -c4 -W3 -I wwan0 77.88.8.8 | tail -2 +---ping +4 packets transmitted, 4 packets received, 0% packet loss +round-trip min/avg/max = 46.725/88.795/198.153 ms +~ # echo ---display; /etc/init.d/aurora-display status; cat /run/aurora-display/ +display.log; cat /run/aurora-display/service.log +---display +fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=0 bl=1 +[7.94] display pipe already enabled (by fbcon takeover) - no unblank needed +[7.95] backlight on -> bl_power=0 actual_brightness=1 +[8.01] === DISPLAY READY fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=0 bl=1 +[7.88] start: fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=4 bl=1 +[7.89] fbcon bound to fb0 +[7.94] display pipe already enabled (by fbcon takeover) - no unblank needed +[7.95] backlight on -> bl_power=0 actual_brightness=1 +[8.01] === DISPLAY READY fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=0 bl=1 +=== service start rc=0 8.02 +~ # echo ---consoles; cat /sys/class/tty/console/active; for v in /sys/class/vtc +onsole/vtcon*; do echo "$v $(cat $v/bind) $(cat $v/name)"; done; ls -l /proc/[0- +9]*/fd/0 2>/dev/null | grep -E "ttyMSM0|tty1|console" | sed "s/.* \/proc/\/proc/ +" +---consoles +tty0 ttyMSM0 +/sys/class/vtconsole/vtcon0 0 (S) dummy device +/sys/class/vtconsole/vtcon1 1 (M) frame buffer device +/proc/1/fd/0 -> /dev/console +/proc/1119/fd/0 -> /dev/ttyMSM0 +/proc/624/fd/0 -> /dev/tty1 +~ # echo ---getty; hostname; ps | grep -E "[g]etty|[c]ttyhack| sh$" +---getty +aurora + 624 root getty 0 tty1 linux + 1119 root sh +~ # echo ---fb; ls -l /dev/dri/card0 /dev/fb0; for f in name bits_per_pixel virt +ual_size stride; do echo "fb0 $f=$(cat /sys/class/graphics/fb0/$f)"; done; cat / +sys/class/drm/card0-SPI-1/enabled /sys/class/drm/card0-SPI-1/dpms +---fb +crw------- 1 root root 226, 0 Oct 2 21:11 /dev/dri/card0 +crw------- 1 root root 29, 0 Oct 2 21:11 /dev/fb0 +fb0 name=panel-mipi-dbid +fb0 bits_per_pixel=16 +fb0 virtual_size=128,128 +fb0 stride=256 +enabled +On +~ # echo ---regs; for r in /sys/class/regulator/regulator.*; do n=$(cat $r/name) +; case $n in l6|l17) echo "$n $(cat $r/state) $(cat $r/microvolts) users=$(cat $ +r/num_users)";; esac; done +---regs +l17 enabled 2850000 users=1 +l6 enabled 1800000 users=1 +~ # echo ---bl; for f in bl_power brightness actual_brightness; do echo "bl $f=$ +(cat /sys/class/backlight/backlight/$f)"; done +---bl +bl bl_power=0 +bl brightness=1 +bl actual_brightness=1 +~ # echo ---dmesg-display; dmesg | grep -iE "drm|panel|mipi|spi_qup|78b8000|fbco +n|Console: |frame buffer|backlight|aurora-display|l17" +---dmesg-display +[ 0.000000] Kernel command line: earlycon console=tty0 console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init fbcon=font:6x8 consoleblank=0 +[ 0.010996] Console: colour dummy device 80x25 +[ 0.714412] spi_qup 78b8000.spi: IN:block:16, fifo:64, OUT:block:16, fifo:64 +[ 1.053503] l17: Bringing 0uV into 2850000-2850000uV +[ 1.423634] [drm] Initialized panel-mipi-dbi 1.0.0 for spi0.0 on minor 0 +[ 1.769095] Console: switching to colour frame buffer device 21x16 +[ 1.811271] panel-mipi-dbi-spi spi0.0: [drm] fb0: panel-mipi-dbid frame buffer device +[ 8.030612] [aurora-display] start: fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=4 bl=1 +[ 8.045081] [aurora-display] fbcon bound to fb0 +[ 8.090388] [aurora-display] display pipe already enabled (by fbcon takeover) - no unblank needed +[ 8.103591] [aurora-display] backlight on -> bl_power=0 actual_brightness=1 +[ 8.163651] [aurora-display] === DISPLAY READY fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=0 bl=1 +~ # echo ---display-errors; dmesg | grep -iE "drm|panel|mipi|spi0|fbcon|backligh +t|aurora-display" | grep -ciE "err|fail|timeout|warn" +---display-errors +0 +~ # echo ---emmc; awk "{print \"w=\"\$5\" s=\"\$7}" /sys/block/mmcblk0/stat +---emmc +w=0 s=0 +~ # echo SNAP-END +SNAP-END +~ #  \ No newline at end of file diff --git a/logs/b9/b9l/B9L-0-RESULT.md b/logs/b9/b9l/B9L-0-RESULT.md new file mode 100644 index 0000000..f83487c --- /dev/null +++ b/logs/b9/b9l/B9L-0-RESULT.md @@ -0,0 +1,14 @@ +# B9L-0 — lk1st chainloads an unmodified 32-bit lk2nd 23.1 (RAM only) — PASS (2026-10-03) + +RESET-held power-on → lk1st fastboot (`product lk1st-msm8916`) → `fastboot boot b9/b9l/lk2nd-23.1-stock.img` +(= lk2nd-build/out/lk2nd.img 555826ea, FORCE_FASTBOOT). Nothing written. + +UART (`l0/uart.log`): +- lk1st: `[1360] fastboot: boot` → `booting linux @ 0x80008000, ramdisk @ 0x82000000 (1), tags/device tree @ 0x81e00000` +- 2nd LK: `welcome to lk` → `lk2nd_init()` → `Booted @ 0x80008000, r0=0x0, r1=0x0, r2=0x81e00000` → `Found valid DTB with 1867 bytes total` + → `Command line from previous bootloader: lk2nd androidboot.emmc=true …` → `No continuous splash: MDP GDSC is not enabled` + → `Fastboot mode was forced with compile-time flag.` → `fastboot: processing commands` +- host: `fastboot getvar product` → `lk2nd-msm8916`, `kernel: lk`. + +=> A second-stage 32-bit LK runs on the migrated chain (DB410c TZ + qhypstub). Basis for B9L-RAM. +(Driver note: the first identity probe after `boot` raced with lk1st still being enumerated; re-checked by hand.) diff --git a/logs/b9/b9l/B9L-RAM-RESULT.md b/logs/b9/b9l/B9L-RAM-RESULT.md new file mode 100644 index 0000000..5159e75 --- /dev/null +++ b/logs/b9/b9l/B9L-RAM-RESULT.md @@ -0,0 +1,63 @@ +# B9L-RAM — ST7735S initialised by a second-stage lk2nd before Linux (RAM only) — PASS (2026-10-03) + +Image `b9/b9l/lk2nd-b9l-st7735s.img` **775986e2** = lk2nd 23.1 + `b9/b9l/lk2nd-23.1-aurora-b9l.patch`, without FORCE_FASTBOOT +(`BUILD-B9L.md`). Nothing was written: aboot, boot, cache and eMMC are untouched (mmcblk0 write fields = 0); cache is still B9C b9ce13c9. + +## Chain actually used (run `l1x`) +power (RESET) → lk1st fastboot → [B9L-0 left the board in lk2nd 23.1 fastboot] → `fastboot boot` B9L image from lk2nd 23.1 +→ B9L lk2nd: ST7735S init → extlinux `b9c` from the eMMC cache → Linux B9C. +This is one extra RAM stage compared with the planned "directly from lk1st" run. The operator asked to boot from the +fastboot that was already running; the panel code path is identical. A direct-from-lk1st repeat is optional (`b9l-ram.sh 1 ram`). + +## LK log (`l1x/uart-full.log`) +``` +[70] [B9L +0 ms] before: L6 st=82 en=80 L17 st=82 en=80 vset=58 MPP4 mode=00 en=00 sink=00 +[80] [B9L +10 ms] before: TLMM 12..15/116/118 cfg=1 (reset default) QUP4 spi CBCR=80000000 (off) +[210] [B9L +140 ms] reset done (GPIO118 high) (1 → 1 ms → 0 → 1 ms → 1 → 120 ms) +[220] B9L: gcc_blsp1_qup4_spi_apps_clk enabled at 16000000 Hz +[230] [B9L +160 ms] after QUP init: TLMM 12/13/15=344 (func1 12 mA) 14=204 (func1 2 mA) 116/118=2c0 out high; CBCR=00000001 RCGR cfg=00002113 +[360] [B9L +290 ms] 19 init commands sent, 0 failures; SPI_IO_CONTROL=401 SPI_CONFIG=0 (== stock LK) +[400] [B9L +330 ms] frame 128x128 RGB565 (32768 bytes) sent ret=0 +[430] [B9L +360 ms] after backlight: L6 st=82 en=80 L17 st=82 en=80 MPP4 mode=61 en=80 sink=07 (== stock LK) +[450] [B9L +380 ms] ST7735S bring-up end - continuing lk2nd boot +[710] Trying to boot 'b9c' → [1580] booting linux @ 0x80000000 +``` +**Power question answered:** at LK time **L17 is ON** (STATUS 0x82, EN 0x80) and L6 is ON. They are left on by SBL1/RPM, as the CAF comment says +("enabled in SBL"). No RPM/L17 workaround is needed in LK. The L17-OFF reading of B9A was taken in running Linux without a +panel consumer, so L17 is switched off somewhere between LK and that point (not investigated; irrelevant now because Linux holds L17). + +## Linux takeover (UART kernel time) +| t | event | +|---|---| +| 0.72 s | spi_qup 78b8000.spi | +| 1.07 s | `l17: Bringing 0uV into 2850000-2850000uV` (regulator taken by the panel) | +| 1.11 s | clk: disabling unused clocks | +| 1.42 s | `[drm] Initialized panel-mipi-dbi` | +| 1.78 s | `Console: switching to colour frame buffer device 21x16` (fbcon modeset = panel reset + re-init) | +| 7.35 s | aurora-display: backlight on → DISPLAY READY (no unblank needed) | + +Then: START OK 73.0 s, AP ENABLED 77.1 s, MPSS + WCNSS running, ping 4/4, display errors 0, eMMC w=0. + +## Operator (visual) +1. The test frame with backlight appeared **before Linux**. +2. Colours, orientation and border are correct (same chart as the Linux B9B test). +3. It stayed "about a second or a bit more", then the screen was dark "for about a second", then the Linux console. + The dark gap is the Linux-side handoff: the panel is re-initialised at the fbcon takeover, and MPP4 is set to off by the + gpio-backlight pinctrl state until aurora-display switches it on. The exact moment of the backlight-off was not logged. + The observed gap was shorter than the ~6 s estimate. + +## Verdict +PASS: image before Linux, held until the Linux takeover, Linux DRM/fbcon normal, LTE/Wi-Fi/B9C unaffected, no writes. +lk1st is NOT reflashed (needs a separate GO). Optional improvement for later: keep the backlight on across the handoff on the Linux side. + +## Formal run `ram1` (2026-10-03 22:16 UTC): directly from lk1st — PASS → B9L-RAM CLOSED +- Image `lk2nd-b9l-swag.img` **e6849a2b**: the same panel code as 775986e2, frame = operator splash `splash/swag.png` + (RGB565 via `splash/mk-splash.py`, blob 87955300). Driver `b9l-ram.sh 1 ram` with a gate: `fastboot boot` only when product == lk1st-msm8916. +- Chain: RESET power-on → `product=lk1st-msm8916` → `fastboot boot` → B9L lk2nd (UART: exactly 2× "welcome to lk") → `Trying to boot 'b9c'` → Linux. + Class A (RTC 5 s). +- LK: L6/L17 st=82 en=80; 16 MHz; `SPI_IO_CONTROL=401 SPI_CONFIG=0`; 19 commands, 0 failures; `frame source: splash image`, sent ret=0; + MPP4 61/80/07; bring-up 380 ms. +- Operator: splash visible before Linux. +- Linux: DRM 1.41 s, fbcon 21x16 1.74 s, DISPLAY READY 8.08 s (no unblank), display errors 0; START OK 75.6 s, AP ENABLED 79.7 s, + SNTP OK, MPSS+WCNSS running, ping 4/4, eMMC w=0. +Nothing was flashed. Reflashing lk1st with this code needs a separate GO. diff --git a/logs/b9/b9l/l0/host-actions.txt b/logs/b9/b9l/l0/host-actions.txt new file mode 100644 index 0000000..0a1c063 --- /dev/null +++ b/logs/b9/b9l/l0/host-actions.txt @@ -0,0 +1,12 @@ +21:42:33.413 B9L l0: waiting for lk1st fastboot (power off >= 90 s, then RESET held + battery -> USB) +21:43:33.792 fastboot present: product=lk1st-msm8916 +Sending 'boot.img' (284 KB) OKAY [ 0.011s] +Booting OKAY [ 0.022s] +Finished. Total time: 0.034s +rc=0 +21:43:33.831 waiting for second-stage fastboot (or Linux NCM) +21:43:33.845 fastboot present again: product= version-bootloader= +21:43:36.849 B9L l0 END +product: lk2nd-msm8916 +version-bootloader: +kernel: lk diff --git a/logs/b9/b9l/l0/uartlog-path b/logs/b9/b9l/l0/uartlog-path new file mode 100644 index 0000000..4f7cc30 --- /dev/null +++ b/logs/b9/b9l/l0/uartlog-path @@ -0,0 +1 @@ +logs/uart/b9l-l0-20261003-004233 diff --git a/logs/b9/b9l/l1x/host-actions.txt b/logs/b9/b9l/l1x/host-actions.txt new file mode 100644 index 0000000..1b0ee78 --- /dev/null +++ b/logs/b9/b9l/l1x/host-actions.txt @@ -0,0 +1,9 @@ +21:50:17.206 B9L l1x: waiting for lk1st fastboot (power off >= 90 s, then RESET held + battery -> USB) +21:50:17.221 fastboot present: product=lk2nd-msm8916 +Sending 'boot.img' (292 KB) OKAY [ 0.012s] +Booting OKAY [ 0.023s] +Finished. Total time: 0.036s +rc=0 +21:50:17.262 waiting for second-stage fastboot (or Linux NCM) +21:50:17.280 fastboot present again: product= version-bootloader= +21:50:20.284 B9L l1x END diff --git a/logs/b9/b9l/l1x/linux-check.txt b/logs/b9/b9l/l1x/linux-check.txt new file mode 100644 index 0000000..b93ae36 --- /dev/null +++ b/logs/b9/b9l/l1x/linux-check.txt @@ -0,0 +1,40 @@ +�������� + + +BusyBox v1.37.0 (Debian 1:1.37.0-6+b9) built-in shell (ash) +Enter 'help' for a list of built-in commands. + +~ # cat /proc/uptime; grep -E "START OK|FAIL in" /run/aurora-modem/lifecycle.log + | tail -1; grep -E "AP ENABLED|FAIL" /run/aurora-wifi/wifi.log | tail -1; for r + in /sys/class/remoteproc/*; do echo RP $(cat $r/name)=$(cat $r/state); done; /e +tc/init.d/aurora-display status | head -1; ping -c4 -W3 -I wwan0 77.88.8.8 | tai +l -2; dmesg | grep -iE "drm|panel|mipi|spi0|fbcon|backlight|aurora-display" | gr +ep -ciE "err|fail|timeout|warn"; cat /sys/block/mmcblk0/stat +63.05 221.86 +[9.25] === WIFI START (wait for modem START OK/FAIL up to 300s) +RP 4080000.remoteproc=running +RP a204000.remoteproc=offline +fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=0 bl=1 +ping: sendto: Network is unreachable +PING 77.88.8.8 (77.88.8.8): 56 data bytes +0 + 1119 43 193701 2413 0 0 0 0 0 1172 2413 0 0 0 0 0 0 +~ # �������� + + +BusyBox v1.37.0 (Debian 1:1.37.0-6+b9) built-in shell (ash) +Enter 'help' for a list of built-in commands. + +~ # cat /proc/uptime; grep -E "=== START OK|FAIL in" /run/aurora-modem/lifecycle +.log | tail -1; grep -E "=== AP ENABLED|FAIL" /run/aurora-wifi/wifi.log | tail - +1; for r in /sys/class/remoteproc/*; do echo RP $(cat $r/name)=$(cat $r/state); +done; ping -c4 -W3 -I wwan0 77.88.8.8 | tail -2; cat /sys/block/mmcblk0/stat +102.69 369.41 +[82.26] === START OK in 73.0s (wwan0 10.44.114.138/30, routes: 10.10.22.3 194.186.191.1 77.88.8.8 1.1.1.1 ) +[86.36] === AP ENABLED ssid=aurora-b8f ch=6 pid=2735 in 77.1s +RP 4080000.remoteproc=running +RP a204000.remoteproc=running +4 packets transmitted, 4 packets received, 0% packet loss +round-trip min/avg/max = 48.330/90.570/196.116 ms + 1119 43 193701 2413 0 0 0 0 0 1172 2413 0 0 0 0 0 0 +~ #  \ No newline at end of file diff --git a/logs/b9/b9l/l1x/uartlog-path b/logs/b9/b9l/l1x/uartlog-path new file mode 100644 index 0000000..d1fd2ca --- /dev/null +++ b/logs/b9/b9l/l1x/uartlog-path @@ -0,0 +1 @@ +logs/uart/b9l-l1x-20261003-005017 diff --git a/logs/b9/b9l/ram1/host-actions.txt b/logs/b9/b9l/ram1/host-actions.txt new file mode 100644 index 0000000..4cdf5ca --- /dev/null +++ b/logs/b9/b9l/ram1/host-actions.txt @@ -0,0 +1,15 @@ +22:15:19.290 B9L ram1: waiting for fastboot (power off >= 90 s, then RESET held + battery -> USB) +22:16:09.499 fastboot present: product=lk1st-msm8916 +Sending 'boot.img' (324 KB) OKAY [ 0.013s] +Booting OKAY [ 0.022s] +Finished. Total time: 0.036s +rc=0 +22:16:21.563 NCM ping ok +22:16:21.568 RTC at boot 5 s -> class A +~ # cat /proc/device-tree/model; echo; uname -r; grep -E "START OK|FAIL in|rollb +JZ08AU Aurora (RAM boot B9B) +[85.71] === START OK in 75.6s (wwan0 10.40.169.14/30, routes: 10.10.22.3 194.186.191.1 77.88.8.8 1.1.1.1 ) +22:17:57.706 wifi: [89.82] === AP ENABLED ssid=aurora-b8f ch=6 pid=2782 in 79.72s +22:18:05.732 sntp: [101.14] SNTP check ( 89.109.251.21 89.109.251.22 89.109.251.23): 14 replies; best offset delay server: +0.791461 0.048653 89.109.251.22: (offset > 0 = clock behind) +22:18:31.753 snapshot: 2 end markers; RP a204000.remoteproc=running +22:18:36.792 B9L ram1 END - operator visual check next diff --git a/logs/b9/b9l/ram1/snapshot.txt b/logs/b9/b9l/ram1/snapshot.txt new file mode 100644 index 0000000..2777d4a --- /dev/null +++ b/logs/b9/b9l/ram1/snapshot.txt @@ -0,0 +1,197 @@ +�������� + + +BusyBox v1.37.0 (Debian 1:1.37.0-6+b9) built-in shell (ash) +Enter 'help' for a list of built-in commands. + +~ # echo SNAP-BEGIN; cat /proc/uptime; date -u; cat /proc/device-tree/model; ech +o; uname -a; cat /proc/cmdline +SNAP-BEGIN +114.91 417.73 +Fri Oct 2 22:18:05 UTC 2026 +JZ08AU Aurora (RAM boot B9B) +Linux aurora 7.2.7-aurora-b9c #9 SMP PREEMPT Sat Oct 3 03:06:50 +06 2026 aarch64 GNU/Linux +earlycon console=tty0 console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init fbcon=font:6x8 consoleblank=0 +~ # echo ---time; cat /run/aurora-modem/time-set; grep -E "TIME|SNTP" /run/auror +a-modem/lifecycle.log | tail -4 +---time +1790979396 24.93 REG:registered/attached qmi-dms +[25.08] TIME probe 6 [REGISTERED]: dms_ms=1475014596079 dms_utc=1790979396.079 nitz=2026-10-02 22:16:36 dms-nitz=+0.11 clock=1790979396 -> VALID (ok) +[85.82] TIME probe 7 [BEARER_CONNECTED]: dms_ms=1475014656822 dms_utc=1790979456.822 nitz=2026-10-02 22:17:36 dms-nitz=+0.86 clock=1790979456 -> VALID (ok) +[101.14] SNTP check ( 89.109.251.21 89.109.251.22 89.109.251.23): 14 replies; best offset delay server: +0.791461 0.048653 89.109.251.22: (offset > 0 = clock behind) +[101.15] SNTP: |offset| < 1s - clock kept (no slew: STA_UNSYNC stays, RTC_SYSTOHC never engages) +~ # echo ---modem; /etc/init.d/aurora-modem status +---modem +service: idle +controller: BEARER_CONNECTED +remoteproc: 4080000.remoteproc running (/sys/class/remoteproc/remoteproc0) fw=mba.mbn +rmtfs: pid='1156' writes_logged=1 +qmi dev: /dev/wwan0qmi0 qmi-proxy='2038' +daemons: udevd='1916' dbus='1946' polkitd='1950' ModemManager='1961' + mm plugin: qcom-soc + mm primary port: wwan0qmi0 + mm state: connected + mm power state: on + mm access tech: lte + mm signal quality: 67% (recent) + mm operator name: Beeline + mm registration: home + bearer 1: Status connected: yes; interface: wwan0; address: 10.40.169.14; +wwan: wwan0 UP 10.40.169.14/30 +wwan up: 1 of 8 +routes: 1.1.1.1 dev wwan0 scope link src 10.40.169.14 ;10.10.22.3 dev wwan0 scope link src 10.40.169.14 ;10.40.169.12/30 dev wwan0 scope link src 10.40.169.14 ;77.88.8.8 dev wwan0 scope link src 10.40.169.14 ;89.109.251.21 dev wwan0 scope link src 10.40.169.14 ;89.109.251.22 dev wwan0 scope link src 10.40.169.14 ;89.109.251.23 dev wwan0 scope link src 10.40.169.14 ;194.186.191.1 dev wwan0 scope link src 10.40.169.14 ; +bam-dmux: suspended active_ms=10521 suspended_ms=103292 control=auto +usb0: 172.16.42.1/24 route-to-host: 172.16.42.2 dev usb0 src 172.16.42.1 +emmc: writes_completed=0 sectors_written=0 +time: 2026-10-02 22:18:06 UTC; set: 1790979396 24.93 REG:registered/attached qmi-dms; probes: 7 +dmesg-errs: 0 +~ # echo ---wifi; /etc/init.d/aurora-wifi status; echo ---wifilog; cat /run/auro +ra-wifi/wifi.log; cat /run/aurora-wifi/service.log; echo ---hostapdlog; cat /run +/aurora-wifi/hostapd.log +---wifi +service: idle +remoteproc: a204000.remoteproc running (/sys/class/remoteproc/remoteproc1) +crash=0 watchdog=0 fatal=0 +wlan0: wlan0: ssid aurora-b8f type AP channel 6 (2437 MHz), width: 20 MHz, center1: 2437 MHz +hostapd: pid=2782 0 connects, 0 disconnects +[86.25] WCNSS /sys/class/remoteproc/remoteproc1 state=running +[88.76] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +[89.82] === AP ENABLED ssid=aurora-b8f ch=6 pid=2782 in 79.72s +---wifilog +[10.10] === WIFI START (wait for modem START OK/FAIL up to 300s) +[85.76] modem gate after 75s: [85.71] === START OK in 75.6s (wwan0 10.40.169.14/30, routes: 10.10.22.3 194.186 +[86.25] WCNSS /sys/class/remoteproc/remoteproc1 state=running +[88.76] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +[89.82] === AP ENABLED ssid=aurora-b8f ch=6 pid=2782 in 79.72s +[10.10] === WIFI START (wait for modem START OK/FAIL up to 300s) +[85.76] modem gate after 75s: [85.71] === START OK in 75.6s (wwan0 10.40.169.14/30, routes: 10.10.22.3 194.186 +[86.25] WCNSS /sys/class/remoteproc/remoteproc1 state=running +[88.76] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +[89.82] === AP ENABLED ssid=aurora-b8f ch=6 pid=2782 in 79.72s +=== service start rc=0 89.82 +---hostapdlog +1790979460.265821: VLAN: vlan_set_name_type: SET_VLAN_NAME_TYPE_CMD name_type=2 failed: No error information +1790979460.373223: wlan0: interface state UNINITIALIZED->ENABLED +1790979460.373266: wlan0: AP-ENABLED +~ # for r in /sys/class/remoteproc/*; do echo "RP $(cat $r/name)=$(cat $r/state) +"; done; iw dev +RP 4080000.remoteproc=running +RP a204000.remoteproc=running +phy#0 + Interface wlan0 + ifindex 12 + wdev 0x1 + addr + ssid aurora-b8f + type AP + channel 6 (2437 MHz), width: 20 MHz, center1: 2437 MHz + txpower 20.00 dBm + multicast TXQ: + qsz-byt qsz-pkt flows drops marks overlmt hashcol tx-bytes tx-packets + 0 0 0 0 0 0 0 0 0 +~ # echo ---dmesg-wifi; dmesg | grep -iE "wcn36xx|wcnss|a204000|cfg80211|aurora- +wifi|crash|watchdog" +---dmesg-wifi +[ 0.000000] OF: reserved mem: 0x000000008b600000..0x000000008bbfffff (6144 KiB) nomap non-reusable wcnss@8b600000 +[ 0.962246] remoteproc remoteproc0: releasing a204000.remoteproc +[ 1.817889] qcom-wcnss-pil a204000.remoteproc: supply vddcx not found, using dummy regulator +[ 1.822797] remoteproc remoteproc1: a204000.remoteproc is available +[ 1.827981] remoteproc remoteproc1: Direct firmware load for wcnss.mdt failed with error -2 +[ 1.832083] remoteproc remoteproc1: powering up a204000.remoteproc +[ 1.840864] cfg80211: Loading compiled-in X.509 certificates for regulatory database +[ 1.849243] remoteproc remoteproc1: Direct firmware load for wcnss.mdt failed with error -2 +[ 1.902746] cfg80211: failed to load regulatory.db +[ 10.248114] [aurora-wifi] === WIFI START (wait for modem START OK/FAIL up to 300s) +[ 85.908560] [aurora-wifi] modem gate after 75s: [85.71] === START OK in 75.6s (wwan0 10.40.169.14/30, routes: 10.10.22.3 194.186 +[ 85.923771] remoteproc remoteproc1: powering up a204000.remoteproc +[ 85.925412] remoteproc remoteproc1: Booting fw image wcnss.mdt, size 7260 +[ 86.389068] remoteproc remoteproc1: remote processor a204000.remoteproc is now up +[ 86.398394] [aurora-wifi] WCNSS /sys/class/remoteproc/remoteproc1 state=running +[ 86.514585] qcom_wcnss_ctrl remoteproc1:smd-edge.WCNSS_CTRL.-1.-1: WCNSS Version 1.5 1.2 +[ 86.534553] wcn36xx: mac address: +[ 88.849910] wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO' and CRM version 'CNSS-PR-1-4-2-c4-00084' +[ 88.864472] wcn36xx: firmware API 1.5.1.2, 41 stations, 2 bssids +[ 88.915560] [aurora-wifi] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +[ 89.969359] [aurora-wifi] === AP ENABLED ssid=aurora-b8f ch=6 pid=2782 in 79.72s +~ # echo ---ping; ping -c4 -W3 -I wwan0 77.88.8.8 | tail -2 +---ping +4 packets transmitted, 4 packets received, 0% packet loss +round-trip min/avg/max = 48.487/86.646/189.550 ms +~ # echo ---display; /etc/init.d/aurora-display status; cat /run/aurora-display/ +display.log; cat /run/aurora-display/service.log +---display +fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=0 bl=1 +[7.98] display pipe already enabled (by fbcon takeover) - no unblank needed +[8.01] backlight on -> bl_power=0 actual_brightness=1 +[8.08] === DISPLAY READY fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=0 bl=1 +[7.90] start: fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=4 bl=1 +[7.92] fbcon bound to fb0 +[7.98] display pipe already enabled (by fbcon takeover) - no unblank needed +[8.01] backlight on -> bl_power=0 actual_brightness=1 +[8.08] === DISPLAY READY fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=0 bl=1 +=== service start rc=0 8.08 +~ # echo ---consoles; cat /sys/class/tty/console/active; for v in /sys/class/vtc +onsole/vtcon*; do echo "$v $(cat $v/bind) $(cat $v/name)"; done; ls -l /proc/[0- +9]*/fd/0 2>/dev/null | grep -E "ttyMSM0|tty1|console" | sed "s/.* \/proc/\/proc/ +" +---consoles +tty0 ttyMSM0 +/sys/class/vtconsole/vtcon0 0 (S) dummy device +/sys/class/vtconsole/vtcon1 1 (M) frame buffer device +/proc/1/fd/0 -> /dev/console +/proc/1118/fd/0 -> /dev/ttyMSM0 +/proc/628/fd/0 -> /dev/tty1 +~ # echo ---getty; hostname; ps | grep -E "[g]etty|[c]ttyhack| sh$" +---getty +aurora + 628 root getty 0 tty1 linux + 1118 root sh +~ # echo ---fb; ls -l /dev/dri/card0 /dev/fb0; for f in name bits_per_pixel virt +ual_size stride; do echo "fb0 $f=$(cat /sys/class/graphics/fb0/$f)"; done; cat / +sys/class/drm/card0-SPI-1/enabled /sys/class/drm/card0-SPI-1/dpms +---fb +crw------- 1 root root 226, 0 Oct 2 22:16 /dev/dri/card0 +crw------- 1 root root 29, 0 Oct 2 22:16 /dev/fb0 +fb0 name=panel-mipi-dbid +fb0 bits_per_pixel=16 +fb0 virtual_size=128,128 +fb0 stride=256 +enabled +On +~ # echo ---regs; for r in /sys/class/regulator/regulator.*; do n=$(cat $r/name) +; case $n in l6|l17) echo "$n $(cat $r/state) $(cat $r/microvolts) users=$(cat $ +r/num_users)";; esac; done +---regs +l17 enabled 2850000 users=1 +l6 enabled 1800000 users=1 +~ # echo ---bl; for f in bl_power brightness actual_brightness; do echo "bl $f=$ +(cat /sys/class/backlight/backlight/$f)"; done +---bl +bl bl_power=0 +bl brightness=1 +bl actual_brightness=1 +~ # echo ---dmesg-display; dmesg | grep -iE "drm|panel|mipi|spi_qup|78b8000|fbco +n|Console: |frame buffer|backlight|aurora-display|l17" +---dmesg-display +[ 0.000000] Kernel command line: earlycon console=tty0 console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init fbcon=font:6x8 consoleblank=0 +[ 0.010991] Console: colour dummy device 80x25 +[ 0.713660] spi_qup 78b8000.spi: IN:block:16, fifo:64, OUT:block:16, fifo:64 +[ 1.021689] l17: Bringing 0uV into 2850000-2850000uV +[ 1.409898] [drm] Initialized panel-mipi-dbi 1.0.0 for spi0.0 on minor 0 +[ 1.743424] Console: switching to colour frame buffer device 21x16 +[ 1.792520] panel-mipi-dbi-spi spi0.0: [drm] fb0: panel-mipi-dbid frame buffer device +[ 8.053591] [aurora-display] start: fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=4 bl=1 +[ 8.074690] [aurora-display] fbcon bound to fb0 +[ 8.136424] [aurora-display] display pipe already enabled (by fbcon takeover) - no unblank needed +[ 8.164349] [aurora-display] backlight on -> bl_power=0 actual_brightness=1 +[ 8.230966] [aurora-display] === DISPLAY READY fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=0 bl=1 +~ # echo ---display-errors; dmesg | grep -iE "drm|panel|mipi|spi0|fbcon|backligh +t|aurora-display" | grep -ciE "err|fail|timeout|warn" +---display-errors +0 +~ # echo ---emmc; awk "{print \"w=\"\$5\" s=\"\$7}" /sys/block/mmcblk0/stat +---emmc +w=0 s=0 +~ # echo SNAP-END +SNAP-END +~ #  \ No newline at end of file diff --git a/logs/b9/lk/B9-LK-AUDIT.md b/logs/b9/lk/B9-LK-AUDIT.md new file mode 100644 index 0000000..31c188a --- /dev/null +++ b/logs/b9/lk/B9-LK-AUDIT.md @@ -0,0 +1,135 @@ +# B9-LK audit — why the screen is black before Linux (read-only, 2026-10-03) + +Nothing was patched, built or flashed. Sources: +- stock LK = `partitions/aboot.bin` → `bootchain/aboot-analysis/lk.bin`/`lk-arm.dis` (tools in `b9/b9a/`); +- lk1st/lk2nd = `lk2nd-build/src` (lk2nd 23.1, e9c8b217; the source of the aboot that is flashed now); +- UART logs `logs/uart/*`. + +## 0. Correction to the premise: stock LK is NOT in the current chain + +Since B5a (2026-09-30) `aboot` holds **our lk1st-aurora-autoboot** (built from the lk2nd tree, `ABOOT_STANDALONE=1`, +`LK2ND_DISPLAY=cont-splash`), not stock LK. The current chain is: + +`PBL → SBL1 (stock) → lk1st (lk2nd code: lk2nd_init + extlinux in the same binary) → Linux` + +Evidence: every current UART log has exactly one `[0] welcome to lk`, followed in the same LK by `lk2nd_init()` and +`Trying to boot 'b7c'/'b8f'/'b9c'`. Stock LK exists only as the backup `partitions/aboot.bin`. +The chain "stock LK → lk2nd" existed only once, in the 2026-09-29 test `logs/uart/lk2nd-boottest-20260929-203353.log` +(lk2nd in `recovery`). + +## A. Exact stock display init chain (stock LK, disassembly) + +``` +app table 0x8f647da0 → aboot_init 0x8f614eec + → read_device_info 0x8f614984 + → target_display_init 0x8f600eac(device.display_panel @0x8f64af94) ← UNCONDITIONAL, before any boot-mode decision + loop: gcdb_display_init 0x8f616918(rev, MDP_REV 12, fb 0x83200000) + → oem_panel_select 0x8f600f20: panel_id := 1 (hardcoded, no ID read), prints "lcd_id == st7735s spi lcd"; + id1 = qcom,mdss_spi_st7735s_wx144_128x128_cmd (19 cmds) [id0 = DSI st7796s 320p, id2 = SPI nv3023a] + → pinfo.type = SPI_PANEL(13), power_func 0x8f6165e0, bl_func 0x8f616698 + → msm_display_init 0x8f60d624: + power_func: target_ldo_ctrl 0x8f600e98 (STUB, returns 0) → target_panel_reset 0x8f600bb8 + (GPIO118: 1, 0 for 1 ms, 1, wait 120 ms) → "Panel power on done" + msm_display_config 0x8f60d2a0: "Config SPI PANEL." → spi_qup_init(BLSP1, QUP index 3 = 0x78b8000, + GPIO12-15 func1, 16 MHz, mode 3) → D/C GPIO116 → 19 commands (0x8f610b6c) + fbcon_setup 0x8f61642c (fb 0x83200000, 128x128 RGB565) + display_image_on_screen 0x8f61659c: splash partition has no "SPLASH!!" header (it is all zeros) + → built-in 128x128 "4G LTE" image @0x8f64b004 + msm_display_flush 0x8f60d46c (frame over SPI, D/C=1) + bl_func → target_backlight_ctrl 0x8f600b54: MPP4 0xa340=0x61, 0xa34c=7 (40 mA), 0xa346=0x80 + → … boot-mode decisions (fastboot / recovery / normal) come AFTER this +boot: cmdline += "mdss_mdp.panel=1:spi:0:qcom,mdss_spi_st7735s_wx144_128x128_cmd"; + msm_display_off 0x8f60d78c: "Continuous splash enabled, keeping panel alive." (panel left on) +``` + +Conditions: none found. No alarm/charger/ffbm check guards the display call, so stock LK initialises the panel +**in every mode** (normal, recovery, fastboot, charger). + +UART proof that it ran on this board: +- `[210] Panel power on done` / `[210] Config SPI PANEL.` in `coldboot-20260929-200018`, `preflight-recovery-…`, `lk2nd-boottest-…`; +- no "Send SPI … failed". + +A visual confirmation that the logo appeared on stock firmware is still missing (operator question from B9A). + +## B. Why the screen is black before Linux now + +**The stock display code is not in the boot chain at all.** No flag or condition is switching it off. +lk1st (msm8916 build of the lk2nd tree) contains no SPI-panel code: +- `platform/msm_shared/rules.mk` builds `spi_qup.o`/`mdss_spi.o` only for `PLATFORM=msm8909` and `msm8952`. +- `LK2ND_DISPLAY=cont-splash` → `lk2nd/display/cont-splash/target_display.c` only *adopts* an MDP that is already running + (it checks `MDP_GDSCR`). Our panel never uses MDP, so even after stock LK it reports + `No continuous splash: MDP GDSC is not enabled` (seen in `lk2nd-boottest-…:74`). +- The alternative `LK2ND_DISPLAY=` mode = gcdb **DSI** panels (generated headers), no SPI. +- `lk2nd/device/2nd/spi-display.c` (re-use of a panel that a previous bootloader initialised) is built only when + `mdss_spi.o` is built, i.e. not for msm8916. It is also hard-coded to 240x320. +- The msm8916 clock table in lk2nd has only `gcc_blsp1_qup4_i2c_*`, no QUP4 SPI clocks. + `mdss_spi.c` is hard-wired to msm8909 (D/C = GPIO64, `SPI_QUP_ID 2`). + +So nothing initialises the panel until Linux. RESET (GPIO118) stays at the SoC reset default (input, pull-down) until +panel-mipi-dbi probes at ~1.4 s of kernel time. + +## C. What lk1st/lk2nd does with a panel that is already initialised + +Checked in the lk2nd 23.1 source for msm8916: +- TLMM: only `target_volume_up()` configures the vol-up GPIO (when keys are checked). Nothing touches GPIO12-15/116/118. +- QUP4 / MPP4: not touched. `target/msm8916/target_display.c` (with its MTP-style MPP4 digital-output backlight) is + **filtered out** of the cont-splash build. `target_uninit()` only parks eMMC, crypto and CE clocks. +- Framebuffer: not adopted (no MDP); 0x83200000 is ordinary RAM to lk2nd. + +So lk2nd **leaves the panel alone**: the GRAM keeps the image and the backlight stays as set. This matches the 2026-09-29 +stock→lk2nd log, where lk2nd only printed the GDSC message. + +Then Linux takes over: +- the panel's pinctrl keeps D/C/RESET as gpio outputs, and `reset-gpios` is requested OUT_HIGH (no glitch); +- the fbcon takeover modeset does a hardware reset and a full re-init at ~1.8 s, which replaces the logo; +- the gpio-backlight pinctrl state (`output-low`) switches MPP4 to 0x60 at probe → **backlight off from ~1.5 s until + aurora-display at ~8 s**; +- clk_disable_unused may gate the QUP4 clocks LK left on (harmless; spi-qup re-enables them). + +L17: CAF `target/msm8916/target_display.c:608` says "The PMIC regulators needed for display are enabled in SBL. There is +no access to the regulators in LK." That explains the stock stub. But B9A measured **L17 OFF** in running Linux (who +turned it off is unknown: the RPM with no votes, or something later). The state at LK time is unproven. + +## D. Smallest ways to get power → splash → Linux fbcon + +There is no single condition or flag to flip: the stock code path is simply not present in lk1st. + +1. **Port into lk1st/lk2nd (recommended).** Re-use the lk2nd tree's own CAF SPI stack (`spi_qup.c`, `mdss_spi.c`, + gcdb `SPI_PANEL` branch) for msm8916 with stock-LK parameters: + - build `spi_qup.o` + `mdss_spi.o` for msm8916; + - make D/C GPIO and QUP index parameters (116 / index 3); + - add `gcc_blsp1_qup4_spi_apps_clk(_src)` with a 16 MHz entry to the msm8916 clock table; + - add an ST7735S panel header (the verified 19 commands, reset sequence {1,0,1}/{1,1,120}, 128x128 RGB565); + - panel select; + - target reset on GPIO118; + - backlight as an MPP4 current sink 40 mA (the stock 0x61/7/0x80 sequence, not the MTP digital-output variant); + - LDO stub, as stock. + Optional: the stock logo (vendor artwork — do not publish). +2. **Restore stock LK as aboot + lk2nd as the 2nd stage in `boot`.** No code, but it reverts B5a and loses lk1st fastboot + (stock fastboot has only getvar/download). Compatibility of stock LK with the migrated TZ (DB410c) + qhypstub is untested, + and it needs two persistent writes. **Not recommended.** + +## E. Risks of the handoff (variant 1) + +- **L17 at LK time**: if SBL does not leave L17 on, LK can drive SPI but the panel shows nothing. The fix would be RPM + regulator code in LK (more porting). The test below settles this first. +- Wrong QUP/clock setup in LK can abort/hang LK → RAM test only, aboot untouched; recovery = power cycle. +- Handoff gap: Linux switches MPP4 off at gpio-backlight probe (~1.5 s) and re-inits the panel at fbcon takeover. + The visible sequence would be: logo (~0.3 s after power) → dark ~1.5 s → ~8 s console. + This can be fixed later on the Linux side (backlight default-on / output-high), not in LK. +- Boot time: +~0.3 s in LK (120 ms reset wait + 120 ms SLPOUT + ~20 ms frame). +- A later persistent step = reflashing aboot (B5a-style gates + `b5a/A4-rollback.sh`); needs its own GO. + +## Proposed single non-persistent test (needs GO; it requires a build) + +**B9L-RAM**: from the lk1st fastboot entered with RESET held at power-on, run `fastboot boot` of a **lk2nd 2nd-stage image** +(msm8916, lk2nd 23.1 + the variant-1 port), with no flashing. +- The lk2nd image initialises the panel (logo + MPP4 backlight), then chainloads the existing eMMC cache (B9C/B8F) → Linux. +- Pass = logo visible before the kernel; UART shows SPI init without errors; L17/QUP4 state is logged; Linux fbcon comes up + as in B9C. +- aboot, cache and eMMC are untouched. + +Step 0 of the same session (no build needed): `fastboot boot lk2nd-build/out/lk2nd.img` (the existing unmodified 23.1, built with FORCE_FASTBOOT, so it stops in its own fastboot; +artifact). This proves that lk1st can chainload a 32-bit lk2nd image on the migrated TZ/qhypstub chain before any port work. + +STOP. diff --git a/tools/publish-sanitize.py b/tools/publish-sanitize.py index 37c9e23..ccae412 100755 --- a/tools/publish-sanitize.py +++ b/tools/publish-sanitize.py @@ -35,7 +35,22 @@ INCLUDE = [r'^(README\.md|NOTES\.md|MANIFEST\.md|manifest\.tsv|firmware-fat-comp r'^b7/b7c/out/(SHA256SUMS|overlay-b7c\.list)$', r'^b7/b7c/cache/([^/]+\.(md|sh|conf)|SHA256SUMS)$', r'^b7/b7c/cache/emu/[^/]+\.(out|txt|sh)$', + r'^b8/b8[a-f]/([^/]+\.(md|sh|py|diff|txt)|SHA256SUMS)$', + r'^b8/b8[b-f]/out/(SHA256SUMS|overlay-b8[a-f]\.list|init\.diff)$', + r'^b8/b8[de]/dl/APK-SHA256SUMS$', + r'^b8/b8e/bundle/(hostapd-b8e\.conf|[^/]+\.sh|SHA256SUMS)$', + r'^b8/b8f/rootfs/(init|usr/sbin/aurora-wifi|etc/init\.d/aurora-wifi|etc/aurora/wifi\.conf\.in)$', + r'^b8/b8f/cache/([^/]+\.(md|sh|conf|txt)|SHA256SUMS)$', + r'^b8/b8f/cache/emu/[^/]+\.(out|txt|sh)$', r'^bootchain-migration/([^/]+\.(md|py)|SHA256SUMS)$', + r'^b9/b9a/([^/]+\.(py|sh)|SHA256SUMS)$', + r'^b9/b9b/([^/]+\.(sh|py)|SHA256SUMS|rootfs/usr/libexec/aurora/b9b/b9b-test\.sh)$', + r'^b9/b9b/out/(SHA256SUMS|panel-fw\.txt|overlay-b9b\.list)$', + r'^b9/b9c/([^/]+\.sh|cmdline\.txt|SHA256SUMS|rootfs/(init|usr/sbin/aurora-display|etc/init\.d/aurora-display))$', + r'^b9/b9c/out/(SHA256SUMS|init\.diff|overlay-b9c\.list|cmdline\.txt)$', + r'^b9/b9c/cache/([^/]+\.(md|sh|conf|txt)|SHA256SUMS)$', + r'^b9/b9c/cache/emu/[^/]+\.(out|txt|sh)$', + r'^b9/b9l/([^/]+\.(sh|md)|SHA256SUMS|lk2nd-23\.1-aurora-b9l\.patch|splash/mk-splash\.py)$', r'^bootchain/(elfinfo\.txt|(boot|recovery)/(info\.txt|ramdisk\.list|ramdisk\.type))$', r'^(firehose|gpt)/SHA256SUMS$', r'^partitions/(SHA256SUMS|rawprogram0\.xml)$', r'^lk2nd-build/(BUILD\.md|WRITE-PLAN\.md|build\.log|build-lk1st\.log)$', @@ -51,7 +66,7 @@ INCLUDE = [r'^(README\.md|NOTES\.md|MANIFEST\.md|manifest\.tsv|firmware-fat-comp r'^logs/uart/[^/]+\.(log|txt)$', r'^logs/b6/all/(?!.*\.tar$)(?!b6/mm-|b6-try\d/(amd/)?mm-).*$', ] -NEVER = r'^logs/b6[jp]/.*(^|/)mm-[^/]*\.log$|^logs/b7/b7c/.*/uart[^/]*\.log$|(^|/)(dumps|partitions/.*\.bin|firmware-fat/)|\.(bin|img|mbn|pad\d*[KM]?|tar|tgz|gz|pcap|raw|apk|so|dtb|elf|mdt|b\d\d|dis)$|modemst|(^|/)(fsg|fsc|persist|userdata)\b' +NEVER = r'^logs/b6[jp]/.*(^|/)mm-[^/]*\.log$|^logs/b7/b7c/.*/uart[^/]*\.log$|^logs/b8/.*/uart[^/]*\.log$|^logs/b9/.*/uart[^/]*\.log$|^logs/b9/.*\.png$|^b9/b9[bc]/out/(?!SHA256SUMS$|overlay-b9[bc]\.list$|init\.diff$|panel-fw\.txt$|cmdline\.txt$)|(^|/)private/|^b8/b8f/out/(?!SHA256SUMS$|overlay-b8f\.list$)|(^|/)(dumps|partitions/.*\.bin|firmware-fat/)|\.(bin|img|mbn|pad\d*[KM]?|tar|tgz|gz|pcap|raw|apk|so|dtb|elf|mdt|b\d\d|dis)$|modemst|(^|/)(fsg|fsc|persist|userdata)\b' inc = [re.compile(p) for p in INCLUDE]; nev = re.compile(NEVER) ids = []