ASELSANMicrokernel
RADYO ZİNCİRİ VE SİBER GÜVENLİK

Wi-Fi ve Bluetooth

Bu sayfa iki soruyu ayrı ayrı cevaplar: AselsanOS radyo zincirinde nerede duruyoruz, ve aynı karttaki Linux kontrolü neyi değiştirdi. Mühürlü son kontrol koşusu R164; sonraki izinli AselsanOS Wi-Fi işlemi R165 (F1 okuma yolu / CommandDeadline): R164 — netboot altyapısı — KOŞTU ve amacına ulaştı: çekirdek ve Wi-Fi payload'ı ağdan geldi (kart hiç kullanılmadı), `FWPAYLOAD FW SRC=INITRAMFS BYTES=609309 SHA256=d608f866…36c3 VERIFIED=1` (SD ile aynı imza), `FWSTAGE OK=1`, `NVRAM OK=1 FW_INTACT=1`, `CR4START RSTVEC_OK=1` ve `WIFIPREINITSEQ SENT=3`. Süpürme SD boot ile aynı ilk-deneme davranışını verdi (`TRIALS_RUN=1/11`, `REPLIED=0`); ikinci deneme `Session(CommandDeadline(Mac))` ile kapandı ve R163'te ölçülen F1 `INTSTATUS` okuması duvarının kardeşidir. R165'in tek değişkeni bu yol: taşımanın çerçeve gönderiminden sonra son teslim tarihini aşması — sınırlı okuma kurtarması/zaman bütçesi ile karşılanacak; çerçeve baytları, geometri, kabul kuralı ve kimlik devamlılığı değişmeyecek. Ayrıca hands-free hattı donanımda doğrulandı: `WIFIAUTORESET ARMED=1`, netboot ile koşular kart çıkarılmadan yinelenebiliyor; UART 'R' resetinin kartı geri getirmediği ölçüldü (röle önerilir). Zincirin hiçbir AselsanOS basamağı tarama ya da bağlanma yapmaz; sayfa bunu gizlemek yerine her basamakta neyin REDDEDİLDİĞİNİ de yazar.

Bu imaj Wi-Fi ağı arayamaz ve hiçbir ağa bağlanamaz. Bluetooth cihazı da arayamaz. Ekranda ağ listesi yoktur ve çekirdek kaynağında tek bir uydurma SSID geçmez.

AselsanOS zincirinin mühürlü son radyo koşusu R164: firmware ve NVRAM CR4 TCM'e 119. kez doğrulanarak yüklendi (WORDS_V=152448, OK=1, TOKEN_OK=1, FW_INTACT=1). R102–R113'te host DATA kurtarma ve D11 kontrol yolu tekrarlandı; R106/R107/R111/R113 kontrol protokolünde değişmez ilk istek hatta çıktı:FRAMELEN=48, XFER=48, BCDCLEN=20. Ancak iki boş Event/Data zarfından sonra R106/R107/R111/R113'te iki ham RX header-only frame görüldü:SEQ=0/1, HEADER_LEN=12, PAYLOAD_LEN=0. Kontrol cevabı gelmeden REPLIED=0 ve READY=0 kaldı. R106/R107/R109'da görülen Read32(INTSTATUS) SDIO transfer/R5 sınırı R111/R113'te kontrol zaman aşımından ayrı tutuldu. R122 mühürlü: firmware+NVRAM yine OK=1, fakat CR4CTRL PHASE=D11 WIN_OK=0 ile kırıldı. R123 sayımı basıldı: CMD53W_INCOMPLETE=0, WINDOW_MISMATCH=0, iki CMD53 okuma CRC'si bilinen INTSTATUS yolunda; F2 watermark 0x08 icra edildi; terminal yine ControlTimeout. R124 aynı imajda INT_ENABLE'a ulaşamadan D11'de kırıldı; R125 yazmayı icra etti (IEN=7 latch), ilk BCDC yine cevapsız kaldı. R126 WAKEUPCTRL=0x02'yi icra etti ve eledi — R121'in dört hazırlık farkından üçü kapanmıştı. R127'nin süpürme motoru ilk kez tam Linux hazırlık eşitliğini karta uyguladı ve geri okumayla doğruladı; R128, R127'nin ürettiği DEVICE_CTL adayını çürüttü — düşen yazma her seferinde cevapsız kalan çerçeveden sonraki ilk çerçeveydi. R129 kurtarma ve F2 FIFO boşaltmasını (FIFO boştu), R130 IO_ABORT'u, R131 F2 yaşam döngüsünü, R132 post-lifecycle HOST_INT ack'ini, R133 block-size 512'yi tek tek eledi; R134 send sınırındaki temiz host-only SDHCI DATA reset'i de konfigürasyon-koruma makbuzuyla eledi — ikinci F2 yazması her seferinde aynı 0x0020 ile düştü. R135 üçüncü boot'unda ikinci yazmayı 64 bayt byte-mode (Linux kısa-yazma birimi) gönderdi ve BYTES_READ=64 ERROR_STATUS=0x0020 makbuzuyla byte-count şeklini eledi. R136 ise Linux'un aynı kartta ölçülen SDPCM glom biçimini uyguladı (8 baytlık eklenti, BCDC dcmd 20. baytta) ve SDIO taşıma duvarını kırdı: yeniden kurulan ikinci F2 yazması ilk kez kabul edildi (SENT=2, 0x0020 yok) ve süpürme TRIALS_RUN=2'ye ilerledi — fakat firmware yine cevap vermedi (REPLIED=0, FRAME_IND=0). R137 bir adım daha attı: süpürme dört denemeye çıktı (TRIALS_RUN=4, makbuzlar doğru) ama dongle'ın host-mailbox'ı 87 örnek boyunca hiç değişmedi — LAST=0x00040002 (sürüm 4 + DEVREADY), FWREADY hiç gelmedi. Duvar artık çerçeve içeriği değil, dongle'ın protokol için hazır olmaması. R138 bu adayı da eledi: host el sıkışması Linux'un dizisiyle her okumada tamamlandı (ACKS=32, VERSION_WRITES=32) ve dongle yine FWREADY demedi. R75 kontrol koşusu ise Linux/brcmfmac ile aynı kartta pozitif: firmware preinit tamamlandı, wlan0 ve hci0 oluştu. R76–R93 arası eski fiziksel eleme koşuları ile R99–R135 kontrol yolu koşuları kalan olasılık uzayını daralttı; kanıtlanmamış alanlar aşağıda tek tek listelidir. R165 (F1 okuma yolu / CommandDeadline): R164 — netboot altyapısı — KOŞTU ve amacına ulaştı: çekirdek ve Wi-Fi payload'ı ağdan geldi (kart hiç kullanılmadı), `FWPAYLOAD FW SRC=INITRAMFS BYTES=609309 SHA256=d608f866…36c3 VERIFIED=1` (SD ile aynı imza), `FWSTAGE OK=1`, `NVRAM OK=1 FW_INTACT=1`, `CR4START RSTVEC_OK=1` ve `WIFIPREINITSEQ SENT=3`. Süpürme SD boot ile aynı ilk-deneme davranışını verdi (`TRIALS_RUN=1/11`, `REPLIED=0`); ikinci deneme `Session(CommandDeadline(Mac))` ile kapandı ve R163'te ölçülen F1 `INTSTATUS` okuması duvarının kardeşidir. R165'in tek değişkeni bu yol: taşımanın çerçeve gönderiminden sonra son teslim tarihini aşması — sınırlı okuma kurtarması/zaman bütçesi ile karşılanacak; çerçeve baytları, geometri, kabul kuralı ve kimlik devamlılığı değişmeyecek. Ayrıca hands-free hattı donanımda doğrulandı: `WIFIAUTORESET ARMED=1`, netboot ile koşular kart çıkarılmadan yinelenebiliyor; UART 'R' resetinin kartı geri getirmediği ölçüldü (röle önerilir); AselsanOS tarafında kaynakta ya da R80 Linux trace'inde görülmeyen hiçbir register yazması yapılmayacak.

Zincir

Her basamak tek bir soru sorar ve o soruyu cevaplamak için gereken en az şeyi yapar. "Reddediyor" sütunu, o basamağın bilerek yapMADIĞI şeydir — kapsamın nerede bittiğini iddia değil, kod belirler.

WIFI-A0

Wi-Fi SDIO2 envanteri

Aday — fiziksel PASS değil
Sorduğu soru
Adres doğru mu?
Yaptığı
DTB'den türetilen sayfayı haritalar ve SDHCI denetleyicisinin kayıtlarını okur.
Reddettiği
Tek bir yazma yok, komut indeksi yok.
Kaynak / kanıt
kernel/src/driver/rpi5_sdio_wifi.rs
rpi5_radio_source
Cihazda ne oldu
R1: denetleyici sağlıklı okundu — VER=0x1002, CAPS=0x55eec832/0x8000a527, ölü pencere yok.
WIFI-A1

Veri yolu bring-up

Aday — fiziksel PASS değil
Sorduğu soru
Çip orada mı ve konuşuyor mu?
Yaptığı
Yazılım sıfırlaması, 3,3 V güç, ~400 kHz saat, CMD0 ve CMD5. CMD5'in cevabı çalışma gerilimi penceresini ve I/O fonksiyon sayısını taşır.
Reddettiği
Firmware yok, genişletilmiş I/O komutu yok, ağ adı yok.
Kaynak / kanıt
rpi5_sdio_wifi.rs · bring_up()
rpi5_radio_source · only_the_two_radio_buses_may_write…
Cihazda ne oldu
R1: CMD0 ve CMD5 tamamlandı ama cevap tamamen sıfırdı — OCR=0, FUNCS=0, READY=0. PSTATE=0x000f0000 sebebi verdi: kart takılı görünüyor ama DAT[3:0] ve CMD hatlarının hepsi düşük. Çip beslenmiyordu. Eksik olan WIFI-A2b idi. R2: güç verildikten sonra da OCR=0 ve READY=0. Sıradaki şüpheli pin mux.
PINMUX-A1

Pedleri bağla

Aday — fiziksel PASS değil
Sorduğu soru
Pedler çevre birimlerine bağlanabilir mi?
Yaptığı
On pinin mux alanını yazar. Bu kart D0 (R14): gpio24–27 uart0'a fsel 4, gpio30–35 sd2'ye fsel 1 (PIN_PLAN_D0). C0 tablosundaki 3,4,4,4 / 4,4,4,3,4,3 değerleri bu silikonda kullanılmaz. Kelime 2'de ON nibble'ları (28/29) maskelenmez; kelime 4'e (D0 pad kaydı) yazılmaz. Her pin tek tek geri okunur.
Reddettiği
Yalnızca bu on pin. Boot SPI (1–4), PCIe I2C (14,15), güç düğmesi (20) ve ON hatları (28,29) asla yazılmaz. Referans pinler gpio okumazsa HİÇBİR ŞEY yazılmaz: yanlış yerleşimle yazmak hedef almadığımız pedleri başka çevre birimlerine bağlar.
Kaynak / kanıt
kernel/src/driver/rpi5_pinctrl.rs · apply_radio_mux_d0()
rpi5_radio_source · the_mux_write_touches_only_the_two_radio_pin_groups
Cihazda ne oldu
R14 silikonu D0 ölçtü; R4–R13 C0 tablosuyla yanlış kelimelere yazıyordu (R4: VERIFIED=8/10, CLK/CMD reddi; R7: RETRIED=2 OK=0; R7-staged: S1_HELD=0; R8: P30_HELD=0). R15 doğru tabloyla VERIFIED=10/10, ON_INTACT=1, W4_UNTOUCHED=1. C0 koşularındaki sayılar geçerli, pin adları değil.
WIFI-A2b

Çipe güç ver (WL_ON)

Aday — fiziksel PASS değil
Sorduğu soru
Wi-Fi yuvası besleniyor mu?
Yaptığı
brcmstb GPIO bankasının 28. hattını (WL_ON) çıkış yapıp yükseğe sürer, sonra DTB'nin kendi startup-delay-us değeri olan 150 ms beklenir. Makbuz kaç bitin değiştiğini ve BT_ON'a dokunulup dokunulmadığını ayrı bildirir.
Reddettiği
BT_ON'a asla dokunmaz. DATA tekdüze okunursa yazmayı reddeder.
Kaynak / kanıt
rpi5_sdio_wifi.rs · power_on()
rpi5_radio_source · the_wifi_chip_is_powered_before_it_is_asked_anything
Cihazda ne oldu
R2: çalıştı. ASSERTED=1, tam olarak bizim bitimiz uygulandı, BT_ON'a dokunulmadı. PSTATE'in DAT hatları 0000'dan 0110'a çıktı — WL_ON gerçekten besliyor.
PINMUX-A0

Pin mux envanteri

Aday — fiziksel PASS değil
Sorduğu soru
Pedler gerçekten çevre birimlerine bağlı mı?
Yaptığı
pinctrl@7d504100 bloğunu okur. D0 overlay bu blogu 0x20 bayta (sekiz kelime) indirir; C0 DTB 0x30 / on iki kelimedir. gpio24–27 (UART), gpio28/29 (ON hatları), gpio30–35 (SDIO) ham seçicileri radio_pins_d0 ile çözülür ve makbuz MAP=D0 basar. Grupların kendi içinde tutarlı olup olmadığını da söyler.
Reddettiği
Tek bir yazma yok — bir pin muxunu değiştirmek hata ayıklama UART'ini ya da boot SPI'yi koparabilir. Fonksiyon ADI da vermez: seçici kodlaması bilinmiyor ve 'bu 5 sd2 demek' yazmak ölçümü tahmine çevirirdi.
Kaynak / kanıt
kernel/src/driver/rpi5_pinctrl.rs
rpi5_radio_source · the_pin_mux_is_read_and_never_written
Cihazda ne oldu
R3: pencere canlı, sıfır yazma. gpio24–27 ve gpio30/31 fsel=0 (gpio) okudu — DTB uart0 ve sd2 istiyor. Sessizliğin sebebi bulundu. R3 C0 kelime haritasıyla etiketledi; R15 aynı kusuru yazma yolunda kapattı, envanter radio_pins_d0 + MAP=D0 ile taşındı.
WIFI-A2

Backplane kapısı

Aday — fiziksel PASS değil
Sorduğu soru
Çipin iç veri yoluna ulaşabiliyor muyuz? Firmware oraya yazılır.
Yaptığı
CMD3 (göreli adres) → CMD7 (seç) → CMD52 ile CCCR → fonksiyon 1'i etkinleştir ve HAZIR demesini bekle → 4 bit veri yolu → pencereyi ChipCommon'a (0x1800_0000) kaydır ve geri oku → chipid'i dört CMD52 ile topla.
Reddettiği
Yalnızca CMD52. CMD53 yok — chipid okumak onu gerektirmiyor.
Kaynak / kanıt
rpi5_sdio_wifi.rs · enumerate()
rpi5_radio_source · a_dead_backplane_can_never_be_reported_as_a_chip
Cihazda ne oldu
R31 itibarıyla geçti: CMD3/CMD7, CCCR, FN1 enable ve backplane penceresi çalışıyor; WIFIBP CHIPID=0x15264345, ID=0x4345 = BCM43455. R31 aynı kimliği CMD53 kapısında da MATCH52=1 ile doğruladı. Bu yalnızca firmware indirmenin ön koşuludur; tarama/SSID yok.
WIFI-A3

CMD53, TCM yazma ve firmware staging

Aday — fiziksel PASS değil
Sorduğu soru
Firmware pratik hızda TCM'e yazılabilir mi ve çipin ARM çekirdeği başlatılabilir mi?
Yaptığı
CMD53 okuma kapısını sınar, TCM'e yazma yollarını ayırır, firmware dosyasını microSD'den okur, cmd52 ile TCM staging yapar ve saat/bekleme darboğazını ölçer.
Reddettiği
Firmware+NVRAM TCM'e yüklenmiş olsa da bunu 'çalışan Wi-Fi' saymaz. Yeni FGC/saat/rstvec/D11 varyantı, CLM aktarımı, SDPCM/BCDC, tarama ve SSID yok. CMD53 blok yazma TCM'de kanıtlı düşüyor; firmware staging cmd52 + verify yolundadır.
Kaynak / kanıt
rpi5_sdio_wifi.rs · cmd53_read/write, stage_to_tcm(), clock_speed_probe()
rpi5_radio_source · cmd52_staging_writes_only_tcm_and_verifies_readback
Cihazda ne oldu
R31: CMD53 okuma Gate1 geçti. R40/R41: TCM cmd52 ile okunuyor/yazılıyor, CMD53 TCM'de 0x0060 ile düşüyor. R42/R43: toplu cmd52 yazma ve karttan BRCMFW.BIN okuma geçti. R48: 64 KB doğrulandı ama tam indirme yavaştı. R53: saat-süpürme — yavaş saat yardımcı değil, süre timeout-spin kaynaklı. R54: issue() bekleme sınırı faza göre 2K'ya çekildi (/256 gate1/erom'da 50K korunur), /16'da 4976→109 ms/sektör (~45×). R55 PASS: 609 KB firmware TAM ve DOĞRULANMIŞ indirildi (OK=1, ~2–3 dk). R56/R57: firmware şanssız /16 boot'larında abort — kök neden retry değil, doğrulamanın R5-temiz beklemesi. R58 PASS ×2: DATA-tabanlı doğrulama (completion/R5 yoksay, gerçek veri oku) ile gürültülü boot'ta bile firmware OK=1 (RETRIES=0) VE NVRAM ilk kez yüklendi (OK=1, FW_INTACT=1). R58'den R93'e firmware+NVRAM 30 mühürlü koşuda PASS oldu. R59–R93 (30 deneme): CR4 çekirdeğini başlatmak hâlâ AÇIK. Çekirdek release dizisinin denenen hiçbir varyantında (saat temizle/tut, FGC var/yok, PMU reload, KSO, CARDCTRL, wrapper 4-bayt bayrağı) host-görünür yürütme sinyali üretmiyor — doğru always-on gösterge (SDIO çekirdeği 0x18004000 mailbox/intstatus + PMU) ile ölçüldü: MBOX=0, INTSTAT=0, RES_PEND=0, HAVEHT=0. Yanlış çıkan iki yorum düzeltildi (EXT_LPO_AVAIL=0 normaldir; FGC belirleyici değil). Kaynak-teyitli elemeler: rstvec→backplane-adres-0 CR4 için DOĞRU (R74), D11-disable uygulandı ama yürütme gelmedi (R74). R75 Linux kontrolünden sonra çalışma R76–R93 ile sürdü ve ilk anlamlı fark küçük-CMD53 yazma transportuna daraldı (henüz hipotez, cihazda sınanmadı). Kalan olasılık uzayının tamamı bu sayfada tek tek listelidir. SDPCM/escan bu duvarın ötesinde.
WIFI-A4

SDPCM + BCDC + escan

Yok
Sorduğu soru
Ortamdaki ağlar listelenebilir mi?
Yaptığı
Henüz hiçbir şey. Bu, brcmfmac'in yaptığı işin yeniden yazılmasıdır.
Reddettiği
Ekranda ağ listesi YOK; uydurma SSID çekirdekte hiç geçmiyor.
Kaynak / kanıt

WIFI-A5

WPA2 ve bağlanma

Yok
Sorduğu soru
Bir ağa katılınabilir mi?
Yaptığı
Henüz hiçbir şey. PBKDF2-SHA1, HMAC-SHA1 PRF, 4-yollu el sıkışma, CCMP/AES gerekir.
Reddettiği
Arayüzde 'Bağlan' YOK. Kayıtlı ağ deposunda parola alanı bile yok.
Kaynak / kanıt

BT-A0

Bluetooth UARTA envanteri

Aday — fiziksel PASS değil
Sorduğu soru
UART adresi doğru mu?
Yaptığı
UARTA sayfasını haritalar ve sekiz kelime okur.
Reddettiği
HCI yok, yazma yok, shutdown GPIO'ya dokunulmuyor.
Kaynak / kanıt
kernel/src/driver/rpi5_bt_uart.rs
rpi5_radio_source
Cihazda ne oldu
R1: UART penceresi canlı — DEAD_WINDOW=0, LSR=0x60 (THR boş + verici boş).
BT-A1

HCI bring-up

Aday — fiziksel PASS değil
Sorduğu soru
Denetleyici orada mı ve HCI konuşuyor mu?
Yaptığı
BT_ON hattını sürer (GPIO bank 0 bit 29), UARTA'yı 115200 8N1 programlar, tek bir HCI Reset (0x0C03) gönderir ve Command Complete olayını çözer.
Reddettiği
.hcd yaması yok, 3 Mbit/s'e geçilmiyor, Inquiry ve LE tarama gönderilmiyor, cihaz listesi yok.
Kaynak / kanıt
rpi5_bt_uart.rs · bring_up()
rpi5_radio_source · the_bt_on_line_is_one_named_bit…
Cihazda ne oldu
R1: BT_ON sürülemedi ve suç bizimdi. Canlılık kapısı IODIR=0xffffffff okuyup pencereyi ölü saydı; oysa IODIR bir YÖN kaydıdır ve hepsi bir olması 'hepsi giriş' demektir. Çip beslenmediği için HCI Reset gönderilmedi (TX=0, ANSWERED=0). Kapı düzeltildi. R2: BT_ON sürüldü, UART programlandı ve dört bayt gerçekten gönderildi (TX=4), ama 500 ms boyunca tek bayt dönmedi. R15–R93: pinler doğru D0 kelimede. BT bring-up her radyo boot'unda koşuyor (main.rs:3111, koşulsuz); R93 makbuzu dahil aynı sonuç: APPLIED=1, DIV=52, LSR=0x60, TX=4, RXTO=1, ANSWERED=0 — Bluetooth cevap vermedi. R75 Linux kontrolü aynı çipi BCM4345C0 diye tanıdı ve brcm/BCM4345C0.raspberrypi,5-model-b.hcd yamasını yükledi; bu yama dosyası AselsanOS'ta YOKTUR ve depoda pinli değildir — cevapsızlığın en güçlü adayı budur.
ETH-A0

Ethernet adlandırma

Yok
Sorduğu soru
Yaptığı
RP1 GEM yalnızca adlandırıldı. CPU adresi BAR'a bağlı olduğu için sabit değildir ve haritalanmaz.
Reddettiği
MMIO yok, MAC yok, PHY yok, paket yok.
Kaynak / kanıt
kernel/src/driver/rpi5_eth.rs
rpi5_radio_source

Firmware: ne indirildi ve neden imaja girmedi

DosyaBaytKaynaktaki adısha256
BRCMFW.BIN609.309cypress/cyfmac43455-sdio-standard.bind608f866582519c0a28d86db43040f4f1b98dd1d153e72e9752586546b4a36c3
BRCMNVR.TXT2.074brcm/brcmfmac43455-sdio.txtca709be81a78bdb6932936374f39943acbd7af07fae6151011127599a3ce9e3d
BRCMCLM.BLB2.676cypress/cyfmac43455-sdio.clm_blob9823842cae9fb9a5dd1e5fb31f595516ec7deee341354bef30bb3026eee29cc1
LICENSE.txt21.253Cypress + Broadcom yeniden dağıtım metinleri19b26b80dcd61423f1c722d4f86e25e657ee429ada149e40062806ad8364f6bf

Kaynak: RPi-Distro/firmware-nonfree, dal trixie

  • Bu dosyalar AselsanOS'un parçası DEĞİLDİR. Infineon/Cypress ve Broadcom'a ait tescilli ikili firmware'dir; LICENSE.txt yeniden dağıtım koşullarını taşır ve dosyalarla birlikte taşınmalıdır.
  • İmaja gömülmez. include_bytes! sürücüde yasaktır ve bir kaynak testi bunu pinler. Teslimat yolu SD karttır: çekirdek dosyaları var olan FAT32 locate() ile 8.3 adlarından bulur.
  • Çip seçimi tahminle yapılmadı. DTB'deki brcm,bcm4329-fmac genel bir Linux bağlayıcısıdır, silisyum kimliği değildir. İki bağımsız kanıt kullanıldı: aynı depoda brcmfmac43455-sdio.raspberrypi,5-model-b.bin sembolik bağı var, ve indirilen NVRAM bcm94345wlpagb_p2xx.txt'ten klonlanmış olup vendid=0x14e4 (Broadcom) diyor.
  • standard varyantı seçildi. Deponun kendi README'sine göre -minimal, AP modunda istemci sayısını artırmak için gelişmiş dolaşım (802.11k/v/r), DFS radar ve ACS özelliklerini çıkarmış bir alternatiftir; buradaki soru istasyon modunda taramadır.
  • Kartta durması, TCM'e tam indirilmesi ve çipin ARM çekirdeğinin başlatılması ayrı iddialardır. R43 dosyayı karttan doğru okudu; R55 firmware'in TAMAMINI, R58 NVRAM'i de TCM'e doğrulayarak yükledi (FW OK=1, NVRAM OK=1, FW_INTACT=1). R58'den R139 koşusuna kadar firmware+NVRAM 85 mühürlü pakette PASS oldu — sayaç mühürlü makbuzlardan sayılır, elle yazılmaz (attempt-r*/uart10.raw içinde hem FWSTAGE OK=1 hem NVRAM OK=1 taşıyan ve EVIDENCE_SHA256SUMS ile doğrulanan koşular). R132'de F2 yaşam döngüsünün ürettiği HOST_INT=0x80 ikinci yazmadan önce başarıyla temizlendi ve geri okuma sıfırdı; ikinci F2 yazması yine aynı veri CRC'siyle düştü. R133'ün üçüncü boot'u değişkene ulaştı: F2 block-size önce 0x00/0x02 idi, iki yazma ve iki geri okuma geçti, MATCH_512=1/FAILED=0 oldu; bitişik ikinci F2 yazması yine 0x0020 veri CRC'siyle düştü. R134'ün tekrar koşusu da değişkene ulaştı: send sınırındaki host-only SDHCI DATA reset uygulandı (APPLIED=1 CLEARED=1 READY=1 CONFIG_SAME=1, 10 µs) ve reset ile ikinci yazma arasına hiçbir SDIO işlemi girmedi; ikinci F2 yazması YİNE aynı 0x0020 ile düştü — temiz host DATA reset yerleşim-bağımsız elendi. R135'in üçüncü boot'u da değişkene ulaştı: ikinci yazma 64 bayt byte-mode (16 sıfır dolgu) olarak telden çıktı (BYTES_READ=64) ve YİNE aynı 0x0020 ile düştü — byte-count şekli elendi. CLM ve çalışan Wi-Fi hâlâ yoktur — TCM'e yükleme ya da çerçeve göndermek, tarama çalıştırmak değildir.

CHIPID ölçüldü (0x15264345 → 0x4345 BCM43455). 609 KB firmware + NVRAM CR4 TCM'e DATA-tabanlı doğrulamayla yüklendi: R164 koşusu dahil 119 mühürlü PASS. R139 kritik yoldaki taşıma farkını kapattı: rstvec Linux'un 4-baytlı bayraklı CMD53'üyle indi (RSTVEC_C53=1 RSTVEC_ERR=0x0000, CMD52 geri dönüşü kullanılmadı); buna rağmen CR4 yürütme tanıkları sıfır kaldı ve dongle FWREADY demedi. R138 host el sıkışmasını Linux'un dizisiyle her okumada tamamladı (ACKS=32, VERSION_WRITES=32) ve hipotezi eledi: dongle yine FWREADY kaldırmadı (LAST=0x00040002) ve iki çerçeveye cevap vermedi. CR4START makbuzları STARTED=0/EXECUTED=0 diyor; uygulama firmware'inin yürümediği okuması güçlendi. R136, Linux'tan ölçülen glom biçimli SDPCM çerçevesini karta gönderdi ve SDIO taşıma duvarı kırıldı: yeniden kurulan ikinci F2 yazması kabul edildi (TRIAL=1 FRAMELEN=56 XFER=56 SENT=2, WriteFifo/0x0020 hatası yok) ve süpürme TRIALS_RUN=2'ye ilerledi. Firmware yine cevap vermedi (REPLIED=0 FRAME_IND=0 HOST_INT=0); kalan fark seq ve preinit içeriğidir. R75 Linux cold-boot kontrolü aynı Pi 5 ve aynı firmware/NVRAM/CLM SHA'larıyla preinit'i tamamladı, wlan0 ve hci0 oluştu. AselsanOS tarafında Wi-Fi taraması, SSID veya bağlantı hâlâ kanıtlanmadı.

Mühendislik kararı ve R75

WitnessValidated

R136: glom biçimi SDIO duvarını kırdı — ikinci yazma kabul, cevap yok

R136, Linux'un aynı kartta ölçülen host→card çerçeve biçimini (SDPCM glom eklentisi, BCDC dcmd 20. baytta) uyguladı. Fiziksel koşuda R127'den beri ilk kez yeniden kurulan ikinci F2 yazması kabul edildi: TRIAL=1 FRAMELEN=56 XFER=56 SENT=2 REPLIED=0 ERR=ControlTimeout — WriteFifo/0x0020 hatası yok; süpürme TRIAL=2'ye ve TRIALS_RUN=2'ye ilerledi. Yani tel biçimi duvarı aşıldı ve kalan sınır firmware'in çerçeveyi işlememesi. Ölçülen Linux çerçeveleriyle kalan farklar seq (bizde 255, Linux'ta küçük/artan), dcmd türü-id (GET id=1 vs SET id=4+) ve preinit sırasıdır. Bu tanı PASS'tir; Wi-Fi PASS değildir.

Kanıtlanan

  • SDIO, CMD52, backplane, CHIPID, PMU ve EROM erişimi çalışıyor.
  • CHIPID=0x15264345 → BCM43455; firmware ve NVRAM CR4 TCM'e doğrulanarak yüklendi.
  • R136: Linux'tan ölçülen glom biçimli kontrol çerçevesi (evidence/rpi5/radio/linux-r136-first-frame-v3/) karta gönderildi; ikinci F2 yazması kabul edildi (SENT=2, WriteFifo hatası yok) ve süpürme TRIALS_RUN=2'ye ilerledi.
  • R136 Ubuntu çapraz kontrolü: aynı kart, aynı Pi 5 ama tamamen farklı bir çekirdek (Ubuntu 24.04) — 235 yazma çerçevesinin TAMAMI glom biçiminde (dat_offset=20), glomsuz tek çerçeve yok. Ölçüm ve düzeltme çekirdekten bağımsız doğrulandı.
  • R139 cihaz koşusu: reset vektörü Linux'un 4-baytlı bayraklı CMD53 taşımasıyla yazıldı ve İNDİ (RSTVEC_C53=1 RSTVEC_B=4 RSTVEC_ERR=0x0000 RSTVEC_CMD52_FALLBACK=0); R88'in 0x0060 veri CRC'si R94 sonrası tekrarlamadı. Kritik yoldaki son bilinen yapısal fark kapandı.
  • R139: buna rağmen CR4 yürütme tanıkları sıfır (EXECUTED=0 STARTED=0 MBOX=0 INTSTAT=0 SHARED_RAW=0; HT_REQ_AVAIL=1) ve dongle FWREADY'ye geçmedi (SAMPLES=18 ACKS=18 FWREADY_SEEN=0). Koşu kendi el sıkışma yazmasında F1 Write32 0x18004048 → 0x0020 ile kapandı.
  • R139 Linux ölçümü: CR4 başlatma yazmaları aynı kartta değerleriyle yakalandı (reprobe=2, 548 kprobe olayı) — CR4 ioctl 0x03/0x23/0x21/0x01, CR4 +0x800 1→0, rstvec 0xb83ef198, sürüm 0x00040000, hostintmask 0x200000f0, ACK 2; hepsi AselsanOS'un dizisiyle birebir aynı. Linux'un fazladan 0x650←3 yazması yalnız brcmf_chip_sr_capable() yoklamasıdır.
  • R140 cihaz koşusu (tek değişken: "host hazır" yazmasının yeri): protokol sürümü tosbmailboxdata'ya (0x18004048) CR4 bırakılışından 5 ms sonra yazıldı (AFTER_RELEASE_MS=5, WRITE_OK=1, BEFORE=0x00000000 → AFTER=0x00040000).
  • R140 ölçümü — dongle ilk kez protokol-hazır sinyali verdi: WIFIEARLYMBOX FWREADY_MS=30 LAST=0x00040008 INT_OR=0x208000c0 (I_CHIPACTIVE|I_HMB_HOST_INT|I_HMB_FRAME_IND) ve CHANGES=1. R136–R139'da bu değer hiç görülmemişti (INTSTAT=0, FWREADY_SEEN=0, CORE_OR=0x00000000).
  • R140: pencere salt-okunur olduğu için el sıkışma cevaplanmadı; protokol fazında posta kutusu DEVREADY'ye geri düştü (WIFIMBOXWATCH SAMPLES=30 CHANGES=0 FWREADY_SEEN=0 VERSION_WRITES=0 LAST=0x00040002) ve koşu F1 Read32 0x18004020 veri CRC'siyle (error_status=0x0020) kapandı.
  • R140 karşılaştırması: Linux'un R139 tel izi aynı pencerede postayı cevaplıyor — 0x18004040 ← 2 (SMB_INT_ACK) ve 0x18004020'ye write-1-to-clear (0xc0, 0x80, 0x40); kaynak karşılığı brcmf_sdio_hostmail + brcmf_sdio_intr_rstatus.
  • R141 cihaz koşusu: posta cevabı hatta çıktı — WIFIMBOXANSWER ACKS=7 INT_WRITES=2 INT_MASKED=0x200000c0 SETTLED=1 FWREADY_ACKED_MS=25; WIFIEARLYMBOX WRITES=2 (R140'ta 0), FWREADY_MS=25, INT_OR=0x208000c2.
  • R141: cevaba rağmen dongle protokol fazında yine DEVREADY'ye düştü (WIFIMBOXWATCH LAST=0x00040002 FWREADY_SEEN=0) ve koşu TRIAL=0'da F1 Read32 0x18004020 veri CRC'siyle (error_status=0x0020) kapandı.
  • R141 arıza makbuzu — veri hattı çakışması doğrudan görüldü: WIFIFRAMECOUNT HOST_CARD_INT=Some(true) (kart DAT1'i sürüyor) ve SDHCI_INT_SIGNAL_ENABLE=Some(0) (kesme servis edilmiyor); READ_FAILURES=5 ve F1 okumaları 4 baytlık CMD53 olduğu için DAT1 sürülürken veri CRC'si oluşuyor.
  • R141 kaynağı: kartın DAT1 sürme izni F2 hazırlığında yazılan CCCR INT_ENABLE (F0 0x04) 0x03 → 0x07 değerleridir (CCCR_IEN_MASTER_F1_F2); yoklamalı tasarımda bu kesmeye ihtiyaç yoktur.
  • R142 cihaz koşusu: CCCR INT_ENABLE master biti temiz yazıldı (WIFIEN W1=Some(2) W2=Some(6) READBACK=Some(6)) ama kart DAT1'i yine sürdü (HOST_CARD_INT=true, SDHCI_INT_STATUS=0x101 bit 8) ve koşu yine F1 Read32 0x18004020 veri CRC'siyle kapandı; koşu yine de ilerledi (TRIALS_RUN=2). Tanığın dinamik olduğu görüldü (önce false, sonra true).
  • R143 cihaz koşusu: SDIO çekirdeği host kesme maskesi 0 yazıldı (hostintmask_written: Some(0)) ve DAT1 yine sürüldü (HOST_CARD_INT=true ×4); TRIALS_RUN=3. İki kesme-etkinleştirme hipotezi böylece elendi.
  • R143 kurtarma kanıtı: WIFIREAD_RECOVERY OP=Read32 ADDRESS=0x18004020 PRIMARY_ERR=0x0020 ELIGIBLE=1 APPLIED=1 CLEARED=1 RECOVERY_OK=1 POST_READ_OK=1 POST_VALUE=Some(0) POST_MATCH=1 — arıza temizlenebiliyor ama sonuç kullanılmıyordu.
  • R144 cihaz koşusu (2. boot): yoklama okumasına tek yeniden deneme verildi; protokol fazı İLK KEZ dongle'ın kesmelerini gördü (interrupt_status_or=0xc0, frame_ind_seen=1, host_int_seen=1, FRAME_IND=1 HOST_INT=1) ve F2 çerçeve okumasını denedi (ReadFifo fn=2 addr=0x8000, 64 bayt). Bu koşuda WIFIPOLLRETRY RETRIES=0 — yani R141–R143'ü kapatan yoklama hatası artık koşuyu düşürmedi.
  • R144 duvarı: F2 okuması transfer zaman aşımı + veri CRC'siyle düştü (error_status=0x20, transfer_complete=false, bytes_read=64, timeout_transfer=true) — R145'in tek değişkeni bu okumaya aynı kuralı uygulamak.
  • R145 cihaz koşusu (2 boot): aynı kural F2 çerçeve okumalarına uygulandı. 1. boot F2 yoluna ulaşamadı (WIFIPOLLRETRY RETRIES=1 RETRY_FAILED=1, dongle kesmesi yok); 2. boot en uzun koşu oldu: TRIALS_RUN=8/11, SENT=9, REPLIED=0 ve her denemede CORE_OR=0x00000000.
  • R145 ölçümü: posta kutusu 158 örnek boyunca 0x00040002 (DEVREADY) kaldı ve FWREADY_SEEN=0; WIFIRECOVER dokuz kez FIFO_OK=1 LENGTH=Some(0) ile bayrak takılmadığını doğruladı. Yani taşıma artık taşıyor, eksik olan dongle'ın konuşması.
  • R146 cihaz koşusu (salt-okunur tanık): dongle'ın yayınladığı SDPCM paylaşım alanı okundu — PTR=0x00201cc0 PTR_PLAUSIBLE=1 STRUCT_OK=1, W0_FLAGS=0x00000001 (sürüm 1; ASSERT/TRAP/FAIL bitleri YOK), W5_CONSOLE=0x0025debc, W7/W10=0xb677b91b (FWID 01-b677b91b, bizim firmware dosyamızla aynı), SENT_B_OK=1 SENT_A_OK=1 (chipid 0x15264345 iki okumada da canlı, kararma yok).
  • R146 sonucu: firmware canlı ve sağlıklı, paylaşım alanını ve konsol adresini yayınlamış durumda; susma bir çökme değil. Kontrol çerçeveleri hâlâ cevapsız (TRIALS_RUN=3, REPLIED=0, posta kutusu 0x00040002).
  • R147 cihaz koşusu (2. boot, salt-okunur): konsol döküldü — HEADER 0x0025dab4 (tampon) 0x00000400 (boy 1024) 0x00000177 (367 bayt yazılmış); metin 'wl0: wlc_channels_commit: no valid channel for "#n" nbands 2 bandlocked 0' ve 'wl0: Broadcom BCM4345 80…' satırlarıyla başlıyor. 1. boot non-arrival'dı.
  • R148 cihaz koşusu (salt-okunur): tam konsol logu okundu (SIZE=1024 IDX=527 READ=1024 PRINTABLE=991, WRITES=0) ve firmware NEDENİ kendi yazdı: '000002.919 sdpcmd_dpc: Enable' → '000006.022 sdpcmd_dpc: Disable' + 'sdpcmd_tx: device disabled' + 'sdpcmd_sendheader: tx submit failed!!' → 'sdpcmd_dpc: Enable'. Yani kontrol çerçevemiz cihaz devre dışıyken gönderildi ve firmware onu düşürdü.
  • R148 logundaki diğer firmware bildirimleri: 'wl0: wlc_stf_txcore_shmem_write: No clock' (PHY/TX çekirdeğine saat yok), 'wlc_channels_commit: no valid channel for "#n"', 'wlc_attach_antgain_init: Invalid antennas available in srom', 'Broadcom BCM4345 … 7.45.265 (28bca26 CY)' (bizim blob varyantı), 'TCAM: 256 used: 255 exceed:0'.
  • R149 cihaz koşusu (tek bit: FORCE_HT): WIFIFORCEHT BEFORE=0xd0 WROTE=0xd2 WRITE_OK=1 AFTER=0xd2 ve CR4START HT_CSR_FIN=0xd2. Firmware bu boot'ta SDPCM veri yolunu kapatmadı (log 375 baytta 'sdpcmd_dpc: Enable' ile bitiyor; 'Disable'/'tx submit failed' satırları yok), ama 'wl0: wlc_stf_txcore_shmem_write: No clock' satırı AYNEN duruyor — FORCE_HT firmware'in iç saatini vermiyor.
  • R149 koşusu yine taşıma hatasıyla kapandı: WIFITRIAL_RESULT TRIAL=0 REPLIED=0 CORE_OR=0x00000000, WIFIREAD_RECOVERY PRIMARY_ERR=0x0020 (yeniden deneme de düştü), TRIALS_RUN=0.
  • R150 gerekçesi: firmware 'saat yok' diyor ve D11 için Linux tel izinde hiç reset-ctl yazması yokken bizim dizimiz D11'i reset'te bırakıyor — reset'teki çekirdeğin saati olmaz.
  • R150 cihaz koşusu (tek yazma: D11 reset'ini kaldır): WIFID11RELEASE RST_BEFORE=0x00000001 WROTE=0x00000000 RST_AFTER=0x00000000 RELEASED=1 ve tam konsol logunda 'wl0: wlc_stf_txcore_shmem_write: No clock' satırı ARTIK YOK (R148/R149'da vardı). Yani D11'i reset'te tutmak firmware'in işine yarayan çekirdek saatini engelliyormuş.
  • R150 yeni imzası: konsol logu ~2,97 s'de bir yinelenen 'sdpcmd_dpc: Disable' + 'sdpcmd_tx: device disabled' + 'sdpcmd_sendheader: tx submit failed!!' + 'sdpcmd_dpc: Enable' kalıbı gösteriyor (t=6.082, 9.048, 12.014, 14.979) ve TRIALS_RUN=4: çerçevemiz her seferinde veri yolu kapalıyken gönderiliyor; REPLIED=0.
  • R151 cihaz koşusu: zaman çizgisi altyapısı kuruldu ama bütün T_MS alanları 0 çıktı (T0_MS=2018624513 = ham sayac; frekans ilk çağrıda kayıtlı değildi). Aynı koşuda 'No clock' satırı GERİ GELMİŞTİ ve 'tx submit failed' hiç yoktu.
  • R152 cihaz koşusu (ms kaynağı düzeltildi): T_MS alanları gerçek. Hizalama sonucu: her Disable/tx-submit-failed olayı bizim bir çerçeve gönderimimizden sabit ~326 ms sonra (5752↔6095, 8736↔9062, 11703↔12029, 14669↔14996, 17636↔17963 ms). Yani dongle çerçevemizi alıyor, sonra cihaz devre dışı kalıyor ve gönderim düşüyor.
  • R152 ölçümü: 'No clock' bu boot'ta yok (R150 gibi) — D11 release'inin firmware saatine etkisi boot'lar arasında değişken; TRIALS_RUN=5/11 REPLIED=0; konsol IDX=111 READ=1024 PRINTABLE=973 T_MS=35503.
  • R153 gerekçesi: R136 mühründe kalan tek ölçülü çerçeve farkı ilk kontrol çerçevesinin seq baytıdır — Linux (linux-r136-first-frame-v3/decoded-pass1.txt) seq=0x02, bizde 0xFF.
  • R153 cihaz koşusu (2 boot): ilk kontrol çerçevesi artık seq=0 taşıyor (WIFITRIAL_RESULT TRIAL=0 SEQ=0, TRIAL=1 SEQ=1) ama desen sürüyor — konsolda bir kez daha 'sdpcmd_dpc: Disable' + 'sdpcmd_tx: device disabled' + 'sdpcmd_sendheader: tx submit failed!!' (t=6.106 s) ve REPLIED=0; TRIALS_RUN=1/11. Yani seq numaralandırması tetikleyici değil.
  • R153 ölçümü: 'No clock' bu boot'ta yine VAR (R150 ve R152'de yoktu, R151 ve R153'te var) — D11 release'inin firmware saatine etkisi dört koşuda iki-iki bölünüyor; boot'lar arası kararsızlık kayda geçti. 1. boot non-arrival'dı (RSTVEC_OK=0).
  • R154 cihaz koşusu (ilk çerçeve = Linux'un ölçülmüş preinit SET'i): WIFIPREINIT USED=1 CMD=263 ID=4 SET=1 DATA_LEN=20; WIFITRIAL_RESULT TRIAL=0 REQ_ID=4 CMD=263 FRAMELEN=56 BCDCLEN=20 SEQ=0 SENT=1 REPLIED=0. Firmware konsolunda 'Disable' ve 'tx submit failed!!' satırları YOK (R152'de 5, R153'te 1 kez vardı) — ilk olumlu sinyal.
  • R154: cevap yine yok ve koşu 1. denemede aralıklı taşıma hatasıyla (Read32 0x18004020) kapandı; bu yüzden karar için aynı imajın 2. ve 3. boot'u gerekir. 'No clock' bu boot'ta yine var.
  • R154 2. boot: desen GERİ GELDİ — konsolda 'sdpcmd_dpc: Disable' + 'sdpcmd_tx: device disabled' + 'sdpcmd_sendheader: tx submit failed!!' (t=6.108 s) ve REPLIED=0; Disable yine bizim çerçevemizden ~328 ms sonra (frame T_MS=5780). Yani 1. boot'taki yokluk boot varyansıydı; preinit içeriği tetikleyici değil.
  • R154 iki boot karşılaştırması: boot 1 IDX=375 ve desen yok, boot 2 IDX=527 ve desen var; her ikisinde de WIFIPREINIT USED=1 ve TRIALS_RUN=1, REPLIED=0, bitiş Read32 0x18004020.
  • R155 gerekçesi: kurtarma olaylarının (WIFIREAD_RECOVERY) zaman damgası yok; SDHCI hat sıfırlaması içeren bu olayların Disable ile ilişkisi ölçülemiyor. Damga bu turda koda eklendi ve derlendi.
  • R155 cihaz koşusu (ölçüm): WIFIREAD_RECOVERY satırları T_MS taşıyor (T_MS=1 APPLIED=1, T_MS=0 APPLIED=0) ve iki kurtarma da CR4 bırakılışının hemen ardında; deneme sırasında hiç kurtarma yok. Bu boot'ta 'Disable' ve 'tx submit failed' HİÇ yok, 'No clock' yok, TRIALS_RUN=4/11, REPLIED=0.
  • R155 tablosu: son beş koşuda Disable sayısı 5/1/0/1/0 ve 'No clock' varlığı bağımsız değişiyor; ortak tek gözlem her denemede CORE_OR=0x00000000 ve REPLIED=0 — dongle kontrol çerçevemize karşılık üretmiyor ya da ürettiğini göremiyoruz.
  • R156 cihaz koşusu (2. boot, hizalama): kurtarma damgaları T_MS=0/1 (CR4 bırakılışının hemen ardı), çerçevemiz T_MS=5907 ve firmware 'Disable' + 'tx submit failed!!' olayı 6.239 s (≈ bizim 5913 ms'imiz) — yani deseni tetikleyen bizim çerçevemiz; okuma-hatası kurtarma yolu elendi.
  • R156 kanıtı (mühürlü Linux listesi): Linux'un preinit sırası — (1) GET ulp_sdioctrl GLOM DEĞİL (data_offset=12, seq=0, cmd=262 len=29 flags=0x00020000), (2) SET bus:rxglom=1 GLOM DEĞİL (seq=1, cmd=263 len=15 flags=0x00030002), (3) SET cur_etheraddr=MAC GLOM (ext 34000001 00000000, data_offset=20, seq=2, cmd=263 len=20 flags=0x00040002). Yani glom ikinci çerçevede pazarlık ediliyor; bizim imajlarımız ilk çerçeveden itibaren glom kullanıyor.
  • R157 cihaz koşusu (1. boot): preinit sırası bu boot'ta ÇIKMADI (WIFIPREINITSEQ SENT=0 EXPECTED=3) çünkü çağrı "istek gönder" dalının içindeydi ve koşu ondan önce F2 yazma hatasıyla (WriteFifo, F2 0x8000, T_MS=3351) kapandı; çağrı yoklamanın öncesine taşındı ve imaj yeniden üretildi (sha 3b3f3a5ae2fa736ccc79f0c03527a447653580cc1d37eaf44820d2e0e2519af0).
  • R157 ölçümü — bu hattın İLK RX başarısı: WIFIFAIL frames_received=2, frame_ind_seen=1, host_int_seen=1, fifo_reads=3 (biri sıfır işaretçisi), interrupt_status_or=192 (0xc0) ve WIFITRIAL_RESULT FRAME_IND=1 HOST_INT=1 CORE_OR=0x000000c0. Dongle host kesmesini kaldırdı ve iki çerçeve aldık; koşu F2 yazma hatasıyla erken kapandı (Disable ve tx submit failed bu boot'ta yok).
  • R136: R133 zinciri korundu — WIFIF2BLKSZ ATTEMPTED=1 MATCH_512=1 FAILED=0; R134 reset'i ve R135 64-bayt deneyi imajda yok (makbuz satırları basılmadı).
  • R136: firmware hâlâ cevap vermiyor — REPLIED=0 CTRL_SEEN=0 FRAME_IND=0 HOST_INT=0 CORE_OR=0; terminal ControlTimeout. Sınır artık SDIO taşıması değil.
  • R127–R135 zinciri host tarafını eledi: FIFO/kesme/yaşam döngüsü/block-size/DATA reset/byte-count.
  • R75 Linux kontrolü aynı kartta brcmfmac firmware preinit'i tamamladı; wlan0 ve hci0 oluştu. brcmfmac aynı CHIPID'i okudu (0x15264345).

Kanıtlanmayan sınır

  • R75 bir association veya ping kanıtı değildir; WLAN soft-blocked olduğu için ağ bağlantısı ölçülmedi.
  • R136 bir Wi-Fi PASS değildir: control reply, READY=1, tarama, association veya DHCP yoktur.
  • Kök neden hâlâ kanıtlanmadı; seq/preinit içeriği adayları ölçülmedi.
  • 0x0060'ın yalnızca yazmaya özgü olduğu kanıtlanmadı.
  • R135'in 64 baytlık çerçevesinin içeriği Linux'un 64'lük çerçeveleriyle eşleştirilmedi.

Tekrar edilmeyecekler

  • Yeni FGC varyantı yok.
  • Yeni rstvec adresi yok.
  • Yeni D11 başlangıç varyantı yok.
  • Kaynakta veya Linux trace'inde görülmeyen register yazması yok.
  • Host SDHCI DATA reset yerleşimleri ve 64-bayt yazma birimi elendi; yeniden denenmez.
  • Tel biçimi artık Linux'un ölçülmüş glom biçimidir ve bu dondurulmuştur.
R75

Aynı kartta Linux/brcmfmac cold-boot kontrolü — tamamlandı

Aynı fiziksel RPi5 üzerinde, tam PSU sök-tak sonrası Linux/brcmfmac'in BCM43455'i çalıştırıp çalıştırmadığını görmek; R75 bunu pozitif cevapladı. Sıradaki iş Linux ile AselsanOS arasındaki ilk anlamlı host-init farkını bulmaktır.

Ön koşullar

  • Aynı Raspberry Pi 5 ve mümkünse aynı güç adaptörü.
  • Yazılım reboot değil, tam cold boot: PSU çıkarılır, beklenir, tekrar takılır.
  • Linux testi Wi‑Fi üzerinden SSH'ye bağımlı olmaz; UART/yerel konsol logu alınır.
  • AselsanOS tarafında yeni radyo imajı üretilmez; önce Linux kontrol makbuzu mühürlenir.

Kanıt toplama komutları

R75_COLD_BOOT_CONFIRMED=1 scripts/collect-rpi5-r75-linux-control.sh evidence/rpi5/radio/attempt-r75-linux-control
# Betik sonunda EVIDENCE_SHA256SUMS'i kendisi üretir; ikinci kez shasum * çalıştırmayın.

Kabul: ALINDI: Linux Wi‑Fi arayüzü oluştu, firmware preinit tamamlandı; Bluetooth HCI hci0 cevap verdi. WLAN soft-blocked olduğu için association/ping ölçülmedi.

Red: GERÇEKLEŞMEDİ (bu dal açılmadı): Linux da firmware load / wlan init aşamasında kalsaydı kart/silikon/blob hipotezi öne çıkacak ve R76 hiç açılmayacaktı. R75 pozitif çıktığı için bu dal kapandı.

R75 sonucuAnlamıSonra
Linux Wi‑Fi çalışırR75 sonucu budur: silikon, board saatleri ve blob ailesi Linux altında çalışıyor; sorun AselsanOS host-init farkında.Linux–AselsanOS trace diff yapılacak; yalnız ilk anlamlı fark tek değişken olarak uygulanacak.
Linux Wi‑Fi de çalışmazKart/silikon/güç/saat/firmware paketi sorunu güçlü adaydır.Onboard BCM43455 terk edilir veya kart değiştirilir; R76 açılmaz.
Linux Wi‑Fi çalışır, BT çalışmazWi‑Fi CR4 yolu ayrışır; Bluetooth ayrı UART/patchram/init problemi olabilir.Wi‑Fi diff'i ayrı yürütülür, BT ayrı hata raporuna alınır.
Linux BT çalışır, AselsanOS BT susarR75 sonucu AYNI ZAMANDA budur: Linux hci0'ı kurdu, AselsanOS ise 83 mühürlü koşuda TX=4 / ANSWERED=0 aldı. R75 dmesg'i çipi BCM4345C0 diye tanıdı ve brcm/BCM4345C0.raspberrypi,5-model-b.hcd yamasını yükledi; bu dosya AselsanOS'ta yok.BT için ayrı HCI trace diff hazırlanır; ilk aday patchram (.hcd) yokluğudur — Wi-Fi CR4 yolundan bağımsız yürütülür.
Linux Wi‑Fi çalışmaz, BT çalışırOrtak çip ölümü değil; WLAN path veya firmware/PMU özel problemi öne çıkar.Onboard Wi‑Fi ürün yolundan kapalı kalır; BT bağımsız değerlendirilir.

Ürün ağı Wi‑Fi’ye bağlanmayacak

P0

LTE / UART-AT

Telefon ürünü için en hızlı WAN kanıtı: UART sahipliği, AT komut motoru, SIM/operator registration, PDP context ve veri yolu.

P1

Ethernet / RP1 GEM

AselsanOS'un kendi ağ yığını için temiz yol: RP1 BAR keşfi, GEM MMIO, MDIO/PHY, DMA ring, ilk frame, ARP ve ICMP ping.

P2

Onboard BCM43455 Wi‑Fi

Ürün bloklayıcısı değil, araştırma hattı. İki koşul da gerçekleşti: R75 Linux kontrolü pozitif çıktı ve ilk anlamlı host-init farkı daraltıldı — bu yüzden hat R76–R93 ile AÇIK yürüdü. Ürün ağı yine de P0/P1 üzerinden kurulur; bu hattın PASS'i ürün planına girmez.

R79

Host-init first-diff 1–4 kapandı; CARDCTRL land etti ama CR4 başlamadı

R79 fiziksel eleme — PASS değil
İlk bounded aday
Function-0 Broadcom CARDCTRL_WLANRESET before D11/rstvec
Mekanik kontrol
scripts/radio-host-init-first-diff.py --check
docs/radio/R76-host-init-first-diff.md
Hazır imaj
build/rpi5-radio/aselsanos-rpi5-radio.img · sha256 8892f43599572bd3f23a5aeb3091490258ecdec35a20e1a53cc164271f06070f
Bulgu
R79 fiziksel koşusu CARDCTRL_WLANRESET adayını eledi: CARD_B=0x01, CARD_W=1, CARD_A=0x03, CARD_WLANRST=1 ölçüldü; clock R77 baseline'da kaldı (CLK_REQ=0x29, CLK_HOLD=0x09, WRITE_OK=1). MBOX/INTSTAT/EXECUTED/STARTED yine 0. Bounded first-diff 1–4 kapandı; sıradaki iş transaction-level Linux SDIO/backplane trace.
Kural
Yeni FGC, rstvec, D11 veya clock varyantı yok. CARDCTRL Linux-parity cleanup olarak kalır. Sıradaki bounded adım başka bir AselsanOS register dürtmesi değil, Linux transaction-level izdir.
SıraOlasılıkKanıtİşlem
1SDIO core intstatus clear before rstvecR76 fiziksel koşusunda SDIO_INT_B=0x00020000 → clear landed → SDIO_INT_A=0x00000000; CR4 hâlâ çalışmadı.Tek başına elendi; kaynakta Linux-parity cleanup olarak kalır.
2KSO / SBSDIO_FUNC1_SLEEPCSR wake disciplineR77 ölçtü: KSO_B=0x03, KSO_W=1, KSO_A=0x03, KSO_SET=1, KSO_DEVON=1; CR4 yine çalışmadı.Tek başına elendi; kaynakta Linux-parity cleanup olarak kalır.
3CHIPCLKCSR / DEVICE_CTL clock-available yoluR78 ölçtü: CLK_REQ=0x28, CLK_HOLD=0x21; CR4 yine çalışmadı ve WRITE_OK=0 oldu.Bu yerleşimde elendi; R79'da R77 clock baseline'a dönülür.
4Function-0 Broadcom CARDCTRL_WLANRESETR79 ölçtü: CARD_B=0x01, CARD_W=1, CARD_A=0x03, CARD_WLANRST=1; CR4 yine çalışmadı.Tek başına elendi; kaynakta Linux-parity cleanup olarak kalır.
5NVRAM generated-byte equality ve opsiyonel MAC eklemeHost-side mirror R74 ile aynı metrikleri verdi: VARSZ=1748, TOKEN=0xfe4b01b4, ADDR=0x23792c; .txt zaten macaddr içeriyor.Düşük öncelik; sonraki fiziksel CR4-start adayı değil.
6F2 enable / hostintmask / watermark / MESBUSYCTRLLinux bunları firmware başladıktan sonra yapar; R74 firmware-ready/MBOX aşamasına ulaşmadı.Post-MBOX aşaması; R76 start adayı değil.
7Bluetooth patchram / baud transitionLinux HCI Broadcom patch dosyası sonrası çalışıyor; AselsanOS yalnız ROM-speed Reset gönderiyor.Ayrı BT diff; Wi‑Fi CR4-start değişkeni değil.
R80

Linux transaction-level SDIO/backplane trace

Linux trace mühürlü; wlan0 ve hci0 canlı; sıradaki AselsanOS adayı probe-sırası clock/ramrw

R76–R79 tek-register/tek-semantik adayları elendiği için sonraki bounded iş yeni AselsanOS register denemesi değil, Linux'un gerçek brcmfmac/mmc/sdio işlem sırasını boot-time trace buffer'ından yakalamaktır.

Kartı arm etme komutu

scripts/arm-rpi5-r80-linux-trace-card.sh /Volumes/bootfs

docs/radio/R80-linux-transaction-trace.md
scripts/collect-rpi5-r80-linux-sdio-trace.sh

Boot trace argümanları

  • trace_event=mmc:*
  • trace_buf_size=16M
  • ftrace=function
  • ftrace_filter=brcmf_sdio*,brcmf_sdiod*,brcmf_chip*,brcmf_fw*,brcmfmac*,mmc_io_rw*,sdio*

Beklenen kanıt

  • r80-evidence/attempt-r80-linux-sdio-trace/EVIDENCE_SHA256SUMS
  • trace.txt
  • trace-radio-filtered.txt
  • dmesg-radio-filtered.txt
  • firmware-sha256.txt

Kapsam dışı: Wi‑Fi association/ping değil, AselsanOS koşusu değil, modül reload veya servis restart değil; yalnız Linux trace/dmesg/firmware kimliği toplama.

R81

Linux-sırası birleşik host-init

Fiziksel koşu — FWSTAGE S=64'te takıldı, PASS değil

docs/radio/R81-linux-order-combined.md

  1. transfer_probe buscoreprep 0x28→0x21 (R28, probe slot)
  2. probe_attach KSO+CARDCTRL+PMU RES_RELOAD+D11 disable firmware'den önce
  3. htclk_before_ramrw CHIPCLKCSR 0x08 (Linux alp_only download), ramrw hemen öncesi
  4. firmware+NVRAM (R55/R58)
  5. cr4_start R77 clock 0x29→0x09, D11, intstatus, rstvec, FGC (R74–R79 tanıkları)

Bu imajda yok: R78 0x28→0x21 at CR4-start; halt_cr4 before TCM; F2/hostintmask/watermark (post-MBOX).

R82

Buscoreprep ALP hold ramrw boyunca

Fiziksel koşu — SKIP=1 CSR=0x61, FWSTAGE yine S=64, PASS değil

docs/radio/R82-alp-hold-through-ramrw.md

  1. transfer_probe buscoreprep 0x28→0x21 (R28)
  2. probe_attach KSO+CARDCTRL+PMU+D11 firmware'den önce (R81, durur)
  3. htclk_before_ramrw SKIP=1: CHIPCLKCSR 0x08 yazılmaz
  4. firmware+NVRAM, sonra cr4_start R77 0x29→0x09

Bu imajda yok: R81 HTCLK 0x08 before ramrw; R78 0x28→0x21 at CR4-start; halt_cr4 before TCM; F2/hostintmask/watermark (post-MBOX).

R83

Attach yalnız KSO+CARDCTRL

Fiziksel koşu — FWSTAGE OK=1, CR4 ölü, operatör görüntü yok, PASS değil

docs/radio/R83-attach-kso-cardctrl-only.md

  1. transfer_probe buscoreprep 0x28→0x21
  2. probe_attach KSO+CARDCTRL only (SKIP_PMU=1 SKIP_D11=1)
  3. htclk SKIP=1, CHIPCLKCSR 0x08 yazılmaz
  4. firmware+NVRAM, cr4_start D11+R77 clock

Bu imajda yok: Pre-ramrw PMU RES_RELOAD; Pre-ramrw D11 disable; R81 HTCLK 0x08; halt_cr4 before TCM.

R84

Attach KSO+CARDCTRL+PMU RES_RELOAD

Fiziksel koşu — SKIP_PMU=0, FWSTAGE S=0, PASS değil

docs/radio/R84-attach-pmu-reload.md

  1. R83 tabanı: KSO+CARDCTRL attach, HTCLK SKIP=1
  2. probe_attach pre_fw_pmu=true pre_fw_d11=false (SKIP_PMU=0 SKIP_D11=1)
  3. D11 disable hâlâ cr4_start
  4. firmware+NVRAM, R77 clock 0x29→0x09

Bu imajda yok: Pre-ramrw D11 disable (R81/R82 hang çifti); R81 HTCLK 0x08; halt_cr4 before TCM; F2/hostintmask/watermark (post-MBOX).

R85

NVRAM sonrası PMU RES_RELOAD

Fiziksel koşu — FW OK=1, PMUREL 0x18181818, EXECUTED gürültü, PASS değil

docs/radio/R85-post-nvram-pmu-reload.md

  1. R83 attach: KSO+CARDCTRL only (SKIP_PMU=1 SKIP_D11=1)
  2. HTCLK SKIP=1, CHIPCLKCSR 0x08 yazılmaz
  3. firmware+NVRAM
  4. PMU RES_RELOAD sonra cr4_start D11+R77 clock

Bu imajda yok: Pre-ramrw PMU RES_RELOAD (R84, S=0 takılması); Pre-ramrw D11 disable; R81 HTCLK 0x08; halt_cr4 before TCM.

R86

PMUControl Linux writel (CMD53 4B)

Fiziksel koşu — C53_ERR=0x0020, bus temiz, EXECUTED=0, PASS değil

docs/radio/R86-pmu-write-path.md

  1. R83 attach, HTCLK skip, firmware+NVRAM (R85 yuvası)
  2. pmu_res_reload: Linux sdiod_writel = CMD53 4 bayt + 4B bayrağı (PATH=C53_4B)
  3. 4× CMD52 cmd52_write_u32 yok (R84/R85 bus zehri)
  4. cr4_start D11+R77 clock

Bu imajda yok: R84/R85 4× CMD52 PMU yazması; Pre-ramrw PMU (R84); R81 HTCLK 0x08; halt_cr4 before TCM.

R87

PMUREL boot yolundan çıksın

Fiziksel koşu — PMUREL yok, FW OK=1, EXECUTED=0, PASS değil

docs/radio/R87-drop-pmu-reload.md

  1. R83 attach SKIP_PMU=1 SKIP_D11=1
  2. HTCLK skip, firmware+NVRAM
  3. cr4_start; pmu_res_reload yok

Bu imajda yok: ASELSAN/PMUREL / RES_RELOAD yazması; R81 HTCLK 0x08; halt_cr4 before TCM.

R88

Linux chip_set_active vs cr4_start

Fiziksel koşu — RSTVEC_ERR=0x0060 RSTVEC_OK=0 EXECUTED=0, PASS değil

docs/radio/R88-set-active-vs-cr4-start.md

  1. R87 tabanı: attach KSO+CARDCTRL, HTCLK skip, PMUREL yok
  2. rstvec adres 0 aynı; yazma Linux ramrw/CMD53 4B + 4B bayrağı (sb_offset(0,true))
  3. 4× CMD52 rstvec yazması yok; RSTVEC_C53/RSTVEC_B/RSTVEC_ERR tanık

Bu imajda yok: RES_RELOAD yazması; R81 HTCLK 0x08; halt_cr4 before TCM; Yeni rstvec adresi yok; rambase'e ikinci rstvec yazması yok; terminal IOCTL 0x00 (R51); F2/hostintmask (post-MBOX).

R89

rstvec CMD52 geri

Fiziksel koşu — RSTVEC_OK=1 C53=0 EXECUTED=0, PASS değil

docs/radio/R89-rstvec-cmd52-restore.md

  1. R88 kapandı: CMD53 4B adres 0 CRC 0x0060, RSTVEC_OK=0
  2. rstvec yine adres 0; yazma cmd52_write_u32 (R87 landing)
  3. HTCLK skip, PMUREL yok, RES_RELOAD yok

Bu imajda yok: Linux ramrw/CMD53 rstvec yazması; RES_RELOAD yazması; R81 HTCLK 0x08; halt_cr4 before TCM; terminal IOCTL 0x00 (R51).

R90

rambase'e aynı rstvec ikinci yazma

Fiziksel koşu — RAM_W=0 0x18181818 EXECUTED gürültü, PASS değil

docs/radio/R90-rambase-rstvec-second-write.md

  1. R89 tabanı: adres 0 CMD52 rstvec (RSTVEC_OK=1)
  2. Aynı rstvec sözcüğü CR4 rambase 0x00198000'e ikinci yazma (Linux cr4_set_active)
  3. Adres 0 kalır; yeni rstvec adresi yok

Bu imajda yok: rstvec adresini 0'dan rambase'e taşımak; Linux ramrw/CMD53 rstvec; RES_RELOAD yazması; R81 HTCLK 0x08; halt_cr4 before TCM; terminal IOCTL 0x00 (R51).

R91

rambase rstvec yazmasını düş

Fiziksel koşu — RSTVEC_OK=1 RAM_W=0 EXECUTED=0, PASS değil

docs/radio/R91-drop-rambase-rstvec.md

  1. R90 kapandı: RAM_W=0 RAM_OK=0, bus 0x18181818, EXECUTED gürültü
  2. cr4_start'tan rambase ikinci yazmayı çıkar (R89: adres 0 CMD52)
  3. HTCLK skip, PMUREL yok, CMD53 rstvec yok

Bu imajda yok: R90 rambase rstvec yazması; RES_RELOAD yazması; R81 HTCLK 0x08; halt_cr4 before TCM; terminal IOCTL 0x00 (R51); CMD53 rstvec / ramrw.

R92

kopyalanabilir Linux CR4-start kapandı

Kaynak notu — fiziksel koşu yok, PASS değil

docs/radio/R92-copyable-linux-cr4-start-closed.md

  1. R91 R89 kalıbını geri getirdi: RSTVEC_OK=1 EXECUTED=0 WRITE_OK=1
  2. Bu ailede kopyalanabilir Linux CR4-start yuvaları kapandı
  3. Kalan Linux resetcore terminal IOCTL 0x00 R51 tuzağıdır

Bu imajda yok: Yeni FGC/rstvec/D11/saat/PMU/rambase varyantı; terminal IOCTL 0x00 (R51); R81 HTCLK 0x08; halt_cr4 before TCM; CMD53 rstvec / ramrw; RES_RELOAD yazması.

Yürütme merdiveni — kalan bütün olasılıklar, koşulacakları sırayla

Sıra keyfi değil. Üç kural belirledi: geçerlilik önce (bir sonucun okunmasını engelleyen kusur, o sonuca dayanan hiçbir adaydan sonra gelemez), ucuz ve geri alınabilir önce, ve tek değişken — salt-okunur ölçüm eklemeleri değişken sayılmaz.

R95KoşulduC01 · C02 · C03

CR4 TCM boyutu çipten ölçülüyor

Değişen tek şey: TCM_RAMSIZE sabit tahmin yerine ARMCR4 CAP + banka taramasıyla ölçülür; NVRAM ve yürütme tanığı ölçülen tepeden türer.

Neden bu sırada: Yerleşim hatası, ölçüm körlüğünü de içeriyordu: aynı sabit hem NVRAM'in yazıldığı yeri hem de yürütmeye bakılan yeri 160 KiB kaydırıyordu.

CR4RAM CAP=0x00000b44 BANKS=8 RAMSIZE=0x000c8000 MEASURED=1 · NVRAM ADDR=0x0025f92c · MBOX=0 EXECUTED=0

Kapattığı: C01 ve C03 KAPANDI (kusur gerçekti ama neden değildi). C02 kalıcı kazanç: ramsize artık ölçülüyor.

Risk: Düşük — tek yazma BANKIDX indeks kaydına; Linux aynı yazmayı aynı adrese yapıyor.

R96KoşulduC12 · +C13 · +C15 · +C17 (salt-okunur)

Staging optimizasyonu cr4_start'tan önce geri alınır

Değişen tek şey: Komut-tamamlandı yoklama sınırı 2.000 → 50.000, SDIO saati /16 → /256 (tanımlama değerleri). Yalnızca cr4_start'tan hemen önce.

Neden bu sırada: GEÇERLİLİK ÖN KOŞULU. Firmware staging'i hızlandırmak için daraltılan bütçe hiç geri alınmıyordu: R59–R95 arasındaki BÜTÜN CR4-start sonuçları bu daraltılmış bütçe altında ölçüldü. Bir yazmanın 'indi' sayılıp aslında zaman aşımına uğraması mümkün; WRITE_OK=1 ve MBOX=0 okumalarının ikisi de şüpheli. Bu düzelmeden sonraki hiçbir adayın sonucu güvenilir okunamaz.

CR4PRE POLLS=50000 CLKDIV=0x80 · CR4START POLLS= HOST_BLK= HOST_CLK= HOST_TMO= HOST_CTL1= HOST_CTL2= PMU_TC= CHIPID2= MBOX2=

Kapattığı: C12 KAPANDI (geri alma çalıştı, sonuç değişmedi). Ama C15 ayırt edicisi ateşledi: CHIPID2=0x00000000 — tanık okumaları güvenilmez. Bu, C33'ü doğurdu ve merdiveni yeniden sıraladı.

Risk: Çok düşük — yalnızca host tarafı yapılandırması geri alınır ve üç okuma eklenir. Çipe yeni bir yazma yok.

R97KoşulduC33 · +nöbetçi (salt-okunur)

Tanık nöbetçisi: TCM okuması döngüden sonraya alınır

Değişen tek şey: TCM (shared word) okuması tanık döngüsünden ÖNCE değil SONRA yapılır. Serbest eklenen salt-okunur enstrümantasyon: her turda MBOX ile AYNI 32 KB pencereden bir nöbetçi bayt (ChipCommon ofset 0, beklenen 0x45) durum kontrollü okunur.

Neden bu sırada: GEÇERLİLİK ÖN KOŞULU — ikinci kez. R96 ölçtü ki cr4_start'tan sonra SD hattı ölü ve bu R70'ten beri böyle. Ölçü aleti doğrulanmadan merdivene basamak eklemek yeni bir belirsiz datum üretir. C04 bu yüzden bir sıra geriye alındı: sonucu da aynı güvenilmez pencereden okunacaktı.

FENCE=0xdeadbeef SENT_N= SENT_OK= SENT_LAST_OK_MS= SENT_BAD_MS= F0_REV= F0_OK= WIN_OK_END= WIN_W= WIN_R= SHARED_AFTER=1

Kapattığı: C33'ün ölçüm sırası düzeltildi: nöbetçi 100/100, MBOX=0 ve INTSTAT=0 canlı hatta ölçüldü. Host-görünür sinyal yokluğu, hiç komut yürütülmediği anlamına gelmez. R70–R96 tanıkları geçersiz; PMU sayacı ilerlediği için C13'ün 'LPO ölü' yorumu da düştü. TCM sonrası hat sorunu C34'te açık.

Risk: Çok düşük — davranış değiştiren tek şey bir okumanın SIRASI. Yeni yazma yok; nöbetçi ekstra komut maliyeti olmadan issue()'nun zaten döndürdüğü durumu saklıyor.

R98KoşulduC04

Çekirdek bırakıldıktan sonra HT istenir

Değişen tek şey: Reset dizisi bittikten hemen sonra CHIPCLKCSR ← 0x00, ardından ← 0x10 (HT_AVAIL_REQ); 60 ms HT yoklaması.

Neden bu sırada: R95/R97'de CLK_CSR=0x49 ve release sonrası HT isteği yoktu. Linux release'ten sonra 0x00 → 0x10 yazıp HT bekliyor. Önceki FORCE_ALP yorumu düzeltildi: Linux'un erken 0x21 yazması bu biti içerir, indirme tutamağı ise 0x08'dir.

HT_CLR_OK=1 HT_REQ_OK=1 HT_CSR_CLR=0x40 HT_CSR_REQ=0x50 HT_CSR_FIN=0x50 HT_REQ_MS=60 HT_REQ_AVAIL=0 · SENT_N=100 SENT_OK=100 WIN_OK_END=1 FENCE=0xdeadbeef

Kapattığı: C04 kapandı: istek latch etti, HT gelmedi. PMU kaynak ailesi öne çıktı; C09 henüz elenmedi.

Risk: Düşük — yazılan tek kayıt, fonksiyonun zaten iki kez yazdığı CHIPCLKCSR. Yeni adres, yeni çekirdek, yeni reset varyantı yok. HT_AVAIL bir BAŞARI ORACLE'I OLARAK KULLANILMIYOR: yürütme kararı hâlâ MBOX/INTSTAT tanığından geliyor ve bir kaynak testi HT bloğunun yürütme bayraklarına dokunmadığını pinliyor (bu koruma bir dönem yanlış pozitif üretmişti).

R99KoşulduPMU kaynak ailesi · C09 ön ölçümü

HT isteği öncesi ve sonrası PMU kaynakları okunur

Değişen tek şey: Release sonrası HT temizlemesinden önce ve 60 ms yoklamadan sonra CTL, STAT, RES_ST, RES_PEND, MINRES ve MAXRES salt-okunur alınır. Pencere ve CHIPID kontrolleriyle her kaydın okuma geçerliliği taşınır.

Neden bu sırada: R98: ALP hazır, HT isteği latch etti, PMU sayacı ilerledi; HT gelmedi. Karşılaştırma, isteğin PMU kaynak durumunda gözlenebilir değişim üretip üretmediğini ayırır. PMU'ya yeni yazma yok; RES_RELOAD ayrı koşudur.

PMUHT PHASE=PRE/POST WIN_OK= READ_OK= VALID= CHIP_B= CHIP_A= CTL= STAT= RES_ST= RES_PEND= MINRES= MAXRES=; R98 HT makbuzu ve R97 nöbetçisi korunur

Kapattığı: C09'u tek başına kapatmaz. VALID=1 ve READ_OK=0x3f ile iki görüntünün eşit olduğu görüldü; ara geçişler ve PMU yazma yolu hâlâ sınanmadı.

Risk: Düşük — PMU kayıtları yalnız okundu. Ek okumalar release ile HT isteği arasına gecikme ekler; görüntüler atomik değildir.

R100KoşulduC09 önkoşulu · SDHCI timeout

SDHCI clock register genişliği düzeltilir

Değişen tek şey: set_sdio_clock() CLOCK_CONTROL erişimleri u32 yerine u16 olur; clock bölücü ve CR4 dizisi değişmez.

Neden bu sırada: R99 ve önceki koşular HOST_TMO=0x00 gösterdi. 0x2c'ye 32-bit yazım bitişik TIMEOUT_CONTROL alanını sıfırlıyordu; R100 yalnız erişim genişliğini değiştirerek bu yan etkiyi ayırır.

HOST_TMO=0x0e HOST_CLK=0x8007 HOST_CTL1=0x02 POLLS=50000 · HT_REQ_AVAIL=0

Kapattığı: Clock/timeout kusuru fiziksel olarak doğrulandı ve ayrıldı. C09 PMU kaynak ailesi kapanmadı; HT yine gelmedi.

Risk: Düşük — yalnız host SDHCI register erişim genişliği değişti; firmware, reset ve PMU yazmaları aynı kaldı.

R101KoşulduC05

İlk D11 wrapper yazması issue ediliyor mu?

Değişen tek şey: R100 timeout düzeltmesi korunarak tek D11 CMD53 yazmasının issue/complete/busy makbuzu alınır; sonraki reset yolu değiştirilmez.

Neden bu sırada: R100 timeout'u korudu ama R101 ilk D11 yazmasında DAT inhibit nedeniyle issue edilmeden durdu. Bu sonuç, sonraki adayların cihazda gerçekten yazma yapıp yapmadığını ayıran transport kapısını görünür kılar.

CR4CTRL PHASE=D11 ABORTED=1 ISSUED=0 COMPLETE=0 BUSY=1 PSTATE=0x017f0206

Kapattığı: C05'in wrapper yazma taşıması bu koşuda uygulanmış sayılmaz; ilk yazma issue edilmedi. C05 açık kalır.

Risk: Düşük-orta — yeni yazma varyantı yok; sonuç host DAT inhibit durumuna duyarlı.

R102KoşulduC10 · C07 · C08

Host DATA kurtarma + wrapper + HT sonrası runtime sınırı

Değişen tek şey: Birleşik adayda DATA reseti, 18-op wrapper, HT isteği ve scan runtime aynı cold boot içinde gözlenir.

Neden bu sırada: R101'deki DAT inhibit'i ayırmak için host DATA reseti eklendi; R102, HT erişilebilir olduktan sonra ilk FullMAC yazmasının gerçek sonucunu ölçtü.

CR4HOSTDATA READY=1 · CR4CTRL COMPLETE=1 · HT_REQ_AVAIL=1 · WIFISCAN_RESULT STATUS=INIT_ERROR

Kapattığı: C10/C07/C08 kapanmadı. Host kurtarma ve HT kapıları geçti; gerçek FullMAC kontrol cevabı gelmeden firmware-ready veya Wi-Fi PASS denemez.

Risk: Orta — birden fazla geçiş aynı koşuda; sonuç sonraki R103 transaction-owned ölçümüyle daraltıldı.

R103KoşulduC06 · C14 · C07 · C08

CMD53 sonucu kendi işlemiyle sahiplenilir

Değişen tek şey: Tamamlanmış CMD53'ün kendi completion/R5/error/byte-count sonucu kullanılır; sonraki settle CMD52 cevabı geriye dönük hata kanıtı sayılmaz.

Neden bu sırada: R102'de iç CMD53 temiz olmasına rağmen sonraki dummy CMD52'nin RESP0 değeri önceki yazmaya mal edildi. R103 bu response ownership sınırını ayırır.

HT_REQ_AVAIL=1 · WIFIPROTO STARTED=1 READY=0 · WIFISCAN_RESULT Session(Wire(Truncated))

Kapattığı: R102'nin outer-rejection açıklaması daraldı; R103 parser'ın hangi RX zarfında durduğunu basmadığı için C07/C08 açık kaldı.

Risk: Düşük — transport sonucu sahipliği düzeltildi; yeni FIFO/control retry eklenmedi.

R104KoşulduC06 · C07 · C08

Boş Event/Data zarfları tanılanır

Değişen tek şey: Doğrulanmış empty Event/Data çerçevesi sequence/credit akışını koruyarak tüketilir; kontrol cevabı için ayrı RX ve hata makbuzu basılır.

Neden bu sırada: R103'te Truncated hata yolunda RX içeriği yoktu. R104 boş zarfı güvenle ayırıp parser'ın kontrol cevabına kadar ilerleyip ilerlemediğini ölçer.

WIFIRX LEN=12 DOFF=12 EMPTY=1 SEQ=0/1 · WIFIFAIL FRAMES_RECEIVED=2 HEADER_ONLY=2 CONTROLS_REPLIED=0

Kapattığı: Boş Event/Data tanısı doğrulandı; C07/C08 kapanmadı çünkü READY=1 veya kontrol cevabı yok.

Risk: Orta — parser hata sınırı değişti; raw, README ve kaynak yamaları web kanıt paketi olarak mühürlendi.

R105KoşulduC06 · C07 · C08 · C16 (ertelendi)

BCDC GET_VAR çerçeve uzunluğu düzeltilir

Değişen tek şey: İlk kontrol çerçevesinde veri uzunluğu max(isim, kapasite) yerine isim + kapasite olarak hesaplanır.

Neden bu sırada: R104 iki boş Event/Data zarfı ve ControlTimeout gösterdi. R105, kontrol header'ının beklenen 48 bayt olup olmadığını fiziksel olarak ayırır; BCDC aritmetiği RX cevabından bağımsız sınanır.

WIFICTRLTX FRAMELEN=48 XFER=48 BCDCLEN=20 SEQ=255 TXWIN=21 SENT=1 REPLIED=0

Kapattığı: BCDC uzunluk hipotezi kapandı: doğru istek gönderildi. C07/C08 ve kontrol cevabı/RX transport sınırı açık; C16 DDR50 en son ve ayrı tutuluyor.

Risk: Düşük — yalnız BCDC request buffer uzunluğu; yeni register/reset/clock varyantı yok.

R106KoşulduC06 · C07 · C08

RX başlığı doğrulanır, INTSTATUS Read32 sınırı ayrılır

Değişen tek şey: R105'in değişmez BCDC isteği korunur; RX çerçevesinin ham başlık/payload, sequence/credit ve control-reply durumu basılır. R106'da görülen core+INTSTATUS Read32 hatası ayrı sahiplik adımı olarak kaydedilir.

Neden bu sırada: İki header-only RX frame fiziksel olarak görüldü, fakat kontrol cevabı gelmeden host Read32(INTSTATUS) SDIO Transfer/R5 hatasıyla durdu. Bu koşu RX parser'ı veya BCDC aritmetiğini değiştirmeden gerçek hata sınırını mühürler.

WIFICTRLTX FRAMELEN=48 XFER=48 BCDCLEN=20 · WIFIRX_RAW HEADER_HEX/PAYLOAD_LEN · WIFICTRLSTATE SENT=1 REPLIED=0 · Read32 INTSTATUS Transfer/R5

Kapattığı: C07/C08 kapanmadı; RX görünürlüğü doğrulandı ancak READY=1 veya doğrulanmış FullMAC control reply/IOReady makbuzu yok.

Risk: Düşük — R106 tanısını kaynakta değişmez tutar; yeni Wi-Fi retry, BCDC aritmetiği veya association davranışı eklenmez.

R107KoşulduC06 · C07 · C08

R107 fiziksel açılışı ve Read32 sınırı

Değişen tek şey: R106'nın BCDC 48/20 isteği ve RX parser'ı korunarak R107 imajı gerçek Pi 5 üzerinde çalıştırılır; açılış akışı, RX başlıkları ve terminal hata mühürlenir.

Neden bu sırada: R106'nın hedeflediği Read32 makbuzu için ilk gerçek fiziksel koşu yapıldı. Kart + güç + boot artık ayrı kanıt; ancak capture güç geçişinden sonra bağlandığı için bu kayıt Read32 issue/complete/R5/error sahipliğini geriye dönük iddia etmez.

FWSTAGE OK=1 · NVRAM OK=1 · CR4HOSTDATA READY=1 · WIFIRX SEQ=0/1 · WIFICTRLSTATE SENT=1 REPLIED=0 · WIFISCAN_RESULT STATUS=ERROR ControlTimeout

Kapattığı: Fiziksel açılış kanıtı kapandı; C06/C07/C08 ve INTSTATUS Read32 issue/complete/R5/error sınırı açık kaldı. Bu basamak Wi-Fi PASS değildir.

Risk: Düşük — kart ve imaj değişmedi; yeni register/reset/clock veya BCDC/RX davranışı eklenmedi.

R108KoşulduC06 · C07 · C08

UART ön-arm ile INTSTATUS CMD53 Read32 sahipliği ayrıştırılır

Değişen tek şey: Kart Pi'de takılı bırakılır; UART capture güç döngüsünden önce arm edilir. BCDC 48/20, RX parser ve R107 imajı korunur; yalnız Read32 issue/complete/bytes-read/R5/error makbuzu tam boot sınırında toplanır.

Neden bu sırada: R107 fiziksel açılışı ve ControlTimeout sınırını doğruladı, fakat capture güç geçişinden sonra bağlandı. Ön-arm edilmiş tek bir güç döngüsü, kartı tekrar tekrar söküp takmadan açılış ile Read32 hedefini aynı kayda alır.

WIFIREAD OP=Read32 FUNCTION=1 ADDRESS=0x18004020 · ISSUED=1 COMMAND_COMPLETE=0 BUFFER_READY=0 TRANSFER_COMPLETE=0 BYTES_READ=0 R5_FLAGS=0x10 ERROR_STATUS=0x0020

Kapattığı: Read32 sınırı artık ölçüldü: ilk F1 aktarımı data-CRC/transfer hatasıyla düştü. C06/C07/C08 ve gerçek control reply/IOReady açık kaldı; bu basamak Wi-Fi PASS değildir.

Risk: Düşük — tek host read tanısı; BCDC, RX parser, clock/reset ve association davranışı değişmez.

R109KoşulduC06 · C07 · C08

Read32 data-CRC/end-bit sonucu ayrıştırılır

Değişen tek şey: R108'in değişmez BCDC/RX akışı korunarak F1 Read32 CMD53 status, R5, error, present-state ve reset sonrası durumu birlikte mühürlenir.

Neden bu sırada: R108 ilk F1 Read32'de ERROR_STATUS=0x0020 ve komut tamamlanmadan düşen bir aktarım gösterdi. Bu veri-CRC/end-bit sınırı, control-response sahipliğini firmware veya BCDC uzunluğu ile karıştırmadan daraltılmalıdır.

WIFIREAD OP=Read32 · STATUS=0x00608001 · R5_FLAGS=0x10 · ERROR_STATUS=0x0060 · COMMAND_COMPLETE=0 · TRANSFER_COMPLETE=0 · BUS_WAS_BUSY=0

Kapattığı: F1 Read32 aktarımının data-CRC/end-bit hata dalı görüldü; ancak control response/IOReady ve CR4 yürütme hâlâ kanıtlanmadı.

Risk: Düşük — yalnız mevcut Read32 tanısının tam makbuzu; firmware, BCDC aritmetiği ve association değişmez.

R110KoşulduC06 · C07 · C08

D11 başlangıç yazmasının transport sahipliği

Değişen tek şey: F1 Read32 fallback'ine geçmeden önce ölçülen D11 başlangıç yazmasının issue/complete/busy/R5/error sonucu mühürlenir.

Neden bu sırada: R109'un F1 data-CRC/end-bit sonucu, R110'da D11 başlangıç yazması aynı transport kapısında ayrıştırılmadan yorumlanamaz.

CR4CTRL PHASE=D11 ABORTED=1 REASON=TRANSPORT OPS=1 ISSUED=1 CMD=1 BUF=1 XFER=1 BYTES=4 R5=0x10 ERR=0x0010

Kapattığı: R110'da D11 başlangıç yazması ayrı bir transport hatası olarak görüldü; R109 fallback'i bu koşuda çalışmadı. D11 transport varyansı R113'te bounded retry ile sınırlandı.

Risk: Düşük-orta — yalnız ölçülmüş D11 yazma hatasına tek bounded retry eklenir; Wi-Fi başarı sonucu çıkarılmaz.

R111KoşulduC06 · C07 · C08

D11 retry sonrası SDPCM kontrol timeout'u

Değişen tek şey: R110'un ölçülmüş D11 transport dalına bounded retry uygulanır; FIFO/RX ve ilk BCDC isteği korunur.

Neden bu sırada: D11 temiz geçtiğinde ilk fiziksel SDPCM kontrol sınırına dönmek gerekir; retry'nin kendisi başarı sayılmaz ve yalnız ölçülmüş timeout/CRC koşulunda çalışır.

CR4CTRL COMPLETE=1 ERR=0x0000 D11_RETRY_ATTEMPTED=0 · WIFIRX SEQ=0/1 EMPTY=1 TXWIN=21 · WIFICTRLTX FRAMELEN=48 XFER=48 BCDCLEN=20 · REPLIED=0

Kapattığı: D11/SDPCM başlangıç yolu geçti; ilk control reply/READY=1 yok. Retry dalı bu koşuda tetiklenmedi.

Risk: Orta — bounded retry güvenlik kapısıyla sınırlı; ikinci fiziksel transport varyansı hâlâ ölçülmelidir.

R112KoşulduC06 · C07 · C08

SDPCM FIFO drain sıralaması

Değişen tek şey: İlk initialization/scan/control isteğinden önce bekleyen F2 RX FIFO frame'leri tüketilir; BCDC 48/20 isteği ve RX parser değişmez.

Neden bu sırada: R111'de iki header-only frame ve cevapsız BCDC isteği görüldü. Linux sıralamasına yaklaştırılan drain bariyeri, bekleyen RX frame ile yeni TX control isteğinin sahipliğini ayırır.

FWSTAGE OK=1 · NVRAM OK=1 · CR4HOSTDATA READY=1 · D11_RESET=1 D11_IOCTL=0x00000007 · CR4CTRL PHASE=CR4 OPS=17 ADDR=0x18102408 ABORTED=1 R5=0x10 ERR=0x0020

Kapattığı: R112 SDPCM FIFO drain davranışını ölçemedi; D11 geçtikten sonraki CR4 activation yazısı data-CRC ile düştü. Bu koşu CR4 transport varyansını görünür kıldı, FIFO hipotezini kapatmadı.

Risk: Düşük — yalnız bekleyen RX frame tüketim sırası; hata dalı başarı gibi yorumlanmaz.

R113KoşulduC06 · C07 · C08

D11 CRC/timeout retry kapısı ve ilk BCDC sınırı

Değişen tek şey: R112'nin FIFO sırası korunur; ilk D11 yazısı data-timeout/CRC hata koşulunda en çok bir kez yeniden denenir ve ilk control-response bekleyişi mühürlenir.

Neden bu sırada: R110'un D11 DATA_TIMEOUT sonucu bounded retry gerektiriyordu; DATA_CRC aynı veri-taşıma sınıfı olarak fail-closed biçimde kapsandı. R112 raw hatası CR4 activation'da olduğundan bu retry onun exact işlemini kapsamaz. R113 temiz dalda retry'yi tetiklemeden sonraki ilk control sınırını yeniden ölçtü.

CR4HOSTDATA READY=1 · CR4CTRL COMPLETE=1 R5=0x10 ERR=0x0000 D11_RETRY_ATTEMPTED=0 · CR4START STARTED=0 OK=0 · WIFIRX SEQ=0/1 · WIFICTRLTX FRAMELEN=48 XFER=48 BCDCLEN=20 · WIFICTRLWAIT CAPTURED=1 · REPLIED=0

Kapattığı: D11 temiz geçişi ve iki header-only RX doğrulandı; CR4 yürütme, ilk control reply, READY=1 ve Wi-Fi PASS açık kaldı. Sıradaki dar kapı R114'tür.

Risk: Düşük-orta — retry yalnızca ölçülmüş ERR_DATA_TIMEOUT/ERR_DATA_CRC için bir kez; R113'te branch tetiklenmedi.

R114KoşulduC06 · C07 · C08

İlk BCDC control-response receive/interrupt sahipliği

Değişen tek şey: R113 davranışı, firmware/NVRAM, D11, FIFO sırası, RX parser ve BCDC 48/20 isteği sabit; yalnız timeout-sonrası salt-okunur TX/interrupt/FIFO/host makbuzları eklenir.

Neden bu sırada: R113 doğru uzunluklu ilk isteği gönderdi, iki header-only frame aldı, INTSTATUS=Some(0) ve REPLIED=0 ile ControlTimeout'a düştü. Yeni firmware veya BCDC uzunluğu değişikliği bu sınırı karıştırır.

IMAGE_SHA=d82ce641084d… · WIFICTRLTX_RAW REQUEST_ID=1 LOGGED=48 · WIFIREAD_FALLBACK ERR=0x0060 RESULT=PASS VALUE=0 · SBADDR_LOW Write8 INHIBIT issued=false PSTATE=0x01ff0206 · WIFICTRLWAIT CAPTURED=0

Kapattığı: Exact ilk TX doğrulandı; ancak koşu timeout snapshot'ından önce fallback-sonrası DAT_INHIBIT dalında durdu. Control-response interrupt/FIFO sahipliği açık kaldı.

Risk: Düşük — R114 yalnız tanı ekledi; ölçülen kırılma timeout-sonrası tanı okumalarından önce oluştu.

R115KoşulduC06 · C07 · C08

F1 Read32 fallback sonrası host-data idle kapısı

Değişen tek şey: Sayaçlar request gönderiminde sıfırlanır; pending-control I/O hatasında terminal host/F1 snapshot alınır; CMD52 fallback yalnız bounded passive post-check host idle ise başarı sayılır.

Neden bu sırada: R114, CMD53 0x0060 fallback'inin VALUE=0 döndürmesine rağmen PRESENT_STATE=0x01ff0206 durumunu temizlemediğini ve sonraki SBADDR_LOW erişiminin issue edilmeden Inhibit ile durduğunu fiziksel olarak ölçtü.

IMAGE_SHA=7f7ca549198b… · WIFIREAD_FALLBACK ERR=0x0020 RESULT=PASS VALUE=0 HOST_IDLE=0 PSTATE_B=0x01ff0206 PSTATE_A=0x017f0206 POLLS=100000 DAT0=1 · WIFICTRLWAIT CAPTURED=1 PENDING_BEFORE=1 AGE_MS=994 · request-local CORE_OR/FIFO/CTRL=0

Kapattığı: Fallback false-success kusuru kapandı ve host data engine'in kendiliğinden idle olmadığı ölçüldü. IENx/FIFO sahipliği hâlâ okunamadı; sıradaki dar kapı R116'dır.

Risk: Düşük-orta — yeni register yazması yok; bounded passive bekleme ve fail-closed başarı koşulu eklenir.

R116KoşulduC06 · C07 · C08

Tek exact runtime SDHCI DATA recovery

Değişen tek şey: Yalnız discovered SDIO-core INTSTATUS saf DATA_CRC=0x0020 + valid fallback + 100.000 poll HOST_IDLE=0 dalında bus ömründe bir host-only SOFTWARE_RESET_DAT uygulanır; CMD52×4 checked eşleşen readback ve idle doğrulanmadan sonuç kabul edilmez.

Neden bu sırada: R115, DAT0 yüksek ve CMD hattı boşken host veri motorunun 0x0206 durumunda takılı kaldığını ölçtü. Aynı boot'ta pre-CR4 host-only DATA reset aynı deseni iki poll'da 0x0000'a temizledi; runtime kullanımı yine ayrı fiziksel hipotezdi.

IMAGE_SHA=39e7de9d9256… · WIFIREAD_RECOVERY USED_BEFORE=0 ELIGIBLE=1 APPLIED=1 CLEARED=1 RESET_FIRST=0x04 RESET_POLLS=2 ELAPSED_US=10 PSTATE_B=0x017f0206 PSTATE_A=0x017f0000 HOST_IDLE=1 CONFIG_SAME=1 RECOVERY_OK=1 POST_READ_OK=1 POST_MATCH=1 POST_HOST_IDLE=1 ACCEPTED=1 · ikinci olay USED_BEFORE=1 ELIGIBLE=0 · terminal ERR=0x0060 · PENDING_POLLS=121 AGE_MS=2183

Kapattığı: Tıkanan tarafın host SDHCI veri motoru olduğu ölçüldü: 100.000 pasif kontrolün açamadığı yolu tek reset 10 µs'de açtı, konfigürasyon değişmedi ve bir kez kullanım disiplini tuttu. Wi-Fi hazır olmadı; arıza aynı registerda 0x0020'den 0x0060'a taşındı, sıradaki dar kapı R117'dir.

Risk: Orta — yalnız host SDHCI data hattına tek reset; kart/core/WLAN reseti ve CMD53 retry yok.

R117KoşulduC06 · C07 · C08

Arıza anında salt-okuma matrisi

Değişen tek şey: R116 kararı hesaplandıktan sonra, bus ömründe bir kez, aynı pencerede üç salt-okuma probu: ChipCommon chipid'de CMD52×4, bayraklı 4 baytlık byte-mode CMD53 ve tek-blok 64 baytlık CMD53. Her prob yalnız host idle iken denendi; yazma, reset, pencere değişimi ve CMD53 tekrarı yok.

Neden bu sırada: R116, firmware'in konuştuğunu ve host veri motorunun reset ile açıldığını ölçtü; buna rağmen 0x18004020 CMD53 okuması kırıldı. Geriye ayrılabilir üç değişken kalmıştı: veriyolu durumu, adres, transfer modu.

IMAGE_SHA=e4e1583dcc9c… · WIFIREAD_MATRIX CMD52_OK=1 BYTE_OK=1 BLOCK_OK=1 hepsi V=0x15264345 M=1 ERR=0x0000 · TAIL_IDLE=1 TAIL_POLLS=0 TAIL_PSTATE=0x01ff0000 · VERDICT=ADDRESS_SPECIFIC · WIFICTRLWAIT READ_FAILURES=0 CLOCK=0xd2 SLEEP=0x03 IO_READY=0x06 F2_ENABLED=0x06 MAILBOX=0x00040002 INTSTATUS=0 · terminal ControlTimeout AGE_MS=2500

Kapattığı: Veriyolu durumu ve transfer modu elendi: kırılma adrese özgü. Taşıma sona kadar ayakta kaldı, hiçbir tanı okuması düşmedi ve arıza sınıfı BusError'dan ControlTimeout'a döndü — sorun artık host taşıması değil, dongle'ın cevap üretmemesi. Açık kalan soru: 136 kez yoklanan INTSTATUS=0 değeri 4-baytlık erişim bayrağı olmadan okunuyor.

Risk: Düşük — yazma, reset veya pencere değişimi yok; problar yalnız host idle iken çalıştı ve hattı tamamen boş bıraktı.

R118KoşulduC06 · C07 · C08

Bayraklı/bayraksız backplane okuma karşılaştırması

Değişen tek şey: Aynı R117 kapısı içinde, bus ömründe bir kez, host idle iken: SDIO çekirdeği INTSTATUS (+0x20) ve pozitif kontrol tohostmailboxdata (+0x4c), her iki backplane erişim yoluyla dört denetlenmiş CMD52 baytıyla okunur. Veri hattı, yazma ve CMD53 yok.

Neden bu sırada: R117'de sürücünün 136 kez yokladığı INTSTATUS=0 değeri bayraksız yoldan okunuyordu; kırılan CMD53 ise bayraklı okuyor. Doğrulanmamış bir yoldan okunan sıfır 'firmware sessiz' sonucunu taşıyamaz.

IMAGE_SHA=db5809cb08ac… · ilk hata 0x0060 (0x0020 değil) · WIFIREAD_RECOVERY ELIGIBLE=0 · WIFIREAD_MATRIX CMD52_SKIP=1 tüm problar A=0 · WIFICORE_ACCESS INT_SKIP=1 INT_PLAIN=None MBOX_PLAIN=None VERDICT=INCOMPLETE · TAIL_IDLE=0 TAIL_POLLS=100000 TAIL_PSTATE=0x017f0206

Kapattığı: Hiçbir şey kapatmadı; soru açık kaldı. Kapattığı tek şey bir yanılgı riskiydi: takılı host ölçülmedi, zorlanmadı. Ölçtüğü yeni olgu, ilk hata sınıfının koşudan koşuya değiştiği — dolayısıyla ölçüm, kapı saf 0x0020'ye daraldığı sürece hangi dala düşüldüğüne bağlı bir yazı-tura.

Risk: Düşük — komut hattı dışında hiçbir şeye dokunulmadı; problar zaten hiç çalışmadı.

R119KoşulduC06 · C07 · C08

Sahiplenilmiş DATA reset kapısı veri-hatası sınıfının tamamına açılır

Değişen tek şey: Tek yüklem: bus ömründe bir kez uygulanan host-only SDHCI DATA reset artık DATA_CRC'li her veri hatası (0x0020 veya 0x0060) için uygun; başka hiçbir koşul değişmez.

Neden bu sırada: R118'de ilk hata 0x0060 geldiği için dar kapı reddetti, host idle olmadı ve hiçbir prob çalışamadı. İki bit veri fazının nasıl kırıldığını söyler, host-only reset'in doğru cevap olup olmadığını değil.

IMAGE_SHA=c2818abf67d0… · bu boot'ta HİÇ veri hatası olmadı, kapı sınanmadı · READ_FAILURES=0 PENDING_POLLS=144 AGE_MS=2500 PRESENT_STATE=0x01ff0000 · terminal ControlTimeout

Kapattığı: Kapıyı sınamadı ama daha önemlisini ölçtü: taşıma arızası aralıklı, yani belirti; kök neden değil. Beş koşuda ilk hata 0x0020 / 0x0020 / 0x0020 / 0x0060 / yok. 0x18004020 her zaman okunamaz değil.

Risk: Düşük — yeni bir eylem eklemedi; zaten iki kez ölçülmüş tek reset'in kapsamını genişletti.

R120KoşulduC06 · C07 · C08

Bluetooth bring-up izolasyonu

Değişen tek şey: R119'dan tek fark rpi5-bt-isolate feature'ı: BT_ON'u süren ve UARTA'ya yazan bring_up atlanır. Salt-okunur BT envanteri ve Wi-Fi yolu aynen kalır.

Neden bu sırada: BCM43455'te BT ve WLAN aynı kalıpta PMU/saat paylaşır ve R117 kaydında BT_ON, SDPCM başlamadan hemen önce yükseliyordu (BTHCI 288, WIFIPROTO 311).

IMAGE_SHA=2f220c4bbcdf… · BTHCI SKIPPED=1 BT_ON_DRIVEN=0 UARTA_WRITES=0 · PINMUX BT_ON=0 WRITES=0 · WIFIPWR BT_ON_TOUCHED=0 · sonuç R119 ile birebir: READ_FAILURES=0 PENDING_POLLS=144 AGE_MS=2500 INTSTATUS=IEN=INT_PENDING=0 2 çerçeve/0 cevap terminal ControlTimeout

Kapattığı: Bluetooth bring-up'ı eler. BT hiç açılmamışken arıza alan alan aynı; Linux'ta bu çip için bildirilen miniuart-bt çözümü bizimkinden başka bir arızaya bakıyor. Geriye kalan adaylar: çerçeve hatalı biçimlendiği için reddediliyor, yanlış yere yazılıyor, ya da firmware ioctl'den önce yapılmayan bir adım bekliyor.

Risk: Düşük — saf çıkarma; hiçbir yeni yazma eklenmedi. Bu imaj Bluetooth iddiası taşımaz.

R122KoşulduC06 · C07 · C08

F2 watermark 0x60 → 0x08

Değişen tek şey: R120 tabanı + R119 BT bring-up'ı geri; tek fark function 1 SBSDIO_WATERMARK (0x10008) 0x60 yerine 0x08. R121'in diğer üç farkı bu revizyonda yok.

Neden bu sırada: R121, Linux'un ilk 48 baytlık kontrol çerçevesinden hemen önce bu kayda 0x08 yazdığını ölçtü; sürücü 0x60 yazıyordu. 0x60 yazım hatası değil, daha yeni brcmfmac sabiti — ama bu Pi ve bu firmware izde 0x08 kullanmış.

IMAGE_SHA=8fd85b5a7e38… · CR4CTRL PHASE=D11 ABORTED=1 REASON=TRANSPORT WIN_OK=0 WIN_W=0x18100000 WIN_R=0x18181800 ISSUED=0 · CR4START RSTVEC_OK=0 · WIFISCAN_RESULT STATUS=UNAVAILABLE CORE_READY=0 · watermark yazılmadı

Kapattığı: Değişkeni sınamadı. Kapattığı şey bir yanılgı: bu boot'un ControlTimeout olmadığı, üçüncü imzanın CMD52 pencere uyuşmazlığı olduğu. F2 watermark hakkında ne lehte ne aleyhte kanıt.

Risk: Düşük — tek bayt, CR4 start sonrası; bu boot o noktaya gelmedi.

R123KoşulduC06 · C07 · C08

SDIO taşıma sayımı

Değişen tek şey: R122 üzerine sıfır davranış. CMD52/CMD53 gövdeleri inner'a taşındı; sarmalayıcılar yalnız sayar ve inner sonucu aynen döndürür. F2 watermark 0x08 duruyor.

Neden bu sırada: R118, R119 ve R122 kendi değişkenlerini hiç icra edemedi; her koşu tek veri noktası ve kırılma yeri kayıyor. Üç imza (CMD53 CRC, cevapsız BCDC, CMD52 pencere uyuşmazlığı) oran olmadan ayırt edilemez.

IMAGE_SHA=8ab16337d0e0… · WIFIBUSCENSUS STAGE=ERROR CMD52_OPS=612077 CMD52_FAIL=83469 CMD53R_OPS=164 CMD53R_INCOMPLETE=2 CMD53W_OPS=15 CMD53W_INCOMPLETE=0 ERR_CRC_ONLY=1 ERR_CRC_ENDBIT=1 WINDOW_MISMATCH=0 · WIFIPROTO STARTED=1 · XFER=48 REPLIED=0 · ControlTimeout AGE_MS=2500

Kapattığı: Aralıklı CMD53 yazma bozulmasını cevapsız ioctl'ün tek nedeni olmaktan çıkarır: yazmalar 0/15 incomplete, pencere 0, çerçeve XFER=48, bekleme READ_FAILURES=0. F2 watermark 0x08 bu boot'ta icra edildi ve cevap üretmedi. Arama protokole döner.

Risk: Yok — yazma, retry, reset veya fail-closed gevşetme yok; atomik artırım.

R124KoşulduC06 · C07 · C08

CCCR INT_ENABLE 0x03 → 0x07

Değişen tek şey: R123 tabanı + R122 watermark 0x08 durur. Tek davranış: fonksiyon 0 CCCR INT_ENABLE (0x04) Linux izindeki gibi önce 0x03 sonra 0x07 (IENM|IEN1|IEN2). WAKEUPCTRL ve CCCR 0x000f0 bu revizyonda yok. CMD52 sayımı STAGE/OTHER kırılımı ekler; cmd52_inner değişmez.

Neden bu sırada: R121 bu yazmayı ölçtü; R115–R123 IEN=Some(0) okuyor. R123 sayımı veriyolu yazma yolunu temiz saydı, INTSTATUS=0'ı her iki erişimle doğruladı ve watermark'ı eledi. Kalan ölçülmüş farkların ilki, firmware'in kesme kaldırmamasını doğrudan ilgilendiren kayıttır.

IMAGE_SHA=644ed7aad9ea… · CR4CTRL PHASE=D11 ABORTED=1 ERR=0x0020 WIN_OK=1 ISSUED=1 XFER=0 ADDR=0x18101800 · WIFIEN yok · WIFIBUSCENSUS STAGE=UNAVAILABLE CMD52_STAGE_FAIL=78837 CMD52_OTHER_FAIL=0/457 CMD53R_INCOMPLETE=2/9 · UNAVAILABLE CORE_READY=0

Kapattığı: Değişkeni sınamadı. Kapattığı şey census kırılımı: 78.837 CMD52 fail'in tamamı STAGE, OTHER 0/457. INT_ENABLE hakkında ne lehte ne aleyhte kanıt.

Risk: Düşük-orta — Linux'un yazdığı CCCR kesme maskesi; bu boot o noktaya gelmedi.

R125KoşulduC06 · C07 · C08

CCCR INT_ENABLE, R124 imajı tekrar

Değişen tek şey: R124 ile aynı bayt. Tek fark yeni güç döngüsü: D11 CRC bu boot'ta olmadı, Function2Ready'ye ulaşıldı, 0x03 sonra 0x07 yazıldı.

Neden bu sırada: R124 değişkeni hiç icra edemedi. Aynı imaj, aynı tek değişken, protokol yoluna kadar.

IMAGE_SHA=644ed7aad9ea… · WIFIEN W1=Some(3) W2=Some(7) READBACK=Some(7) IEN_TIMEOUT=Some(7) · IEN=Some(7) INT_PENDING=Some(0) · XFER=48 REPLIED=0 · ControlTimeout AGE_MS=2500 · CMD52_OTHER_FAIL=0/535

Kapattığı: CCCR INT_ENABLE=0 cevapsız ioctl'ün nedeni değil. Kapı Linux gibi açıldı, latch etti, firmware yine cevap vermedi. R121'de WAKEUPCTRL=0x02 ve CCCR 0x000f0=0x06 kaldı.

Risk: Yok — R124 ile aynı imaj.

R126KoşulduC06 · C07 · C08

fn1 WAKEUPCTRL = 0x02 — icra edildi ve ELENDİ

Değişen tek şey: R125 tabanı (watermark 0x08, INT_ENABLE 0x03→0x07 durur). Tek davranış eklemesi: fonksiyon 1 SBSDIO_FUNC1_WAKEUPCTRL (0x1001e) = 0x02 (HT-wait), Linux'un yazdığı noktada — watermark ile CCCR INT_ENABLE çiftinin arasında. Kaydın yazmadan önceki ve sonraki okuması gözlemdir. CCCR 0x000f0 bu revizyonda yok.

Neden bu sırada: R121 bu yazmayı ölçtü; biz hiç yazmıyorduk. R123 watermark'ı, R125 INT_ENABLE'ı cihazda icra edip elemişti. Kalan iki hazırlık farkından, firmware'in kesme kaldırmasını doğrudan ilgilendiren olan buydu.

IMAGE_SHA=0e4fb7ae33ad… · WIFIWAKEUP BEFORE=Some(0) WROTE=Some(2) READBACK=Some(2) EXPECT_R80_WROTE=0x02 · WIFIEN W1=Some(3) W2=Some(7) READBACK=Some(7) · CR4CTRL PHASE=COMPLETE ABORTED=0 WIN_OK=1 · CR4START RSTVEC_OK=1 ALIAS_OK=1 HT_REQ_AVAIL=1 HT_CSR_FIN=0xd0 · WIFIPROTO STARTED=1 READY=0 · iki header-only RX SEQ=0/1 TXWIN=21 · XFER=48 SENT=1 REPLIED=0 · IEN=Some(7) INT_PENDING=Some(0) CORE_OR=0x00000000 FRAME_IND_SEEN=0 · ControlTimeout AGE_MS=2500 PENDING_POLLS=144 · CMD52_OTHER_FAIL=0/531 CMD53W_INCOMPLETE=0/15

iki paket: attempt-r126-wakeupctrl-uart-capture (tam boot, D11'de düştü, değişken icra edilmedi) ve attempt-r126-wakeupctrl-uart-capture-repeat-01 (reflash YOK, yeni güç döngüsü, değişkeni icra etti; yakalama güçten sonra kurulduğu için BAŞI EKSİK — README'de beyan edildi)

Kapattığı: fn1 WAKEUPCTRL=0x02 cevapsız ioctl'ün nedeni DEĞİL. Kartın güç-açılış değeri Some(0) ölçüldü — yani 0x02 gerçek bir değişiklikti, boş yazma değil; yazıldı, latch etti, firmware yine cevap vermedi. Bu, R121'in dört ölçülmüş hazırlık farkından ÜÇÜNCÜSÜNÜN cihazda elenmesidir (watermark R123, INT_ENABLE R125, WAKEUPCTRL burada). GERİYE BİR TANE KALDI: fn0 CCCR 0x000f0 = 0x06. Kombinasyon ihtimalini kapatmaz: dördü hiç aynı anda doğru olmadı ve Linux'ta olmayan iki fazlalığımız hiç kaldırılmadı.

Risk: Düşük — Linux'un yazdığı tek bayt; yeni core/WLAN reseti yok.

R127KoşulduC06 · C07 · C08

Tek boot, on iki deneme — motor çalıştı, iki denemede durdu

Değişen tek şey: R126 tabanı davranış olarak değişmez. Tek yapısal ekleme: transport'a opt-in süpürme yeteneği. Deneme 0 hiçbir şey uygulamaz — R126'nın tek-değişkenli koşusunun ta kendisi. Sonra on bir hazırlık profili, her biri aynı 48/20 isteğini kendi BCDC request id'siyle gönderir. 'Yazmayı kaldırmak' atlamakla değil tersini yazmakla yapılır; güç-açılış baytları boot bloğundan önce örneklenir.

Neden bu sırada: R121'in dört farkı hiç aynı anda doğru olmadı ve CCCR 0x000f0 hiç kodlanmamıştı. Neden tek kayıt değil de kombinasyonsa, tek-değişkenli yöntem onu yapısal olarak bulamaz.

IMAGE_SHA=882c67867b88… · İLK BOOT: D11'de düştü, WIFITRIALPLAN bile basılmadı, hiçbir deneme koşmadı — ama CMD52_FAIL=0/611999 (kayıttaki en temiz CMD52 boot'u) iken CMD53W_INCOMPLETE=2/2 · TEKRAR BOOT: WIFITRIALPLAN ARMED=1 TOTAL=11 · TRIAL=0 BASE_R126 XFER=48 REPLIED=0 POLLS=144 AGE_MS=2500 ControlTimeout (R126 tabanı birebir) · TRIAL=1 LINUX_EXACT APPLIED=1 POWERON_MISSING=0 — WM 0x08, WC 0x02, DEVCTL 0x10→0x00, MESBUSY 0xd0→0x00, CARDCAP 0x00→0x06, IEN 0x07, hepsi geri okumayla doğrulandı · sonra WriteFifo fn=2 error_status=0x20 (saf veri CRC) · CMD53W_OPS=16 INCOMPLETE=1 · STOP TRIALS_RUN=1/11 REPLIED=0

iki paket: attempt-r127-prereq-sweep-uart-capture (tam boot, D11'de düştü) ve attempt-r127-prereq-sweep-uart-capture-repeat-01 (tam boot, motor koştu, iki deneme)

Kapattığı: Hiçbir şeyi elemez — ama üç şeyi kurar. (1) Süpürme motoru cihazda çalışıyor: arm oldu, denemeler koştu, makbuzlar basıldı, tek sonlandırma işareti ile yakalama temiz kapandı. (2) Deneme 0, R126 tabanını üçüncü kez birebir doğruladı. (3) ZİNCİRDE İLK KEZ tam Linux hazırlık eşitliği karta uygulandı ve geri okumayla doğrulandı — CCCR 0x000f0=0x06 dahil, ki hiçbir koşuda karta ulaşmamıştı. LINUX_EXACT ELENMEDİ: çerçevesi hiç iletilemedi, sorusu sorulmadı.

Risk: Gerçekleşen risk sıralamaydı. En riskli deneme ikinci sıradaydı; veri CRC'si aldı ve Io kalıcı terminal olduğu için sonraki dokuz denemeyi öldürdü. ADAY (n=1): DEVICE_CTL bit 4'ü (kaynağımızın F2WM_ENAB dediği bit) temizleyen tek deneme oydu ve o boot'taki on altı CMD53 yazmasından düşen tek yazma hemen ardından geldi. Doğruysa o 'fazlalık' bizim transport'umuz için fazlalık değil. Bitin upstream adı bu pakette doğrulanmadı ve DEVICE_CTL hiç tek başına temizlenmedi.

R128KoşulduC06 · C07 · C08

Sıralanmış matris — R127'nin adayı ÇÜRÜDÜ

Değişen tek şey: Süpürme motoru R127 ile aynı. Üç fark: matris artan riske göre sıralandı (CARDCAP_06 birinci ve tek başına, BASE_CONTROL riskli aileden önce, LINUX_EXACT sonuncu), durma sebebi ayrıştırıldı, deneme 0 kendi kayıt kaydını taşır.

Neden bu sırada: R127'de en riskli profil ikinci sıradaydı, veri CRC'si aldı, ve Io kalıcı terminal olduğu için dokuz deneme sorusunu soramadı. Ayrıca kirlenme kontrolü en sonda olduğu için hiç ölçülemedi.

IMAGE_SHA=19d1caafb30d… · D11 GEÇTİ (yeni flash olmasına rağmen) · TRIAL=0 BASE_R126 XFER=48 REPLIED=0 POLLS=134 ControlTimeout · TRIAL=1 CARDCAP_06 APPLIED=1 — DEVICE_CTL 0x10→0x10 KORUNDU (geri okumayla), MESBUSY 0xd0→0xd0, tek değişiklik CARDCAP 0x00→0x06 · yine WriteFifo fn=2 addr=0x8000 hatası · CMD53W_OPS=16 INCOMPLETE=1 · STOP=NOT_REARMABLE TRIALS_RUN=1/11 · deneme 0 güç-açılış durumunu kaydetti: WM=0x20 WC=0x00 DEVCTL=0x00 MESBUSY=0x00 CARDCAP=0x00 IEN=0x00

attempt-r128-prereq-sweep-ordered-uart-capture (tam boot; ayrıca reflash deseni 0/4'ten 1/5'e indi)

Kapattığı: R127'nin ürettiği adayı ÇÜRÜTÜR. R127'de düşen deneme DEVICE_CTL bit 4'ü temizliyordu; R128'de düşen deneme o biti KORUDU (geri okumayla doğrulandı) ve aynı işlemde aynı hatayı aldı. İki boot, adayın adını verdiği bitte farklılaşan iki profil, birebir aynı sonuç. DEVICE_CTL sebep değil. Ayrıca kartın gerçek güç-açılış watermark'ı 0x20 ölçüldü — ne bizim 0x60'ımız ne Linux'un 0x08'i.

Risk: Geriye tek ortak nokta kaldı ve daha keskin: her iki düşen yazma da CEVAPSIZ KALAN bir çerçeveden SONRAKİ ilk çerçeveydi; iki boot'ta da 16 CMD53 yazmasından düşen tek yazma oydu. İki okuma var: (a) yeniden kurmamız eksik — Linux'un DPC'sinin çerçeveler arası yaptığı hiçbir şeyi yapmıyoruz, her mühürlü koşuda FIFO_READS=0; (b) kart bir çerçeveyi yoksaydıktan sonra F2 yazması kabul etmiyor. Paket ikisi arasında seçim yapmıyor. Süpürme bu çözülmeden deneme 1'i geçemez.

R129KoşulduC06 · C07 · C08

Denemeler arası kurtarma — tek değişken

Değişen tek şey: R128 imajı, matrisi ve profilleri aynen durur. Tek ekleme: her yeniden kurmadan ÖNCE bir kurtarma adımı — maskeli core INTSTATUS okunur ve sıfır değilse geri yazılır; fonksiyon-2 FIFO'sundan FRAME_IND beklemeden TEK sınırlı first-64 okuması yapılır; host veri motoru durumu örneklenir. Boşaltma profilden ÖNCE koşar, böylece kuyrukta bekleyen bir çerçeve denemenin göndermek üzere olduğu isteğe cevap sanılamaz.

Neden bu sırada: R128 tek ortak noktayı bıraktı: düşen yazma her seferinde cevapsız kalan bir çerçeveden sonraki ilk çerçeve. Her mühürlü koşuda kart FRAME_IND kaldırmadı ve biz F2'den hiç okumadık (FIFO_READS=0) — yani 'yeniden kurmamız eksik' okuması hiç sınanmadı.

IMAGE_SHA=aedd2f1c1450… · tam boot · TRIAL=0 BASE_R126 XFER=48 REPLIED=0 POLLS=137 ControlTimeout · WIFIRECOVER ATTEMPTED=1 INTSTATUS=Some(0) CLEARED=0 FIFO_OK=1 FIFO_FAILED=0 LENGTH=Some(0) LEN_COMPLEMENT_OK=0 PSTATE=Some(33488896)=0x01ff0000 · TRIAL=1 CARDCAP_06 APPLIED=1 · ikinci WriteFifo fn=2 addr=0x8000 aynı veri CRC'siyle düştü · CMD53R=168, CMD53W=16/INCOMPLETE=1, CMD52_OTHER_FAIL=0/531 · STOP=NOT_REARMABLE

attempt-r129-inter-trial-recovery-uart-capture (tam boot) · build/rpi5-wifi-scan-r129/aselsanos-rpi5-radio.img · sha256 aedd2f1c1450fabb34a0bbec0bff1ee3a6c71bf6d2f8e286152e33df49734c4a

Kapattığı: R129'un sınadığı biçimiyle 'yeniden kurma eksik' okumasını ve 'kart, toplamadığımız bir cevabı F2 FIFO'da tutuyor' okumasını çürütür. Kurtarma başarılıydı, FIFO boştu, kesme yoktu ve host idle'dı. Üç boot'un ortak ifadesi daha dar: cevapsız bir çerçeveden sonra function 2 okumayı kabul ediyor, yazmayı reddediyor.

Risk: Gözlenen risk aynı kaldı: ikinci F2 yazması transport'u terminal yaptı ve süpürme trial 1'de durdu. Recovery'nin kendisi hatasız tamamlandı; yeni bir arıza üretmedi.

R130KoşulduC06 · C07 · C08

Fonksiyon-2 IO_ABORT — ikinci yazmadan hemen önce

Değişen tek şey: R129 matrisi ve kurtarması aynen durur. Tek davranış eklemesi: CARDCAP_06 profilinin son CMD52'sinden sonra, yeniden kurulan ikinci F2 yazmasından hemen önce function 0 CCCR IO_ABORT (0x06) kaydına function 2 seçimi (0x02) yazılır. Function-2 kapat/aç ve block-size re-assert yoktur.

Neden bu sırada: R129, düşüş anında function-2 okumasının çalıştığını ve FIFO'nun boş, core INTSTATUS'ın sıfır, host veri motorunun idle olduğunu ölçtü. Geriye kartın F2 yazma tarafındaki durum kaldı; IO_ABORT SDIO'nun bu durumu sonlandırmak için tanımladığı ve hiçbir koşuda issue edilmemiş mekanizmadır.

IMAGE_SHA=670818f2326d… · tam boot · TRIAL=0 BASE_R126 XFER=48 REPLIED=0 POLLS=132 ControlTimeout · WIFIRECOVER INTSTATUS=Some(0) FIFO_OK=1 LENGTH=Some(0) PSTATE=Some(33488896)=0x01ff0000 · WIFIF2ABORT ATTEMPTED=1 OK=1 FAILED=0 · TRIAL=1 CARDCAP_06 APPLIED=1 · hemen sonraki WriteFifo fn=2 addr=0x8000 error_status=0x0020 veri CRC'siyle düştü · CMD53R_OPS=165 INCOMPLETE=2 · CMD53W_OPS=16 INCOMPLETE=1 · CMD52_OTHER_OPS=535 FAIL=0 · STOP=NOT_REARMABLE

attempt-r130-f2-io-abort-uart-capture (tam boot) · build/rpi5-wifi-scan-r130/aselsanos-rpi5-radio.img · sha256 670818f2326d84f7f50a1571bf466823abeb8cdd7badf0fb89ae81741e93bfdc

Kapattığı: IO_ABORT tek başına elendi. Kart function-2 abort yazmasını kabul etti ve sürücü OK=1 makbuzunu verdi; buna rağmen hemen sonraki ikinci F2 yazması aynı işlemde, aynı veri CRC sınıfıyla düştü. Bu sonuç abort komutunun hiç gönderilmediği ya da başarısız olduğu okumasına açık kapı bırakmaz.

Risk: Gözlenen risk gerçekleşmedi: IO_ABORT başarılı oldu ve kurtarma okumaları çalıştı. Transport yalnız hemen sonraki ikinci F2 yazmasında terminal oldu; süpürme trial 1'de durdu.

R131KoşulduC06 · C07 · C08

Fonksiyon-2 kapat/aç — hazır bitleriyle doğrulanan yaşam döngüsü

Değişen tek şey: R130 matrisi, kurtarması ve CARDCAP_06 profili aynen durur. Tek mekanizma: ikinci yazmadan önce CCCR IO_ENABLE (0x02) okunur; F2 enable biti temizlenirken F1 korunur, IO_READY (0x03) üzerinde F2'nin düştüğü sınırlı beklemeyle doğrulanır; F2 yeniden açılır ve hazır biti yükselene kadar sınırlı beklenir. Block-size yeniden yazılmaz.

Neden bu sırada: R130, function-2 IO_ABORT'un başarıyla issue edilmesinin kartın ikinci F2 yazmasını kabul ettirmediğini gösterdi. Abort'tan daha güçlü fakat hâlâ dar bir sonraki kart-tarafı mekanizması, fonksiyonun enable/ready yaşam döngüsünü gerçekten kapatıp yeniden kurmaktır.

IMAGE_SHA=877a1b96ba3d… · tam boot · TRIAL=0 XFER=48 REPLIED=0 POLLS=144 ControlTimeout · WIFIRECOVER INTSTATUS=Some(0) FIFO_OK=1 LENGTH=Some(0) PSTATE=0x01ff0000 · WIFIF2REENABLE BEFORE_ENABLE=Some(6) DISABLE_OK=1 READY_CLEAR=1 CLEAR_POLLS=1 ENABLE_OK=1 READY_SET=1 SET_POLLS=1 FAILED=0 BLOCK_SIZE_REWRITE=0 · hemen sonraki ikinci WriteFifo fn=2 addr=0x8000 error_status=0x0020 ile düştü · HOST_INT=1 CORE_OR=0x00000080 · CMD52_OTHER_FAIL=0/531 · STOP=NOT_REARMABLE

attempt-r131-f2-reenable-uart-capture (tam boot) · build/rpi5-wifi-scan-r131/aselsanos-rpi5-radio.img · sha256 877a1b96ba3df93034c31d93991986605c6447d38dfdd3076f39ecf0954f892f

Kapattığı: F2 enable/ready yaşam döngüsü gerçekten tamamlandı; yalnızca register yazılmış sayılmadı. Yeni kesmeyi servis etmeden yapılan bu tam kapat/aç ikinci yazmayı kurtarmadı. Ancak R130'da CORE_OR=0 olan aynı sınır R131'de 0x80 oldu; pre-lifecycle INTSTATUS=0 olduğundan bu yeni fark ayrıca sınanmalıdır.

Risk: Yaşam döngüsünün kendisi hatasız tamamlandı. Transport yine yalnız ikinci F2 yazmasında terminal oldu. Yeni HOST_INT, sonucu block-size'a atlamadan önce yakın bir post-lifecycle ack kapısına yönlendirir.

R132KoşulduC06 · C07 · C08

F2 yaşam döngüsü sonrası HOST_INT örnekle/ack — ikinci yazmadan hemen önce

Değişen tek şey: R131'in kurtarması, CARDCAP_06 profili ve doğrulanan F2 kapat/aç zinciri aynen kalır. Tek ekleme: READY_SET=1 sonrasında core INTSTATUS okunur; maskeli HOST_INT 0x80 varsa aynı registera write-one-to-clear yazılır ve geri okuma alınır. Sonra ikinci F2 yazması yapılır. Block-size registerlarına dokunulmaz.

Neden bu sırada: R131 öncesinde recovery INTSTATUS=0 iken tam yaşam döngüsünden sonraki trial 1'de HOST_INT=1 / CORE_OR=0x80 görüldü; R130'un aynı sınırında ikisi de sıfırdı. Bu, R131'in ürettiği tek yeni ayırt edici kart durumudur.

IMAGE_SHA=3fddd839a9e9… · tam boot · TRIAL=0 XFER=48 REPLIED=0 POLLS=132 ControlTimeout · WIFIRECOVER INTSTATUS=Some(0) FIFO_OK=1 LENGTH=Some(0) PSTATE=0x01ff0000 · WIFIF2REENABLE DISABLE_OK=1 READY_CLEAR=1 ENABLE_OK=1 READY_SET=1 FAILED=0 · WIFIF2POSTIRQ BEFORE=Some(128) MASKED=Some(128) ACK_ATTEMPTED=1 ACK_OK=1 AFTER=Some(0) FAILED=0 · hemen sonraki ikinci WriteFifo fn=2 addr=0x8000 error_status=0x0020 ile düştü · HOST_INT=0 CORE_OR=0x00000000 · CMD52_OTHER_FAIL=0/535 · STOP=NOT_REARMABLE

attempt-r132-post-lifecycle-host-int-uart-capture (tam boot) · build/rpi5-wifi-scan-r132/aselsanos-rpi5-radio.img · sha256 3fddd839a9e9f31830d62f17da1f1f3907fa6b6990c9c6c4911a656075ab2582

Kapattığı: Post-lifecycle HOST_INT açıklamasını kapatır: 0x80 READY_SET sonrasında gerçekten vardı, ack tamamlandı, readback sıfırdı ve trial 1 boyunca core status sıfır kaldı; buna rağmen aynı yazma aynı veri CRC'siyle düştü. R131'deki 0x80'in yalnız sonuç sonrası gürültü olmadığı da zaman olarak daraldı.

Risk: Ack hedeflenen durumu değiştirdi ve başka bir terminal hata üretmedi. Transport yalnız hemen sonraki ikinci F2 yazmasında terminal oldu; block-size ayrı değişken olarak kaldı.

R133KoşulduC06 · C07 · C08

Fonksiyon-2 block-size 512 re-assert — geri okumayla

Değişen tek şey: R132'nin kurtarması, F2 yaşam döngüsü ve post-lifecycle HOST_INT temizliği aynen kalır. Tek ekleme: ikinci yazmadan hemen önce function 0 F2 block-size low/high registerlarına 0x210=0x00 ve 0x211=0x02 yazılır, ikisi geri okunur. IO_ABORT yoktur ve başka profile/lifecycle değişikliği yapılmaz.

Neden bu sırada: F2 block-size başlangıçta 512 olarak programlandı, fakat cevapsız çerçeve ve tam function lifecycle sonrasında hiç yeniden doğrulanmadı. IO_ABORT, kapat/aç ve onun ürettiği kesmenin ack'i ayrı ayrı elendi; sıradaki önceden ayrılmış kart-tarafı durum bu iki bayttır.

İlk iki tam boot değişkene erişmeden kapandı: ilki trial 0 Read32 error_status=0x0060, ikincisi CR4CTRL PHASE=D11 ABORTED=1 / D11_RETRY_PRIMARY_ERR=0x0010. Üçüncü tam boot karar verdi: IMAGE_SHA=c58ee8c1fa30… · FWSTAGE/NVRAM OK=1 · TRIAL=0 XFER=48 SENT=1 REPLIED=0 POLLS=144 ControlTimeout · WIFIRECOVER FIFO_OK=1 LENGTH=Some(0) PSTATE=0x01ff0000 · F2REENABLE FAILED=0 · F2POSTIRQ BEFORE=Some(128) ACK_OK=1 AFTER=Some(0) FAILED=0 · WIFIF2BLKSZ ATTEMPTED=1 BEFORE_LOW=Some(0) BEFORE_HIGH=Some(2) WRITE_LOW_OK=1 WRITE_HIGH_OK=1 READBACK_LOW=Some(0) READBACK_HIGH=Some(2) MATCH_512=1 FAILED=0 · bitişik ikinci WriteFifo fn=2 addr=0x8000 R5=0x10 ERROR_STATUS=0x0020 BUS_WAS_BUSY=0 PSTATE=0x01ff0000 · trial 1 HOST_INT=0 CORE_OR=0x00000000

attempt-r133-f2-block-size-repeat-2-uart-capture (tam boot) · build/rpi5-wifi-scan-r133/aselsanos-rpi5-radio.img · sha256 c58ee8c1fa30a776e1b67a4253353e6df1609cd8e020dd4d4cf58201c7509c37 · raw sha256 a2a9776becfedda57d3be7c81b554bbec0387b09b9253e16f8560b2a00af083b

Kapattığı: F2 block-size kaybını ve bayat programlamayı kapatır: değer reassert öncesinde zaten 512'ydi, iki yazma ve iki readback tamamlandı; buna rağmen aynı ikinci yazma aynı veri CRC'siyle düştü.

Risk: Mekanizma eksiksiz tamamlandı ve kart-tarafı block-size durumu doğrulandı. Tek terminal işlem hemen sonraki ikinci F2 yazmasıdır; sonuç Wi-Fi PASS değildir.

R134KoşulduC06 · C07 · C08

İkinci F2 yazması öncesi host-only SDHCI DATA reset

Değişen tek şey: R133'ün recovery, F2 yaşam döngüsü, HOST_INT ack ve block-size readback zinciri aynen korunur. Tek ekleme: MATCH_512=1 sonrasında ve ikinci F2 yazmasından hemen önce host tarafında bir SDHCI DATA reset uygulanır; resetin temizlendiği ve host konfigürasyonunun değişmediği doğrulanır. Reset, rearm sonunda değil send_control'ün write_fifo sınırındadır — reset ile ikinci yazma arasına hiçbir SDIO işlemi girmez. Kart reseti, IO_ABORT, ek F2 yaşam döngüsü veya profil değişikliği yoktur.

Neden bu sırada: R133 kart tarafındaki FIFO, interrupt, F2 enable/ready ve block-size durumlarını tek tek sağlıklı doğruladığı hâlde ikinci yazma veri CRC'siyle düştü. R116 host-only DATA resetin uygulanıp doğrulanabilen somut bir primitive olduğunu gösterdi; fakat bu primitive ikinci F2 yazmasının tam önündeki sınırda hiç denenmedi. R24'ün meşgul-hatta-reset GERİLEMESİ ile R116'nın arıza-sonrası kurtarması arasında kalan bu üçüncü yerleşim ayrı bir fiziksel hipotezdi.

İlk koşu değişkene ulaşmadan kapandı (varışsızlık): WIFIHOSTDATA_PLAN ARMED=1 basıldı fakat trial 0 sonrası F1 Read32 INTSTATUS 0x18004020 ikinci kez 0x0020 ile düştü, ikinci reset bus-ömründe-bir-kez kuralıyla reddedildi (USED_BEFORE=1 ELIGIBLE=0), NOT_REARMABLE. Tekrar koşu karar verdi: IMAGE_SHA=b3910252804b… · FWSTAGE/NVRAM OK=1 · TRIAL=0 POLLS=134 ControlTimeout · WIFIRECOVER FIFO_OK=1 · F2REENABLE FAILED=0 · F2POSTIRQ ACK_OK=1 AFTER=Some(0) · F2BLKSZ MATCH_512=1 · WIFIHOSTDATA ATTEMPTED=1 MEASURED=1 APPLIED=1 CLEARED=1 READY=1 CONFIG_SAME=1 POLLS=2 ELAPSED_US=10 PSTATE_B=0x017f0000 PSTATE_A=0x017f0000 RESET_FIRST=0x04 CARD_COMMANDS=0 · UART'ta WIFIHOSTDATA ile bitişik ikinci WriteFifo fn=2 addr=0x8000 R5=0x10 ERROR_STATUS=0x0020 · trial 1 HOST_INT=0 CORE_OR=0 · STOP=NOT_REARMABLE TRIALS_RUN=1/11

attempt-r134-host-data-reset-at-send-boundary-uart-capture (varışsızlık) · attempt-r134-host-data-reset-at-send-boundary-uart-capture-repeat (karar) · build/rpi5-wifi-scan-r134/aselsanos-rpi5-radio.img · sha256 b3910252804ba69fb8ed40c90f52abf4c886d9849c77ac64961f5efd059f1cf0 · repeat raw sha256 c409d7fcd52b9202c7e2bc5fdef2a3230f2874d5e708582e04edd2403767500e

Kapattığı: Send sınırındaki temiz host DATA reset elendi: reset uygulandı, temizlendi, konfigürasyon korundu ve reset ile ikinci yazma arasına hiçbir SDIO işlemi girmedi; buna rağmen aynı ikinci yazma aynı 0x0020 data CRC'siyle düştü. R24 (meşgul hatta), R116 (arıza sonrası kurtarma) ve R134 (send sınırı) birlikte, host SDHCI DATA reset eyleminin — hangi yerleşimde olursa olsun — ikinci yazmanın 0x0020'sinin nedeni olmadığını mühürler.

Risk: Reset öncesi host inhibit yoktu (PSTATE_B=0x017f0000) ve CARD_COMMANDS=0; aksiyonun kendisi yeni bir arıza üretmedi. İlk koşunun varışsızlığı ayrıca kaydedildi; karar yalnız tekrar koşusunun makbuzundan alındı. Sonuç Wi-Fi PASS değildir.

R135KoşulduC06 · C07 · C08

İkinci F2 yazması 64 bayt byte-mode — ELENDİ

Değişen tek şey: R134'ün elenen send-sınırı reset'i zincirden çıkarıldı (R25 emsali); R129–R133 zinciri aynen korundu. Tek değişken: yeniden kurulan ikinci F2 yazmasının transfer byte sayısı 48 → 64 oldu (16 bayt sıfır dolgu), byte-mode aynı kaldı. İlk yazma (trial 0 bootstrap) değişmedi. Yeni kayıt yazması yok, kart komutu yok.

Neden bu sırada: Masabaşı kararı (docs/radio/R135-second-write-shape-desk.md): R80 izinde Linux fn=2 adres=0x8000'e HİÇ 48 bayt yazmıyor; kısa-çerçeve yazma birimi 64 bayttır (1456 adet). Bizim düşen ikinci yazmamız 48 bayt byte-mode gidiyordu — kip aynı, byte sayısı farklı; eleme zincirinde kalan tek trace-görünür şekil farkı buydu.

IMAGE_SHA=db93f033197a844046dda915ac79e1d23690e48a9cab867be0e77ec94999aa2d · WIFIF2WRITE64_PLAN ARMED=1 UNIT=64 PAD_ZERO=1 FIRST_WRITE_UNCHANGED=1 CARD_COMMANDS=0 HOST_RESET=0 · üçüncü boot: TRIAL=0 FRAMELEN=48 XFER=48 ControlTimeout → WIFIRECOVER ATTEMPTED=1 FIFO_OK=1 LENGTH=Some(0) → F2REENABLE FAILED=0 → F2POSTIRQ ACK_OK=1 AFTER=Some(0) → F2BLKSZ MATCH_512=1 FAILED=0 → WIFIREAD OP=WriteFifo BYTES_READ=64 ERROR_STATUS=0x0020 · WIFIHOSTDATA 0 adet · STOP=NOT_REARMABLE TRIALS_RUN=1/11

üç paket: attempt-r135-f2-write64-uart-capture (varışsızlık 0x0060), attempt-r135-f2-write64-uart-capture-repeat-01 (varışsızlık 0x0020), attempt-r135-f2-write64-uart-capture-repeat-02 (ELENDİ — BYTES_READ=64 ERROR_STATUS=0x0020)

Kapattığı: 64 baytlık ikinci yazma da aynı 0x0020 ile düştü: transfer byte-count şekli (48 ve 64'ün ikisi) elendi. İlk iki boot mühürlü varışsızlık paketidir (F1 Read32 0x0060 / 0x0020, WIFIF2BLKSZ ATTEMPTED=0). Sıradaki aday re-arm→yazma zamanlamasıdır (R26 emsali) — R136.

Risk: Düşük gerçekleşti: dolgu baytları SDPCM için anlamsızdı ve bootstrap yolu korundu. Kaynakta veya trace'te görülmeyen kayıt yazması yok.

R136KoşulduC06 · C07 · C08

SDPCM glom biçimi — SDIO duvarı KIRILDI, cevap yok

Değişen tek şey: Kodlayıcı, Linux'un aynı kartta ölçülen host→card çerçeve biçimine taşındı: HW(4) + 8 baytlık glom eklentisi + SW(8, dat_offset=20) + BCDC dcmd(20..36) + veri; toplam uzunluk 8-bayta hizalı. R134'ün elenen send-sınırı reset'i ve R135'in elenen 64-bayt deneyi imajdan çıkarıldı; flags kodlaması (id<<16 | ifidx<<12 | SET) değişmedi.

Neden bu sırada: R136 Linux yakalaması (linux-r136-first-frame-v3) Linux'un ilk kontrol çerçevelerini ölçtü ve bizim çerçevemizin 8 bayt kısa olduğunu, dcmd'ın 12. yerine 20. baytta olması gerektiğini gösterdi; brcmfmac v6.18 kaynağı (hdpack/tx_ctrlframe) bunu doğruladı.

IMAGE_SHA=940ff0ae798cca612f4481bf5b8b22c81c0ac5753b33d764ab5a11ce5c8fa246 · Linux ölçümü iki bağımsız çekirdekte doğrulandı (RPi OS 97 ve Ubuntu 235 yazma çerçevesi, hepsi glom; glomsuz 0) · WIFICTRLTX_RAW HEX=3800c7ff3400000100000000ff00001400000000060100001400000000000100… · TRIAL=0 FRAMELEN=56 XFER=56 ControlTimeout · WIFIF2BLKSZ MATCH_512=1 · TRIAL=1 SENT=2 FRAMELEN=56 XFER=56 REPLIED=0 ControlTimeout (WriteFifo hatası YOK) · TRIAL=2 SENT=3 · WIFITRIALEND STOP=NOT_REARMABLE TRIALS_RUN=2/11 REPLIED=0

attempt-r136-glom-control-frame-uart-capture (tek boot, WHOLE BOOT, 45.849 bayt)

Kapattığı: Tel biçimi sınırını KAPATIR: yeniden kurulan ikinci F2 yazması ilk kez kabul edildi ve süpürme birden fazla denemeye ilerledi. Cevap getirmedi: firmware çerçeveyi işlemiyor (REPLIED=0, FRAME_IND=0, HOST_INT=0). Sıradaki aday R137: seq (255 vs Linux'un artan değeri), dcmd türü/id ve Linux'un preinit sırası — önce masabaşı notu.

Risk: Gerçekleşen: yok — kart yeni biçimi kabul etti, hata sınıfı değişmedi. Kapsam dışı: R116/R119 kurtarma-yolu reset'i ve kart komutları değişmedi.

R137KoşulduC06 · C07 · C08

Mailbox el sıkışması tanığı — taşıma sağlam, FWREADY YOK

Değişen tek şey: R136 zinciri ve glom biçimi aynen durur. Tek ekleme salt-okunur bir tanık: protokol fazında her sekizinci poll'da tohostmailboxdata (SDIO çekirdeği + 0x4c) örneklenir, değişen her değer Linux'un yaptığı gibi ACK'lenir ve sürüm/DEVREADY/FWREADY bitleri makbuza yazılır. Çerçeve baytı, kayıt yazması, reset veya komut değişmez.

Neden bu sırada: R136 dongle'ın mailbox'ında DEVREADY'yi görüp FWREADY'yi görmemişti; FWREADY 'protokol aktivitesi için hazır' bitidir ve kalkmadan kontrol isteklerinin cevaplanması beklenmez. Çerçeve içeriği denemeleri bu soru cevaplanmadan yanlış katmana bakar.

IMAGE_SHA=68cad3b57b5c34bbe4a306d0314904e9241bcf9672111eb11901d88dc821ad76 · WIFIMBOXWATCH SAMPLES=87 CHANGES=0 DEVREADY_SEEN=0 FWREADY_SEEN=0 VERSION=0 LAST=0x00040002 · TRIAL=0..3 FRAMELEN=56 XFER=56 BCDCLEN=20 SENT=1..4 REPLIED=0 · WIFITRIALEND STOP=NOT_REARMABLE TRIALS_RUN=4/11 REPLIED=0

attempt-r137-mailbox-handshake-uart-capture (tek boot, WHOLE BOOT, 74.047 bayt)

Kapattığı: Taşıma sorusunu KAPATIR: glom biçimi dört çerçeve boyunca kararlı, makbuz alanları doğru. Cevapsızlığı çerçeve içeriğinden çıkarır: dongle protokol hazır bayrağını hiç kaldırmıyor. Sıradaki aday R138: hostmail ACK'inin ve sürüm yazmasının zamanlaması.

Risk: Gerçekleşen: yok — salt-okunur örnekleme + kodda zaten var olan ACK yazması. Kapsam dışı: yeni kayıt yazması, reset, kart komutu yok.

R138KoşulduC06 · C07 · C08

Hostmail el sıkışması — ELENDİ: dongle yine hazır olmadı

Değişen tek şey: Tel biçimi, R133 zinciri ve bootstrap çerçevesi donuk. Tek davranış değişikliği iki mevcut yazmanın ZAMANLAMASI: her mailbox okumasında koşulsuz SMB_INT_ACK (0x40 ← 2) ve okunan değerde DEVREADY/FWREADY varsa protokol sürümünün yeniden yazımı (0x48 ← 4<<16). Tanık bayrakları artık her örnekte değerlendirilir.

Neden bu sırada: Linux `brcmf_sdio_hostmail` her okumada ACK yazar ve hazır bayrağında sürümü yeniden yazar; R137'de ACK yalnız değişimde, sürüm yalnız F2-hazır yolunda bir kez gidiyordu ve dongle sessizdi.

IMAGE_SHA=e125208d4eb9d73bd0d7a71985766ce0fa172be9f4a2b975523bc80e57536b39 · WIFIHOSTMAIL_PLAN ARMED=1 ACK_EVERY_READ=1 VERSION_REWRITE_ON_READY=1 · WIFIMBOXWATCH SAMPLES=32 CHANGES=0 DEVREADY_SEEN=1 FWREADY_SEEN=0 VERSION=4 ACKS=32 VERSION_WRITES=32 LAST=0x00040002 · TRIAL=0/1 FRAMELEN=56 XFER=56 BCDCLEN=20 SENT=1/2 REPLIED=0 · WIFITRIALEND STOP=NOT_REARMABLE TRIALS_RUN=1/11

üç paket: attempt-r138-hostmail-complete-uart-capture (D11 varışsızlığı), attempt-r138-hostmail-complete-uart-capture-repeat-01 (değişken icra, erken kapanış), attempt-r138-hostmail-complete-uart-capture-repeat-02 (karar)

Kapattığı: Host el sıkışması adayını KAPATIR: 32 örnekte her okuma ACK'lendi ve sürüm yeniden yazıldı, dongle yine FWREADY kaldırmadı ve iki çerçeveye cevap vermedi. Duvar host el sıkışmasında değil. Sıradaki aday R139: CR4 yürütme + host SDHCI hatalarının ayrıştırılması.

Risk: Gerçekleşen: yok — iki yazma da kodda mevcuttu, yalnız zamanlaması değişti. Kapsam dışı: yeni kayıt, reset, kart komutu ve çerçeve baytı değişmedi.

R139KoşulduC06 · C07 · C08

Reset vektörü Linux taşımasıyla — TAŞIMA KAPANDI, yürütme yok

Değişen tek şey: Tel biçimi, R133 zinciri, R138 hostmail tamamlama ve tüm register değerleri donuk. Tek değişken: reset vektörünün backplane adres 0'a Linux'un yaptığı gibi **4-baytlı bayraklı CMD53** ile yazılması (brcmf_sdio_buscore_activate → ramrw); inmediyse doğrulanmış CMD52 yazması sınırlı geri dönüş olarak kullanılır.

Neden bu sırada: R139 Linux ölçümü CR4 başlatma değerlerinin birebir aynı olduğunu gösterdi; kritik yolda kalan tek yapısal fark bu yazmanın taşımasıydı ve R88'in 0x0060 veri CRC'si R94'ün CMD53 disiplin düzeltmesinden önceydi.

IMAGE_SHA=a7d06727d947bdaa1aad452a83eb9ea21bff8156e35378ee4b65e9b8ed438eaa · WIFIRSTVEC_PLAN ARMED=1 MODE=CMD53_4B_FLAGGED FALLBACK=CMD52 · CR4START RSTVEC_OK=1 RSTVEC_C53=1 RSTVEC_B=4 RSTVEC_ERR=0x0000 RSTVEC_CMD52_FALLBACK=0 HT_REQ_AVAIL=1 MBOX=0 INTSTAT=0 SHARED_RAW=0 EXECUTED=0 STARTED=0 · WIFIMBOXWATCH SAMPLES=18 ACKS=18 VERSION_WRITES=17 FWREADY_SEEN=0 · WIFITRIALEND TRIALS_RUN=1/11 REPLIED=0

attempt-r139-rstvec-cmd53-uart-capture (tek boot, WHOLE BOOT, 55.546 bayt)

Kapattığı: Kritik yoldaki taşıma sorusunu KAPATIR: Linux'un rstvec taşıması bizde de hatasız iniyor ve CMD52 geri dönüşü gerekmiyor. CR4 yürütme sorusunu getirmez: tanıklar sıfır. Sıradaki aday R140: firmware staging taşıması ya da F1 yazma güvenilirliği.

Risk: Düşük gerçekleşti: aynı adrese aynı değer yazıldı, yalnız taşıma Linux'a çevrildi; CMD52 geri dönüşü hazır bekledi ve kullanılmadı.

R140KoşulduC06 · C07 · C08

"Host hazır" yazmasının yeri — DUVAR KIRILDI: dongle 30 ms'de FWREADY dedi

Değişen tek şey: Tek değişken: "host hazır" protokol sürümü yazmasının YERİ. Linux `brcmf_sdio_firmware_callback` (sdio.c:4261-4262) `SDPCM_PROT_VERSION << 16` değerini `tosbmailboxdata`ya (0x18004048) CR4 bırakıldıktan hemen sonra yazar; R139 tel izinde bırakma t=143.630543, yazma t=143.630617 (~74 µs), F2 enable ve hostintmask'ten ÖNCE. R136–R139 aynı yazmayı protokol fazındaki posta nöbetinde, bırakılıştan saniyeler sonra yapıyordu. Adres, değer, genişlik, çerçeve, saat ve reset donuk.

Neden bu sırada: R139 Linux ölçümü değerlerin ve rstvec taşımasının birebir aynı olduğunu gösterdi; kritik yolda kalan tek fark bu yazmanın zamanı/yeriydi.

IMAGE_SHA=12595cd216f02de34ba7c320360d6abd39aed982c91f41173d46530287cf7471 · WIFIHOSTREADY_PLAN ARMED=1 WHERE=AFTER_CR4_RELEASE VALUE=0x00040000 REGISTER=0x18004048 WATCH_VERSION_REPEAT=0 EARLY_WITNESS_MS=600 WRITES=0 · WIFIHOSTREADY ATTEMPTED=1 BEFORE=0x00000000 WRITE_OK=1 AFTER=0x00040000 AFTER_RELEASE_MS=5 · WIFIEARLYMBOX SAMPLES=7 CHANGES=1 FIRST=0x00000000 LAST=0x00040008 INT_OR=0x208000c0 FWREADY_MS=30 WINDOW_MS=600 WRITES=0 · WIFIMBOXWATCH_R140 VERSION_AT_START=1 WATCH_VERSION_WRITES=0 WATCH_ACKS=30 LAST=0x00040002 · WIFITRIALEND STOP=NOT_REARMABLE TRIALS_RUN=1/11 REPLIED=0

attempt-r140-hostready-at-start-uart-capture (tek boot, WHOLE BOOT, 57.712 bayt)

Kapattığı: Zamanlama hipotezini DOĞRULAR: "host hazır" yazması Linux'un yerinde olunca dongle 30 ms'de FWREADY yazıp host kesmesini kaldırıyor. El sıkışmanın tamamlanmasını getirmez: pencere salt-okunurdu, posta ACK'siz kaldı ve dongle DEVREADY'ye geri düştü. Sıradaki adım R141: aynı pencerede Linux ISR'inin cevabı (tosbmailbox ← SMB_INT_ACK, intstatus write-1-to-clear).

Risk: Düşük gerçekleşti: aynı yazma yalnızca daha erken yapıldı; yeni kayıt, değer, çerçeve veya reset yok.

R141KoşulduC06 · C07 · C08

Posta cevabı indi ve el sıkışma oturdu — ama duvar artık DAT1 hattı

Değişen tek şey: Tek değişken: R140'ın salt-okunur erken penceresinin KENDİ iki kaydı artık Linux ISR'inin yazdığı gibi yazılıyor — her posta okumasından sonra `tosbmailbox` (0x18004040) ← SMB_INT_ACK=2 (brcmf_sdio_hostmail) ve `intstatus` (0x18004020) ← okunan & 0x200000f0 write-1-to-clear (brcmf_sdio_intr_rstatus); el sıkışma oturunca pencere erken kapanır. Yeni kayıt, değer, çerçeve, saat ayarı veya reset yok.

Neden bu sırada: R140 dongle'ın FWREADY'sini (+30 ms) ve host kesmesini (0x208000c0) ölçtü ama pencere salt-okunur olduğu için el sıkışma onaylanmadı ve posta kutusu DEVREADY'ye düştü; Linux aynı pencerede postayı ACK'liyor ve intstatus'ı temizliyor (R139 tel izi: 0x18004040 ← 2, 0x18004020'ye ~70 write-1-to-clear).

IMAGE_SHA=044266fbe0a4b9b616feca094abab47352bef9c6606e1a69a9e9a090dac5d765 · WIFIMBOXANSWER_PLAN ARMED=1 WHERE=EARLY_WINDOW ACK_REGISTER=0x18004040 ACK_VALUE=0x0002 INTSTATUS_MASK=0x200000f0 WRITE_ONE_TO_CLEAR=1 EARLY_EXIT=1 WRITES=2 · WIFIEARLYMBOX SAMPLES=7 CHANGES=1 LAST=0x00040008 INT_OR=0x208000c2 FWREADY_MS=25 WRITES=2 · WIFIMBOXANSWER ATTEMPTED=1 ACKS=7 INT_WRITES=2 INT_MASKED=0x200000c0 SETTLED=1 FWREADY_ACKED_MS=25 · WIFIMBOXWATCH SAMPLES=13 FWREADY_SEEN=0 LAST=0x00040002 · WIFITRIALEND TRIALS_RUN=0/11 · WIFIFAIL HOST_CARD_INT=true SDHCI_INT_SIGNAL_ENABLE=0 READ_FAILURES=5 · WIFISCAN_RESULT STATUS=ERROR F1 Read32 0x18004020 error_status=0x0020

attempt-r141-mailbox-answer-uart-capture (tek boot, WHOLE BOOT, 52.965 bayt)

Kapattığı: Cevabın kendisini KAPATIR: posta ACK'i ve intstatus temizliği hatta çıkıyor ve el sıkışma oturuyor (SETTLED=1). El sıkışmanın kalıcılığını getirmez: dongle protokol fazında DEVREADY'ye düşüyor. Ayrıca veri hattı çakışmasını doğrudan gösterir: kart DAT1'i sürüyor (HOST_CARD_INT=true), biz bu kesmeyi servis etmiyoruz (SDHCI_INT_SIGNAL_ENABLE=0) ve 4 baytlık CMD53 okumaları CRC ile düşüyor.

Risk: Düşük gerçekleşti: pencerenin kendi iki kaydı yazıldı; yeni kayıt, değer, çerçeve veya reset yok.

R142KoşulduC06 · C07 · C08

CCCR master biti temiz — kart DAT1'i yine sürdü (hipotez elendi)

Değişen tek şey: Tek değişken: CCCR `INT_ENABLE` (F0 0x04) çiftinin master kesme biti. R124'ten beri Linux'un çifti yazılıyordu (0x03 → 0x07); bu imajda aynı iki yazma master biti temiz yapar (0x02 → 0x06). Kayıt, yazma şekli, fonksiyon bitleri (F1/F2), çerçeve, saat, reset ve komutlar donuk.

Neden bu sırada: R141 arıza makbuzu kartın DAT1'i sürdüğünü (HOST_CARD_INT=true) ve bu kesmenin servis edilmediğini (SDHCI_INT_SIGNAL_ENABLE=0) gösterdi; izin bu çiftten geliyordu.

IMAGE_SHA=6de90c05876cf2fd28fa01781c53e96cecb2fde5392407cb10a31c7cee4edc11 · WIFIINTEN_PLAN ARMED=1 REGISTER=0x04 W1=0x02 W2=0x06 MASTER_BIT=0 · WIFIEN W1=Some(2) W2=Some(6) READBACK=Some(6) · WIFIFRAMECOUNT HOST_CARD_INT=false,true,true READ_FAILURES=0,5 · WIFITRIALEND TRIALS_RUN=2/11 REPLIED=0 · WIFISCAN_RESULT F1 Read32 0x18004020 veri CRC

attempt-r142-int-enable-off-uart-capture (tek boot, WHOLE BOOT, 60.507 bayt)

Kapattığı: CCCR fonksiyon/master bitlerinin bu silikonda DAT1 hattını kapatmadığını KAPATIR. Koşu biraz ilerledi (TRIALS_RUN=2) ve tanığın dinamik olduğunu gösterdi. Sıradaki aday R143: SDIO çekirdeği host kesme maskesi.

Risk: Düşük gerçekleşti: aynı iki yazmanın tek biti değişti.

R143KoşulduC06 · C07 · C08

Host kesme maskesi de kapı değil — DAT1 dinamik, koşu 3 denemeye ilerledi

Değişen tek şey: Tek değişken: SDIO çekirdeği host kesme maskesine yazılan değer (`0x18004024`): Linux'un `0x200000f0` değeri yerine `0x00000000`. Yoklamalı tasarım `intstatus`ı doğrudan okuduğu için hat gerekmez; maske yalnızca sürekli çekili DAT1 üretiyordu.

Neden bu sırada: R142 CCCR master bitini temizledi ve kart DAT1'i yine sürdü; bu sürücünün yazdığı tek diğer kesme etkinleştirmesi hostintmask'ti (R121 farkı).

IMAGE_SHA=79e05167ce0bf84fbc8d2fdaa2b207f1c08a9f6e6ecc31506be2b91127d2eb80 · WIFIHOSTINTMASK_PLAN ARMED=1 REGISTER=0x18004024 VALUE=0x00000000 LINUX_VALUE=0x200000f0 · WIFIFAIL hostintmask_written: Some(0) · WIFIFRAMECOUNT HOST_CARD_INT=true ×4 · WIFITRIALEND TRIALS_RUN=3/11 REPLIED=0 · WIFIMBOXWATCH SAMPLES=62 FWREADY_SEEN=0 LAST=0x00040002 · WIFIREAD_RECOVERY PRIMARY_ERR=0x0020 APPLIED=1 RECOVERY_OK=1 POST_VALUE=Some(0)

attempt-r143-hostintmask-off-uart-capture (tek boot, WHOLE BOOT, 66.321 bayt)

Kapattığı: İki kesme-etkinleştirme hipotezini (CCCR ve SDIO çekirdeği maskesi) KAPATIR; DAT1'in dongle posta donanımından sürüldüğünü ve tanığın dinamik olduğunu gösterir. Kalan tek ölçülü kusur aralıklı veri hattı CRC'si; kurtarma yolu çalışıyor ama yoklama döngüsüne bağlı değil — R144'ün tek değişkeni bu.

Risk: Düşük gerçekleşti: tek bir yazma değeri değişti (Linux'a benzeyen değer kaldırıldı, gerekçesi makbuzda).

R144KoşulduC06 · C07 · C08

Yoklama hatasına tek yeniden deneme — dongle'ın kesmesi İLK KEZ görüldü

Değişen tek şey: Tek değişken: yoklamadaki `Read32 0x18004020` hatası artık turu düşürmüyor. Taşıma katmanının zaten yaptığı sınırlı kurtarmadan (SDHCI reset + tek okuma; WIFIREAD_RECOVERY RECOVERY_OK=1 POST_READ_OK=1 POST_VALUE=Some(0)) sonra okuma BİR KEZ yinelenir; ikinci hata yine fatal. Yeni kayıt, değer, çerçeve, saat ayarı veya reset yok; özellik kapalıyken R143 davranışı birebir korunur.

Neden bu sırada: R141/R142/R143 koşularının üçü de aynı yerde (F1 Read32 0x18004020 veri CRC'si) kapandı ve kurtarma yolunun hatayı temizleyebildiği makbuzla kanıtlıydı; eksik olan sonucu kullanmaktı.

IMAGE_SHA=81323546eef41f6eff9437e597e5307dad8e8c547988675ef7941486dc09a2f3 · WIFIPOLLRETRY_PLAN ARMED=1 REGISTER=0x18004020 MAX_RETRY=1 SECOND_FAILURE_FATAL=1 · WIFIPOLLRETRY RETRIES=0 RETRY_OK=0 RETRY_FAILED=0 · WIFIFAIL frame_ind_seen=1 host_int_seen=1 interrupt_status_or=192(0xc0) fifo_reads=0 · WIFITRIAL_RESULT TRIAL=0 FRAME_IND=1 HOST_INT=1 CORE_OR=0x000000c0 · WIFISCAN_RESULT ERROR=ReadFifo fn=2 addr=0x8000 transfer_complete=false bytes_read=64 error_status=0x20 timeout_transfer=true · WIFIMBOXANSWER SETTLED=1 FWREADY_ACKED_MS=25

attempt-r144-poll-retry-uart-capture-repeat-01 (2. boot; 1. boot non-arrival, 52.910 bayt)

Kapattığı: Yoklama hatasının ölçümü bloke etmesini KAPATIR: koşu artık F2 çerçeve yoluna ulaşıyor ve dongle'ın host kesmesi ilk kez görülüyor (0xc0). F2 okumasının kendisini kapatmaz: yeni duvar orada. Sıradaki adım R145 — aynı yeniden deneme kuralını F2 FIFO okumasına uygulamak.

Risk: Düşük gerçekleşti: yalnızca hata yolu değişti; başarılı okuma davranışı ve tüm değerler aynı kaldı.

R145KoşulduC06 · C07 · C08

Aynı kural F2 okumasına — taşıma 8 denemeye çıktı, dongle sustu

Değişen tek şey: Tek değişken: R144'ün tek-yeniden-deneme kuralı F2 FIFO okumalarına da uygulandı (64 baytlık başlık okuması ve gerekiyorsa devamı): taşıma katmanının sınırlı kurtarmasından sonra okuma BİR KEZ yinelenir, ikinci hata fatal kalır. Okuma geometrisi, çerçeve baytları, saat ve resetler donuk.

Neden bu sırada: R144 koşusu dongle'ın kesmesini ilk kez gördü ve F2 okumasında düştü (ReadFifo fn=2 addr=0x8000, bytes_read=64, error_status=0x20, timeout_transfer=true).

IMAGE_SHA=167cb2334c20a188c9af717f19c96f3e3b5d235ad049dc7e48f2375f8d163739 · WIFIFIFORETRY_PLAN ARMED=1 FUNCTION=2 ADDRESS=0x8000 MAX_RETRY=1 · boot1: WIFIPOLLRETRY RETRIES=1 RETRY_FAILED=1, WIFITRIALEND TRIALS_RUN=1 · boot2 (repeat-01): WIFIFIFORETRY RETRIES=0 FIFO_READS=0, WIFITRIALEND TRIALS_RUN=8/11 REPLIED=0, her denemede CORE_OR=0x00000000, WIFIMBOXWATCH SAMPLES=158 FWREADY_SEEN=0 LAST=0x00040002, WIFIRECOVER FIFO_OK=1 LENGTH=Some(0) ×9

attempt-r145-fifo-retry-uart-capture (1. boot) + -repeat-01 (2. boot, 100.443 bayt)

Kapattığı: F2 okuma yolunun koşuyu düşürmesini KAPATIR: taşıma 8 denemeyi taşıyor ve kurtarma okumaları bayrak takılmadığını doğruluyor. Dongle'ın susmasını kapatmaz: posta kutusu DEVREADY'de kalıyor ve kontrol çerçeveleri cevapsız. Sıradaki adım R146 — R140'ın ölçülmüş tetikleyicisini koşullu yinelemek.

Risk: Düşük gerçekleşti: yalnızca hata yolu; başarılı okuma davranışı ve tüm değerler aynı kaldı.

R146KoşulduC06 · C07 · C08

Dongle kendi beyanını verdi: firmware canlı, sağlıklı, konsolu yayında

Değişen tek şey: Tek değişiklik: SALT-OKUNUR tanık. Koşunun en sonunda dongle'ın yayınladığı SDPCM paylaşım alanı okunur (Linux `brcmf_sdio_readshared`: RAM tepesi-4'teki işaretçi, sonra yapının ilk 12 sözcüğü); ChipCommon chipid okuma öncesi/sonrası nöbetçi olarak örneklenir. Hiçbir şey yazılmaz.

Neden bu sırada: R145 taşımanın 8 denemeyi taşıdığını ama dongle'ın sustuğunu gösterdi; eksik bilgi dongle'ın kendi durumuydu. Linux bu bilgiyi tam olarak bu yapıdan okur.

IMAGE_SHA=6b7e0c2116e8c6568b9f30b54f4451c125b58ca066141ec09bac8f2da0314b4e · WIFISHARED SENT_B_OK=1 SENT_B=0x15264345 SENT_A_OK=1 SENT_A=0x15264345 · PTR_ADDR=0x0025fffc PTR=0x00201cc0 PTR_PLAUSIBLE=1 STRUCT_OK=1 · W0_FLAGS=0x00000001 W1_TRAP=0x0 W2=0x0 W3=0x0 W4=0x0 W5_CONSOLE=0x0025debc W6_MSGTRACE=0x0 W7=0xb677b91b W8=0x47424544 W9=0x1 W10=0xb677b91b W11=0x35342e37 WRITES=0 · WIFITRIALEND TRIALS_RUN=3/11 REPLIED=0 · WIFIMBOXWATCH SAMPLES=54 FWREADY_SEEN=0 LAST=0x00040002

attempt-r146-shared-witness-uart-capture (tek boot, WHOLE BOOT, 67.678 bayt)

Kapattığı: "Firmware yürüyor mu, çöktü mü?" sorusunu KAPATIR: firmware canlı, sağlıklı (ASSERT/TRAP/FAIL yok), paylaşım alanını ve konsol adresini yayınlamış, kimliği bizim blobumuzla aynı. Kontrol çerçevesinin cevapsızlığını kapatmaz; ama artık firmware'in kendi konsol metni elimizde — sıradaki adım R147: o konsolu okumak.

Risk: Yok denecek kadar düşük: WRITES=0; okuma koşunun sonuna konuldu ve nöbetçiyle doğrulandı (R97 kararma uyarısı).

R147KoşulduC06 · C07 · C08

Konsol okundu: firmware WLAN yığınını kuruyor (salt-okunur)

Değişen tek şey: Tek değişiklik: SALT-OKUNUR. R146'nın bulduğu konsol adresinden (W5_CONSOLE) 16 başlık sözcüğü, başlıktaki ilk hizalı RAM işaretçisinden 128 bayt (düzen varsayılmadan) ve konsol adresinin kendisinden 128 bayt okunur; ASCII olarak basılır. Yazma yok.

Neden bu sırada: R146 firmware'in sağlıklı olduğunu ve konsol adresini yayınladığını gösterdi; eksik bilgi firmware'in ne yazdığıydı.

IMAGE_SHA=9a51d4a3b407a8272bc2a03a73218bf0f6c3fab871d00a6c28c4300ab7e0b147 · WIFISHAREDCONSOLE CONSOLE_ADDR=0x0025debc HEADER_OK=1 BUF_PTR=0x0025dab4 BUF_OK=1 PRINTABLE=124 WRITES=0 · HEADER: 0x00000000 0x00000000 0x0025dab4 0x00000400 0x00000177 0x00000177 0x00000001 · TEXT: '1024..000000.061 wl0: wlc_channels_commit: no valid channel for "#n" nbands 2 bandlocked 0..000000.062 wl0: Broadcom BCM4345 80'

attempt-r147-console-witness-uart-capture-repeat-01 (2. boot; 1. boot non-arrival, 55.257 bayt)

Kapattığı: Konsolun okunabildiğini ve firmware log biçiminin/yapısının tutarlı olduğunu KAPATIR. Tam logu getirmez: 367 baytın yalnız ilk 128'i okundu. Sıradaki adım R148 — tam log.

Risk: Yok: salt-okunur; okuma koşunun sonunda ve nöbetçiyle (SENT_B_OK=0 not edildi).

R148KoşulduC06 · C07 · C08

Tam log: 'sdpcmd_sendheader: tx submit failed!!' — neden yazılı

Değişen tek şey: Tek değişiklik: SALT-OKUNUR. Konsol başlığındaki ÖLÇÜLEN düzenle (W2 tampon, W3 boy, W4 indeks) TAM log tamponu okunur (≤1024 bayt) ve tüm yazdırılabilir metin basılır; nöbetçi konsol okumasından önce 8 kez yinelenir (R147 SENT_B_OK=0 kaydı). Yazma yok.

Neden bu sırada: R147 ilk 128 baytı okudu ve firmware'in wl0 satırlarını gösterdi; tamponda 367 bayt yazılıydı ve kalan satırlar çerçevelerimize dair olabilirdi.

IMAGE_SHA=f5c772b4892b8da5060463a62786f0a1bcad397b7ecb552c22f95e602a108e69 · WIFISHAREDCONSOLE_FULL SIZE=1024 IDX=527 READ=1024 PRINTABLE=991 SENT_RETRIES=0 WRITES=0 · LOG: '000002.919 sdpcmd_dpc: Enable' … '000006.022 sdpcmd_dpc: Disable' + 'sdpcmd_tx: device disabled' + 'sdpcmd_sendheader: tx submit failed!!' + 'sdpcmd_dpc: Enable' · 'wl0: wlc_stf_txcore_shmem_write: No clock' · 'wlc_channels_commit: no valid channel for "#n"' · 'BCM4345 … 7.45.265 (28bca26 CY)' · WIFITRIALEND TRIALS_RUN=1/11 REPLIED=0

attempt-r148-console-full-uart-capture (tek boot, WHOLE BOOT, 60.174 bayt)

Kapattığı: "Dongle neden cevap vermiyor?" sorusunu KAPATIR: firmware'in kendi logu, çerçevemizin cihaz devre dışıyken gönderildiğini ve düştüğünü yazıyor. Ayrıca iki iç eksikliği bildiriyor: PHY/TX çekirdeğine saat yok ve geçerli kanal yok. Sıradaki adım R149 — Linux'un FORCE_HT değeri (0xd2).

Risk: Yok: salt-okunur (WRITES=0), nöbetçi temiz.

R149KoşulduC06 · C07 · C08

FORCE_HT indi ama firmware'in 'No clock'u sürüyor

Değişen tek şey: Tek değişken: HT beklemesinden sonra `CHIPCLKCSR`'ye Linux'un CR4 bırakılışı sonrası yazdığı `saveclk | FORCE_HT` değeri (0xd0 → 0xd2). Kayıt, konum (HT isteğinden sonra, host-hazır yazmasından önce) ve diğer her şey donuk.

Neden bu sırada: R148'in tam konsol logu firmware'in 'wl0: wlc_stf_txcore_shmem_write: No clock' yazdığını ve SDPCM veri yolunun kapanıp çerçevemizin 'device disabled' durumunda düştüğünü gösterdi; Linux'un aynı noktada yazdığı değer R139 izinde 0xd2.

IMAGE_SHA=3e348bd06eaa86223c7df9470e531a45f1f803bb762c57b8d7705174cab46d27 · WIFIFORCEHT ATTEMPTED=1 BEFORE=0xd0 WROTE=0xd2 WRITE_OK=1 AFTER=0xd2 · CR4START HT_CSR_FIN=0xd2 · WIFISHAREDCONSOLE_FULL SIZE=1024 IDX=375 READ=1024 PRINTABLE=992 · LOG: '000002.951 sdpcmd_dpc: Enable' … 'wl0: wlc_stf_txcore_shmem_write: No clock' (AYNEN) · WIFITRIALEND TRIALS_RUN=0/11 REPLIED=0

attempt-r149-force-ht-uart-capture (tek boot, WHOLE BOOT, 55.407 bayt)

Kapattığı: FORCE_HT'in firmware'in iç saat şikâyetini gidermediğini KAPATIR (ama veri yolu bu boot'ta kapanmadı). Sıradaki adım R150: D11/PHY çekirdeğini reset'te tutmayı bırakmak — 'No clock' satırının en doğrudan açıklaması.

Risk: Düşük gerçekleşti: tek bit; Linux'un ölçülmüş değeri yazıldı.

R150KoşulduC06 · C07 · C08

D11 reset'i kaldırıldı — firmware'in 'No clock'u KAYBOLDU

Değişen tek şey: Tek değişken: D11 (PHY/TX) çekirdeğinin reset'i, ioctl 0x07 yazıldıktan sonra kaldırılır (`BCMA_RESET_CTL ← 0`); reset aynı şekilde assert edilip doğrulanır. Linux'un R139 tel izinde D11 için hiç reset-ctl yazması yok.

Neden bu sırada: Firmware kendi logunda 'TX çekirdeği shmem'e yazamıyorum: saat yok' diyordu; reset'te tutulan çekirdeğin saati olmaz ve bu, firmware'in şikâyetiyle birebir örtüşen tek bizim-taraflı farktı.

IMAGE_SHA=7889fea1c1f8919182fcb96c0abbde04fdca7557ccfe10e391b65e8b406f541d · WIFID11RELEASE ATTEMPTED=1 RST_BEFORE=0x00000001 WROTE=0x00000000 RST_AFTER=0x00000000 RELEASED=1 · WIFISHAREDCONSOLE_FULLTEXT: 'No clock' satırı YOK · kalıp: 'sdpcmd_dpc: Disable' + 'sdpcmd_sendheader: tx submit failed!!' ×4 (6.082/9.048/12.014/14.979) · WIFITRIALEND TRIALS_RUN=4/11 REPLIED=0

attempt-r150-d11-release-uart-capture (tek boot, WHOLE BOOT, 76.580 bayt)

Kapattığı: Firmware'in çekirdek-saati eksikliğini KAPATIR: D11 reset'te tutulduğu için PHY/TX saati yokmuş, kaldırılınca 'No clock' kayboldu. Cevabı getirmez: veri yolu ~2,97 s'de bir kapanıyor ve çerçevemiz o pencerelerde gönderiliyor. Sıradaki adım R151 — iki zaman çizgisini hizalamak.

Risk: Orta-düşük gerçekleşti: D11 dizisine tek yazma eklendi, assert+doğrulama korundu ve sonuç ölçüldü.

R151KoşulduC06 · C07 · C08

Host zaman çizgisi kuruldu ama damgalar 0 (kaynak hatası)

Değişen tek şey: Ölçüm revizyonu: CR4 bırakılışı kaydedilir ve kritik host olayları (deneme başlangıcı/sonucu, kurtarma, konsol okuması) o andan itibaren ms ile damgalanır. Davranış değişmez.

Neden bu sırada: Firmware logu kendi damgalarını taşıyor, host tarafı damgasızdı; Disable'ın tetikleyicisi ölçülemiyordu.

IMAGE_SHA=b9b2560f26c6e1208b99a0de2f24c687822a5a2074ac0ef59d266fc2de7d2b27 · WIFITIMELINE T0_MS=2018624513 (ham sayac) · bütün T_MS=0 · konsolda 'No clock' VAR, 'tx submit failed' 0 kez · WIFITRIALEND TRIALS_RUN=0? (REPLIED=0)

attempt-r151-host-timeline-uart-capture (tek boot, WHOLE BOOT, 55.720 bayt)

Kapattığı: Altyapının kurulduğunu gösterir, ölçümü KAPATMAZ: ms kaynağı frekansı ilk çağrıda bulamadığı için T0 ham sayac oldu ve hizalama okunamadı. Düzeltme R152.

Risk: Yok: yalnızca damga; davranış aynı.

R152KoşulduC06 · C07 · C08

Zaman çizgileri hizalandı — Disable'ı BİZİM çerçevemiz tetikliyor

Değişen tek şey: Ölçüm revizyonu + düzeltme: `host_now_ms()` artık frekansı kendisi kaydettirir (`freq_cached()` makul değilse `timer::init()`), böylece T_MS alanları gerçek ms olur. Davranış, değerler, çerçeveler ve resetler aynı.

Neden bu sırada: R151'de ölçüm altyapısı kuruldu ama T0 ham sayac olduğu için bütün damgalar 0 çıktı; hizalama yapılamadı.

IMAGE_SHA=0d6349ce99ca3f35fb0ecbae3c774fb5aa7f0f88107cc07194e3e5ec42b4d7df · WIFITIMELINE T0_MS=196494 · TRIAL T_MS=5702/8686/11652/14619/17586 · RESULT T_MS=5752/8736/11703/14669/17636 · RECOVER T_MS=6101/9068/12035/15001/17968 · konsol: Disable+tx submit failed ×5 (firmware t=6.095/9.062/12.029/14.996/17.963 s) · fark SABİT ~326 ms · konsol okuması T_MS=35503 · WIFITRIALEND TRIALS_RUN=5/11 REPLIED=0

attempt-r152-timeline-fix-uart-capture (tek boot, WHOLE BOOT, 82.550 bayt)

Kapattığı: Veri yolunu neyin kapattığını KAPATIR: bizim kontrol çerçevemiz. Dongle çerçeveyi alıyor, sonra cihaz devre dışı kalıyor ve `sendheader` düşüyor. Cevaplanmayı getirmez: REPLIED=0. Sıradaki adım R153 — R136'da ölçülen tek çerçeve farkı: seq 0xFF vs Linux 0x02.

Risk: Yok: yalnızca ms kaynağı düzeltildi; davranış ve değerler aynı.

R153KoşulduC06 · C07 · C08

Seq baytı Linux'un değerine çevrildi — desen sürdü (hipotez elendi)

Değişen tek şey: Tek değişken: oturumun başlangıç SDPCM `tx_sequence` değeri 255 → 0. İlk kontrol çerçevesi böylece seq=0 taşır; artış kuralı (0,1,2…) ve çerçevenin diğer bütün baytları, glom geometrisi, BCDC dcmd (20. bayt), kayıtlar, saatler ve resetler donuk.

Neden bu sırada: R152'nin hizalı zaman çizgisi dongle'ın bizim çerçevemizi alıp veri yolunu kapattığını gösterdi; R136 mühründe kalan tek ölçülü çerçeve farkı seq baytıydı (Linux 0x02, bizde 0xFF).

IMAGE_SHA=c8a51ce7203b897e56b92e3b7ee0ddd04926da7e188152fcbd2ef83c7ee80b74 · WIFISEQ_PLAN ARMED=1 FIRST_SEQ=0 PREVIOUS=0xFF LINUX_MEASURED=0x02 · TRIAL=0 SEQ=0 REPLIED=0 T_MS=5765 · TRIAL=1 SEQ=1 REPLIED=0 T_MS=7098 · konsol: Disable + tx submit failed!! (t=6.106 s) · WIFITRIALEND TRIALS_RUN=1/11 REPLIED=0

attempt-r153-seq-zero-uart-capture-repeat-01 (2. boot; 1. boot non-arrival, 71.834 bayt)

Kapattığı: Seq numaralandırmasının tetikleyici olmadığını KAPATIR (hipotez elendi). Cevabı getirmez. Kalan aday kredi/pencere sözleşmesidir (TXWIN=21 bizim varsayımımız; dongle'ın ilan ettiği pencere hiç görülmedi) — R154.

Risk: Düşük gerçekleşti: tek bayt; tel biçimi ve geometri aynı kaldı (kredi hesabı trial 0'da 22 → 21 oldu, kayda geçti).

R154KoşulduC06 · C07 · C08

Ölçülen preinit çerçevesi: 'tx submit failed' deseni KAYBOLDU (karar için tekrar boot)

Değişen tek şey: Tek değişken: oturumun İLK kontrol çerçevesinin dcmd içeriği — bizim GET'imiz (cmd=262, id=1) yerine Linux'un mühürlü preinit çerçevesi: cmd=263, flags=0x00040002 (id=4, SET), len=20, veri `cur_etheraddr\0` + aynı kartta ölçülen 6 bayt MAC; reply kapasitesi 0. Tel biçimi (R136 glom, dat_offset=20, kuyruk dolgusu), seq=0, kayıtlar, saatler ve resetler donuk.

Neden bu sırada: R153 seq baytını eledi; geriye ilk çerçevenin içeriği kaldı. R152'nin hizalı zaman çizgisi veri yolunu kapatanın bizim çerçevemiz olduğunu göstermişti.

IMAGE_SHA=0d930016cab64c745088291621e130fccd82665f6ca9c4915eeff9b78df98024 · WIFIPREINIT USED=1 CMD=263 ID=4 SET=1 DATA_LEN=20 · WIFITRIAL_RESULT TRIAL=0 REQ_ID=4 CMD=263 FRAMELEN=56 XFER=56 BCDCLEN=20 SEQ=0 SENT=1 REPLIED=0 T_MS=5700 · konsolda 'Disable'/'tx submit failed!!' YOK · WIFISHAREDCONSOLE_FULL IDX=375 T_MS=21452

attempt-r154-preinit-first-uart-capture (1. boot, WHOLE BOOT, 56.000 bayt)

Kapattığı: İlk çerçevenin içeriğinin veri yolunu kapatma desenini durdurduğunu GÖSTERİR (ilk olumlu sinyal) ama cevabı getirmez; tek boot karar için yetmez. Sıradaki adım: aynı imajın 2. ve 3. boot'u.

Risk: Düşük gerçekleşti: yalnızca ilk çerçevenin dcmd içeriği değişti.

R155KoşulduC06 · C07 · C08

Kurtarma damgaları kuruldu; bu boot'ta Disable hiç olmadı

Değişen tek şey: Ölçüm revizyonu (davranış değişmez): `WIFIREAD_RECOVERY` makbuzuna CR4 bırakılışından itibaren monoton ms damgası (`T_MS=`) eklendi; zaman çizgisi yardımcıları tüm imajlarda derlenir, sıfır noktası yalnız ilgili özellik açıkken işaretlenir. Yeni yazma, kayıt değeri, çerçeve veya reset yok.

Neden bu sırada: R152/R154 deseni bizim çerçevemizden ~326–328 ms sonra geliyor ama her boot'ta gelmiyor; SDHCI hat sıfırlaması içeren kurtarma olaylarının zamanı bilinmiyordu.

IMAGE_SHA=4f7b59a7b91eae4b7d4a14e75c91c23e3fc52c3e79f9985473c26463aa8a7abe · WIFIREAD_RECOVERY T_MS=1 APPLIED=1 (PRIMARY_ERR=0x0020) ve T_MS=0 APPLIED=0 (0x0060) · TRIAL T_MS=5740/8707/11674/14640/17326 · konsolda Disable YOK, tx submit failed 0, No clock YOK · WIFITRIALEND TRIALS_RUN=4/11 REPLIED=0

attempt-r155-recovery-timeline-uart-capture (1. boot, WHOLE BOOT, 78.172 bayt)

Kapattığı: Ölçüm altyapısını KURAR (kurtarma zamanı artık biliniyor) ve desen varyansını belgeler (R152 5, R153 1, R154-1 0, R154-2 1, R155 0). Soruyu kapatmaz: bu boot'ta Disable hiç olmadığı için hizalama yapılamadı. Sıradaki adım R156 — tekrar boot'lar.

Risk: Yok: yalnızca damga; davranış ve değerler aynı.

R156KoşulduC06 · C07 · C08

Hizalama kapandı: Disable'ı ÇERÇEVEMİZ tetikliyor; glom pazarlığı yapılmamış

Değişen tek şey: Yeni değişken yok (aynı R155 imajının 2. boot'u): kurtarma T_MS'leri firmware Disable damgasıyla hizalandı.

Neden bu sırada: R155'te desen görülmemişti; hizalamanın tamamlanması için desenin görüldüğü bir boot gerekiyordu.

IMAGE_SHA=4f7b59a7b91eae4b7d4a14e75c91c23e3fc52c3e79f9985473c26463aa8a7abe · WIFIREAD_RECOVERY T_MS=1 APPLIED=1 ve T_MS=0 APPLIED=0 · WIFITRIAL_RESULT TRIAL=0 T_MS=5907 REPLIED=0 · konsol: '000006.239 sdpcmd_dpc: Disable … tx submit failed!!' (No clock var) · WIFITRIALEND TRIALS_RUN=1/11 REPLIED=0 · Linux preinit sırası: GET ulp_sdioctrl (glomsuz) → SET bus:rxglom=1 (glomsuz) → SET cur_etheraddr (glomlu)

attempt-r155-recovery-timeline-uart-capture-repeat-01 (2. boot, WHOLE BOOT, 64.275 bayt)

Kapattığı: Tetikleyicinin çerçeve olduğunu KAPATIR (kurtarma yolu elendi) ve yeni bir yapısal fark ölçer: Linux glom'u ikinci çerçevede pazarlık ediyor, bizim ilk çerçevemiz ise glomlu. R157 ölçülen preinit sırasını uygular.

Risk: Yok: yeni değişken getirmedi, aynı imajın tekrar boot'u.

R157KoşulduC06 · C07 · C08

Düzeltilmiş glom pazarlığı: preinit sırası yoklamanın öncesinde (temiz güç döngüsü bekliyor)

Değişen tek şey: Tek değişken: oturumun ilk üç kontrol çerçevesi Linux'un ölçülmüş preinit sırası — (1) GET `ulp_sdioctrl` GLOMSUZ (data_offset=12, seq=0, cmd=262, id=2, len=29 + 15 bayt cevap yeri), (2) SET `bus:rxglom`=1 GLOMSUZ (seq=1, cmd=263, id=3, len=15), (3) SET `cur_etheraddr`=MAC GLOMLU (glom ext, data_offset=20, seq=2, cmd=263, id=4, len=20). Glom yalnız pazarlıktan sonra kullanılır. İlk R157 boot'unda çağrı yeri yanlıştı (istek dalının içinde) ve sıra hiç çıkmadı; çağrı artık taşıma hazır olur olmaz, yoklamanın öncesinde çalışıyor.

Neden bu sırada: R156 hizalaması deseni çerçevenin tetiklediğini gösterdi; mühürlü Linux listesi ilk iki çerçevenin glomsuz olduğunu ve glom'un ikinci çerçevede pazarlık edildiğini ölçüyor — bizim ilk çerçevemiz glomluydu.

İki boot: IMAGE sha256 fccf3ee52e94038d6f521cbf9880f8e3e91425f2c5b0bba9c9f6795f751b408d (1.) ve 3b3f3a5ae2fa736ccc79f0c03527a447653580cc1d37eaf44820d2e0e2519af0 (düzeltilmiş, 2.) · WIFIPREINITSEQ SENT=0 (her ikisi) · WIFIFAIL frames_received=1-2 frame_ind_seen=1 host_int_seen=1 interrupt_status_or=192 · WIFIFAIL_RX FRAME_LEN=12 HEX=0c00f3ff0001000c00150000 (seq=0, kanal=1, yüksüz — dongle'dan okunan İLK çerçeve) · ERR=WriteFifo F2 0x8000 T_MS=3271 · TRIALS_RUN=0/11

attempt-r157-glom-negotiation-uart-capture (74.652 bayt) · attempt-r157-glom-negotiation-uart-capture-repeat-01 (52.302 bayt)

Kapattığı: Pazarlık sırası çıkarsa (SENT=3) ve konsolda Disable/tx-submit-failed kaybolursa glom pazarlığı kapanır; sıra çıkar ama desen sürerse kalan aday kredi/pencere sözleşmesidir; koşu F2 yazma hatasıyla kapanırsa o hata bir sonraki tek değişken olur.

Risk: Düşük: üç çerçevenin biçimi ve içeriği mühürlü ölçümden bayt bazında sabitlendi; sonraki çerçeveler ve tüm değerler aynı.

R158KoşulduC06 · C07 · C08

"Önce boşalt, sonra yaz" indi: F2 kapısına rağmen ilk yazma yine düştü

Değişen tek şey: Tek değişken: F2 yazması artık FIFO boşalana kadar erteleniyor — sıra `DRAIN_THEN_WRITE`, kapı `FIFO_IDLE`, kaynak R157'nin ikinci boot'undaki okuma (dongle'ın ilk çerçevesi) ve Linux'un `brcmf_sdio_bus_txdata` öncesi boşaltma sırası. Yeni yazma, kayıt değeri, çerçeve içeriği veya reset yok.

Neden bu sırada: R157'nin iki boot'u F2 yazma hatasının tekrarladığını gösterdi; ilk aday hatanın yazmadan hemen önce F2'de biriken dongle çerçevesinden kaynaklanmasıydı (okuma yapılmadan yazma denendiğinde FIFO meşgul olabilir).

IMAGE_SHA=0dc09cba370d4a28e06595a51cc061148cdfbcaca1fa18d458210e77f241efa4 · üç boot: WIFIDRAINFIRST_PLAN ARMED=1 ORDER=DRAIN_THEN_WRITE GATE=FIFO_IDLE (her üçünde) · 1. ve 2. boot RSTVEC_OK=0 (CR4 oturumu tamamlanmadı, yorumlanmadı) · 3. boot RSTVEC_OK=1 ALIAS_OK=1 RSTVEC_C53=1 RSTVEC_ERR=0x0000 · WIFITRIAL_RESULT TRIAL=0 SENT=0 REPLIED=0 FRAME_IND=1 HOST_INT=1 CORE_OR=0x000000c0 T_MS=3360 ERR=WriteFifo (F2 0x8000, present_state=0x01FF0000) · WIFIPREINITSEQ SENT=0 · WIFITRIALEND TRIALS_RUN=0/11

attempt-r158-drain-first-uart-capture (1. boot) · -repeat-01 (2. boot) · -repeat-02 (3. boot, 52.900 bayt)

Kapattığı: Hipotezi ELEDİ: boşaltma kapısı açıkken de ilk F2 yazması aynı hatayla düşüyor, yani hata F2'de bekleyen veriden gelmiyor. Koşu ayrıca hata anında denetleyicinin aktif-transfer durumunu ölçtü (present_state=0x01FF0000) ve bu R159'un adayını doğurdu.

Risk: Düşük: yalnızca yazmanın zamanlaması/kapısı değişti; çerçeve baytları ve tüm değerler aynı.

R159KoşulduC06 · C07 · C08

64 baytlık yazma birimi de duvarı açmadı; işaret denetleyici durumuna kaydı

Değişen tek şey: Tek değişken: glomsuz preinit çerçevelerinin F2 yazma birimi 4 baytlık hizadan Linux'un ölçtüğü 64 bayta çıkarıldı (`UNIT=64`, `PREVIOUS=ALIGN4`, kaynak R80/R136 izleri, `WRITES=3`). Çerçeve baytları, sıra, kimlikler ve tüm kayıt değerleri aynı.

Neden bu sırada: R158 boşaltmanın sorun olmadığını gösterdi; kalan geometri adayı yazma birimiydi — Linux aynı noktada 64 baytlık birimle yazıyor, biz 4 baytlık hizada kalıyorduk.

IMAGE_SHA=402bc5a783d474c49cbe567ef75f263d31329f3ddbb44edae9a98eaf3dcd8ec4 · WIFIF2UNIT_PLAN ARMED=1 UNIT=64 APPLIES=PREINIT_PLAIN_FRAMES PREVIOUS=ALIGN4 SOURCE=R80_R136_64B WRITES=3 · CR4START RSTVEC_OK=1 ALIAS_OK=1 RSTVEC_C53=1 RSTVEC_ERR=0x0000 IOCTL_TERM=0x00000001 (oturum kuruldu) · WIFIFIFORETRY FIFO_READS=3 RETRIES=0 · WIFITRIAL_RESULT TRIAL=0 SENT=0 REPLIED=0 FRAME_IND=1 HOST_INT=1 CORE_OR=0x000000c0 T_MS=3370 ERR=WriteFifo (F2 0x8000, present_state=0x01FF0000) · WIFIPREINITSEQ SENT=0 · WIFITRIALEND TRIALS_RUN=0/11

attempt-r159-f2-write-unit-uart-capture (1. boot, WHOLE BOOT, 52.947 bayt)

Kapattığı: Yazma birimi hipotezini ELEDİ: 64 baytlık birimle de ilk F2 yazması aynı hatayla ve aynı anda (T_MS≈3,37 s) düşüyor. Dört koşunun ortak paydası artık çerçeve değil, yazma anındaki denetleyici durumu: `present_state=0x01FF0000` write/read transfer active bitlerini gösteriyor. R160 bu durumu tek değişken yapar.

Risk: Düşük: yalnızca yazma birimi değişti; çerçeve içeriği, sıra ve değerler aynı.

R160KoşulduC06 · C07 · C08

Duvar bizim kabul kuralımızdı: ölçülen preinit sırası ilk kez tamamen çıktı

Değişen tek şey: Tek değişken: R159'un mühürlü `WIFIREAD` makbuzunun ölçtüğü sınıfın kabul kuralı — F2 yazması (a) `WriteFifo`, (b) `reason=Transfer`, (c) `ISSUED+COMMAND_COMPLETE+BUFFER_READY+TRANSFER_COMPLETE`, (d) istenen bayt sayısı tam, (e) hiç zaman aşımı ve meşgul bayrağı yok, (f) `error_status == ERR_DATA_CRC` (yalnız bit 5, başka bit yok), (g) `r5_flags & R5_ERROR_MASK == 0`, (h) pencere tam ise FATAL değil; sayılır, basılır ve devam edilir. Başka her yazma hatası fatal kaldı (`WRITE_FAULTS`). Çerçeve baytları, 64 baytlık birim, sıra, geometri ve tüm kayıtlar aynı.

Neden bu sırada: R159'un makbuzu yazmanın kart tarafından reddedilmediğini ölçtü: aktarım bitti, bayt sayısı tam, R5'te hata yok; tek şikâyet SDHCI veri CRC bayrağıydı ve `error_status == 0` kuralı bu yüzden dört koşudur sırayı birinci çerçevede öldürüyordu.

IMAGE_SHA=f0185b74794ae09164fc9ca6545ec5f8d808d522cd8be413505ec9f2dab2d599 · WIFIF2CRC_PLAN ARMED=1 RULE=CRC_ONLY_COMPLETED … SILENT_ACCEPT=0 · WIFIF2CRC ACCEPTED=1 ×3 (REQUESTED=64 BYTES=64 R5_FLAGS=0x10 R5_ERROR=0 ERR_STATUS=0x0020 TIMEOUTS=0 WINDOW_OK=1) · WIFIPREINITSEQ SENT=3 EXPECTED=3 CRC_ACCEPTED=3 WRITE_FAULTS=0 · konsolda Disable 0, tx submit failed 0; günlük `000003.092 sdpcmd_dpc: Enable` ile bitiyor · sonraki (56 baytlık kontrol) yazmada aynı sınıf: WIFIREAD BYTES_READ=56 ERROR_STATUS=0x0020 TRANSFER_COMPLETE=1, WIFITRIAL_RESULT T_MS=3475 CORE_OR=0x000000c0, WIFITRIALEND TRIALS_RUN=0/11 REPLIED=0

attempt-r160-f2-crc-accept-uart-capture (1. boot, WHOLE BOOT, 54.133 bayt)

Kapattığı: Hipotezi DOĞRULADI: preinit sırasını durduran şey kart değil, bizim tamlık kuralımızdı; sıra tamamen çıktı ve firmware veri yolunu artık kapatmıyor. Kalan duvar kuralın kapsamıdır — aynı sınıf sıradan kontrol çerçevesinin yazmasında (`send_control`) hâlâ fatal.

Risk: Düşük: yalnız kabul kararı değişti; hiçbir bayt, kayıt veya geometri değişmedi ve kabul sessiz değil (bayrak + sayaç + satır).

R161KoşulduC06 · C07 · C08

Yol açıldı: 3 deneme koştu; firmware her çerçevemizi `device disabled` ile reddediyor

Değişen tek şey: Tek değişken: R160'ta preinit sırası için doğrulanan kabul kuralının KAPSAMI — aynı saf kural (`crc_only_completed_write`) artık sıradan kontrol çerçevesinin F2 yazmasında da geçerli ve her kabul ayrı sayılıyor (`control_crc_accepted`). Kuralın kendisi, çerçeve baytları, 64 baytlık birim, sıra ve geometri aynı kaldı.

Neden bu sırada: R160 koşusu tam bu duvarda düşmüştü: aynı ölçülen sınıf 56 baytlık kontrol çerçevesi yazmasında geliyordu ve `send_control` onu hâlâ fatal sayıyordu.

IMAGE_SHA=5642a8bbea0fe105762a91d2ca8c018229078d0826e3b36869f67d59f64b72ce · 1. boot CR4 oturumunu tamamlamadı (RSTVEC_OK=0, yorumlanmadı) · 2. boot RSTVEC_OK=1 RSTVEC_C53=1 · WIFIF2CRCSCOPE ACCEPTED_PREINIT=3 ACCEPTED_CONTROL=1 WRITE_FAULTS=0 · WIFIF2CRC ACCEPTED=1 ×4 (REQUESTED=64 ×3, REQUESTED=56 ×1; hepsi R5_ERROR=0 ERR_STATUS=0x0020 SILENT_ACCEPT=0) · WIFIPREINITSEQ SENT=3 CRC_ACCEPTED=3 · WIFITRIALEND TRIALS_RUN=3/11 REPLIED=0 · denemeler ControlTimeout (AGE_MS=2500) · konsol: `000003.118 Enable`, sonra her çerçevemizde `Disable` + `sdpcmd_tx: device disabled` + `sdpcmd_sendheader: tx submit failed!!` (6.303/9.287/12.267 s) · 4. denemede F1 Read32 0x18004020 düştü (PRESENT_STATE=0x01ff0206)

attempt-r161-f2-crc-scope-uart-capture (1. boot, YORUMLANMADI) · -repeat-01 (2. boot, WHOLE BOOT, 75.049 bayt)

Kapattığı: Kapsam hipotezini DOĞRULADI ve F2 yazma duvarını tamamen kapattı: taşıma 0/11'den 3/11'e ilerledi. Yeni duvar artık kart değil firmware sözleşmesi: dongle çerçevemizi alıyor ama SDPCM TX yolu `device disabled`. Ayrıca R160'ın "konsolda Disable yok" gözleminin boot varyansı olduğu bu boot'ta ölçüldü (Disable 3).

Risk: Düşük: kural aynı ve saf; yalnız kapsam genişledi, her kabul bayrağıyla basıldı ve sayıldı.

R162KoşulduC06 · C07 · C08

Kimlik devam ettirildi (id 5→14, tekrar yok); süpürme 9/11'e ilerledi, duvar aynı

Değişen tek şey: Tek değişken: preinit sırasından SONRA gelen kontrol çerçevelerinin KİMLİĞİ — dcmd id preinit'in kullandığı 2,3,4'ten sonra 5'ten devam eder ve her çerçevede artar (`CTRL_ID_FIRST_AFTER_PREINIT`); ayrıca R154'ün ilk-çerçeve geçersiz kılması, preinit sırası o çerçeveyi zaten gönderdiyse artık uygulanmaz (tekrar yok). Bayt biçimi, uzunluk, 64 baytlık birim, kabul kuralı ve kayıtlar aynı.

Neden bu sırada: R160/R161 makbuzları aynı üç isteğin iki kez gittiğini ölçüyordu (id 2,3,4 sonra 4,2,3,4 — hem tekrar hem azalan), mühürlü Linux çerçeve listesinde ise id her istekte artıyor (0x8f, 0x90, 0x91 …); dongle tam o tekrar çerçevelerde SDPCM TX'ini kapatıyordu.

IMAGE_SHA=ac24e6352d1f7a3cab592d9f3826cc55ef118c88a05f9501a5cbef025befc865 · WIFICTRLID_PLAN ARMED=1 RULE=MONOTONIC_UNIQUE FIRST_ID=5 PREINIT_IDS=2,3,4 REPEAT=0 · WIFICTRLID CONTINUED=10 · WIFITRIAL_RESULT REQ_ID=5,6,7,8,9,10,11,12,13,14 (hepsi CMD=262) SENT=1…10 REPLIED=0 T_MS=5976…32398 · WIFITRIALEND TRIALS_RUN=9/11 REPLIED=0 · WIFIF2CRCSCOPE ACCEPTED_PREINIT=3 ACCEPTED_CONTROL=6 WRITE_FAULTS=0 · konsol: her denemede (≈2,98 s) `Disable` + `sdpcmd_tx: device disabled` + `sdpcmd_sendheader: tx submit failed!!` + `Enable` · masa: last_tx_evidence Linux'un mühürlü `SET cur_etheraddr` çerçevesiyle aynı yerleşim (HW 3800c7ff, glom 34000001/00000000, doff=20)

attempt-r162-ctrl-id-continuation-uart-capture (1. boot, WHOLE BOOT, 109.996 bayt)

Kapattığı: Kimlik hipotezini ELEDİ ama taşımayı ilerletti (3/11 → 9/11). Duvarın çerçeve kimliğinde/içeriğinde olmadığını, dongle'ın SDPCM TX kapısında olduğunu ölçtü; masa karşılaştırması çerçeve biçimini de eledi, geriye host'un kesme/posta-kutusu kablolaması kaldı.

Risk: Düşük: yalnız id alanı ve ilk-çerçeve geçersiz kılmasının koşulu değişti; hiçbir bayt düzeni, kayıt veya geometri değişmedi.

R163KoşulduC06 · C07 · C08

Duvar toggle'dı: dongle artık SDPCM TX'ini kapatmıyor; kalan duvar F1 okuması

Değişen tek şey: Tek değişken: yazma öncesi fonksiyon-2 yaşam döngüsü "önce SOR" olur — F2 zaten açık (`IO_ENABLE` biti) ve READY (`IO_READY` biti) ise dongle'ın SDIO cihazı kapatılmaz; R131 disable/ready-clear/enable/ready-set dizisi yalnız F2 gerçekten hazır değilse, değişmeden uygulanır. Çerçeve baytları, 64 baytlık birim, kimlik devamlılığı, kabul kuralı ve diğer tüm kayıtlar aynı.

Neden bu sırada: R162'nin mühürlü kaydı, her deneme öncesi yapılan toggle'ın dongle'ın `sdpcmd_dpc: Disable` + `sdpcmd_tx: device disabled` + `sdpcmd_sendheader: tx submit failed!!` üçlüsüyle milisaniye düzeyinde çakıştığını ölçtü (≈2,98 s periyot, tam bizim deneme kadansımız); toggle yapmayan preinit yazmalarında ise o üçlü hiç görünmüyordu.

IMAGE_SHA=afd84d4bd34a6bff2150445be13388274d2ef6d742291576bcb51a0241316fea · 2. boot NETBOOT KONTROLÜ: bootloader `Boot mode: NETWORK (02) order f1` dedi ve config.txt + DTB + **çekirdek (3.882.720 bayt)** + epoch blob’u + overlay’i Mac’ten TFTP ile çekti (`TFTP_GET` satırları, DHCP 10.42.0.1); SD kart hiç kullanılmadı. Aynı koşu netboot’un ortaya çıkardığı bağımlılığı da ölçtü: `FWREAD PART_LBA=0 VOL_OK=0` (SD boot’ta `PART_LBA=32768 VOL_OK=1`) — çekirdeğin SD okuması, kartın bootloader tarafından önceden başlatılmış olmasına sessizce bağımlıymış · WIFIF2READYFIRST_PLAN ARMED=1 RULE=VERIFY_THEN_TOGGLE · WIFIF2READYFIRST SKIPPED_THIS_TRIAL=1 ACTION=VERIFY_ONLY · WIFIF2REENABLE ATTEMPTED=1 BEFORE_ENABLE=Some(6) DISABLE_OK=0 READY_CLEAR=0 ENABLE_OK=0 READY_SET=0 (toggle hiç yapılmadı) · konsol: Disable=0 tx submit failed=0 (R162: 6 / 8) · WIFIPREINITSEQ SENT=3 CRC_ACCEPTED=3 WRITE_FAULTS=0 · WIFIF2CRCSCOPE ACCEPTED_PREINIT=3 ACCEPTED_CONTROL=2 · WIFICTRLID CONTINUED=2 REPEAT=0 · WIFITRIAL_RESULT TRIAL=0 SENT=1 REPLIED=0 ControlTimeout; TRIAL=1'de F1 Read32 0x18004020 düştü (PRESENT_STATE=0x01ff0206) · WIFITRIALEND TRIALS_RUN=1/11 · WIFIAUTORESET ARMED=1 PETS=7 COMMANDS=0 RADIO_REGISTERS=0

attempt-r163-f2-ready-first-uart-capture (1. boot, WHOLE BOOT, 70.169 bayt)

Kapattığı: Toggle hipotezini dongle konsolunda DOĞRULADI (Disable 6→0): yazma yolu artık dongle'ın TX'ini kapatmıyor. Kalan duvar F1 okuma yoludur (INTSTATUS okuması kart meşgulken düşüyor) ve cevap hâlâ yok (`REPLIED=0`). Ayrıca hands-free otomasyonu (PM watchdog + sürekleme) ilk kez donanımda doğrulandı: ARMED=1, PETS=7, yanlış reset yok.

Risk: Düşük: yalnız toggle koşullu hale geldi; yaşam döngüsü silinmedi ve hazır değilse aynı. İmaj ayrıca radyo-dışı otomasyon bayrağı taşıyor (makbuzda RADIO_REGISTERS=0).

R164KoşulduC06 · C07 · C08

Netboot hattı çalıştı: payload ağdan indi, radyo zinciri SD ile aynı noktaya geldi

Değişen tek şey: Altyapı (radyo değişkeni YOK): Wi-Fi payload'ı — BRCMFW.BIN, BRCMNVR.TXT, BRCMCLM.BLB — çekirdekle aynı yoldan, firmware'in `initramfs` mekanizmasıyla ağdan taşınır. Boot blob'u 32 baytlık epoch + `ASLNPAY1` konteyneridir (kayıt başına offset/uzunluk/CRC-32/SHA-256; evrensel duvar saati ABI'si değişmez). Çekirdek önce FAT yolunu dener, yalnız kullanılamıyorsa konteynerden okur; her kaydın CRC'si yeniden hesaplanır. Çerçeve, sıra, kabul kuralı ve radyo kayıtları değişmez.

Neden bu sırada: Ağ boot'unda bootloader SD karta hiç dokunmuyor: `FWREAD PART_LBA=0 VOL_OK=0 FOUND=0` ölçüldü ve firmware yüklenemediği için radyo zinciri hiç başlamadı. Soğuk-kart SD başlatması dört netboot koşusunda uçtan uca denendi (ray açık `RAIL_VCC=1 RAIL_3V3=1`, denetleyici sıfırlandı `PSTATE_A=0x1fff0000 INHIBIT_CLR=1`, saat kararlı, 74 darbe, güç döngülü tekrar `RETRIES=1`) ve kart yine CMD0'a cevap vermedi (`CMD0=0`); dört olay `evidence/rpi5/radio/boot-incidents/` altında mühürlendi. Bağımlılığı kovalamak yerine kaldırmak seçildi.

KOŞTU (netboot): `FWPAYLOAD PRESENT=1 ADDR=0x10000000 WINDOW=1048576 ENTRIES=3 VERSION=1 SOURCE=INITRAMFS` · `FWPAYLOAD FW SRC=INITRAMFS BYTES=609309 SECTORS=1190 FIRST_WORD=0xb83ef198 CRC32=0xb8b12ced SHA256=d608f866…36c3 VERIFIED=1` (SD yolundan okunanla birebir aynı imza) · `FWPAYLOAD NVRAM … VERIFIED=1` ve `CLM … VERIFIED=1` · `FWSTAGE SECTORS_DONE=1190 OK=1` · `NVRAM FOUND=1 VERIFIED=437 OK=1 FW_INTACT=1` · `CR4START RSTVEC_OK=1 RSTVEC_C53=1` · `WIFIPREINITSEQ SENT=3 CRC_ACCEPTED=3` · `WIFITRIALEND TRIALS_RUN=1/11 REPLIED=0` · `WIFISCAN_RESULT STATUS=ERROR ERROR=Session(CommandDeadline(Mac))` · `WIFIAUTORESET ARMED=1`. Kart KULLANILMADI (bootloader `Boot mode: NETWORK (02)`). İmaj sha256 `d878ee04a6591eb37964d26fc49a95cdc377430eea787aeb75aeed5e1dfeae88` · `build/rpi5-wifi-scan-r164/aselsanos-rpi5-radio.img` · yayın: `PUBLISHED.txt` (kernel_sha256 aynı) · şimdiye kadarki dört netboot boot'u **varışsız** ve `evidence/rpi5/radio/boot-incidents/` altında mühürlü (hizalama panic'i, devralınan DAT inhibit, tam soğuk-başlatma tanılaması, DTB fault'u) · beklenen: `FWPAYLOAD PRESENT=1 ADDR=0x10000000 WINDOW=1048576 ENTRIES=3 SOURCE=INITRAMFS`, ardından `FWPAYLOAD FW SRC=INITRAMFS BYTES=609309 SHA256=d608f866…36c3 VERIFIED=1`, `FWPAYLOAD NVRAM SRC=INITRAMFS`, `FWPAYLOAD CLM SRC=INITRAMFS` ve `FWSTAGE … OK=1` + `NVRAM … OK=1`; sonra radyo zinciri SD boot'takiyle aynı makbuzları vermeli. SD boot'ta bu dal hiç çalışmaz.

attempt-r164-initramfs-payload-uart-capture (1. boot, NETBOOT, WHOLE BOOT)

Kapattığı: Payload ağdan yüklenip radyo zinciri başladı: firmware'in SHA-256'sı SD yolundan okunanla birebir aynı (`d608f866…36c3`), CR4 oturumu kuruldu ve süpürme SD boot ile aynı ilk-deneme davranışını verdi (`TRIALS_RUN=1`, `REPLIED=0`); ikinci deneme yeni bir adla kapandı: `Session(CommandDeadline(Mac))`. Eller serbest hat tamamlanır: çekirdek ve payload TFTP'den, reset PM watchdog/UART ile, kart hiç takılmasa bile. Başlamazsa konteyner/CRC makbuzu hangi kaydın düştüğünü adıyla söyler. R163'te ölçülen F1 okuma yolu değişkeni (INTSTATUS okuması kart meşgulken düşüyor) bu altyapı işi nedeniyle bir sonraki radyo basamağına, R165'e taşındı.

Risk: Düşük: FAT yolu önce denenir ve SD boot'ta davranış bit bit aynı kalır; konteyner yalnız FAT kullanılamadığında okunur. Taşınan beyan (SHA-256) CRC doğrulanmadan makbuza geçmez.

R165Planlı — kodlanmadıC06 · C07 · C08

Radyo hattı: F1 okuma yolu (INTSTATUS okuması kart meşgulken düşüyor)

Değişen tek şey: Planlı tek değişken (radyo): SDIO çekirdeği INTSTATUS okuması (F1 CMD53, 0x18004020) için sınırlı okuma kurtarması — R144/R145'in F2 FIFO'suna uyguladığı kuralın aynısı (taşıma katmanının zaten yaptığı sınırlı kurtarmadan sonra BİR yineleme; ikinci hata fatal; sayaçlar makbuza). Çerçeve baytları, geometri, kabul kuralı ve kimlik devamlılığı değişmez.

Neden bu sırada: R163 koşusu burada kapandı: `WIFIREAD OP=Read32 FN=1 ADDR=0x18004020 REASON=Transfer PRESENT_STATE=0x01ff0206` (DAT_INHIBIT|DAT_LINE_ACTIVE) ve `WIFITRIALEND TRIALS_RUN=1/11`. Okuma kurtarması bugüne kadar yalnız F2 FIFO'suna uygulandı (`WIFIFIFORETRY`); INTSTATUS okumasına hiç uygulanmadı. R164 altyapı işi (netboot payload) bu basamağı geciktirdi, değiştirmedi.

Planlı — R164 koşusundan ölçülen taban: `WIFITRIAL_RESULT TRIAL=1 … ERR=Session(CommandDeadline(Mac)) T_MS=9008` (ve R163'te `WIFIREAD OP=Read32 FN=1 ADDR=0x18004020 PRESENT_STATE=0x01ff0206`). Beklenen: yeni makbuz `WIFIINTREADRETRY`/zaman bütçesi; süpürme TRIALS_RUN>1'e ilerler ya da yeni hata adı tek değişkeni belirler.

Planlı — R164 koşusundan sonra imaj üretilecek

Kapattığı: Okuma kurtarması yolu açarsa süpürme tamamlanır ve cevap/konsol deseni ölçülür; açmazsa hata adı yeni duvarı verir (ör. kart gerçekten meşgulse bekleme/kredi sözleşmesi).

Risk: Düşük: kural R144/R145'te aynen doğrulandı (tek yineleme, ikinci hata fatal); yeni yazma veya kayıt değeri yok.

BT-1Ayrı hat — CR4'ten bağımsızC18

Bluetooth patchram (.hcd) hattı

Değişen tek şey: BCM4345C0.raspberrypi,5-model-b.hcd karta konur; HCI Reset'ten sonra patchram indirme dizisi eklenir.

Neden bu sırada: 83 mühürlü koşuda TX=4 / ANSWERED=0. Linux aynı çipi BCM4345C0 diye tanıyıp bu yamayı yüklüyor; dosya bizde yok. Wi-Fi CR4 duvarıyla değişken paylaşmaz, paralelde yürütülebilir.

BTHCI ANSWERED= PATCH_BYTES= PATCH_OK=

Kapattığı: C18.

Risk: Düşük — ayrı UART, ayrı çip bloğu. Wi-Fi yolunu etkilemez.

Bu merdiven bir söz değil, bir sıradır. Her basamak tek değişkenlidir ve kendi mühürlü makbuzunu bırakır; koşulmadan hiçbiri PASS sayılmaz. Bir basamak kendinden sonrakini geçersiz kılabilir: R96 geçerlilik ön koşuludur ve sonucu, kendisinden önce alınmış CR4 ölçümlerinin nasıl okunacağını değiştirebilir. Basamaklar bittiğinde Wi-Fi çalışıyor olmayabilir — bu liste, çalışmıyorsa NEDENİNİ bilmemizi sağlar.

Masabaşı koşuları ve R95 aday imajı

Bir koşunun cihaz gerektirmemesi onu değersiz yapmaz — tekrar üretilebilir olması yapar. Aşağıdaki koşular mühürlü bir Linux izini girdi alır, kendi makbuzunu bırakır ve bir sonraki fiziksel koşunun neyi arayacağını belirler.

M1Masabaşı — fiziksel PASS değil2026-09-09

CR4 TCM boyutu R80 Linux izinden ölçüldü

Girdi: evidence/rpi5/radio/attempt-r80-linux-sdio-trace/trace.txt — aynı fiziksel Pi 5'te Linux/brcmfmac'in bıraktığı ftrace SDIO izi (91.718 satır).

python3 scripts/decode-rpi5-r80-linux-sdio-trace.py

MMC1_CMD52=12009 MMC1_CMD53=4198 FN1_FLAGGED=1991 FN1_UNFLAGGED=0
RAM_WRITE_LOW=0x00198000 RAM_WRITE_TOP=0x00260000 RAMSIZE=0xC8000
CHIPCLKCSR_WRITES=0x28 0x28 0x21 0x00 0x08 0x00 0x10 0xd2 0x02
CCCR_IOEN_WRITES=0x02 0x02 0x06
CR4CORE_OPS=17  R0x18002004 W0x18002040 R0x18002044 (×8)
SON_RAM_YAZMALARI=0x00228000+19456 0x0022CC00+32 0x0025F92C+1728 0x0025FFEC+20

RAM tabanı aynı, RAM boyu 160 KiB farklı

RAM_WRITE_LOW=0x00198000, AselsanOS'un TCM_RAMBASE değeriyle birebir. RAM_WRITE_TOP=0x00260000 ise bizim TCM_TOP'umuzdan (0x238000) 0x28000 = 160 KiB yüksek. Son iki RAM yazması NVRAM'dir: 0x25F92C+1728 ve 0x25FFEC+20 = 1748 bayt, tam 0x260000'da biter. Biz aynı 1748 baytı 0x23792C'ye yazıyorduk.

ramsize çipten okunuyor, tablodan değil

CR4CORE_OPS deseni: bir kez R 0x18002004 (ARMCR4 CAP), ardından sekiz kez W 0x18002040 (BANKIDX) + R 0x18002044 (BANKINFO). Bizim kodda bu tarama hiç yoktu; ramsize 'firmware sığsın' diye 0xA0000 seçilmişti — kaynaktaki yorum bunu kendisi söylüyordu.

Linux'un backplane erişimlerinin tamamı 4-bayt bayraklı

FN1_FLAGGED=1991, FN1_UNFLAGGED=0. Fonksiyon-1 üzerinden yapılan tek bir bayraksız backplane CMD53'ü yok. Bu, taşıma adaylarının (C05/C06) dayanağıdır.

Çekirdek bırakıldıktan sonra HT isteniyor; FORCE_ALP hiç kullanılmıyor

CHIPCLKCSR yazma dizisinde 0x01 (FORCE_ALP) biti hiç yok. İndirme tutamağı 0x08, release sonrası 0x00 → 0x10 (HT_AVAIL_REQ). AselsanOS 0x09 yazıp bırakıyor (CLK_CSR=0x49).

Fonksiyon 2 açılıyor

CCCR_IOEN_WRITES=0x02 0x02 0x06 — son yazma F1+F2. AselsanOS yalnız F1'i açıyor, dolayısıyla Linux'un asıl firmware-hazır tanığı (IOR2) bizde hiç ölçülmemiş.

İddia EDİLMEYEN: Bu koşu CR4'ün NEDEN başlamadığını KANITLAMAZ. Yalnızca beş ölçülebilir farkı sabitler. Hangisinin nedensel olduğu ancak tek değişkenli fiziksel koşularla belirlenir. Wi-Fi PASS değildir; tarama, bağlanma ve SSID yoktur.

evidence/rpi5/radio/desk-r95-tcm-ramsize/

R121Masabaşı — fiziksel PASS değil2026-09-12

Linux'un ilk BCDC kontrol çerçevesi öncesi hazırlık bloğu

Girdi: evidence/rpi5/radio/attempt-r80-linux-sdio-trace/trace.txt — mühürlü Linux/brcmfmac SDIO izi. Cihaz, kart ve güç döngüsü yok.

python3 scripts/diff-r80-linux-control-prereq.py

sdio_host=mmc1 (CMD53 var, CMD18 yok)
first_control_frame t=25.983573 fn=2 W byte incr=1 addr=0x08000 count=48
prereq_window=[25.964176, 25.983573]
Linux WATERMARK=0x08  WAKEUPCTRL=0x02  CCCR 0x000f0=0x06  INT_ENABLE=0x03→0x07

Kontrol çerçevesinin yeri ve geometrisi Linux ile aynı

Linux: fn=2 W byte incr=1 addr=0x08000 count=48. AselsanOS: cmd53_write(fn=2, byte, incr=true, 0x8000, 48) → FRAMELEN=48 XFER=48. Fonksiyon-2 okumalarında her iki taraf da incr=0 kullanıyor. 'Yanlış yere ya da yanlış geometriyle yazıyoruz' bu izle kapandı.

Hazırlık bloğunda dört ölçülmüş fark

fn1 WATERMARK Linux 0x08 / biz 0x60; fn1 WAKEUPCTRL Linux 0x02 / biz yazılmıyor; fn0 CCCR 0x000f0 Linux 0x06 / biz yazılmıyor; fn0 CCCR INT_ENABLE Linux 0x03 sonra 0x07 / biz hiç yazılmıyor (R115–R120 IEN=Some(0)). Her fark ayrı tek-değişkenli fiziksel revizyondur; R122 birincisini denedi ve D11'de kırıldı.

İz CMD53 veri baytlarını taşımaz

Karşılaştırma komut argümanlarınadır. SDPCM/BCDC başlık alanlarının ve seq'in Linux ile aynı olup olmadığı bu izle doğrulanamaz.

İddia EDİLMEYEN: Kök neden ilanı yoktur. Dört farkın hiçbiri bu belgeyle nedensel sayılmaz. Wi-Fi PASS değildir; tarama, bağlanma ve SSID yoktur.

docs/radio/R121-linux-control-prerequisite-diff.md

R135Masabaşı — fiziksel PASS değil2026-09-13

İkinci F2 yazmasının byte-count şekli Linux ile aynı değil

Girdi: evidence/rpi5/radio/attempt-r80-linux-sdio-trace/trace.txt — mühürlü Linux/brcmfmac SDIO izi; artı R129–R134 mühürlü makbuzları. Cihaz, kart ve güç döngüsü yok.

— (yorum notu: CMD53 argüman çözümlemesi doğrudan R80 izi üzerinde, docs/radio/R135-second-write-shape-desk.md içinde tarifli)

Linux fn=2 adres=0x8000 yazmaları — TAMAMI byte-mode: 64B ×1456, 2B ×365, 296B ×49, 456B ×38, 40B ×16, 448B ×12, 480B ×10, 504B ×7, diğerleri (8..496) 12 toplam
Linux fn=2 adres=0x8000'e HİÇ 48 bayt yazmıyor
AselsanOS: fifo_transfer(48) → byte-mode, sayım=48; makbuz WIFIREAD OP=WriteFifo ... BYTES_READ=48 ERROR_STATUS=0x0020

Kısa-çerçeve yazma birimi 64 bayttır

R80 izinde fn=2 adres=0x8000 yazmalarının tamamı byte-mode; baskın kısa birim 64 bayt (1456 adet). Okuma tarafı çoğunlukla blok kiptedir (56×143, 48×35, 40×14, …).

Bizim düşen yazmamız 48 bayt byte-mode gidiyor

length % 512 != 0 → block_mode=false, count=48; SDHCI blk_size=48, blk_count=1. İlk (başarılı) yazma da 48 bayttır — fark tek başına 'ikinci düşer, ilki düşmez'i açıklamaz; ancak eleme zincirinde kalan tek trace-görünür şekil farkıdır ve data-CRC'nin üretildiği transferin kendi parametresidir.

Seçilen tek değişken (R135)

İkinci (yeniden kurulan) yazmanın byte sayısı 48 → 64 (16 bayt sıfır dolgu), byte-mode aynı kalır. İlk yazma DEĞİŞMEZ. R134'ün elenen send-sınırı reset'i zincirden çıkarılır (R25 emsali: elenen eylem alınır, makbuz alanı korunur); R129–R133 zinciri aynen durur. Yeni kayıt yazması yok, kart komutu yok.

İddia EDİLMEYEN: 64'lerin içeriği çerçeve çerçeve eşleştirilmedi; '48'in hiç olmaması' pozitif bir ölçümdür, 'Linux aynı kontrol çerçevesini 64'e doldurur' en güçlü okumadır (SDPCM çerçevesi kendi uzunluğunu başlığında taşır; dolgu baytları protokol için anlamsızdır). Wi-Fi PASS değildir; cihazda hiçbir şey yapılmadı.

docs/radio/R135-second-write-shape-desk.md

R95KOŞULDU — Kapı 1 ve 2 PASS, Kapı 3 negatif

CR4 TCM boyutu çipten ölçülüyor (NVRAM ve yürütme tanığı gerçek RAM tepesine taşınıyor)

Sonuç: Cihazda koşuldu (2026-09-09; mühürlü paket attempt-r95-tcm-ramsize-uart-capture, 27876 bayt, kapsam TAM — bootloader banner'ından TOUCHREADY'ye kadar). KAPI 1 PASS: çip CAP=0x00000b44 → BANKS=8 → RAMSIZE=0x000c8000 dedi ve bu EXPECT_R80=0x000c8000 ile birebir tuttu; yani ölçüm, R80 izinden BAĞIMSIZ olarak doğrulandı. KAPI 2 PASS: NVRAM ADDR=0x0025f92c (eskiden 0x0023792c), TOKEN_OK=1, VERIFIED=437, OK=1, FW_INTACT=1 — adres düzeltmesi yüklemeyi bozmadı. KAPI 3 NEGATİF: MBOX=0, INTSTAT=0, EXECUTED=0, HT_AVAIL=0, STARTED=0. SONUÇ: C01 ve C03 KAPANDI, C02 kalıcı bir kazanç oldu (ramsize artık ölçülüyor), sıra C04'e geçti.

Değişen: TCM_RAMSIZE artık elle yazılan bir sabit değil. EROM'dan gelen CR4 çekirdek tabanı kullanılarak ARMCR4 CAP okunuyor, banka sayısı çıkarılıyor ve her banka için BANKIDX yazılıp BANKINFO okunarak boyut toplanıyor — R80 izinde Linux'un yaptığı dizinin aynısı. Ölçüm geçerliyse NVRAM'in yazıldığı adres ve yürütme tanığının okunduğu adres bu tepeye taşınıyor; geçersizse eski 0xA0000 fallback korunuyor ve makbuz bunu MEASURED=0 diye bildiriyor.

Yazma kapsamı: Ölçümün yaptığı TEK yazma BANKIDX (CR4 çekirdek tabanı + 0x40) indeks kaydınadır ve Linux aynı yazmayı aynı adrese yapar. Yeni bir kontrol kaydı, yeni bir reset varyantı, yeni bir saat ya da PMU yazması YOKTUR. Bir kaynak testi ölçümün BANKIDX dışında yazma yapmadığını sayarak pinler.

build/rpi5-radio/aselsanos-rpi5-radio.img · sha256 7b7b7f2a4dc1ebe9e20bad4fac73ccc16c8eae73438f15960063e36c888ce565

ASELSAN/CR4RAM CORE=0x???????? CAP=0x???????? BANKS=? RAMSIZE=0x???????? MEASURED=? TOP=0x???????? ACTIVE_TOP=0x???????? FALLBACK=0x000a0000 EXPECT_R80=0x000c8000

Kabul kapıları

  • Kapı 1 (ölçüm): MEASURED=1 ve RAMSIZE=0x000C8000 — banka taraması, R80 izinden bağımsız olarak aynı sayıyı verir. Bu tek başına değerli bir sonuçtur: sabit bir tahminin yerini ölçüm alır.
  • Kapı 2 (yerleşim): ASELSAN/NVRAM ADDR=0x0025f92c (eskiden 0x0023792c) ve FWSTAGE/NVRAM hâlâ OK=1, FW_INTACT=1 — yani adres düzeltmesi yüklemeyi bozmadı.
  • Kapı 3 (asıl soru): MBOX, INTSTAT, HT_AVAIL, EXECUTED alanlarından herhangi biri ilk kez sıfırdan farklı çıkıyor mu?

Ret ve sonrası

  • MEASURED=0 çıkarsa: banka taraması bu çipte bu yoldan okunmuyor demektir. Fallback korunur, hiçbir şey bozulmaz ve aday C02 'ölçüm yolu yanlış' olarak yeniden yazılır.
  • RAMSIZE=0x000C8000 çıkar ama MBOX/EXECUTED yine sıfır kalırsa: C01 kapanır (yerleşim artık Linux'la aynı) ve sıra C04'e (release sonrası HT isteği) geçer.

DÜRÜSTLÜK NOTU — bu imaj TEK DEĞİŞKEN DEĞİLDİR. HEAD'de R94 (cmd53 busy-gate + DAT0-release disiplini) kodlanmış ama hiç flash edilmemişti; R95 onun üzerine biniyor. Ancak R94'ün dokunduğu cmd53_read/cmd53_write, CR4-start yolunda KULLANILMIYOR (rstvec, wrapper ve staging cmd52_write_u32 üzerinden gider). Yani CR4 sorusu açısından değişken tektir; R94'ün etkisi yalnızca sonda/tanılama makbuzlarında (transfer_probe, mem_probe) görülebilir. Kapı 3 yorumlanırken bu ayrım korunmalıdır.

make image-rpi5-radio   # yeniden üretir; sha256 yukarıdakiyle aynı olmalı
make flash-rpi5-radio SD_DISK=<disk> SD_MOUNT=<mount>
# UART yakalamayı kur, kartı tak, tam cold boot yap (PSU sök-tak).
# Beklenen yeni satır: ASELSAN/CR4RAM ... EXPECT_R80=0x000c8000

CR4-start olasılık uzayı — kalan bütün adaylar

R93'ten sonra “sıradaki tek aday” yerine kalan bütün olasılıklar tek tek çıkarıldı ve her biri masabaşında kapatılmaya çalışıldı. Aşağıdaki her satır ya mühürlü bir cihaz makbuzuna ya da R80 Linux izinden çözülmüş bir işleme dayanır.

Altın kaynak

evidence/rpi5/radio/attempt-r80-linux-sdio-trace/trace.txt — 91.718 satır, aynı fiziksel Pi 5'te Linux/brcmfmac'in BCM43455'i çalıştırırken yaptığı ftrace SDIO izi. mmc1 üzerindeki 16.214 isteğin her biri çözüldü; CMD53'lerde SBADDRLOW/MID/HIGH pencere yazmaları takip edilerek MUTLAK backplane adresi yeniden kuruldu.

Kapatma kuralı

Bir aday ancak (a) mühürlü bir AselsanOS makbuzu ya da (b) trace'ten çözülmüş bir Linux işlemi gösterilerek kapatılabilir. Ezberden brcmfmac satırı kapatma gerekçesi sayılmaz.

Sahte kapanış kuralı

Bir aday, uygulanmaya çalışılıp CİHAZDA HİÇ LATCH ETMEDİYSE 'elendi' sayılmaz. Bu tür kayıtlar SAHTE KAPANIŞ olarak yeniden açıldı.

65 ham aday → 30'u masabaşı elemesine girdi → 16 kanıtla kapandı, 14 açık kaldı; ayrıca tüketicilik eleştirmeni 8 yeni aday üretti. Aşağıdaki liste bunların tekilleştirilmiş halidir.

C34Açık — sırası gelmeditransportöncelik 2

CR4 TCM'i (0x0025FFFC) okumak SDIO bağlantısını düşürüyor

Hipotez

CR4 reset'ten çıkarıldıktan sonra TCM adres aralığına yapılan tek bir okuma, SDIO bağlantısını komple düşürüyor: sonrasında backplane okumaları da, fonksiyon-0 CCCR okumaları da düşüyor. Çekirdek TCM'e sahip çıkmışsa (yani ASLINDA KOŞUYORSA) host'un aynı belleğe erişmesi veri yolu çakışması yaratıyor olabilir — bu durumda 'hattın ölmesi' çekirdeğin YAŞADIĞININ dolaylı kanıtı olurdu.

Ölçülen

R97: PMU_TC ve CHIPID2, TCM okumasından sonra alınıyor ve ikisi de 0x00000000; nöbetçi ise TCM okumasından ÖNCE 100/100 doğru. R96: aynı koşuda WIFIWRITE ENTRY_SYNC=0 — fonksiyon-0 CCCR okumasının sekiz denemesi de düştü, yani arıza backplane'e özgü değil. Arşiv: WIFISWEEP R67/R69'da WIN_OK=1 C52_0=0x15264345, R70'ten R97'ye kadar hepsinde WIN_OK=0. R70 tam olarak TCM okumasını ekleyen koşu.

Karar: AÇIK ve 2. öncelik. Bu adayın çekici yanı şu: eğer TCM'e erişim çakışması hattı düşürüyorsa, CR4 belleğe sahip çıkmış demektir ve 'çekirdek hiç başlamıyor' resmi yanlış olabilir. Alternatif ve daha sıkıcı açıklama: TCM okuması SDHCI'da kurtarılamayan bir veri-fazı hatası üretiyor ve sürücüde kurtarma yok (C30 kod eksikliği gerçekti).

Sıradaki iş: PMU ölçümünden sonra ayrı koşu: TCM okumasının hemen ardından host NORMINT, ERRINT ve PSTATE okunur. Kurtarma ve reset altında karşılaştırma ayrı değişkenler olarak sınanır; bu iş R99'a dahil değildir.

C33Kapalı — kanıtlaölçüm

cr4_start'tan sonra SD hattı ÖLÜ — R70'ten beri bütün tanıklar ölü hatta okundu

Hipotez

Tanık döngüsündeki MBOX=0, INTSTAT=0, SHARED_RAW=0 ve PMU_TA/TB/TC=0 okumaları çipin sessizliğini DEĞİL, ölü bir okuma yolunu ölçüyor. Öyleyse 'CR4 yürütmüyor' sonucu R70'ten R96'ya kadar hiçbir koşuda kanıtlanmamıştır.

Ölçülen

R96'da CC_CHIPID=0x15264345 ama CHIPID2=0x00000000 — AYNI kaydın, AYNI fonksiyonun (backplane_read32_data), AYNI adresin iki okuması. ChipCommon chip id sıfır olamaz. Bağımsız tanık: cr4_start'tan hemen sonra koşan WIFISWEEP kendi pencere yazmasını yapıp geri okuyor — R67 ve R69'da WIN_OK=1 C52_0=0x15264345, R70'ten R96'ya kadar HEPSİNDE WIN_OK=0 C52_0=0x00000000. Aynı koşuda WIFIWRITE ENTRY_SYNC=0: fonksiyon-0 CCCR okumasının sekiz denemesi de düştü — pencere/backplane muhasebesi bir F0 okumasını bozamaz, yani arıza SD bağlantısının tamamında.

Karar: R97'de KAPANDI ve ikiye ayrıldı. (a) Tanıklar GERÇEKTEN güvenilmezdi: R70–R96 arasındaki bütün EXECUTED=0 makbuzları geçersizdir. (b) Ama TCM okuması döngüden sonraya alınınca hat canlı kaldı (nöbetçi 100/100) ve MBOX=0 ilk kez GERÇEK bir ölçüm oldu — sonuç aynı, kanıt değeri artık var. Geriye kalan soru C34 olarak ayrıldı: TCM okumak neden hattı düşürüyor? Kırılma noktası R69→R70. R70 bu okumayı (TCM shared word) tanık döngüsünden ÖNCE eklemiş ve kendi README'sinde 'çekirdek serbest bırakılınca TCM okuması da karardı' diye kaydetmiş — ama karartmanın ARDINDAN GELEN HER ŞEYİ de karattığı görülmemiş. Bu bir gerileme değil teşhis: R96'nın salt-okunur C15 ayırt edicisi tam bunu ölçmek için eklenmişti.

C01Kapalı — kanıtladeğer

CR4 RAM'inin tepesi 160 KiB yanlış: TCM_RAMSIZE tahmin, ölçüm değil

Hipotez

Firmware, NVRAM tablosunu ve uzunluk token'ını RAM'inin TEPESİNDE (rambase+ramsize-4) arar. AselsanOS ramsize'ı 0xA0000 varsayıyor, dolayısıyla NVRAM'i 0x23792C'ye koyuyor. Gerçek tepe 0x260000 ise firmware oraya baktığında başlatılmamış RAM görür, NVRAM'i çözemez ve erken init'te durur — host'a hiçbir sinyal ulaşmaz. FWSTAGE OK=1 + NVRAM OK=1 + MBOX=0 tablosunun tam açıklaması budur.

Ölçülen

Kaynak: rpi5_sdio_wifi.rs:3812 `pub const TCM_RAMSIZE: u32 = 0x000A_0000; // 640 KB (609 KB firmware bunu gerektirir)` — yorumun kendisi değerin ölçülmediğini, 'firmware sığsın' diye seçildiğini söylüyor. R80 trace'i aynı 1748 baytlık NVRAM blob'unu iki parça hâlinde 0x25F92C'ye (1728 B) ve 0x25FFEC'e (20 B) yazıp TAM 0x260000'da bitiriyor. 0x260000 − 0x198000 = 0xC8000 (800 KiB). Bizim makbuzumuz: ASELSAN/NVRAM ADDR=0x0023792c VARSZ=1748.

Karar: R95'te CİHAZDA KAPANDI. Kusur gerçekti: çip RAMSIZE=0x000c8000 dedi ve NVRAM artık Linux'un yazdığı adrese (0x0025f92c) iniyor. Ama CR4 yine başlamadı (MBOX=0, EXECUTED=0). Yani 160 KiB'lik yanlış yerleşim GERÇEK bir kusurdu ve düzeltildi — CR4'ün başlamamasının NEDENİ değildi. rambase (0x198000) zaten iki tarafta aynıydı.

C02Kapalı — kanıtladeğer

ramsize silikondan hiç okunmuyor: ARMCR4 CAP + 8× BANKIDX/BANKINFO taraması yok

Hipotez

C01'in kök nedeni budur. Linux ramsize'ı tablodan değil çipten alır: CR4 core tabanında CAP okunur, banka sayısı çıkarılır, sonra her banka için BANKIDX yazılıp BANKINFO okunur ve boyutlar toplanır. AselsanOS EROM taramasında CR4 core tabanını ZATEN topluyor (CR4_BASE=0x18002000 basıyor) ama bu tabanı hiç kullanmıyor.

Ölçülen

Trace'te CR4 core bölgesine (0x18002xxx) tam 17 erişim var ve deseni birebir şu: 1× R 0x18002004 (CAP), ardından 8 kez (W 0x18002040 = BANKIDX, R 0x18002044 = BANKINFO). Depoda `0x18002004`, `0x18002040`, `BANKIDX`, `BANKINFO` dizgeleri HİÇ geçmiyor.

Karar: R95'te UYGULANDI ve CİHAZDA DOĞRULANDI: CAP=0x00000b44 → 4 A-bankası + 4 B-bankası = BANKS=8 → RAMSIZE=0x000c8000, MEASURED=1. Bu, R80 izinden bağımsız ikinci bir ölçümdür ve aynı sayıyı verdi. Kalıcı kazanç: ramsize artık tahmin değil; bir kaynak testi ölçümün BANKIDX dışında yazma yapmadığını sayarak pinliyor.

C03Kapalı — kanıtlaölçüm

Yürütme tanığı yanlış adresten okunuyor: 0x237FFC yerine 0x25FFFC

Hipotez

cr4_start yürütme kanıtı olarak TCM_TOP−4 = 0x237FFC'yi okuyor. Firmware ayağa kalkınca sdpcm_shared yapısının adresini RAM tepesine, yani 0x25FFFC'ye yazar. Yani firmware KOŞSA BİLE bizim baktığımız dört bayt hiç değişmez: SHARED_RAW=0 'çekirdek ölü' değil, 'yanlış pencereden bakıyoruz' anlamına gelebilir.

Ölçülen

rpi5_sdio_wifi.rs:3413 `out.shared_addr = TCM_TOP - 4;` → 0x237FFC. TCM_TOP deponun tamamında yalnız iki yerde kullanılıyor: bu satır ve :3833 NVRAM yerleşimi. Trace'te Linux firmware hazır olduktan sonra 0x25FFFC'yi okuyup dönen işaretçiyi dereference ediyor.

Karar: R95'te adres kusuru düzeltildi: tanık artık ölçülen TCM tepesinden, 0x25FFFC'den okunuyor. Fakat R97 bu okumanın hattı düşürdüğünü gösterdi; SHARED_RAW=0 firmware'in oraya hiçbir şey yazmadığını kanıtlamaz. Adres düzeltmesi kalıcı, okuma geçerliliği C34'te açık.

C04Kapalı — kanıtlasaat

CR4 bırakıldıktan sonra HT hiç istenmiyor; üstelik FORCE_ALP tutuluyor

Hipotez

CR4 ve TCM yüksek hız (HT) saat alanındadır. AselsanOS reset dizisinden sonra CHIPCLKCSR'ye bir daha yazmıyor ve hattı FORCE_ALP'te bırakıyor; bu backplane'i yavaş ALP saatine çivileyebilir. Linux ise çekirdeği bıraktıktan hemen sonra HT istiyor ve HT gelmeden F2'yi açmıyor.

Ölçülen

R98: HT_CLR_OK=1 HT_REQ_OK=1 HT_CSR_CLR=0x40 HT_CSR_REQ=0x50 HT_CSR_FIN=0x50 HT_REQ_MS=60 HT_REQ_AVAIL=0. R80 Linux dizisi 0x28, 0x28, 0x21, 0x00, 0x08, 0x00, 0x10, 0xd2, 0x02: 0x21 FORCE_ALP içerir; indirme tutamağı 0x08'dir. 'Linux FORCE_ALP hiç kullanmıyor' yorumu yanlıştı.

Karar: R98'de KAPANDI: eksik HT isteği tek başına açıklama değil. İstek latch etti ve FORCE_ALP bırakıldı, fakat HT yoklamada gelmedi. Bu sonuç PMU kaynak ailesini öne çıkarır; diğer saat/başlatma farklarını elemez.

C05Açık — sırası gelmeditransportöncelik 3

Wrapper yazması: 4-bayt bayrağı set ama taşıma 4 ayrı 1-baytlık CMD52

Hipotez

SB_ACCESS_4B_FLAG (0x8000) karta 'bu erişim 32 bitliktir' der. R93 bayrağı ekledi ama taşımayı değiştirmedi: backplane_write32_4b bayraklı ofseti cmd52_write_u32'ye veriyor, o da dört ayrı bayt işlemi gönderiyor. Kart, her biri '32 bitim' diyen dört ayrı bayt yazması görüyor; kontrol kaydı atomik olarak commit edilmemiş olabilir.

Ölçülen

rpi5_sdio_wifi.rs:2525 backplane_write32_4b → :3489 cmd52_write_u32 → dört ayrı cmd52. Linux aynı kayda (0xA408 / 0xA800) TEK bayt-kipi CMD53 yazıyor: blocks=1, block_size=4. Trace'te o pencerede fonksiyon-1 CMD52 yazması HİÇ yok.

Karar: AÇIK. R101 ilk D11 yazmasında DAT inhibit nedeniyle issue edilmedi; bu yüzden tek CMD53 kontrol yazmasının cihazda latching yaptığı henüz sınanmadı. Not: bu aday, C01'in yanında ikinci sıradadır çünkü C01 yanlışsa bile firmware NVRAM'ini bulamaz — önce yerleşim düzeltilmeli.

Sıradaki iş: R107'den sonra: D11 inhibit kapısı temiz bir cold boot'ta geçerse wrapper IOCTL/RESET_CTL için tek CMD53-4B yazmasının latching sonucu yeniden ölçülür; BCDC/RX tanısı bu adayın yerine geçirilmez.

C06Açık — sırası gelmeditransportöncelik 4

TCM'e yazılan her kelime 4B bayrağı OLMADAN gidiyor; Linux blok-kipi bayraklı CMD53 kullanıyor

Hipotez

stage_to_tcm ve write_words_to_tcm pencere ofsetine 0x8000 bayrağını koymadan dört bayt-CMD52 yazıyor; doğrulama da aynı bayraksız yoldan yapılıyor. Köprü bayraksız bayt erişimlerini farklı ele alıyorsa, hem yazma hem doğrulama aynı hatayı yapıp birbirini onaylıyor olabilir.

Ölçülen

rpi5_sdio_wifi.rs:4046/4053 (stage_to_tcm) ve :4171/:4193 (write_words_to_tcm) bayraksız. Linux TCM'e yalnız bit15 set (0x08000/0x0F92C/0x0FFC0) ve blok kipinde 64 baytlık CMD53'lerle yazıyor; trace'te backplane bölgesine bayraksız TEK BİR erişim yok.

Karar: AÇIK ama düşük öncelikli: FW_INTACT ve WORDS_V=152448 aynı yolun kendini doğrulaması olduğu için bu aday ancak çapraz bir taşımayla (yaz CMD52 / oku CMD53-4B) ayırt edilebilir.

Sıradaki iş: R107'den sonra ayrı koşu: staging'den sonra firmware kelimeleri bayraklı CMD53 ile geri okunup CMD52 okumasıyla karşılaştırılır. Uyuşmazlık taşıma yollarının ayrıştığını gösterebilir.

C07Açık — sırası gelmediölçümöncelik 3

Tek oracle'ımız Linux'un hiç kullanmadığı göstergedir

Hipotez

cr4_start EXECUTED'i yalnız SDIO çekirdeğinin mailbox ve intstatus kayıtlarından türetiyor. Linux'un firmware-hazır kanıtı bu değil: F2 açılır ve CCCR IOReady biti beklenir; ayrıca RAM tepesindeki sdpcm_shared işaretçisi okunur. Yani 'yürütme yok' cümlesi, Linux'un kullanmadığı bir pencereden bakılarak kuruldu.

Ölçülen

Trace'te CR4 release ile firmware-hazır arasındaki pencerede Linux 0x1800404C'yi (mailbox) HİÇ okumuyor; 0x18004020'yi yalnız release'ten ÖNCE bir kez temizliyor. Buna karşılık CCCR 0x02'ye 0x06 yazılıp (F1+F2 enable) CCCR 0x03 (IORx) 10.268 kez yoklanıyor. AselsanOS'ta SDIO fonksiyon 2 HİÇ etkinleştirilmiyor.

Karar: AÇIK. Bu aday tek başına CR4'ü başlatmaz ama başladığını GÖREBİLMEMİZİ sağlar. C03 ile birlikte, mevcut 'EXECUTED=0' sonuçlarının ne kadarının ölçüm körlüğü olduğunu belirler.

Sıradaki iş: R107'den sonra: R106'nın doğruladığı RX başlık/payload sınırı ve INTSTATUS Read32 sahipliği korunarak C08'in IOReady/IOR2 makbuzu ayrıca tamamlanır.

C08Açık — sırası gelmedisıraöncelik 4

tosbmailboxdata + F2 enable 'post-MBOX' değil — firmware-hazırdan ÖNCE gelir

Hipotez

R92 F2/hostintmask/watermark'ı 'post-MBOX; CR4 firmware-ready'e hiç ulaşmıyor' diye erteledi. Trace bu sıra varsayımını çürütüyor: SDPCM sürüm kelimesinin tosbmailboxdata'ya yazılması ve F2'nin açılması, firmware-hazır kanıtından ÖNCE gelir.

Ölçülen

Trace sırası: HT gelir → 0x18004048'e (tosbmailboxdata) yazılır → F2 açılır (CCCR 0x02 ← 0x06) → firmware-hazır kanıtı ~54 ms sonra gelir. hostintmask (0x18004024) ise firmware hazır olduktan SONRA yazılır. AselsanOS SDIO çekirdeğine yalnız intstatus temizliği yapıyor (rpi5_sdio_wifi.rs:3330-3336).

Karar: R92'nin 'post-MBOX' etiketi YANLIŞ; doğrusu 'post-HT / post-CR4-release'. Bu bir sahte kapanış değil (aday hiç denenmedi) ama gerekçesi hatalıydı ve düzeltildi.

Sıradaki iş: C07 ile birleşik koşulur: HT geldikten sonra tosbmailboxdata'ya SDPCM sürümü yazılır ve F2 açılır. Ancak C01/C04'ten sonra sıraya girer.

C09SAHTE KAPANIŞ — yeniden açıldıgüçöncelik 1

PMU RES_RELOAD 'elendi' değil — üç koşunun ÜÇÜNDE de cihazda hiç latch etmedi

Hipotez

R84/R85/R86 PMU kaynak yeniden yükleme adayını denedi ve 'elendi' diye kapatıldı. Ama makbuzlar yazmanın hiç inmediğini söylüyor: değişken uygulanamadı, dolayısıyla sınanmadı.

Ölçülen

ASELSAN/PMUREL BASE=0x18000000 CTL_B=0x01770181 CTL_W=0 CTL_A=0x01770181 RELOAD=0 PATH=C53_4B C53_OK=0 C53_B=0 C53_ERR=0x0020 — yazma bayrağı 0, önce/sonra değerler aynı, taşıma CRC ile düştü. İkinci koşuda CTL_A=0x18181818 (veri yolu zehirlenmesi).

Karar: SAHTE KAPANIŞ. R98'de ALP hazır ve HT isteği latch etmişken HT gelmedi. Bu, PMU kaynak ailesini öne çıkarır; RES_RELOAD'un çözüm olduğunu kanıtlamaz. R84/R85/R86 değişkeni cihaza indiremediği için C09 açık kalır.

Sıradaki iş: R99 PMU görüntülerini geçerli ama eşit olarak aldı; R100 clock/timeout kusurunu ayırdı. RES_RELOAD hâlâ ayrı adaydır ve yalnız temiz yazma + geri okuma makbuzuyla sınanabilir; R106/R107 read tanısı bunun önüne geçmez.

C10SAHTE KAPANIŞ — yeniden açıldısıraöncelik 3

halt_cr4 / CR4 set_passive, düşen CMD53 yazmaları yüzünden dışarıda bırakıldı

Hipotez

Linux firmware'i YAZMADAN ÖNCE CR4'ü tam bir reset döngüsünden geçiriyor (set_passive). AselsanOS'ta bu adım bilerek devre dışı — ama gerekçesi 'işe yaramadı' değil, 'yazmaları sessizce düşüyordu'.

Ölçülen

rpi5_sdio_wifi.rs:2607 `eski cmd53 yolu halt_cr4'un yazmalarini sessizce dusuruyordu (WRITE_OK=0)` ve :3030 `halt_cr4 BURADA YOK (TCM yazmasini bozdu)`; main.rs:2596 `halt_cr4 stays out.` Trace'te Linux CR4 wrapper'ına indirmeden ~108 ms ÖNCE tam bir disable+resetcore dizisi uyguluyor.

Karar: SAHTE KAPANIŞ. Dışlama nedeni taşıma kusuruydu; R94 o kusuru düzeltti ama halt_cr4 hâlâ dışarıda. Linux'un yaptığı bir ön koşulu, artık geçerli olmayan bir gerekçeyle atlıyoruz.

Sıradaki iş: R107 read sınırından sonra ayrı koşu: firmware indirmeden ÖNCE CR4 set_passive geri açılır ve TCM yazmalarının bozulmadığı (FWSTAGE OK=1) doğrulanır.

C11Kapalı — kanıtlanvram

NVRAM biçim adayı kendi aynasına karşı kapatıldı, Linux'a karşı değil

Hipotez

R76 aday listesinde NVRAM token/dolgu biçimi 'doğru' diye elendi. Ama doğrulama, blob'u bizim yazdığımız yerden bizim okuma yolumuzla geri okuyarak yapıldı — yani biçim kendi kendine onaylandı; Linux'un cipe ne yazdığıyla karşılaştırılmadı.

Ölçülen

Bizim token: TOKEN=0xfe4b01b4, VARSZ=1748, TOKEN_OK=1 — hepsi kendi hesabımızın kendi geri okumamızla tutması. Trace'teki Linux yazması aynı boyutta (1728+20 = 1748 bayt) çıktı; yani BİÇİM muhtemelen doğru. Sapan şey biçim değil, ADRES (C01).

Karar: Kapanış SONUÇ olarak doğru ama GEREKÇE olarak geçersizdi. Biçim trace ile karşılaştırıldığında tutuyor; bu yüzden C11 artık biçim adayı olarak kapanabilir — ama kapanışın dayanağı R76 değil, R80 trace'idir.

C12Kapalı — kanıtlahost-sdhci

Staging için daraltılan komut-bekleme bütçesi ve /16 saati hiç geri alınmıyor

Hipotez

Firmware staging'i hızlandırmak için komut-tamamlandı yoklama sınırı 50.000'den 2.000'e indiriliyor ve SDIO saati /16'ya alınıyor. Bunları geri alan ikinci bir çağrı yok; dolayısıyla NVRAM yazması ve CR4 serbest bırakma dizisinin TAMAMI bu daraltılmış bütçeyle koşuyor. Reset dizisindeki bir yazmanın 'inmiş' sayılıp aslında zaman aşımına uğraması mümkün.

Ölçülen

`grep -rn set_issue_status_polls kernel/src/` üç satır döndürüyor: tanım (rpi5_sdio_wifi.rs:304), bir yorum (:318) ve TEK çağrı (main.rs:2668). Geri yükleyen çağrı yok. Saat main.rs:2731'de /16'ya alınıyor ve cr4_start main.rs:2895'te koşuyor.

Karar: R96'da CİHAZDA KAPANDI. Geri alma çalıştı (CR4PRE POLLS=50000 CLKDIV=0x80 CLK_STABLE=1, cr4_start içinde POLLS=50000) ve EXECUTED yine 0. Yani daraltılmış bütçe tek başına açıklama değildi. Kusur gerçekti ve düzeltildi; neden değildi.

C13Kapalı — kanıtlagüç

PMU serbest-koşan zamanlayıcısı 13 mühürlü koşuda hiç ilerlemedi

Hipotez

cr4_start tanık döngüsünün başında ve sonunda PMUTimer okuyor. Kodun kendi yorumu şunu söylüyor: ilerlediyse LPO kesin çalışıyor, sabitse LPO gerçekten ölü. Ölçüm sabit çıktı ve bu sonuç karara hiç yansımadı.

Ölçülen

13 mühürlü koşuda `PMU_TA=0x00000000 PMU_TB=0x00000000` (2 koşuda 0x18181818 — veri yolu zehirlenmesi). R95'te yeniden üretildi: PMU_TA=PMU_TB=0x00000000, buna karşılık PMU_STAT=0x0000002a ve RES_ST=0x0fcaff77 aynı yoldan sağlıklı dönüyor — yani okuma yolu ölü değil.

Karar: R97'de KAPANDI — ve bir ARTEFAKT çıktı. Canlı hatta ölçüldüğünde sayaç ilerledi: PMU_TA=0x00776d9e → PMU_TB=0x007cdaaa. LPO çalışıyor. 13 koşuluk 'sayaç sabit' gözlemi, ölü bir okuma yolunun ürünüymüş. Ders: bir ölçümün sıfır çıkması, ölçüm aletinin çalıştığı doğrulanmadan yorumlanamaz.

C14Açık — sırası gelmediölçümöncelik 4

FWSTAGE yazma sayacı ile doğrulama sayacı 28 koşuda tutmuyor

Hipotez

WORDS_W, cmd52 yazmasının başarılı döndüğü kelime sayısıdır; WORDS_V geri okumada eşleşen kelime sayısı. Her koşuda WORDS_V tam 152.448 çıkıyor ama WORDS_W 101.000–121.000 arasında değişiyor ve RETRIES=0. Yani on binlerce yazma 'başarısız' raporlanıyor, buna rağmen veri doğru; ya yazma-başarı göstergesi anlamsız ya da doğrulama gerçek veriyi okumuyor.

Ölçülen

Mühürlü makbuzlardan örnekler: WORDS_W=101526 / WORDS_V=152448, WORDS_W=111786 / WORDS_V=152448, WORDS_W=121065 / WORDS_V=152448 — hepsinde RETRIES=0. R95'te yeniden üretildi: WORDS_W=95683 / WORDS_V=152448, RETRIES=0.

Karar: AÇIK. Bu, firmware'in gerçekten sağlam yüklendiğine dair güvenin bir kısmını zayıflatır: iki sayaçtan biri yalan söylüyor ve hangisi olduğu bilinmiyor.

Sıradaki iş: Ölçüm: staging sonrası firmware'in tamamı ayrı bir taşıma yoluyla (bayraklı CMD53) yeniden okunup SHA benzeri bir özetle karşılaştırılır. C06 ile birlikte koşulabilir.

C15Açık — sırası gelmediölçümöncelik 4

cmd52 okuma yolu tamamlanma durumunu tamamen yok sayıyor

Hipotez

R58'de bilinçli bir karar verildi: okuma yolunda issue()'nun döndürdüğü durum atılıyor ve yanıt kaydı koşulsuz okunuyor. Bu, /16'da 'completion biti gelmiyor ama veri doğru' gözlemine karşı mantıklıydı; bedeli, komut GERÇEKTEN inmediğinde bir önceki komutun yanıtının okunmasıdır.

Ölçülen

rpi5_sdio_wifi.rs:1720-1724 `let _ = issue(...)` — dönüş değeri atılıyor, ardından yanıt kaydı okunuyor.

Karar: AÇIK. Bu, MBOX=0 / INTSTAT=0 / SHARED_RAW=0 gibi 'sıfır' sonuçların bir bölümünün bayat yanıt olabileceği anlamına gelir. C12 ile birleştiğinde risk artar: dar bütçe + durum yok sayma.

Sıradaki iş: Ölçüm: kritik okumalarda (MBOX, INTSTAT, SHARED) durum bayrağı da makbuza basılır (ör. MBOX_ST=). Davranış değişmez, yalnız görünürlük artar.

C16Açık — sırası gelmedihost-sdhciöncelik 5

Linux kartı 1,8 V UHS-I DDR50'ye alıyor; AselsanOS 3,3 V'ta kalıyor

Hipotez

Linux, brcmfmac yüklenmeden önce CMD5'i S18R ile sorup CMD11 gerilim anahtarlaması yapıyor ve kartı DDR50'ye alıyor. AselsanOS 3,3 V SDR'de kalıyor ve HOST_CONTROL2'ye hiç yazmıyor. Sinyalleşme farkı, küçük CMD53 yazmalarının veri fazındaki kırılganlığını açıklayabilir.

Ölçülen

rpi5_sdio_wifi.rs:209 `write_volatile(reg8(0x29), 0x0e | 0x01)` (3,3 V + güç). Dosyada 0x3c (HOST_CONTROL2) için tek yazma yok. Linux tarafında CCCR 0x13 = 0x09 (BSS=DDR50) yazılıyor.

Karar: AÇIK ama RİSKLİ ve en sona bırakıldı: gerilim anahtarlama yanlış yapılırsa kart sinyalleşmesi kalıcı olarak bozulabilir ve bu, tek değişkenli bir denemenin geri alınabilirlik sözleşmesini zorlar. Ayrıca 3,3 V SDR'de CMD52 ve CMD53 OKUMA sorunsuz çalışıyor — sinyalleşme tek başına yazma kusurunu açıklamıyor.

Sıradaki iş: Diğer bütün adaylar tükendikten sonra. Önce salt-okunur bir sonda: CMD5'in S18R yanıtı ve host kapasite kayıtları makbuza basılır.

C17Açık — sırası gelmediölçümöncelik 3

Düşen bir CMD53 anındaki host register durumu hiçbir makbuzda yok

Hipotez

BLKSIZE/BLKCNT'e gerçekte ne yazıldığı, o andaki TIMEOUT_CONTROL, CLOCK_CONTROL, HOST_CONTROL1/2 değerleri 91 koşunun hiçbirinde başarısız aktarım anında okunmuyor. WIFIINV anlık görüntüsü bring_up ÇALIŞMADAN ÖNCE alınıyor ve ölü durumu gösteriyor.

Ölçülen

Makbuzlardaki WIFIINV satırı TIMEOUT=0x00 PWRCTL=0x00 CLKCTL=0x0000 HOSTCTL1=0x00 — hepsi bring_up öncesi.

Karar: AÇIK. Taşıma adaylarının (C05/C06) hiçbiri, bu ölçüm olmadan mekanizma düzeyinde ayırt edilemez.

Sıradaki iş: Ölçüm koşusu: cmd53_write başarısız döndüğünde host register anlık görüntüsü alınıp ASELSAN/C53FAIL satırı olarak basılır. Hiçbir davranış değişmez.

C18Açık — sırası gelmedibluetoothöncelik 6

Bluetooth ayrı bir hat: .hcd patchram deposunda yok

Hipotez

BT cevapsızlığı (83 mühürlü koşuda TX=4 / ANSWERED=0) Wi-Fi CR4 duvarından bağımsızdır. Linux aynı çipi BCM4345C0 diye tanıyıp bir patchram yaması yüklüyor; o dosya bizde yok.

Ölçülen

R75 dmesg: `Bluetooth: hci0: BCM4345C0` ve `brcm/BCM4345C0.raspberrypi,5-model-b.hcd Patch`. Depoda `*.hcd` dosyası yok; firmware/wifi/ yalnız üç Wi-Fi blob'u ve LICENSE taşıyor.

Karar: AÇIK ve CR4'ten bağımsız. BT hattı Wi-Fi'yi beklemeden yürütülebilir.

Sıradaki iş: Ayrı hat: .hcd dosyası karta konur, HCI Reset'ten sonra patchram indirme dizisi eklenir. Wi-Fi CR4 çalışmasıyla değişken paylaşmaz.

C19Kapalı — kanıtlaölçüm

0x0060 bir DATA CRC değil, 'veri fazı hiç olmadı' imzası

Hipotez

Düşen CMD53'lerin 0x0060 vermesi veri hattı bütünlüğü sorunudur.

Ölçülen

Arşivde tek değişkenli bir çift koşu var (R29 → R30) ve hipotezi tersine çeviriyor. Ayrıca R40'ta aynı 0x0060 bir CMD53 OKUMASINDAN geldi (TCM_C53_ERR=0x0060), yani kod yön-özgü değil.

Karar: KAPALI. Bu, R93/R94'ün 'READ-vs-WRITE' çerçevesinin de dayanağını zayıflatır: ayrım yön değil, muhtemelen adres bölgesi (ChipCommon çalışıyor, backplane RAM düşüyor).

C20Kapalı — kanıtlatransport

rstvec'in backplane adres 0'a 4-bayt bayrağı olmadan yazılması

Hipotez

rstvec yazması bayraklı olsaydı çekirdek başlardı.

Ölçülen

Adayın kendi çürütme koşulu üç bağımsız mühürlü koşuda zaten ölçülmüş: bayraklı bayt-CMD52'nin ofset 0'da backplane verisi TAŞIMADIĞI R19'da makbuza yazıldı; R89 bayraksız yolla RSTVEC_OK=1 ve ALIAS_OK=1 aldı.

Karar: KAPALI — hem bayraklı hem bayraksız varyant ölçüldü, ikisi de CR4'ü başlatmadı.

C21Kapalı — kanıtlasıra

Wrapper adresleri ve reset dizisinin sırası yanlış olabilir

Hipotez

CR4 0x18102000, IOCTL +0x408, RESET_CTL +0x800 ve reset sırası hatalı olabilir.

Ölçülen

R80 trace'inden çözülen Linux adresleri ve sırası, AselsanOS'un yaptığıyla birebir aynı. R92 trace-diff'i reset DEĞERLERİNİN ve SIRASININ da eşleştiğini göstermişti.

Karar: KAPALI. Bu alanda yeni varyant denemek yasaktır — 'tekrar edilmeyecekler' listesindedir.

C22Kapalı — kanıtlafirmware

fw[0] giriş vektörü ve rambase yanlış olabilir

Hipotez

Firmware yanlış tabana yazılıyor ya da giriş vektörü yanlış yorumlanıyor.

Ölçülen

Blob'un ilk kelimesi 0xb83ef198; cihaz makbuzu FW_WORD0=0xb83ef198 ile aynısını okuyor. rambase 0x198000 iki tarafta da AYNI — trace'teki indirme pencereleri 0x198000'den başlıyor.

Karar: KAPALI. Sapan tek şey rambase değil, ramsize (C01).

C23Kapalı — kanıtlanvram

NVRAM firmware'i eziyor olabilir

Hipotez

1748 baytlık NVRAM, TCM'deki firmware'in üzerine biniyor olabilir.

Ölçülen

Firmware 0x198000–0x22CC20 arasını dolduruyor. NVRAM mevcut (yanlış) adreste 0x23792C, düzeltilmiş adreste 0x25F92C — ikisi de firmware'in ÜSTÜNDE. Çakışma yok. FW_INTACT=1 de bunu doğruluyor.

Karar: KAPALI. C01'in etkisi 'ezme' değil, 'firmware'in baktığı yerde hiçbir şey olmaması'dır.

C24Kapalı — kanıtlafirmware

CLM yüklenmediği için CR4 başlamıyor olabilir

Hipotez

Regülasyon tablosu (CLM) TCM'e aktarılmadığı için firmware ayağa kalkmıyor.

Ölçülen

Trace'te Linux de CR4 release'ten ÖNCE CLM'i TCM'e yazmıyor; CLM firmware çalışmaya başladıktan sonra ayrı bir kanaldan gider.

Karar: KAPALI — CLM bir CR4-start ön koşulu değildir. (Yayın için hâlâ ön koşuldur; güvenlik tablosundaki RF-09 bunu ayrıca söyler.)

C25Kapalı — kanıtlafirmware

Firmware imajının sonunda doğrulanmayan bir uzunluk/CRC alanı var

Hipotez

Blob'un sonundaki trailer doğrulanmadığı için firmware kendini reddediyor olabilir.

Ölçülen

Blob python ile ayrıştırıldı: dosya bir ASCII sürüm dizgisiyle bitiyor (…FWID 01-b677b91b / DVID 01-16dd0023). Sonda uzunluk ya da CRC alanı YOK.

Karar: KAPALI — doğrulanacak bir trailer mevcut değil.

C26Kapalı — kanıtlanvram

NVRAM token/dolgu biçimi yanlış

Hipotez

R92 'NVRAM generated-byte / token form' farkını açık bırakmıştı.

Ölçülen

nvram_transform python'da birebir yeniden koşuldu: n=1742 → dolgulu 1744 → varsize=436 → varsz=1748, token=0xfe4b01b4. Cihaz makbuzuyla aynı. Linux'un trace'te yazdığı blob da tam 1748 bayt.

Karar: KAPALI — biçim doğru. R92'nin bu maddesi kapatılabilir; sapan şey adres (C01).

C27Kapalı — kanıtladeğer

Firmware 512'ye yuvarlanarak 609.792 bayt yazılıyor (Linux 609.312)

Hipotez

Fazladan yazılan 480 bayt sektör artığı firmware'i bozuyor olabilir.

Ölçülen

Fark, firmware'in sonundan sonraki kullanılmayan RAM'e düşüyor ve firmware'in kendi uzunluk bilgisi dosyada yok (C25). Adayın kendi PASS ölçütü ('Linux'la birebir aynı bayt kümesi') fiziksel olarak sağlanamaz.

Karar: KAPALI — ayırt edici gücü yok.

C28Kapalı — kanıtlasıra

KSO ve CARDCTRL hem probe'da hem cr4_start'ta tekrarlanıyor

Hipotez

Linux bunları yalnız probe slotunda bir kez yapıyor; tekrarımız zarar veriyor olabilir.

Ölçülen

Kod okuması doğru ama üç bağımsız kanıt katmanı etkisiz olduğunu gösteriyor: her iki yazma da idempotent bit-set ve makbuzlar KSO_SET=1 / KSO_DEVON=1 ile aynı sonucu veriyor.

Karar: KAPALI.

C29Kapalı — kanıtlasıra

D11'e cr4_start içinde dokunulması zararlı

Hipotez

Linux CR4-start slotunda D11'e hiç dokunmuyor; bizim D11-disable dizimiz orada koşuyor.

Ölçülen

Olgu doğru (rpi5_sdio_wifi.rs:3294-3320). Ama adayın kendi çürütme koşulu R74'te zaten ölçüldü: D11-disable uygulandı, yazmalar landı (D11_WRAP=0x18101000) ve yürütme yine gelmedi.

Karar: KAPALI — olgular doğru, mekanizma değil.

C30Kapalı — kanıtlahost-sdhci

Düşen CMD53'ten sonra kurtarma yok (IO_ABORT ölü sabit)

Hipotez

Kurtarma yapılmadığı için sonraki işlemler de bozuluyor ve zincir çöküyor.

Ölçülen

IO_ABORT gerçekten hiç kullanılmayan bir sabit (rpi5_sdio_wifi.rs:55). Ama düşen CMD53'lerden SONRAKİ CMD52 işlemleri makbuzlarda sağlıklı değer döndürüyor — zincir çökmüyor.

Karar: KAPALI kök neden olarak. Kod eksikliği gerçek ama CR4'ün başlamamasını açıklamıyor.

C31Kapalı — kanıtlagüç

PMU kaynak maskesi / LPO 'donanım duvarı' teşhisi

Hipotez

PMU kaynakları eksik olduğu için CR4 hiç beslenmiyor (R64–R66 dönemi teşhisi).

Ölçülen

Trace'te Linux PMU min/max kaynak maskelerine (0x618/0x61c) HİÇ yazmıyor ve 0x608/0x614'ü hiç okumuyor. Yani çalışan bir başlatma bu register'lara dokunmadan gerçekleşiyor.

Karar: KAPALI — teşhis kaynaksızdı. Not: PMUTimer'ın hiç ilerlememesi (C13) hâlâ AÇIK bir ölçüm sorusudur; bu iki şey karıştırılmamalı.

C32Kapalı — kanıtlafirmware

Yanlış silikon varsayımı (D0 / C0)

Hipotez

Kart aslında farklı bir stepping ve pin planı/firmware ailesi yanlış.

Ölçülen

chipid, chip rev ve firmware kimliği cihazda birebir eşleşiyor (CHIPID=0x15264345). R14 overlay'i D0 ölçtü ve R15'ten beri pin planı D0. R75'te Linux aynı kartta aynı blob ailesiyle çalıştı.

Karar: KAPALI.

Bu tablo bir yol haritası değil, bir eleme defteridir. 'Kapalı' satırların hiçbiri Wi-Fi'nin çalıştığını göstermez; yalnızca o açıklamanın artık aranmayacağını söyler. 'Sıradaki' satırlar da bir söz değildir: her biri tek değişkenli bir cihaz koşusu gerektirir ve koşulmadan hiçbiri PASS sayılmaz. Bu sayfadaki hiçbir aday, kaynakta ya da R80 Linux izinde görülmeyen bir register yazması önermez.

Cihaz koşuları

Bir cihaz koşusunun beklenen cevabı vermemesi, koşunun başarısız olduğu anlamına gelmez. R1 aradığı kimliği bulamadı ama zincirde eksik bir ön koşulu ve kendi kodumuzdaki bir kusuru ortaya çıkardı; ikisi de ancak gerçek donanımda görülebilirdi.

R12026-09-06

Sorulan: Çipin iç veri yoluna ulaşabiliyor muyuz? Beklenen cevap CHIPID=0x4345.

Cevap: Cevap gelmedi — ve gelmemesinin sebebi zincirdeki gerçek bir eksiği ortaya çıkardı. Bu bir RED değil, teşhis.

Wi-Fi çipi hiç beslenmemiş

CMD0 ve CMD5 tamamlandı ama cevap tamamen sıfırdı: OCR=0, FUNCS=0, READY=0. Denetleyici sağlıklıydı. Teşhisi PSTATE=0x000f0000 verdi — CARD_INSERTED=1 ve CARD_STATE_STABLE=1, ama DAT[3:0] ve CMD hatlarının hepsi düşük. Beslenmeyen bir çipin imzası. Sebep DTB'de yazıyordu ve atlanmıştı: sdio2'nin vmmc-supply'ı wl_on_reg, o da GPIO hat 28 (WL_ON), aktif-yüksek, 150 ms başlangıç gecikmesiyle. Wi-Fi yuvasının beslemesi bir GPIO regülatörü; hattı sürmeden CMD5 sormak kapalı bir cihaza soru sormaktır.

GPIO canlılık kapısı yanlış kayda bakıyordu

Bluetooth tarafında BT_ON sürülemedi ve suç bizimdi. gpio_write_allowed() IODIR=0xffffffff okuyup pencereyi ölü saydı. Yanlıştı: IODIR bir YÖN kaydıdır ve hepsi bir olması 'hepsi giriş' demektir — bir GPIO bankasının tamamen normal açılış durumu. Pencerenin canlı olduğunun kanıtı aynı satırda duruyordu: DATA=0x00500002, karışık bir desen ve S1 sensör koşusunda birebir aynı değer. İki bağımsız koşuda aynı çıkan karışık bir değer canlılık kanıtıdır. Karar artık yalnızca DATA'ya bakıyor.

Doğru çalışanlar

  • SDHCI denetleyicisi sağlıklı okundu: VER=0x1002, makul CAPS, ölü pencere yok.
  • Backplane basamağı hazır olmayan karta CMD3 göndermek yerine ATLADI ve nedenini yazdı: SKIPPED=1 REASON=CMD5_NOT_READY. Fail-closed çalıştı.
  • BT UART penceresi canlı: DEAD_WINDOW=0, LSR=0x60.
  • Ekran ve arayüz etkilenmedi: SCREEN0 ve TOUCHREADY geldi.
  • Firmware kartta durdu ve okunmadı — CMD53 hâlâ yok.

imaj a655bddc50219b303274121bb0b81a80888eeffb5557a6fea6f67096709e47cb
kanıt evidence/rpi5/radio/attempt-r1-backplane-gate-uart-capture/

R22026-09-06

Sorulan: R1'in bulduğu eksik giderildi. WL_ON sürülünce çip cevap veriyor mu?

Cevap: Düzeltmeler çalıştı ve ölçülebilir bir fiziksel etki üretti — ama iki radyo da hâlâ sessiz. Bu koşu sebebi ölçülebilir tek bir soruya indirgedi.

Güç geldi, veri hatları hareket etti, cevap yine yok

WIFIPWR ASSERTED=1 ve tam olarak bizim bitimiz uygulandı; BT_ON'a dokunulmadı. PSTATE 0x000f0000'dan 0x006f0000'a çıktı — DAT[3:0] 0000 iken 0110 oldu, yani WL_ON gerçekten bir şeyi besledi. BT tarafında UART programlandı (bölen 52) ve HCI Reset'in dört baytı da gönderildi (TX=4, LSR=0x60). Buna rağmen Wi-Fi CMD5'e OCR=0 döndü ve Bluetooth 500 ms boyunca tek bayt göndermedi.

Ölçülebilir hâle gelen hipotez: pin mux hiç uygulanmıyor

DTB, sdio2_30_pins için gpio30–35'in 'sd2', uarta_24_pins için gpio24–27'nin 'uart0' fonksiyonunda olmasını istiyor. ON hatlarının çalışması gpio28/29'un 'gpio' fonksiyonunda olduğunu kanıtlar, ama veri pinleri bilinmiyordu: pinctrl@7d504100 sayfası hiçbir profilde haritalı değildi, yani ne uygulanabiliyor ne okunabiliyordu. Bağlanmamış bir pede yazan sürücü, ölü bir karşı taraftan ayırt edilemez. Blok 0x30 bayt = 12 kelime; salt okuma bir envanter her pinin fonksiyonunu söyler ve bu koşudan sonra eklendi.

Kendi ölçümümüzdeki kusur: giriş hattı dalgalanması yazma sayıldı

BITS=3 çıktı, 2 bekleniyordu. Değişenlerden ikisi bizimdi (IODIR ve DATA'da bit 29 = BT_ON), üçüncüsü bit 31 = WIFI_SDIO_CMD — bir GİRİŞ hattı, okuma ile geri-okuma arasında kendiliğinden değişti. Ayrıca çip güçlenince bit 24–27 (BT UART pinleri) yükseldi. Tek bir bits_changed sayısı, giriş hatlarının doğal hareketini bizim yazmamızla aynı kefeye koyuyordu. Metrik ikiye ayrıldı: own_bit_applied ve foreign_data_bits / foreign_iodir_bits.

Doğru çalışanlar

  • GPIO canlılık kapısının R1'de yapılan düzeltmesi doğrulandı: LIVE=0 iken LIVE=1 oldu.
  • Her iki ON hattı da tam olarak bir bit sürüldü, komşu hatta dokunulmadan.
  • Backplane basamağı yine atladı ve nedenini yazdı: REASON=CMD5_NOT_READY.
  • Ekran ve arayüz etkilenmedi.
  • Firmware kartta durdu ve okunmadı — CMD53 hâlâ yok.

imaj f3b97d5ee996277912c4311378b5f38bcd77fb8e60b40fb1fcd68b8bdf457c55
kanıt evidence/rpi5/radio/attempt-r2-wl-on-power-uart-capture/

R32026-09-06

Düzeltme (R14 sonrası): R14 bu kartin silikonunun D0 oldugunu olctu. Bu kosu pin→kelime cevirisini C0 kuraliyla (pin / 8) yapti; D0'da her pin bir kelime asagida. Olculen sayilar — hangi adrese ne yazildi, ne geri okundu — gecerli. Onlara verilen PIN ADLARI degil. Ayrinti: evidence/rpi5/radio/CORRECTIONS-C0-TO-D0.md

Sorulan: R2'nin hipotezi doğru mu — pedler çevre birimlerine bağlı mı?

Cevap: Doğrulandı. İki radyonun da sessiz kalmasının sebebi kesin olarak biliniyor: pedler bağlı değildi.

BT UART'ın dört pini de gpio fonksiyonundaydı, uart0 değil

gpio24–27 (BT_RTS/CTS/TXD/RXD) fsel=0 okuyor, yani gpio. DTB uart0 istiyor ve bunun için gereken fsel 3 ya da 4. Dört baytlık HCI Reset gerçekten gönderildi (TX=4, LSR=0x60 = verici boş) ama UARTA'nın çıkışı pedlere bağlı değildi. Gönderilen baytlar hiçbir yere gitmedi.

SDIO'nun saat ve komut hatları da bağlı değildi

gpio30 (WIFI_SDIO_CLK) ve gpio31 (WIFI_SDIO_CMD) fsel=0 okuyor. CLK ve CMD bağlanmadan SDIO veri yolu hiç çalışamaz; veri hatlarının durumu bunu değiştirmez. CMD5'in sıfır cevabı tamamen açıklandı.

fsel=0'ın gpio olduğu tahminle değil iki bağımsız kanıtla belirlendi

Ölçüm: gpio28 (WL_ON) ve gpio29 (BT_ON) 0 okuyor ve R2'de ikisi de fiziksel olarak çipleri besledi. Kaynak: pinctrl-bcm2712.c içinde fsel_set, funcs[i-1] == func için fsel = i atıyor ve i birden başlıyor, yani 0 func_gpio için ayrılmış. Yol boyunca bir çıkarım hatası yapıldı ve düzeltildi: envanter SDIO_UNIFORM=0 deyince alan yerleşimi varsayımının yanlış olduğu sanıldı; gerçek sürücü kaynağı yerleşimin baştan doğru olduğunu gösterdi. Yanlış olan 'grup tekdüze olmalı' çıkarımıydı — grup tekdüze değildi ve bu, hatanın kendisi değil bulgunun kendisiydi.

Açıklanamayan: gpio32 ve gpio33 aralık dışı okuyor

İkisi de 9 okuyor; BCM2712_FSEL_COUNT 9, yani geçerli aralık 0–8. gpio34/35 ise vc_spi3 çözülüyor. Bu üç değer açıklanamıyor ve uydurulmuyor. Sonucu değiştirmiyorlar: CLK ve CMD bağlanmadan veri hatlarının ne olduğu önemsiz.

Doğru çalışanlar

  • Yeni GPIO metriği ilk kez ayrımı gösterdi: WIFIPWR FOREIGN_DATA=0x00000000 tertemiz; BTHCI FOREIGN_DATA=0x80000000 ve o bit 31 = WIFI_SDIO_CMD, bir GİRİŞ hattı. R2'de bu 'üç bit değişti' diye okunuyordu.
  • Envanter sıfır yazdı (WRITES=0) ve pencerenin canlı olduğunu bildirdi.
  • Backplane basamağı yine atladı ve nedenini yazdı.

imaj 3bd06ec5fd7e58e9211e44e1e346440d7ca9ad94278a368e70e295a935cf3270
kanıt evidence/rpi5/radio/attempt-r3-pinmux-inventory-uart-capture/

R42026-09-06

Düzeltme (R14 sonrası): R14 bu kartin silikonunun D0 oldugunu olctu. Bu kosu pin→kelime cevirisini C0 kuraliyla (pin / 8) yapti; D0'da her pin bir kelime asagida. Olculen sayilar — hangi adrese ne yazildi, ne geri okundu — gecerli. Onlara verilen PIN ADLARI degil. Ayrinti: evidence/rpi5/radio/CORRECTIONS-C0-TO-D0.md

Sorulan: Pedler çevre birimlerine bağlanabilir mi?

Cevap: Sekiz pin kabul edildi, iki pin donanım tarafından reddedildi — ve reddedilenler tam olarak SDIO'nun en kritik iki hattı.

8/10 tuttu; CLK ve CMD yazdırtmadı

gpio24–27 (BT UART) ve gpio32–35 (SDIO D0–D3) istenen değerleri aldı. gpio30 (WIFI_SDIO_CLK) ve gpio31 (WIFI_SDIO_CMD) 0 kaldı. Kelimeye tek bir 32-bit store yazıldı (0x44004443); alt 16 bit tuttu, üst 8 bit tutmadı. Aynı bloktaki komşu kelime yazmayı tamamen kabul etti. Sebebi bilinmiyor ve uydurulmuyor. CLK ve CMD bağlanmadan SDIO veri yolu çalışamaz.

Güvenlik kapıları temiz raporladı — ama yanlış yerleşimi göremediler

UNPLANNED=0x00000000 ve REF_INTACT=1 çıktı. İkisi de C0 kelime haritasına dayanıyordu ve bu kart D0. Aynı makbuz satırında W4=0x15555699->0x15553434 duruyor: kelime 4 gerçekten değişti ve hiçbir kapı bunu yakalamadı — D0'da orası boot SPI pad/pull kaydıdır (pin 1/2/3 = BOOT_CS_N / BOOT_MISO / BOOT_MOSI). Deponun kendi düzeltme defteri bunu R4'ten R13'e kadar her koşuda olmuş bir yan etki diye kaydediyor ve 'gözlenen bir arıza yok — ama bu bir şans, tasarım değil' diyor (evidence/rpi5/radio/CORRECTIONS-C0-TO-D0.md:54-60). Ders: bir kapı yalnızca beslendiği harita kadar doğrudur. R15'ten itibaren kelime 4 hiç yazılmıyor.

Veri yolu durumu değişti ama yetmedi

PSTATE 0x006f0000'dan 0x011f0000'a geçti: CMD hattı ilk kez yüksek. CMD5'in başarısızlık biçimi de değişti — 'tamamlandı ama sıfır cevap' yerine artık zaman aşımı. Veri yolu gerçekten farklı bir durumda. Bluetooth'un dört pini de artık uart0 fonksiyonunda ve dört bayt gönderiliyor, ama hâlâ cevap yok; sebebi bu koşudan çıkarılamıyor.

Siyah ekran bizim değildi

Bir önceki güç verme denemesinde ekran siyah kaldı ve pin mux yazmasından şüphelenildi. UART'ta bizim çekirdekten tek satır yoktu; gelen baytlar Raspberry Pi önyükleyicisine aitti ve altı kez 'Failed to open device: sdcard' diyordu. Kart okunamadığı için çekirdek hiç yüklenmemişti. Kart yeniden takılınca açılış normale döndü.

Doğru çalışanlar

  • Yazma sonrası her pin tek tek geri okundu; 8'i doğrulandı, 2'si açıkça uyuşmazlık olarak raporlandı.
  • Ekran ve arayüz etkilenmedi: SCREEN0 ve TOUCHREADY geldi.
  • Firmware kartta durdu ve okunmadı — CMD53 hâlâ yok.

imaj 3a5ad8de93b3aaa871df99455a86289bcf472cad0cefa8e0d438c01fd75c89f6
kanıt evidence/rpi5/radio/attempt-r4-pinmux-write-uart-capture/

R5–R62026-09-06

Sorulan: Pin 30/31 reddi hangi sebepten, ve riskli tekrar deneme makbuzdan sonraya alınınca ne oluyor?

Cevap: İki koşu sıfır bayt verdi (R5 ve R6-tekrar), bir koşu (R6-oturma) tam makbuz setini verdi ve R7 retry sonucunu bağımsız olarak tekrarladı.

R6-oturma: 27 159 bayt, aynı 8/10

Kablolar yerine oturtulduktan sonra hat konuştu ve tam mux makbuzunu verdi: VERIFIED=8/10 MISMATCH=2, PINMUXRETRY RETRIED=2 OK=0, PINMUXLATE W3=0x00004443 AFTER_MS=150, W4=0x15555699->0x15553434. Bu değerlerin hepsi R7 retry koşusuyla birebir aynı — yani o sonuç iki kez ölçüldü, tek koşuya dayanmıyor.

R5 ve R6-tekrar: sıfır bayt, makbuz yok

Bu iki koşudan hiçbir ölçüm alınamadı ve hiçbir sonuç iddia edilmiyor. Yakalama kuruluydu; cihazdan tek satır gelmedi.

Sıfır baytlar iki kez yanlış yere yorumlandı

Önce kendi teşhis kodumuzun UART'ı susturduğu sanıldı; sonra kablo/adaptör suçlandı ve boşuna donanım söküldü. Gerçek sebeplerden biri ölçüm yöntemiydi: macOS'ta stty -f ile yapılan ayarlar cihaz kapanınca kaybolur, bu yüzden ayrı stty ve cat komutlarıyla yapılan her okuma portu varsayılan 9600 baud'da açıyordu. 'Gürültü' sanılan şey yanlış hızda çözülmüş gerçek veriydi. Sekiz farklı baud denemesinin hepsinde ~70 bayt çıkması da bunu gösteriyordu ve ters okundu. Doğrusu portu açık tutup (exec 3<>) ayarı o açıklık içinde uygulamaktır; yakalama betiğinin C motoru zaten böyle yapıyor. Diğer bir sebep fizikseldi: USB-C hub bir kez yerinden çıkmış çıktı.

Kalıcı bir tasarım dersi

R5'te riskli yazma, onu açıklayacak makbuzdan ÖNCE konmuştu. Bir şey ters gitseydi olan biteni anlatacak satır hiç basılamayacaktı. Sıra değiştirildi: önce ne bilindiğini söyle, sonra riskli şeyi dene, sonra sonucu söyle. Bir kaynak testi bu sıralamayı pinliyor.

Doğru çalışanlar

  • Bu oturumun UART'ı kırılgan olduğu ölçüldü: R5=0, R6-tekrar=0, R6-oturma=27 159, R7=21 292, R7-staged=23 695, R8=22 016, R9=0 bayt.
  • R6-oturma, mux sonucunun tek bir koşuya dayanmadığını gösterdi.

imaj kaydedilmedi — bu koşuların paketlerinde imaj kimliği yok
kanıt evidence/rpi5/radio/attempt-r5-*, attempt-r6-retry-after-receipt-*, attempt-r6-reseat-live-*

R72026-09-06

Düzeltme (R14 sonrası): R14 bu kartin silikonunun D0 oldugunu olctu. Bu kosu pin→kelime cevirisini C0 kuraliyla (pin / 8) yapti; D0'da her pin bir kelime asagida. Olculen sayilar — hangi adrese ne yazildi, ne geri okundu — gecerli. Onlara verilen PIN ADLARI degil. Ayrinti: evidence/rpi5/radio/CORRECTIONS-C0-TO-D0.md

Sorulan: Toplu yazmadan sonra uyuşmayan pinler tek tek tekrar denenirse tutar mı, ve yazdığımız değer 150 ms sonra yerinde kalır mı?

Cevap: Hayır ve evet: tekrar deneme de tutmadı (RETRIED=2 OK=0), ve değer 150 ms sonra değişmedi — yani kimse üzerine yazmıyor, yazma baştan tutmuyor.

Toplu yazma da, tekrar deneme de tutmadı

PINMUXW VERIFIED=8/10 (toplu 32-bit store), PINMUXRETRY RETRIED=2 OK=0 (uyuşmayan iki pin tek tek yeniden yazıldı), PINMUXLATE W3=0x00004443 AFTER_MS=150 (değer yerinde kaldı). Bu koşu tek nibble'ı SIFIR kelimeden denemedi — o R7-staged ve R8'in işi.

Buradan 'salt okunur, VPU sahiplenmiş' sonucu çıkarmak yanlış olurdu

Aynı adreste, kelime hâlâ sıfırken bu iki nibble'ı tek tek yazıp tutturan bir bare-metal koşu bildiriliyor. Ayrıca Linux sürücüsünde kilit ya da şifre kaydı yok, yerleşim doğrulandı, ve DTB'deki non-removable 'firmware Wi-Fi'yi yönetir' demek değil. Bu yüzden VPU sahipliği bu sayfada iddia EDİLMEZ; ölçülmemiştir.

Wi-Fi çipi cevap verdi ama cevabı alınmadı

CMD5=1 OCR=0xfc000000 FUNCS=7 READY=1 geldi. Üç sebeple güvenilmez sayıldı: gerilim penceresi sıfır, FUNCS=7 mümkün olan maksimum, ve STATUS'te hata biti kurulu — hemen ardından CMD3 tamamen başarısız. 'Çip uyandı' değil, 'cevap kaydı çöp okundu' okunuşu tercih edildi.

Doğru çalışanlar

  • Tekrar deneme UART'ı öldürmedi; önceki koşuda ondan şüphelenilmişti, yanlıştı.
  • UNPLANNED=0x00000000 ve REF_INTACT=1 — güvenlik kapıları temiz.

imaj 7ee5cc98a0fb5227cbf785bd682585cf6a0ca7dde5a08c17d80528a1176c72b4
kanıt evidence/rpi5/radio/attempt-r7-retry-after-receipt-uart-capture/

R7-staged2026-09-06

Düzeltme (R14 sonrası): R14 bu kartin silikonunun D0 oldugunu olctu. Bu kosu pin→kelime cevirisini C0 kuraliyla (pin / 8) yapti; D0'da her pin bir kelime asagida. Olculen sayilar — hangi adrese ne yazildi, ne geri okundu — gecerli. Onlara verilen PIN ADLARI degil. Ayrinti: evidence/rpi5/radio/CORRECTIONS-C0-TO-D0.md

Sorulan: Kelime tertemiz sıfırken önce yalnızca CLK+CMD yazılırsa tutar mı? (Sıra hipotezinin ilk biçimi.)

Cevap: Tutmadı. Sıra hipotezinin bu biçimi de bu kartta çalışmadı.

Aşama 1 sıfır kelimeden yazdı ve tutmadı

S1_WROTE=0x44000000 S1_READ=0x00000000 S1_HELD=0. Ardından aşama 2'de UART yazıldı ve tuttu (S2_UART=1), CLK/CMD yine gelmedi (S2_CLKCMD=0). Aynı koşuda komşu kelime 4 (SDIO D0–D3) da yazmayı aldı.

Sıra hipotezinin iki biçimi de elendi

Bu koşu CLK+CMD'yi BİRLİKTE, kelime sıfırken denedi. R8 ise pin 30'u TEK BAŞINA, yine sıfır kelimeden denedi. İkisi de tutmadı. Yazma yolu çalışıyor — UART nibble'ları ve kelime 4 alıyor — reddedilen üst bitler. (R13 düzeltmesi: sınır bit 24'te değil bit 16'da; kelimenin alt yarısı yazılıyor, üst yarısı yazılmıyor.)

Doğru çalışanlar

  • VERIFIED=8/10 UNPLANNED=0x00000000 REF_INTACT=1 — güvenlik kapıları temiz.
  • Yakalama 23 695 bayt, TOUCHREADY ile kapandı.

imaj kaydedilmedi — bu paketin boşluğu
kanıt evidence/rpi5/radio/attempt-r7-staged-mux-uart-capture/

R82026-09-06

Düzeltme (R14 sonrası): R14 bu kartin silikonunun D0 oldugunu olctu. Bu kosu pin→kelime cevirisini C0 kuraliyla (pin / 8) yapti; D0'da her pin bir kelime asagida. Olculen sayilar — hangi adrese ne yazildi, ne geri okundu — gecerli. Onlara verilen PIN ADLARI degil. Ayrinti: evidence/rpi5/radio/CORRECTIONS-C0-TO-D0.md

Sorulan: Forum'un sırası — önce pin 30, sonra pin 31 — bu kartta tutar mı?

Cevap: Tutmadı. Sıra hipotezi bu kartta yeniden üretilemedi.

Kelime tertemiz sıfırken, tek nibble, yine tutmadı

W3_INIT=0x00000000 P30_WROTE=0x04000000 P30_READ=0x00000000 P30_HELD=0. Forum koşusunun başlangıç koşulu birebir kuruldu. Ardından pin 31 de tutmadı. Aynı koşuda UART nibble'ları (bit 15:0) ve komşu kelime 4 (SDIO D0–D3) yazmayı ALDI.

Erişim genişliği hipotezi de zayıfladı

Geriye kalan desen — alt yarı yazılıyor, üst yarı yazılmıyor — kaydın 16 bit olması gibi görünüyordu. Ama Linux sürücüsü bu bloğa yalnızca 32-bit erişiyor (writel/readl; dosyada tek bir writew/writeb yok) ve Pi OS'ta bu pinleri sd2'ye muxlayıp Wi-Fi'yi çalıştırıyor. Kayıt 16 bit olsaydı Linux'un yazması da başarısız olurdu.

Doğru çalışanlar

  • VERIFIED=8/10 UNPLANNED=0x00000000 REF_INTACT=1 — güvenlik kapıları yine temiz.
  • Ekran yaşadı: SCREEN0, TOUCHREADY, 60 Hz PRESENT.
  • Çekirdeği aklayan koşu budur: 22 016 bayt, önyükleyici + tam makbuz seti.

imaj kaydedilmedi — koşuyu akıtan oturum imaj sha256'sını yazmadı
kanıt evidence/rpi5/radio/attempt-r8-pin30-then-pin31-uart-capture/

R92026-09-07

Sorulan: Erişim genişliği (8/16/32 bit) CLK/CMD mux yazmasını değiştirir mi?

Cevap: Bilinmiyor: cihazdan TEK BAYT gelmedi. Bu koşudan hiçbir ölçüm yoktur ve hiçbir sonuç iddia edilmez.

Sıfır bayt, makbuz yok

Yakalama kuruldu (capture_armed=YES) ama 0 bayt alındı, kapanış satırı hiç yazılmadı ve süreç dışarıdan sonlandırıldı. ASELSAN/PINMUXWIDTH makbuzu ALINMAMIŞTIR. Ekranın yaşaması SoC'un asılı kalmadığını söyler; sondanın yürüdüğünü söylemez.

Bu paketin kendi mühür kusuru kayıtlı

İlk mühür yanlıştı: EVIDENCE_SHA256SUMS, yakalama hâlâ koşarken ve uart10.raw boş/0600 iken alınmıştı. Bir paket kendi yakalaması sürerken mühürlenemez. Mühür sonlandırma sonrası yeniden alındı, ama paket yine de TAMAMLANMAMIŞ bir yakalamadır ve öyle okunmalıdır.

Sessizliğin sebebi bu koşuda belirlenmedi

O oturumun UART hattı kırılgandı: USB-C hub yerinden çıktı, adaptör birkaç kez yeniden numaralandı ve macOS'ta stty -f ayarları cihaz kapanınca kaybolduğu için port varsayılan 9600 baud'da açılıyordu. Kesin sebep bu koşu için belirlenmemiştir.

Doğru çalışanlar

  • Paket kendi geçersizliğini açıkça yazıyor: 'bu koşudan hiçbir ölçüm yoktur'.

imaj kaydedilmedi — R9 paketinde imaj kimliği yazılmadı
kanıt evidence/rpi5/radio/attempt-r9-width-probe-uart-capture/

R102026-09-06

Düzeltme (R14 sonrası): R14 bu kartin silikonunun D0 oldugunu olctu. Bu kosu pin→kelime cevirisini C0 kuraliyla (pin / 8) yapti; D0'da her pin bir kelime asagida. Olculen sayilar — hangi adrese ne yazildi, ne geri okundu — gecerli. Onlara verilen PIN ADLARI degil. Ayrinti: evidence/rpi5/radio/CORRECTIONS-C0-TO-D0.md

Sorulan: Erişim genişliği (8/16/32 bit) CLK/CMD yazmasını değiştirir mi?

Cevap: Hayır. Üç genişlik de tutmadı; erişim genişliği ölçülerek elendi.

8, 16 ve 32 bit — üçü de yazmadı

Pin 30 ve 31 aynı baytta yaşadığı için (0x10_7D50_410F) üç genişlik de tam olarak aynı iki nibble'ı hedefledi: 8 bit 0x44, 16 bit 0x4400, 32 bit 0x44000000. Hepsi W8_HELD=0 W16_HELD=0 W32_HELD=0. Ayrıca üç genişlikte okuma da yapıldı ve üçü uyuştu (R32=0, R16=0, R8=0) — kayıt haritası varsayımı doğru.

Zaten zayıflamış bir hipotezdi, artık ölçüldü

Linux sürücüsü bu bloğa yalnızca 32-bit erişiyor (writel/readl; dosyada tek bir writew/writeb yok) ve Pi OS'ta bu pinleri sd2'ye muxlayıp Wi-Fi'yi çalıştırıyor. Kayıt 16 bit olsaydı Linux'unki de başarısız olurdu. R10 bunu çıkarım olmaktan çıkarıp ölçüme dönüştürdü.

Doğru çalışanlar

  • Her aşamadan sonra kelime sıfırlandı; REF_INTACT=1, ON hatlarının nibble'ları hiç bozulmadı.
  • Ölçüm kelime tertemiz sıfırken yapıldı (ALLOWED=1) — R8 ile aynı başlangıç koşulu.
  • Yeniden açılış doğrulandı: FRAMES sıfırdan başladı.

imaj 256104c4880f40bde9ab74f6ea6ebfbb988d2d7efa23f31979d9bc75af7487bd
kanıt evidence/rpi5/radio/attempt-r10-width-probe-uart-capture/

R112026-09-06

Sorulan: sdio2 DTB'de kapatılırsa pinler serbest kalır mı?

Cevap: GEÇERSİZ KOŞU. Overlay yüklendi ama uygulanmadı; hipotez sınanmadı. Bu bir sonuç değil, bir başarısızlık kaydıdır.

Dosya kartta olmak yetmiyor

config.txt'ye genel ad yazılmıştı (dtoverlay=disable-wifi) ve iki .dtbo da karttaydı, imzaları doğrulanmıştı. Yine de: overlay_map.dtb not found → firmware genel adı Pi 5 varyantına yönlendiremedi → temel dosyayı yükledi (387 bayt, bcm2835) → o dosya &mmc/&mmcnr hedeflediği ve Pi 5 DTB'sinde bu düğümler bulunmadığı için 'Failed to resolve overlay' verdi. sdio2 hiç kapanmadı.

Bu koşudaki P30_HELD=0 hiçbir şey kanıtlamaz

Deneyin bağımsız değişkeni uygulanmadığı için firmware hipotezi sınanmamıştır. Satırlar yalnızca R10'u tekrarlıyor.

Geçerlilik şartı yetersizmiş, düzeltildi

Şart 'overlay yüklendi mi' idi; dosya yüklenebilir ve yine de uygulanmayabilir. Yeni şart iki parçalı: UART'ta disable-wifi-pi5.dtbo bytes 267 görülmeli VE 'Failed to resolve overlay' görülmemeli. Bayt sayısı hangi dosyanın yüklendiğini tek başına söyler.

Doğru çalışanlar

  • Olumlu kontrol yerinde: UART_OK=1, gpio24–27 yazmayı almaya devam etti.
  • Çekirdek yeniden derlenmedi; flash hedefi sha'yı hem depoda hem kartta doğruladı.

imaj 256104c4880f40bde9ab74f6ea6ebfbb988d2d7efa23f31979d9bc75af7487bd
kanıt evidence/rpi5/radio/attempt-r11-disable-wifi-overlay-uart-capture/

R122026-09-06

Düzeltme (R14 sonrası): R14 bu kartin silikonunun D0 oldugunu olctu. Bu kosu pin→kelime cevirisini C0 kuraliyla (pin / 8) yapti; D0'da her pin bir kelime asagida. Olculen sayilar — hangi adrese ne yazildi, ne geri okundu — gecerli. Onlara verilen PIN ADLARI degil. Ayrinti: evidence/rpi5/radio/CORRECTIONS-C0-TO-D0.md

Sorulan: sdio2 gerçekten kapatıldığında pinler serbest kalır mı?

Cevap: Hayır. Overlay doğrulanmış biçimde yüklendi ve uygulandı; yazılabilirlik değişmedi.

Geçerlilik bu kez sağlandı

Read /overlays/disable-wifi-pi5.dtbo bytes 267, ardından Loaded overlay 'disable-wifi-pi5'. 'Failed to resolve overlay' sıfır kez geçiyor. Overlay'in yaptığı tek şey &sdio2 düğümüne status = disabled.

Sonuç değişmedi

Kelime tertemiz sıfırken (W3_INIT=0x00000000) tek nibble yazıldı ve tutmadı: P30_HELD=0 P31_CLK=0 P31_CMD=0. R8 ile birebir aynı. Olumlu kontrol yerinde: UART_OK=1.

Sonucun sınırı

Bu koşu şunu söyler: disable-wifi-pi5 / sdio2 status=disabled yazılabilirliği değiştirmedi. VPU sahipliğinin kanıtı DEĞİLDİR; bütün firmware hipotezinin çürütülmesi de DEĞİLDİR — denenen tek bir düğmedir. Firmware'in o pinleri başka bir yoldan tutuyor olması hâlâ mümkün ve hâlâ ölçülmemiştir.

Doğru çalışanlar

  • WIFICMD5 aynı çöp cevabı verdi — beklenen: çekirdek DTB'ye bakmadan doğrudan SDIO MMIO'ya yazıyor, düğümün disabled olması onu durdurmaz.
  • Altı bağımsız koşuda değişmeyen: bit 15:0 ve kelime 4 yazmayı ALIYOR, üst bitler almıyor. R13 sınırı ölçtü: bit 24'te değil, bit 16'da.

imaj 256104c4880f40bde9ab74f6ea6ebfbb988d2d7efa23f31979d9bc75af7487bd
kanıt evidence/rpi5/radio/attempt-r12-disable-wifi-pi5-overlay-uart-capture/

R132026-09-06

Düzeltme (R14 sonrası): R14 bu kartin silikonunun D0 oldugunu olctu. Bu kosu pin→kelime cevirisini C0 kuraliyla (pin / 8) yapti; D0'da her pin bir kelime asagida. Olculen sayilar — hangi adrese ne yazildi, ne geri okundu — gecerli. Onlara verilen PIN ADLARI degil. Ayrinti: evidence/rpi5/radio/CORRECTIONS-C0-TO-D0.md

Sorulan: Sınır tam olarak nerede — bit 24'te mi, yoksa daha aşağıda mı?

Cevap: Bit 16'da. Altı koşudur söylenen 'reddedilen tam olarak bit 31:24' ifadesi yanlıştı ve bu ölçüm onu düzeltti.

Bit 23:16 hiç test edilmemişti

Orası ON hatları (pin 28 WL_ON, pin 29 BT_ON) ve onlara her zaman 0 yazılmıştı — zaten 0'dılar. O yazma hiçbir şey kanıtlamayan bir no-op'tu, ama 'reddedilen tam olarak bit 31:24' iddiası ona dayanıyordu.

Pin 28 de yazmayı almadı

ON_WROTE=0x00010000 ON_READ=0x00000000 ON_HELD=0. fsel=1 (C0 tablosunda funcs[0]=mtsif) yazıldı, tutmadı. Geri alma temiz (ON_RESTORED=0x00000000), pin 29'a dokunulmadı, SAFE=1 — mux ve güç normal devam etti.

Ölçülen hücreleri açıklayan tek kural

ÖLÇÜLEN hücrelerde bir mux alanı kelimenin ALT 16 bitinde ise yazılıyor, ÜST 16 bitinde ise yazılmıyor — erişim genişliğinden bağımsız (R10: 8, 16 ve 32 bitlik store'ların üçü de üst yarıda başarısız). pin 24–27 kelime 3 alt yarı: yazıldı. pin 28, 30, 31 kelime 3 üst yarı: yazılmadı. pin 32–35 kelime 4 alt yarı: yazıldı. Yani pin 32–35 CLK/CMD'den 'daha şanslı' değil, sadece alt yarıdalar.

Kural 12 kelimelik bloğa YAYILMADI

Tablo yalnızca kelime 3 ve kelime 4'ün alt yarısı içindir. Ölçülmeyenler ölçülmemiş olarak duruyor: kelime 4'ün üst 16 biti (pin 36–39) hiç yazılmadı, pin 29 (bit 23:20) hiç yazılmadı, kelime 0/1/2/5–11 hiç yazılmadı. Pin 29 aynı üst yarıda olduğu için sonucu değiştirmesi beklenmez, ama beklenti ölçüm değildir. Bankanın gpio-line-names'i 36 hat sayıyor, yani pin 36–39 diye bir hat da yoktur.

Açık kalan gerilim

Linux bu bloğa yalnızca 32-bit writel ile erişiyor ve Pi OS'ta pin 30–35'i sd2'ye muxlayabiliyor. Yani üst yarı Linux altında yazılabiliyor olmalı. Bizim ortamımızda neyin farklı olduğu açık bir sorudur. Pin 29 da hâlâ test edilmemiştir; aynı üst yarıda olduğu için sonucu değiştirmesi beklenmez ama ölçülmemiştir.

Doğru çalışanlar

  • Sonda bir mux adımı değildi: PIN_PLAN'e 28/29 girmedi, kaynak testi bunu pinliyor.
  • Fail-closed: ON_RESTORED sıfır dışı çıksaydı mux yazması ve güç verme atlanacaktı.
  • Karşılaştırma tabanı R10 — aynı yapılandırma, overlay temizlenmiş, tek değişken sonda.

imaj 3820ef8396f5f47e904cca8dd9a5c7289cfd524fd600fa0fb17f2aa1e0c1dc9d
kanıt evidence/rpi5/radio/attempt-r13-on-nibble-boundary-uart-capture/

R142026-09-06

Sorulan: Bu kartın silikonu C0 mu D0 mı? Yalnızca overlays/bcm2712d0.dtbo kartın üstüne konulacak, config.txt'ye tek satır eklenmeyecek.

Cevap: D0. Firmware dosyayı kendisi aradı ve yükledi. On üç koşudur yanlış pin tablosunu kullanıyormuşuz.

İpucu on üç koşudur açılış logunda duruyordu

Her açılışta 'overlays/bcm2712d0.dtbo not found' satırı geçiyordu ve gözden kaçmıştı. Firmware o dosyayı yalnızca silikon D0 ise arar; C0'da atlar. Dosya kartın üstüne konulunca 'Read /overlays/bcm2712d0.dtbo bytes 1363' ve ardından overlay'in yüklendiği satır geldi. config.txt'ye dtoverlay=bcm2712d0 YAZILMADI — zorlamak C0'da kelime 2'deki PWR_GPIO'ya DTB yapıştırırdı; ölçmek istediğimiz şey firmware'in kendi kararıydı.

D0'da her pin bir kelime aşağıda

pin 24–27 (BT UART) ve 28–31 (WL_ON / BT_ON / CLK / CMD) kelime 3'te değil kelime 2'de; pin 32–35 (SDIO D0–D3) kelime 4'te değil kelime 3'te. Yani 'BT UART'ı muxladık' dediğimiz yazma aslında WIFI_SDIO_D0..D3'ün mux'ıydı; 'CLK/CMD reddediliyor' dediğimiz hücreler ise var olmayan pin 38–39'du.

Kelime 4 mux kaydı bile değil

D0'da kelime 4 pad/pull kaydıdır. R4'ten R13'e kadar oraya yaptığımız yazmalar boot SPI pad ayarlarını (pin 1/2/3 = BOOT_CS_N / BOOT_MISO / BOOT_MOSI) değiştiriyordu. Gözlenen bir arıza olmadı — kart her seferinde açıldı — ama bu şanstı, tasarım değil.

On üç koşuluk 'kilit' bir kilit değildi

VPU sahipliği, erişim genişliği, sdio2'nin açık olması, kaydın 16 bit olması — hepsi tek tek elendi ve hiçbiri sebep değildi. Sebep bizim tablomuzdu. Bu sayfadaki R3–R13 kartlarının ölçümleri geçerli, pin adlandırmaları geçersiz; her birinin üstünde düzeltme notu var.

Doğru çalışanlar

  • Tek değişken kuralı: çekirdek yeniden derlenmedi, config.txt değişmedi, karta yalnızca bir dosya eklendi.
  • Geçerlilik koşulu önceden yazıldı: overlay'in yüklendiği UART'ta görülmezse koşu geçersiz sayılacaktı. Görüldü.

imaj 3820ef8396f5f47e904cca8dd9a5c7289cfd524fd600fa0fb17f2aa1e0c1dc9d
kanıt evidence/rpi5/radio/attempt-r14-d0-stepping-probe-uart-capture/

R152026-09-06

Sorulan: Pin planı D0 tablosuna taşındığında yazma tutuyor mu? Beklenti şuydu: bu, D0 tablosunun çalışacağını göstermez; doğru kayda yazdığımızı ölçer.

Cevap: Tuttu — VERIFIED=10/10. Ve beklentinin ötesine geçti: SDIO arka düzlemi cevap verdi, çip kendini BCM43455 olarak tanıttı. Wi-Fi hâlâ YOK.

On pinin onu da muxlandı

W2_CLK=0x01000000 CLK=1, W2_CMD=0x11000000 CMD=1, W2_UART=0x11004444 UART=1, W3_DAT=0x00001111 DAT=1, VERIFIED=10/10, UNPLANNED=0x00000000, REF_INTACT=1. On üç koşudur reddedilen üst yarı, doğru kelimeye yazıldığında kabul etti. Donanımda kısıt yoktu; yanlış kelimeye yazıyorduk.

Fail-closed kuralları tuttu

ON28=0 ON29=0 ON_INTACT=1 — WL_ON ve BT_ON nibble'ları hiç maskelenmedi. W4=0x15555699->0x15555699 W4_UNTOUCHED=1 — kelime 4 okundu, aynen geri okundu, yazılmadı; boot SPI pad ayarları bu koşuda korundu. PINMUXLATE 150 ms sonra üç kelimeyi de yerinde buldu.

OCR ilk kez anlamlı

R14'te OCR=0xfc000000 idi: FUNCS=7 (azami), MEM=1 (SDIO-only bir kartta olamaz), gerilim penceresi tamamen boş — çöp. R15'te OCR=0xb0ffff00: FUNCS=3, MEM=0, gerilim penceresi 0xffff00, yani 2,7–3,6 V. Sabit-1'e çekilmiş bir hat 0xffffffff verir, ölü bir hat 0x00000000; bu ikisi de değil.

Çip kendini tanıttı: BCM43455

CMD3 bir RCA verdi (0x0001), CMD7 kartı seçti, CCCR_REV=0x43 okundu, fonksiyon 1 açıldı ve ilk yoklamada hazır oldu (FN1_EN=1 FN1_READY=1 READY_POLLS=1), arka düzlem penceresi kuruldu ve geri okundu (WINDOW=1). CHIPID=0x15264345 → id=0x4345 = BCM43455, rev 6, pkg 2. Değer uydurulmadı: 16 CMD52 ile ChipCommon 0x1800_0000'dan okundu. Karttaki firmware dosyaları zaten bu parça için seçilmişti; çip artık kendisi de öyle olduğunu söylüyor.

Wi-Fi hâlâ yok — kapı açıldı, odaya girilmedi

CMD53=0, FIRMWARE=0, SCAN=0, SSID=0. Blok aktarımı yazılmadı, firmware indirilmedi, tarama yapılmadı, tek bir SSID okunmadı. Ağ listesi ekranı hâlâ ölçülmüş veri taşımıyor. Bu koşu Wi-Fi'nin çalıştığını göstermez; firmware indirmesinin ön koşulunun sağlandığını gösterir.

Bluetooth cevap vermedi

BT pinleri artık doğru kelimede (UART=1), BT_ON kaldırıldı (BT_ON_WAS=0 → BT_ON=1), dört baytlık HCI Reset gönderildi (TX=4 TXTO=0), ama yedi baytlık olay çerçevesi gelmedi: RXLEN=0 RXTO=1 EVENT=0 ANSWERED=0. Kalkış süresi mi, baud bölücü (DIV=52) mü — bu koşu ikisini ayırt etmiyor.

Bu koşuda bulunan kusur: envanter satırı hâlâ C0 etiketliyor

ASELSAN/PINMUX (salt-okunur envanter) pin→kelime çevirisini hâlâ pin/8 ile yapıyor. Yazma yolu D0'a taşındı, envanter taşınmadı. Aynı yakalamanın içinde SDIO=[Some(0), Some(0), Some(9), Some(9), Some(6), Some(5)] duruyor; son dört hücre kelime 4'ten okunuyor ve D0'da orası pad kaydı — o 9, 9, 6, 5 değerleri fonksiyon seçici değil, pad bitleri. Rakamlar doğru okundu, adları yanlış. Envanter taşınana kadar bu koşunun mux kanıtı yalnızca PINMUXW satırıdır.

Doğru çalışanlar

  • Nibble 4/5 (WL_ON / BT_ON) hiç maskelenmedi; PIN_PLAN'e 28/29 girmedi.
  • Kelime 4 yazılmadı, yalnızca okunup geri okundu — boot SPI pad yan etkisi durduruldu.
  • Plan dışı hiçbir alan değişmedi: UNPLANNED=0x00000000, REF_INTACT=1.
  • Çip kimliği uydurulmadı; CMD52 ile okundu ve karttaki firmware seçimiyle bağımsız olarak örtüştü.

imaj feca85dc53963589a5b5f1c2d3114e7c255510dc4099940d71a1b61e1bab6932
kanıt evidence/rpi5/radio/attempt-r15-d0-pinplan-uart-capture/

R162026-09-06

Sorulan: Kapı 1: CMD53 blok aktarımı doğru veri taşıyor mu? Sınırlar, zaman aşımı, hata dönüşleri, veri bütünlüğü — dördü de ayrı ayrı.

Cevap: GATE1=0. CMD53 gerçek veri taşıdı (64 bayt, hatasız, ölü desen değil) ama iki aktarım düştü ve bütünlük ölçülemedi. Ölçülememesinin sebebi benim makbuz kusurumdu.

Olumlu kontrol hata yolunun canlı olduğunu kanıtladı

Var olmayan fonksiyon 7'ye gönderilen CMD53'ü kart FUNCTION_NUMBER hatasıyla reddetti (NEG_R5=0x92). Kapının en önemli tek sonucu bu: bu adım olmadan aşağıdaki başarısızlıklar 'belki hatayı göremiyoruz' diye açıklanabilirdi. Göremiyor değiliz — hatalar gerçek.

Üç bekleyişi ayırmak işe yaradı

TO_CMD=000 TO_BUF=000 TO_XFER=100. Üç bekleyişten yalnızca biri, yalnızca bir aktarımda takıldı. Tek bir 'olmadı' bayrağı olsaydı bu, komutun hiç gitmemesiyle karıştırılırdı.

İki düşüş aynı tür değil

4 baytlık okuma: R5 temiz (0x10), SDHCI hata kaydı 0x0020 = DATA_CRC — veri hattı. Blok kipi: R5=0x90 = COM_CRC — komut hattı. R5 ile SDHCI hata kaydını ayrı alanlarda tutmak bunu görünür kıldı; tek bir 'hata' bayrağı ikisini aynı sanmamıza yol açardı.

Makbuz kusuru 1: REPEAT iki olguyu tek bite ezdi

Kod repeat.complete() && veri_eşit hesaplayıp tek bit basıyordu. 'Tekrar okuma başarısız oldu' ile 'veri farklı geldi' ayırt edilemiyordu. R2'de düzeltilen bits_changed kusurunun aynısı: iki ayrı olguyu tek sayaca sıkıştırmak.

Makbuz kusuru 2: bütünlük düşen okumaya bağlanmıştı

MATCH52 karşılaştırması başarısız olan 4 baytlık okumaya bağlıydı. Oysa 64 bayt ChipCommon ofset 0'dan geldi, yani ilk dört baytı chipid'dir ve CMD52 ile karşılaştırılabilirdi. Başaran tek aktarımın verisi hiç yazdırılmadı.

Doğru çalışanlar

  • SMB=1 ve BLKSZ_SET=1: çoklu blok desteği ve blok boyu kartın kendisinden okundu, varsayılmadı.
  • Sınır kontrolü veri yolunda değil, komut gönderilmeden önce; sıfır sayaç her iki kipte reddediliyor.
  • Ön koşullar R15'i birebir tekrarladı: VERIFIED=10/10, CHIPID=0x4345, REACHABLE=1 — farklı imajla.

imaj 56563785750ab404f2a8316f39d5633d91786dae6afaa944492f040a803e26e7
kanıt evidence/rpi5/radio/attempt-r16-cmd53-gate1-uart-capture/

R172026-09-06

Sorulan: 4 baytlık okumanın düşme sebebi SIRA mıydı? Aynı okuma, bu kez 64 baytlıklardan sonra. (Bu deney boy ile BLKSIZE=4 hizalamasını AYIRMAZ.)

Cevap: Hayır. B4 ve B4A ikisi de düştü. Sıra elendi. Geriye kalan boy ve hizalama bu koşuda ayrılmadı ve ayrıldığı iddia edilmiyor.

Aynı istek, iki farklı arıza

İlk deneme: TO_XFER + DATA_CRC (0x0020), R5 temiz. Sonraki deneme: zaman aşımı yok, SDHCI hatası yok, R5=0x90 COM_CRC. Konumu değiştirmek başarısızlığı kaldırmadı ama TÜRÜNÜ değiştirdi. Ölçülen bir olgudur; açıklaması yoktur.

Makbuz kusurunu düzeltmek hemen karşılığını verdi

RP_OK=0 ama RP_MATCH=1. Tekrar okuması 64 baytın hepsini getirdi ve veri birinciyle birebir aynı çıktı — ama cevabı COM_CRC taşıdığı için aktarım tam sayılmadı. R16'nın tek bitlik REPEAT=0'ı bunu 'tutmadı' diye gösterir, verinin kusursuz geldiğini gizlerdi.

Blok kipi bu koşuda çalıştı — yani kararsız

BLK_OK=1 BLK_MATCH=1. R16'da aynı yol R5=0x90 ile düşmüştü. Kod aynı, kart aynı, blok boyu aynı. R16'nın tek koşusuna bakıp 'blok kipi çalışmıyor' demek yanlış olurdu.

Asıl bulgu: CMD53 kendiyle tutarlı, CMD52 ile değil

Aynı adres (fonksiyon 1, adres 0, pencere ChipCommon'da): CMD52 0x15264345 döndü, CMD53 0x00804253. Ve CMD53 tarafı gürültü değil, kararlı — RP_MATCH=1, BLK_MATCH=1, ölü desen değil. Üç bağımsız CMD53 aktarımı birbiriyle uyuşuyor; üçü de CMD52 ile uyuşmuyor. Kapının varlık sebebi tam olarak budur: bu doğrulama olmadan firmware indirmek 609 309 baytı sessizce yanlış içerikle yazmak olurdu.

Doğru çalışanlar

  • Ayrım sınırı önceden yazıldı ve bir kaynak testi belgenin ayıramadığı sonucu iddia etmesini engelliyor.
  • Çubuk indirilmedi: byte4 hâlâ kapının şartı; bir test 'byte4 şarttan çıkarılmış' durumunu yakalıyor.

imaj f3970f5e7a67368b467761ddc41a83140e1426ce5d530331cf96e3fd887d72d0
kanıt evidence/rpi5/radio/attempt-r17-cmd53-order-discriminator-uart-capture/

R182026-09-06

Sorulan: Pencere enumerate() ile transfer_probe() arasında kaymış mıydı? Pencereyi yeniden yaz, geri oku, taze CMD52 ile karşılaştır.

Cevap: Hayır. WIN_OK=1, taze CMD52 chipid'i görüyor, CMD53 hâlâ 0x00804253 görüyor. Kayma bu anlaşmazlığı açıklamıyor.

Pencere doğrulanmış ChipCommon iken bile uzlaşmazlık duruyor

Üç SBADDR baytı 0x18000000 olarak yazıldı ve geri okundu. Hemen ardından: taze CMD52 = 0x15264345, CMD53 64 baytın ilk dördü = 0x00804253. R16/R17'deki değerle birebir aynı.

Karşılaştırma tabanı taşındı

R17'ye kadar MATCH52'nin tabanı enumerate()'in chipid'iydi — başka bir zamanda, başka bir pencere durumunda okunmuş bir değer. R18 tabanı aynı fonksiyonun kendi taze okumasına taşıdı. enumerate değeri WIFIBP satırında durur, MATCH52'ye girmez.

Bu koşunun ölçmediği

Yeniden yazmadan ÖNCE pencerenin nerede durduğu ölçülmedi. Ölçülen şey: pencere doğrulanmış ChipCommon iken iki mekanizma aynı adresten farklı sayı döndürüyor.

Doğru çalışanlar

  • Tek değişken: pencere yeniden yazımı. Diğer bütün ölçüler R17 ile aynı kaldı ve aynı sonucu verdi.
  • Pencere alanları kapı şartına sızmıyor — tanısal ölçülerdir.

imaj 4a61d6477253b85f590c7d13e16f44ef8d6958493024d8711204c28450a7b8cf
kanıt evidence/rpi5/radio/attempt-r18-window-rewrite-uart-capture/

R192026-09-06

Sorulan: Sebep arka düzlemdeki 4 baytlık erişim bayrağı (0x8000) mı? Dört hücre aynı pencerede: CMD52 ve CMD53, adres 0x0000 ve 0x8000.

Cevap: Hayır. Bayrak veri yoluna çıktı (FLAGADDR=0x8000) ve CMD53'ün gördüğünü değiştirmedi. Aday elendi.

Yazarken bulunan ve deneyi geçersiz kılacak olan kusur

cmd52_read_u32 adresi WINDOW_MASK = 0x7fff ile maskeliyordu, yani bit 15'i siliyordu. Oraya 0x8000 geçirilseydi sessizce 0 olur ve makbuz 'bayrak hiçbir şeyi değiştirmedi' derdi — oysa bayrak hiç gönderilmemiş olurdu. R13'teki 'zaten sıfır olan alana sıfır yazmak' kusurunun aynısı. Maske artık yalnızca ofsete uygulanıyor, bayrak sonra ekleniyor.

2×2 beklenmedik bir asimetri gösterdi

CMD52: adres 0x0000'da 0x15264345, adres 0x8000'de 0x00000000 — gördüğü adrese BAĞLI. CMD53: her iki adreste de 0x00804253 — gördüğü adrese bağlı DEĞİL. Bayrak boş bir işlem değil; o adres CMD52 için gerçekten başka bir yer.

Geçerlilik şartı önceden yazıldı ve tuttu

FLAGADDR alanı 0x0000 bassaydı bayrak veri yoluna hiç çıkmamış olurdu ve koşu geçersiz sayılacaktı. 0x8000 bastı.

Doğru çalışanlar

  • Elenenler listesi üç satır oldu: pencere kayması (R18), konum (R17), 4 baytlık erişim bayrağı (R19).
  • Bayrak alanları tanısal; gate1_passed()'e sızmadığı testle doğrulanıyor.

imaj 1374429f31c12a0c7cace50967f2864e5d8c81a4282e0111a532061c7dc85480
kanıt evidence/rpi5/radio/attempt-r19-4byte-access-flag-uart-capture/

R202026-09-06

Sorulan: CMD53 argümanındaki adres alanını dikkate alıyor mu? R19 yalnızca iki nokta ölçmüştü ve iki nokta eğri çizmez.

Cevap: GEÇERSİZ KOŞU. Kendi önceden yazılmış şartına takıldı. Sonuç okunmadı ve okunmayacak.

Kusur 1: dördüncü okuma tamamlanmadı

OK3=0. Geçerlilik şartı dört CMD53 okumasının dördünü de istiyordu. Üçü tamamlandı. Şart önceden yazılmıştı ve tuttu.

Kusur 2: adresler ölçülmeden seçildi, ve geçerlilik bayrağı bunu yakalayamadı

CMD52 dört adresin üçünde sıfır okudu; yer gerçeği yalnızca 0x0000'da vardı. C52_ALL_SAME=0 bayrağı yine de geçti çünkü 'dördü de aynı mı' diye soruyordu ve biri farklıydı. Sorması gereken 'dördü de birbirinden farklı mı' idi. OK3=1 gelseydi tarama geçerli SAYILACAK ama yine de hiçbir şey ayıramayacaktı — bayrak yanlış soruyu soruyordu.

Kaydedilen gözlem — sonuç DEĞİL

C53 @ 0x0000 = 0x00804253, C53 @ 0x0004 = 0x20008042. İki değer aynı değil, yani 'CMD53 adresi hiç dikkate almıyor' hipotezi bu koşuda desteklenmedi. Bu bir sonuç değildir: koşu geçersizdir ve geçersiz bir koşudan çıkarım yapılmaz. İki değer arasındaki ilişkiye bakıp bir örüntü okumak da yapılmadı — bu zincir daha önce tam olarak böyle yanıldı.

Doğru çalışanlar

  • Geçersizlik sessizce geçilmedi: koşu kendini geçersiz ilan etti ve paket geçersiz koşu olarak mühürlendi.
  • Üç düzeltme R21'e taşındı: şart 'hepsi birbirinden farklı', adresler ölçülerek seçilir, adresler ince taneli.

imaj 9375916dc366ad2805e0faa5dc0293b6eb750be13209b8b2810d4faf720887bf
kanıt evidence/rpi5/radio/attempt-r20-address-sweep-uart-capture/

R212026-09-06

Sorulan: Adres alanı bayt granülerliğinde çalışıyor mu? R20'nin iki kusuru düzeltilmiş: geçerlilik şartı 'hepsi birbirinden farklı', adresler CMD52 ön taramasıyla ölçülerek doğrulanıyor.

Cevap: GEÇERSİZ KOŞU — ama ön tarama tuttu ve bir şey ölçtü. Bu sefer kusur adres seçimimde: CMD53'ün servis edemediği adresleri seçtim.

Ön tarama çalıştı — koşunun gerçek kazancı bu

PRESCAN=1 C52_DISTINCT=1. Dört CMD52 değeri ikişer ikişer farklı çıktı: 0x15264345, 0x09152643, 0x00091526, 0x68000915. Birleştirilmiş akış 45 43 26 15 09 00 68. CMD52 adres başına TAM BİR BAYT kayıyor — adres alanı CMD52 tarafında bayt granülerliğinde çalışıyor, ölçüldü. R20'nin 'yer gerçeği tahminle seçilmiş' kusuru kapandı.

Kusur: ön koşulu optimize ederken deneyin tamamlanabilirliği kırıldı

Adresleri (0x0001, 0x0002, 0x0003) CMD52 yer gerçeğini mükemmelleştirmek için seçtim — kayan pencereler zorunlu olarak farklı çıkar. CMD53'ün o adresleri servis edip edemeyeceğini hesaba katmadım. Etmedi: üçü de R5=0x90 COM_CRC ile düştü, NC=1. Geçerlilik şartı bu adreslerle HİÇBİR ZAMAN geçemezdi.

Üç başarısızlığın imzası aynı

R5=0x90 COM_CRC, ERR=0x0000, zaman aşımı yok. Komut tarafında hata, veri tarafında yok. Adres 0x0000 ise temiz tamamlandı (R5=0x10).

Hizalama bir işaret — ama kural DEĞİL

R20 ve R21 birlikte: 0x0000, 0x0004, 0x0100 tamamlandı; 0x0001, 0x0002, 0x0003 düştü. 'Hizalı çalışıyor, hizasız düşüyor' okuması bunlarla tutarlı — ama R20'de 0x1000 hizalıydı ve o da düştü. Beşinci satır kuralı çürütüyor. Burada bir kural yazılmıyor: iki geçersiz koşudan kural çıkarmak, bu zincirin C0 tablosuyla on üç koşu boyunca yaptığı şeydir.

Doğru çalışanlar

  • Ön tarama CMD53 harcamadan önce yer gerçeğini ölçtü; ayırt edilemeseydi CMD53 hiç gönderilmeyecekti.
  • Geçerlilik şartı yine önceden yazılıydı ve yine tuttu — sonuç okunmadı.
  • R20'nin makbuz şeklini yeni şartın reddettiği testle doğrulanıyor.

imaj f019b2f711e0b035ab0d6f4c7f73c20de1cdd83360365cdb489be2ac673f1d4e
kanıt evidence/rpi5/radio/attempt-r21-byte-granularity-sweep-uart-capture/

R222026-09-06

Sorulan: Adres alanı 4 baytlık hizalı adreslerde çalışıyor mu? Tarama 0x0000·0x0004·0x0008·0x000c'ye taşındı — hem hizalı hem ölçülerek ayırt edilebilir.

Cevap: GEÇERSİZ (VALID=0) — ama hizalama hipotezini ÇÜRÜTTÜ. Aynı adres 0x0004 R20'de tamamlandı, R22'de düştü. Hizalama sebep değil.

Hizalama kuralı çürüdü

R21'den sonra 'hizalı çalışıyor, hizasız düşüyor' diye bir işaret kaydedilmişti ama kural yazılmamıştı. İyi ki: 0x0004 hizalıydı, R20'de tamamlandı, R22'de düştü. İki geçersiz koşudan kural çıkarmak, bu zincirin C0 tablosuyla on üç koşu boyunca yaptığı hataydı.

Asıl bulgu ön taramanın ortaya çıkardığı desen

R21 ve R22'de bütün CMD52'ler öne alınıp CMD53'ler arka arkaya koşunca iki bağımsız koşuda aynı desen çıktı: R5=0x10/0x90/0x90/0x90. İlk CMD53 temiz, ardından gelen her CMD53 COM_CRC bildiriyor. B64_HEAD hâlâ 0x00804253, CMD52 ile uzlaşmıyor.

Doğru çalışanlar

  • Ön tarama tuttu: PRESCAN=1, C52_DISTINCT=1 — dört CMD52 değeri ikişer ikişer farklı.
  • Kural yazılmadı: iki geçersiz koşudan sebep çıkarmak reddedildi.

imaj 03dcb7987d5a4f5e61d4b9fa81e4d73897983fa439b4231982faa306489ab2bd
kanıt evidence/rpi5/radio/attempt-r22-aligned-sweep-uart-capture/

R232026-09-06

Sorulan: Kesme onayı eksikliği sebep mi? Sürücü, cihazda PASS almış microSD yolunun deseni gibi her tüketilen kesmeyi (CMD_COMPLETE, BUFFER_READ_READY, TRANSFER_COMPLETE) geri yazsın.

Cevap: Hayır — aday ELENDİ. R5 deseni birebir aynı kaldı (0x10/0x90/0x90/0x90). Ama eklenen BUSY alanı asıl mekanizmayı gösterdi.

Kesme onayı sebep değildi

CMD_COMPLETE ve TRANSFER_COMPLETE artık onaylanıyor; R5 deseni değişmedi. Düzeltme yine de kalıyor — kanıtlanmış yolun deseni bu.

Komutlar meşgul veri yoluna gönderiliyordu

Yeni alan dokuz koşudur görünmeyeni gösterdi: BUSY=1111 (tarama), BUSY=011111 (kapı 1). Önceki okuma aktarımı denetleyiciye göre hâlâ sürerken komut gönderiliyor. PSTATE = DAT_INHIBIT + DAT_LINE_ACTIVE + READ_XFER_ACTIVE.

Meşgul olmak tek başına başarısızlığı açıklamıyor

Boş yolda başlayan tek aktarım (B4) düştü; meşgul yolda başlayan ikisi (B64, BLK) tamamlandı. Kural yazılmadı.

Doğru çalışanlar

  • Her onay ilgili biti gördükten sonra yapılıyor — kör onay değil; kaynak sırası testle pinli.
  • BUSY/PSTATE ölçüm alanları eklendi ve teşhis ölçüte karışmadı.

imaj db772c75b004c834cfe0e88708802485578e983150138c3f7e5b585611ab3f49
kanıt evidence/rpi5/radio/attempt-r23-interrupt-ack-fix-uart-capture/

R242026-09-06

Sorulan: Meşgul veri hattı sebep mi? Yol meşgulse SOFTWARE_RESET_DAT ile veri hattı yazılım sıfırlaması uygula, kanıtlanmış microSD yolunun deseni gibi geri okuyarak doğrula.

Cevap: GERİLEME. Sıfırlama mekanik olarak çalıştı (RST_OK=1111, STILL=0000) ve HER ŞEYİ bozdu. Üçüncü kendi kusurum da elendi — ama beklenen yönde değil.

Sıfırlama çalıştı ve her şeyi bozdu

R23'te tamamlanan iki aktarım (B64, BLK) düştü, DATA_CRC her aktarıma yayıldı (NC=0). Tek değişken sıfırlamaydı, taban bir önceki koşuydu.

Giriş anındaki meşgul hat bir arıza durumu değildi

Onu temizlemek başarısızlığı gidermedi, ÜRETTİ. Neden bozduğu ölçülmedi (faz kayması akla yatkın ama iddia edilmiyor); ölçülen tek şey sıfırlamanın zararlı olduğu.

Doğru çalışanlar

  • Sıfırlama yalnızca meşgulken uygulandı ve geri okunarak doğrulandı — kör yazma değil.
  • Sürücü tarafındaki adaylar tükendi: hizalama (R22), kesme onayı (R23), meşgul yol (R24).

imaj 48921d5e2f06ac0166c19568354195958e4f477c391888ad26c824e3b9cbf573
kanıt evidence/rpi5/radio/attempt-r24-data-line-reset-uart-capture/

R252026-09-06

Sorulan: R24'ün zararlı sıfırlaması geri alınınca R23 davranışı geri gelir mi? Ölçüm alanları kalır, sıfırlama çıkarılır.

Cevap: Evet — taban geri geldi. B64 ve BLK yine tamamlandı; sıfırlama alanları artık hep sıfır kalıyor, bu da geri almanın makbuzdaki izi.

Geri alma sessiz değil

Blok ölü kodla bırakılmadı, tamamen çıkarıldı ve neden geri alındığı kaynağa yazıldı. Bir test artık sıfırlamanın uygulanmadığını pinliyor — sessiz bir geri gelmeyi engelliyor.

Alanın yokluğu ile 'uygulanmadı' aynı şey değil

Sıfırlama alanları makbuzda kaldı ve hep sıfır. Makbuz, alanın hiç olmaması ile ölçülüp sıfır çıkması arasını ayırt edebilmeli.

Doğru çalışanlar

  • Bir değişikliği ancak zararlı olduğu ölçüldükten sonra geri almak — bu zincirin yöntemi.
  • Taban koşusu: yeni soru sormadan R23 davranışının geri geldiği doğrulandı.

imaj ce23234c9af68ad92b478ebbe13e73014b3c8fbe28d38ca9171030a75b61661e
kanıt evidence/rpi5/radio/attempt-r25-data-line-reset-revert-uart-capture/

R262026-09-06

Sorulan: COM_CRC zamansal mı? Komutlar arasına 2 ms donanım sayacı beklemesi konsun; ayrıca 64 baytlık tamponun ilk dört sözcüğü makbuza yazılsın.

Cevap: Hayır — zamansal değil. 2 ms beklemeye rağmen R5=0x10/0x90/0x90/0x90 deseni değişmedi. Ama tampon telemetrisi asıl gizemi büyüttü.

COM_CRC zamana bağlı değil

RP_R5=0x90 ve B4A_R5=0x90 aynen korundu. Kart CMD53 sonrası durumunu zamanla serbest bırakmıyor. Buna karşılık araya bir CMD52 girdiğinde sonraki CMD53 temiz 0x10 dönüyor — CMD52 durum makinesini senkronize ediyor.

Tamponun dört sözcüğü de aynı sabit

B64_W=0x00804253/0x00804253/0x00804253/0x00804253. Artan adres kipinde (increment=true) okunmasına rağmen dört sözcük de birebir aynı. CMD53 adresi artırmadan aynı 32-bit veriyi tekrarlıyor gibi. (R30 bunun 1-bit host kipinin kaydırdığı çöp olduğunu gösterecek.)

Doğru çalışanlar

  • Hipotez #7 (zamansal) ölçülerek elendi.
  • Tampon içeriği ilk kez makbuza girdi — R30'daki kırılmayı bu telemetri görünür kıldı.

imaj 9f55ef909e27a9c96f24ddd220d1d106e7d4f687bd940627f003bf0c9514b3e4
kanıt evidence/rpi5/radio/attempt-r26-settling-delay-uart-capture/

R272026-09-06

Sorulan: Arka düzlem saati eksik mi? Function 1 CHIPCLKCSR (0x1000E) üzerinden HT saati istensin ve telemetrisi ölçülsün.

Cevap: HT saati hiç gelmedi: CLK_R=0x50. Ve bu değer, Linux brcmfmac'in PLL programlanmadan HT istediğinde aldığı meşhur timeout değeriyle birebir aynı.

CLK_R=0x50 — bit 7 (HT_AVAIL) hiç yükselmedi

CLK_INIT=0x40 (ALP kristali devrede), CLK_W=0x10 (HT_AVAIL_REQ yazıldı), CLK_R=0x50 (0x40|0x10). PLL yapılandırılmadığı için donanım HT saatini üretemiyor ve durum makinesi 0x50'de asılı kalıyor.

Linux brcmfmac dizilimi gerekiyor

Çekirdek erken aşamada (buscoreprep) HT değil ALP zorlar: CHIPCLKCSR'a 0x28 (FORCE_HW_CLKREQ_OFF | ALP_AVAIL_REQ), ALP hazır olana kadar bekle, sonra 0x21 (FORCE_ALP) ile ALP'yi kilitle, 65 µs bekle. HT ancak firmware yüklendikten sonra açılır.

Doğru çalışanlar

  • Tek değişken saat telemetrisiydi; ölçülen değer bağımsız bir kaynakla (Linux davranışı) örtüştü.
  • Sonraki adım tahmin değil: kanıtlanmış ALP dizilimi.

imaj d1b6a7e716216199f54b84888eab4271c45b609d42283412720505093d3bf930
kanıt evidence/rpi5/radio/attempt-r27-backplane-clock-uart-capture/

R282026-09-06

Sorulan: brcmfmac buscoreprep dizilimi (FORCE_ALP + 65 µs + SDIOPULLUP=0) uygulanınca ne olur?

Cevap: ALP kilidi tuttu (CLK_R=0x61) ama SDIOPULLUP=0 veri yolunu çökertti. Kesin sonuç: dahili çekme dirençleri asla kapatılmamalı.

CLK_R=0x61 — ALP başarıyla kilitlendi

0x40 (ALP_AVAIL) | 0x20 (FORCE_HW_CLKREQ_OFF) | 0x01 (FORCE_ALP). Saat ALP kipine kilitlendi, donanım saat istekleri devre dışı.

SDIOPULLUP=0 sinyal bütünlüğünü yok etti

Dahili pull-up'lar kapatılınca R16-R27 boyunca kusursuz çalışan CMD52 çöktü: C52=0, SMB=0, komutlar Wait 1'de zaman aşımı (TO=100), R5=0x08. Pi 5 PCB'sinde SDIO hatlarında yeterli harici pull-up yok; dahili dirençler açık kalmalı.

Doğru çalışanlar

  • Tek değişken buscoreprep dizilimiydi; iki bağımsız gerçek aynı koşuda ölçüldü (ALP kilidi + pull-up zorunluluğu).
  • SDIOPULLUP=0 bir daha yazılmayacak — donanım kısıtı ölçüldü.

imaj 4b9e76102719f3249de37e5b13c82d315e9e3ad22458e65324919263b6d4917e
kanıt evidence/rpi5/radio/attempt-r28-force-alp-buscoreprep-uart-capture/

R292026-09-06

Sorulan: SDIOPULLUP=0 kaldırılıp FORCE_ALP korunursa veri yolu bütünlüğü ile ALP saati birlikte gelir mi?

Cevap: Evet — ikisi birlikte doğrulandı. Ama 0x00804253 hâlâ duruyor: ALP'de ve pull-up'lar açıkken bile CMD53 aynı sabiti veriyor. Soru artık CMD53 adres/aktarım kipinde.

Veri yolu ve ALP saati birlikte sağlam

C52=0x15264345 (chip ID birebir), SMB=1, BLKSZ_SET=1, WIN_OK=1, CLK_R=0x61. Sinyal bütünlüğü kusursuz, saat ALP'de kilitli.

0x00804253 sabiti sürüyor

CMD52 bayt bayt ChipCommon'ı görürken, CMD53 aynı adreste (0x0000 ve 0x8000) bu 32-bit sabiti tekrarlıyor. Sorun saat ya da güç değil; CMD53 aktarım yolunda. Bir sonraki koşu tam da orayı — host aktarım genişliğini — bulacak.

Doğru çalışanlar

  • İki taban (R27 ve R28) ile karşılaştırıldı; tek değişken SDIOPULLUP çağrısının kaldırılmasıydı.
  • Aday daraltıldı: saat ve güç elendi, CMD53 aktarım kipi kaldı.

imaj 49e86534a9598f527706eb0e731accdcc595666d1bf210d5a0768a2cd45a1a3d
kanıt evidence/rpi5/radio/attempt-r29-force-alp-pullup-kept-uart-capture/

R302026-09-06

Sorulan: Host denetleyicisi kart ile aynı veri yolu genişliğinde mi? Kart CCCR 0x07 ile 4-bit'e alınmıştı (BUS=0x42); host HOST_CONTROL_1 (0x28) 1-bit'te unutulmuş olabilir.

Cevap: KIRILMA. Host 4-bit'e alınınca (HCTL1=0x02) R16'dan beri süren uzlaşmazlık ÇÖZÜLDÜ: MATCH52=1, B4 temiz, CMD53 çip kimliğini okuyor. Ama GATE1 hâlâ 0.

Kök neden: host/kart veri yolu genişliği asimetrisi

Kart 4-bit'te veri ve CRC16'yı dört hattan gönderirken host yalnızca DAT0'ı 1-bit dinliyordu. 4 baytlık transferde kart 8 çevrimde bitirip host 32 çevrim beklediği için her seferinde DATA_CRC üretiliyordu; 64 baytlıkta tampona kaymış çöp doluyordu — işte 0x00804253.

İki bağımsız mekanizma ilk kez aynı sayıyı verdi

B4_OK=1 B4_ERR=0x0000 (R16'dan beri düşen 4 baytlık okuma ilk kez temiz), B64_HEAD=0x15264345, MATCH52=1. Tamponun ilk dört sözcüğü (B64_W) CMD52 taramasının 0/4/8/c değerleriyle birebir örtüştü. DATA_CRC sıfırlandı.

Kapı hâlâ açık: ardışık CMD53 durum makinesi

GATE1=0. Doğrudan art arda gelen repeat ve byte4_after hâlâ R5=0x90 (COM_CRC) alıyor; araya bir CMD52 girdiğinde sonraki CMD53 temiz dönüyor. Adres taraması da hâlâ garezli (VALID=0). Bu, R31'in settle_card ile hedeflediği kalan pürüz.

Doğru çalışanlar

  • Tek değişken: SDHCI HOST_CONTROL_1 (0x28) bit 1 = 4-bit + HCTL1 telemetrisi.
  • Firmware, tarama, SSID, yazma yolu hâlâ yok — kırılma veri bütünlüğünde, Wi-Fi'de değil.
  • İç tutarlılık: 64 baytlık tamponun sözcükleri CMD52 sweep okumalarıyla birebir eşleşti.

imaj 5eb0d9b6ff9fc8e3109c71b2dff4ceaaefb203a02ff0284102a7739e7ec21771
kanıt evidence/rpi5/radio/attempt-r30-host-4bit-bus-uart-capture/

R312026-09-07

Sorulan: R30 host'u 4-bit'e aldı ama ardışık CMD53'ler hâlâ COM_CRC alıyordu. settle_card (CMD53'ler arasına Function 0 CCCR 0x00 CMD52 okuması) bu kaskadı temizler mi?

Cevap: Evet — KAPI 1 GEÇTİ. GATE1=1. Altı CMD53 aktarımının altısı da temiz; MATCH52=1. Bu Wi-Fi çalışıyor demek DEĞİL — firmware indirmenin ölçülü ön koşulu sağlandı.

Dört bağımsız yol aynı sayıda buluştu

MATCH52=1 (CMD53=CMD52), MATCHF=1 (bayraklı adres 0x8000), RP_MATCH=1 (tekrar okuma), BLK_MATCH=1 (blok kipi) — dördü de 0x15264345 = BCM43455. Her transfer ERR=0x0000, R5=0x10. Olumlu kontrol hâlâ reddediyor (NEG_R5=0x90), hata yolu canlı.

settle_card ardışık COM_CRC'yi temizledi

R30'da RP_OK=0 B4A_OK=0 (art arda gelen CMD53'ler R5=0x90 alıyordu). R31'de ikisi de temiz (R5=0x10) ve BUSY=000000 — artık hiçbir transfer meşgul veri yoluna girmiyor. R26'da denenen saf zaman beklemesi bunu yapamamıştı; gereken zaman değil, bir komut modu geçişiydi (CMD52).

Kalan pürüz çip değil, teşhis harness'i

WIFISWEEP hâlâ VALID=0 (BUSY=1111). Sebep biliniyor: address_sweep fonksiyonu settle_card çağırmıyor, bu yüzden R30'daki back-to-back durumu hâlâ yiyor. Kapı yolu settle_card kullanıyor ve geçiyor. Bu harness tutarsızlığı; Kapı 1'in kanıtı WIFICMD53 satırıdır, WIFISWEEP değil.

Doğru çalışanlar

  • Kapı 1'in dört sorusu (sınır, zaman aşımı, hata, bütünlük) dördü de karşılandı.
  • Wi-Fi hâlâ yok: FIRMWARE=0 SCAN=0 SSID=0, yazma yolu yok — kırılma okuma bütünlüğünde.
  • Kök nedenden (R30 host 4-bit) buraya: veri genişliği + ardışık durum senkronizasyonu, ikisi de çözüldü.

imaj 7fd6e438ad1265d85c47837cc9485e115e2d5bb99052d4c35502830d071fae3b
kanıt evidence/rpi5/radio/attempt-r31-settle-card-uart-capture/

R322026-09-07

Sorulan: Kapı 2a: CMD53 YAZMA yolu, atıl CR4 RAM'ine (0x199000) bir gidiş-dönüşle doğrulanabilir mi? İlk gerçek yazma yolu — güvenlik eşiği.

Cevap: GEÇERSİZ. Yazma yolu hiç çalışmadı: pencere kurulamadı (WIN_OK=0), erken dönüldü. Yazma kusuru değil, harness sıralama kusuru.

write_probe sweep'in kirli durumunu miras aldı

Aynı yakalamada: gate1 (settle kullanır) temiz çıktı (BUSY=000000); sweep (settle kullanmaz) kartı COM_CRC kaskadında bıraktı (R5=…0x90, BUSY=1111); write_probe hemen ardından koştu ve ilk pencere CMD52'si kirli duruma çarptı → WIN_OK=0. Yazma, geri okuma, gidiş-dönüş hiç çalışmadı.

Güvenlik mimarisi yerinde

cmd53_write yalnızca write_probe'dan çağrılıyor, o da yalnızca ATIL CR4 RAM'ine (0x199000) yazıyor — ChipCommon'a değil; işlem sonunda chip id yeniden okunup referans doğrulanıyor. Üçü de testle pinli. CR4 reset'te olduğu için RAM atıl.

Doğru çalışanlar

  • Güvenlik eşiği önce yazıldı: yazma yolu üç kat kısıtlı (yalnız RAM, gidiş-dönüş, referans bütünlüğü).
  • Geçersizlik sessizce geçilmedi; R33'e taşınan düzeltme: write_probe girişinde robust senkronizasyon.

imaj 80eae414db8462d91776d0aa0b48439b2fa36355ac9e902f1c78ca06ef77c3f1
kanıt evidence/rpi5/radio/attempt-r32-cmd53-write-roundtrip-uart-capture/

R332026-09-07

Sorulan: R32'deki WIN_OK=0 miras kirli durumdan mı, yoksa 0x199000 penceresinin kendisinden mi? Girişe robust senkronizasyon koyup ayır.

Cevap: Ayrıştırıcı çalıştı: ENTRY_SYNC=1 (kirli durum elendi) ama WIN_OK=0 (sebep pencerenin kendisi). Kök neden: 32 KB hizalama.

Sebep pencere hizalaması

Backplane penceresi 32 KB hizalı (SBSDIO_SBWINDOW_MASK = 0xffff8000); kodumuz 256 bayt hizalıyordu. 0x199000 için SBADDRLOW=0x90 yazıyorduk, donanım [14:0] bitlerini yok sayıp 0x80 tutuyor, geri okuma tutmuyor → WIN_OK=0. 30+ koşu gizlendi çünkü her erişim ChipCommon'du (0x18000000, zaten 32 KB hizalı).

Ayrıştırıcı tasarımı doğrulandı

Temiz girişten sonra WIN_OK=1 gelseydi sebep kirli durum olacaktı; WIN_OK=0 geldi → pencere. R33 tam da bunu ayırdı.

Doğru çalışanlar

  • Giriş senkronizasyonu (R31 dersinin genellenmesi) kirli durumu eledi.
  • Kök neden referanstan doğrulandı: SBSDIO_SBWINDOW_MASK = 0xffff8000.

imaj 5a6d80e8edb812b2792e1a385277cdc4df8c0c68101ec992b8e62a9cec063d93
kanıt evidence/rpi5/radio/attempt-r33-write-entry-sync-uart-capture/

R342026-09-07

Sorulan: Pencere hizalaması 32 KB'ye düzeltilince (0xffff_ff00 → 0xffff_8000) RAM erişimi çalışır mı?

Cevap: Pencere düzeldi (WIN_OK=1) ama RAM erişimi hâlâ düşüyor. Sıradaki eksik: 4-bayt erişim bayrağı (referans ramrw her blokta koyar).

Hizalama düzeltmesi doğrulandı

WIN_OK=1 — pencere artık RAM'e (0x198000 tabanı) kuruluyor ve geri okunuyor. R33'ün ayırıcı tahmini doğrulandı, tek satırla çözüldü.

RAM erişimi 0x0060 ile düşüyor

ORIG_OK=0, WR_ERR=0x0060 (DATA_CRC + DATA_END_BIT). Fark kanıtlanmış gate1'den tek şey: pencere-içi ofset. gate1 ofset 0'da çalışıyor; write_probe ofset 0x1000'de düşüyor. Referans brcmf_sdiod_ramrw her blok aktarımında (ofset & 0x7fff) | SB_ACCESS_2_4B_FLAG (0x8000) kullanır; biz bayrağı atlıyorduk.

Doğru çalışanlar

  • Tek değişken hizalamaydı; ChipCommon (zaten hizalı) etkilenmedi, testle pinli.
  • REF_INTACT=0 bir bozulma değil: başarısız yazmanın kirli durumunun sonucu, kart bir sonraki açılışta temiz.

imaj 96c33ee31119971d728564219bd067366fec3ae1cba83e07bfef6d70da3964a0
kanıt evidence/rpi5/radio/attempt-r34-window-32kb-align-uart-capture/

R352026-09-07

Sorulan: 4-bayt erişim bayrağı (0x8000) eklenince RAM gidiş-dönüşü tutar mı?

Cevap: Hayır — değişmedi. O zamanki yorum: TCM erişimi çekirdek hazırlığı (CR4 HALT) gerektiriyor. (R38 bunu sonradan çürüttü.)

Bayrak da değil

sb_offset(…, true) ile 4-bayt bayrağı eklendi; RAM erişimi yine 0x0060 ile düştü. Aday elendi.

O anki (sonradan çürütülen) çıkarım: TCM çekirdek hazırlığı istiyor

Referans firmware'den önce CR4'ü HALT eder (brcmf_chip_cr4_set_passive → disable_arm). O yüzden 2a ile 2b ayrılamaz sanıldı ve erom+halt yoluna girildi. R38 sonradan CR4'ün zaten açılışta halt olduğunu ölçtü — bu premis yanlıştı, ama makul bir okumaydı.

Doğru çalışanlar

  • Bayrak sabitleri referanstan (SB_OFT_ADDR_MASK=0x7fff, SB_ACCESS_2_4B_FLAG=0x8000).
  • Yazma yolu mekaniği (hizalama, bayrak, okuma yolunun aynası) doğru; engel hedefte sanıldı.

imaj 64df431b82d4dae65f381a3e1e403c1f23c39db4da567220fbaa4ad530a7d388
kanıt evidence/rpi5/radio/attempt-r35-write-4byte-flag-uart-capture/

R362026-09-07

Sorulan: Kapı 2b-1: EROM'u yürüyüp çekirdekleri sayabilir, CR4 wrapbase'ini bulabilir miyiz? (HALT'ın yazacağı adres.)

Cevap: EROM işaretçisi 0 okundu, sayım yapılamadı. Ofset doğru (0xfc, upstream struct'tan); sorun okuma yolunun sırasıydı.

Ofset doğrulandı, sorun sıra

eromptr ofseti Linux chipcommon.h struct chipcregs'ten birebir (eromptr /* 0xfc */); SI_ENUM_BASE=0x18000000 kendi chipid okumamızla doğrulandı. erom_scan en sonda, write_probe'un wedged bıraktığı Function 1'i miras alarak koştu; giriş senkronizasyonu Function 0'ı kurtarıyor ama backplane Function 1 gerektiriyor.

Doğru çalışanlar

  • Ayrıştırma SDIO'dan ayrıldı: descriptor mantığı sentetik EROM ile donanımsız test edilir.
  • R37'ye taşınan düzeltme: erom_scan'i yıkıcı sweep/write'tan önce koştur + öz-test ekle.

imaj f170e07b92c7210089ef229de367d82193ea84529953e9210c84b9db69ffa8d6
kanıt evidence/rpi5/radio/attempt-r36-erom-core-scan-uart-capture/

R372026-09-07

Sorulan: erom_scan temiz durumdan (gate1'den sonra, sweep/write'tan önce) koşarsa çekirdekleri sayar mı? Aynı yolla chipid öz-testiyle doğrula.

Cevap: GEÇTİ (2b-1). SELFTEST=0x15264345, 7 çekirdek, CR4 wrapbase=0x18102000, READY_FOR_HALT=1.

Öz-test okuma yolunu kanıtladı, sayım tuttu

SELFTEST=0x15264345 (aynı backplane_read32 yoluyla ofset 0). SCAN_OK=1, NCORES=7, CC_FOUND=1. CR4_BASE=0x18002000, CR4_WRAP=0x18102000, REV=9. R36'daki 0 gerçekten miras kirli durumdu.

RAM_ID=0 beklenen ve tutarlı

Ayrı bir INTERNAL_MEM/SYS_MEM çekirdeği yok — CR4 çipinde RAM, çekirdeğin TCM'idir (sabit 0x198000). rambase'i sabit tablodan almamızın sebebi de bu.

Doğru çalışanlar

  • Sıra düzeltmesi çözdü; öz-test kanıtla birlikte.
  • CR4 wrapbase ölçüldü — 2b-2 HALT'ın önkoşulu. Hiçbir şey yazılmadı (salt-okunur).

imaj 2cc074f1a0061a68e718b523ea81c155f8a00e73f726904dd110e6fe1f123f0e
kanıt evidence/rpi5/radio/attempt-r37-erom-reorder-selftest-uart-capture/

R382026-09-07

Düzeltme (R14 sonrası): R38'in 'asıl engel cmd53_write' okuması sonradan daraltıldı. R41/R42: cmd52 TCM'e YAZIYOR (kanıtlı) — çalışan bir yazma yolu var, cmd53 tek yol değil. R51: backplane_write32 cmd52'ye alınınca wrapper yazmaları da indi (WRITE_OK=1); 'cmd53 yazma hiç çalışmadı' bunun cmd53 kullanmasındandı. R53: firmware indirmenin önündeki asıl engel cmd53_write değil, cmd52 yolunun timeout-spin HIZI.

Sorulan: Kapı 2b-2: CR4'ü HALT edince TCM erişilebilir olup write_probe (2a) geçer mi? İlk çekirdek-reset yazması.

Cevap: İki reframe: (1) CR4 açılışta ZATEN halt (IOCTL=0x21, reset dışı) — R35 hipotezi çürüdü. (2) Asıl engel cmd53_WRITE.

CR4 açılışta zaten halt

IOCTL_BEFORE=0x00000021 = CPUHALT | CLK, RST_BEFORE=0. Çekirdek halt, saatli, reset dışı — istenen durumun ta kendisi. Referans savunma amaçlı halt eder; bu çip zaten o durumda. erom+halt bir sapmaydı — makul ama gereksiz.

Asıl engel: cmd53_write (R34'ten beri)

WRITE_OK=0 — wrapper kaydına (erişilebilir hedef, TCM değil) yazma başarısız. Oysa okuma her yerde çalışıyor: cmd52 (chipid, wrapper 0x21), cmd53 (ChipCommon). cmd53 YAZMA hiç çalışmadı. Çekirdek-halt değil, firmware indirmenin önündeki gerçek engel bu.

Doğru çalışanlar

  • HALT yalnızca CR4 wrapper kayıtlarına yazar (testle pinli); atıl çekirdek güç döngüsünde geri gelir.
  • Makbuz üç bileşeni ayrı tutar (RESET_DEASSERTED, CPUHALT, WRITE_OK); hangisinin düştüğü okunur.

imaj d2f5fe981f24a954cdaac092c434a5d3f71add27ef5f732024b27a0c66ccab18
kanıt evidence/rpi5/radio/attempt-r38-cr4-halt-uart-capture/

R392026-09-07

Düzeltme (R14 sonrası): R40 bu yorumu düzeltti: TCM'e cmd52 ile erişilebiliyor; R39'un 'hiç erişilemedi' sonucu cmd53 düşmesi ve wedge sonrası ölçüm sırasıyla karışmıştı.

Sorulan: cmd53_write nerede düşüyor, ve cmd52 (bayt bayt) backplane yazması çalışıyor mu? Atıl TCM'de ölç.

Cevap: cmd53 yazma komut-tamamdan önce data hatasıyla düşüyor; cmd52 temiz izole edilemedi; ve 0x198000'e hiçbir yolla erişilemedi.

cmd53 yazma: komut-tamamdan önce 0x0060

C53_CMD=0, C53_TO=000, C53_ERR=0x0060 (DATA_CRC+DATA_END_BIT), R5 temiz. Data fazı hatası komut-tamamdan önce — write kurulum/zamanlama sorununa benziyor ama tek başına kanıtlamaz.

cmd52 yazma temiz izole edilemedi

C52_WOK=0 C52_TOOK=0 — ama cmd53_write'ın başarısızlığından + settle'dan sonra koştu. cmd53 kartı wedge ettiyse settle toparlamamış olabilir. R39'un tasarım kusuru: cmd52 önce koşmalıydı.

Daha derin gerçek: 0x198000'e hiç erişilmedi

R34/R35 (okuma), R39 (okuma+yazma) — hepsi backplane 0x198000/0x199000'de düştü. Başarılı her erişim 0x18xxxxxx aralığında (ChipCommon + çekirdekler). Pencere 0x198000'e kuruluyor (WIN_OK=1) ama orada hiçbir şey cevap vermiyor. Sorun yalnız yazma yönü değil, TCM bölgesinin kendisi olabilir.

Doğru çalışanlar

  • Okuma yolu tam ve sevk edilebilir (GATE1=1, çip tanımlı, sayım çalışıyor).
  • Yalnızca RAM'e yazma denendi; ChipCommon/wrapper/reset'e değil. Kart güç döngüsünde sağlıklı.

imaj 925af072398703fd1c0966cf43fb2752908ec1a498c9f92bb2980937a2f3bdc4
kanıt evidence/rpi5/radio/attempt-r39-write-diag-uart-capture/

R402026-09-07

Sorulan: R39'un 'TCM'e hiç erişilemiyor' yorumu doğru mu? Temiz durumdan cmd52 ve cmd53 ile 0x198000'i ayır.

Cevap: DÜZELTME: TCM cmd52 ile okunuyor. Sorun TCM'in kendisi değil, cmd53 blok aktarımının TCM bölgesinde 0x0060 ile düşmesi.

TCM cmd52 ile okunabiliyor

CTRL_CHIPID=0x15264345, TCM_WIN_OK=1, TCM_C52=0xc44a0c18 ve TCM_C52F=0xc44a0c18. Değer sıfır ya da 0xffffffff değil; temiz durumdan, bayraklı ve bayraksız cmd52 aynı gerçek içeriği okudu.

cmd53-TCM hâlâ düşüyor

TCM_C53_OK=0, TCM_C53_ERR=0x0060. CMD53 ChipCommon'da Gate1'i geçiriyor ama TCM'de DATA_CRC+END_BIT ile düşüyor. R39'un hatası cmd52'yi cmd53 wedge'inden sonra ölçmekti.

cmd52 yazma hâlâ açık kaldı

W_PAT=0x00000000; mem_probe yazmadan önce riskli cmd53 okuma yaptı ve sonraki write aşaması ölçülemedi. R41 cmd52 yazmayı cmd53'ten önce, izole ölçecek.

Doğru çalışanlar

  • R39 yorumunu fail-closed düzeltti: TCM erişilebilir, cmd53-TCM ayrı sorun.
  • Okuma yolu, Gate1, EROM ve CR4 halt durumu korunuyor.
  • Firmware indirilmedi; tarama yok.

imaj 689a7ba8c7e8824c2b003bed0186c956e1ea58d777438b4fd8fc0d2ee0fb1e49
kanıt evidence/rpi5/radio/attempt-r40-tcm-read-probe-uart-capture/

R412026-09-07

Sorulan: cmd52 bayt erişimi TCM'e gerçekten yazıp geri okuyabiliyor mu? cmd53 wedge'inden önce izole ölç.

Cevap: YAZMA YOLU KANITLANDI: cmd52 çip RAM'ine yazıyor ve geri okuyor; cmd53 blok TCM'de düşmeye devam ediyor.

cmd52 çip RAM'ine yazıyor

WIN_OK=1, ORIG=0xe855bad4, W_C52_OK=1, W_PAT=0x5a5a5a5a, W_RB=0x5a5a5a5a, W_TOOK=1 ve RESTORE_OK=1. Dört bayt yazıldı, doğru geri okundu, sonra orijinal değer geri yüklendi.

cmd53 blok TCM'de bayraktan bağımsız düşüyor

C53NF_ERR=0x0060 ve C53F_ERR=0x0060. Sorun 4-bayt bayrağı değil; cmd53 ChipCommon'da çalışırken TCM bölgesinde çalışmıyor.

Doğru çalışanlar

  • R34'ten beri açık yazma engeli cmd52 yolu için kapandı.
  • Yazma yalnızca TCM'e yapıldı ve orijinal içerik geri yüklendi.
  • Firmware henüz indirilmedi; tarama yok.

imaj f0d6323b10dfb7e8014ecbb658dadd5f0c94257f552622d52396e88d9f2c246c
kanıt evidence/rpi5/radio/attempt-r41-cmd52-write-isolated-uart-capture/

R422026-09-07

Sorulan: Tek kelime değil, firmware için gereken ardışık TCM alanına cmd52 toplu yazma kusursuz çalışıyor mu?

Cevap: Evet. 1024/1024 kelime yazıldı ve doğrulandı; firmware staging mekanizmasının çekirdeği kanıtlandı.

1024/1024 kelime tuttu

ASELSAN/BULK WIN_OK=1 WORDS=1024 WRITTEN=1024 MATCHED=1024 OK=1. Deterministik desen 4 KB boyunca TCM'e yazıldı ve uyumsuzluk olmadan geri okundu.

Ölçek uyarısı: cmd52 çok yavaş

4 KB bile boot'u gözle görülür geciktirdi. 609 309 baytlık BRCMFW.BIN yaklaşık 150 kat daha büyük; cmd52 doğru ama pratik hız için saat ve bekleme davranışı ayrıca ölçülmeli.

Doğru çalışanlar

  • Toplu cmd52 yazma ve verify döngüsü cihazda geçti.
  • Yazma yalnızca atıl TCM'e yapıldı.
  • Tam firmware, NVRAM/CLM ve tarama hâlâ yok.

imaj c9f3f0ab42bcaa41f72d16464f6b4078ac5c4616bb331d3550c7b43b81b94cb6
kanıt evidence/rpi5/radio/attempt-r42-cmd52-bulk-write-uart-capture/

R432026-09-07

Sorulan: Radyo imajı BRCMFW.BIN'i microSD/FAT32 kaynağından bulup doğru okuyabiliyor mu?

Cevap: Okuma yarısı geçti: BRCMFW.BIN bulundu, boyutu doğru, ilk içerik yerel dosyayla birebir eşleşti.

FAT32 locate + içerik doğrulama geçti

PART_LBA=32768, VOL_OK=1, FOUND=1, FW_BYTES=609309, FW_SECTORS=1191, EXPECTED=1. FIRST_WORD=0xb83ef198 yerel BRCMFW.BIN'in ilk little-endian word'üyle aynı.

microSD radyo bring-up sayfalarından ayrı tutuldu

Firmware kaynağı ayrı ve adlandırılmış MMIO aralığı olarak eklendi; blob imaja gömülmedi. Bu yalnızca karttan okuma kanıtıdır, TCM'e yazma değil.

Doğru çalışanlar

  • BRCMFW.BIN gerçek karttan doğru okunuyor.
  • Boyut kapısı 609 309 baytı doğruladı.
  • TCM'e tam firmware yazılmadı; tarama yok.

imaj 6f0ab5bc1835659049f96b67681a76041121b58f20ae5c05e8b621f6df8b2716
kanıt evidence/rpi5/radio/attempt-r43-firmware-read-uart-capture/

R442026-09-07

Düzeltme (R14 sonrası): R45 bu koşunun yorumunu düzeltti: R44'te görülen sessizlik EROM hang'i değil, ilerleme çıktısı olmayan yavaş staging'di.

Mühürsüz paket: Bu paket MÜHÜRSÜZDÜR: dizinde EVIDENCE_SHA256SUMS ve README yok — 91 koşu içindeki tek istisna. Erken kesilen bir yakalamadır ve zaten sonuç iddia etmez; ama diğer kartların aksine imzasıyla doğrulanamaz.

Sorulan: 64 sektörlük ilk firmware staging denemesi gerçekten EROM'da mı donuyor, yoksa uzun/sessiz bir döngü mü?

Cevap: Bu koşu sonuç üretmeden erken kesildi: yakalama terminal görmedi ve FWSTAGE makbuzu gelmedi. R45 bunu sonradan 'hang değil, sessiz yavaş staging' diye düzeltti.

Makbuz yok, terminal yok

capture_closed=true ama terminal_seen=false ve success=false. UART'ta Gate1 ve EROM'a kadar sağlıklı satırlar var; FWSTAGE sonuç satırı yok. Bu koşudan staging başarısı veya başarısızlığı iddia edilmez.

R45 sonrası okuma: sessizlik hang sanıldı

R44'te ilerleme çıktısı yoktu; uzun cmd52 staging sırasında UART sessiz kaldı ve UI henüz çizilmedi. R45 faz-başı ilerleme satırları ekleyince döngünün ilerlediği görüldü.

Doğru çalışanlar

  • Gate1 ve EROM satırları koşunun başında sağlıklıydı.
  • Geçersizlik açıkça korunuyor; R44 tek başına sonuç kartı değildir.

imaj kaydedilmedi — R44 paketinde imaj kimliği yazılmadı
kanıt evidence/rpi5/radio/attempt-r44-firmware-stage-64-uart-capture/

R452026-09-07

Sorulan: İlerleme çıktısıyla 8 sektörlük firmware staging döngüsü karttan oku → TCM'e yaz → doğrula sırasını tamamlıyor mu?

Cevap: Evet. 8/8 sektör, 1024/1024 kelime doğrulandı; R44 hang değil, sessiz slow staging idi.

8 sektör doğru indirildi

FWSTAGE_P fazları ilerledi; ASELSAN/FWSTAGE SECTORS_DONE=8 WORDS_W=1024 WORDS_V=1024 BYTES=4096 OK=1. Okuma hatası ve uyumsuzluk yok.

Gerçek sorun hız

SDIO veri yolu hâlâ tanımlama hızında (/256, ~400 kHz). 1191 sektör bu hızda yaklaşık saat mertebesine çıkar; önce saat yükseltmesi ölçülmeli.

Doğru çalışanlar

  • Kart-oku → TCM-yaz → verify döngüsü küçük ölçekte geçti.
  • R44'ün yanlış hang yorumu düzeltildi.
  • Firmware'in yalnızca ilk 4 KB'ı yazıldı; tarama yok.

imaj dd0c25a3daa1a6e83cb37d4377f09f87e92bd8f202758f2adc9a511d1fdebdb2
kanıt evidence/rpi5/radio/attempt-r45-firmware-stage-progress-uart-capture/

R462026-09-07

Sorulan: SDIO saati tanımlamadan sonra /256'dan /16'ya yükselirse staging hızlanır mı ve veri bütünlüğü korunur mu?

Cevap: Veri doğru ve hızlı; ama R5 komut-yanıt durumu /16'da gürültülü. OK=0 yanlış-negatifti çünkü başarı R5-temiz sayısına bağlanmıştı.

Veri bütünlüğü kusursuz

SDCLK DIV=0x08 STABLE=1. FWSTAGE WORDS_V=1024; 8 sektörün tamamı doğru geri okundu. Hız belirgin arttı.

R5 gürültüsü başarı ölçütünü bozdu

WORDS_W=824; yaklaşık 200 yazma R5-temiz dönmediği halde veri doğru indi. OK=0 bu yüzden yanlış-negatif. Başarı ölçütü verify-readback olmalı.

Doğru çalışanlar

  • Saat /16'ya kararlı geçti.
  • Verify yer gerçeği olarak seçildi; R47 retry ile bunu kalıcılaştıracak.
  • Tam firmware hâlâ yok.

imaj ea164310d1e667c5b284de4106d2e6974a9de430248c5c672f56b4bbcede9418
kanıt evidence/rpi5/radio/attempt-r46-sdio-clock-raise-uart-capture/

R472026-09-07

Sorulan: Başarıyı verify ile tanımlayıp verify uyuşmazlığında retry eklenirse /16 staging sağlam raporlanır mı?

Cevap: Evet. R5 gürültüsüne rağmen 1024/1024 verify ile OK=1; retry altyapısı hazır ve bu koşuda gerekmedi.

Verify-tabanlı ölçüt doğru raporluyor

SECTORS_DONE=8, WORDS_V=1024, RETRIES=0, OK=1. WORDS_W=821 yalnızca R5-temiz sayısı; veri bütünlüğünün ölçütü değil.

Tam indirme için ön koşul hazır

Okuma yolu, cmd52 yazma, saat /16, verify ve retry birleşti. R48 artık STAGE_SECTORS=tüm dosya ile 1191 sektörü deneyecek.

Doğru çalışanlar

  • İlk 4 KB hızlı ve doğru yazıldı+doğrulandı.
  • R5 gürültüsü tasarımı kırmıyor; verify+retry bütünlüğü koruyor.
  • Tarama yok.

imaj e3490bf9ef8a09ff615cbb48472666022fa4a9fe04af87b2b423176651dc3c23
kanıt evidence/rpi5/radio/attempt-r47-stage-verify-retry-uart-capture/

R482026-09-07

Sorulan: Tam 1191 sektörlük BRCMFW.BIN staging'i /16 + verify/retry ile biter mi?

Cevap: Bitmedi ama 128 sektör/64 KB doğru indi. Abort sebebi veri değil, sektör 128'de pencere-kurma retry'siz geçici hata.

64 KB doğrulandı

SECTORS_REQ=1191, SECTORS_DONE=128, WORDS_V=16384, BYTES=65536. İlk 128 sektörün tamamı TCM'e doğru yazıldı ve doğrulandı; RETRIES=14 gerçek retry yolunun çalıştığını gösterdi.

Pencere-kurmaya da retry gerekiyor

MM_SECTOR=128, MM_WORD=0, REWINDOWS=2. 0x1a8000 penceresine geçerken set_backplane_window bir geçici R5 gürültüsüne takıldı ve retry olmadığı için stage break etti.

Doğru çalışanlar

  • Hang yok; abort sonrası boot UI'ye devam etti.
  • Firmware'in ilk 64 KB'ı TCM'de doğrulandı.
  • Tam firmware, NVRAM/CLM ve start yok.

imaj 81bceb23711d48daddcf9d688e33d865d77f2963edb7ad79e415562a70c547c9
kanıt evidence/rpi5/radio/attempt-r48-firmware-full-download-uart-capture/

R492026-09-07

Sorulan: Pencere-kurma retry'si eklendiğinde tam indirme takılmadan ilerler mi ve hız yeterli mi?

Cevap: Takılmadı ama hız pratik değil: yaklaşık 8,08 s/sektör; tam indirme yaklaşık 160 dakika ederdi.

Staging başladı ve ilerledi

GATE1=1, EROM sağlıklı, SDCLK /16 kararlı. FWSTAGE_P S=0 ve S=64 fazları görüldü; tüm beklemeler sınırlıydı, sistem hang olmadı.

Kök hız duvarı: komut tamamlanmasını bekleme

S=0 PH=3 → S=64 PH=3 arası ~517 s, yani 8,08 s/sektör. /16'da çoğu cmd52 INT_CMD_COMPLETE üretmediği için issue() 1.000.000 poll cezasını ödüyordu.

Doğru çalışanlar

  • Pencere retry kodda ve testte var; bu koşu sektör 128'i görmediği için onu kanıtlamadı.
  • R50 için tek değişken belirlendi: CMD_COMPLETE_POLLS 1M → 50K.
  • Tarama yok.

imaj 2419879e5ba5908965405fdf7d1aedf5eb8e83d036f01ef85331b81e27f39f64
kanıt evidence/rpi5/radio/attempt-r49-firmware-full-download-retry-uart-capture/

R502026-09-07

Sorulan: Komut-tamamlama beklemesi 1.000.000'den 50.000'e inerse tam indirme pratik hıza gelir mi?

Cevap: Kısmen hızlandı ama yetmedi: yaklaşık 4,8 s/sektör. Asıl sorun granülerlik ve kalan inhibit beklemesi.

Hızlandı ama hâlâ çok yavaş

Aynı wall-time penceresinde R49 ~S=64 iken R50 S=192'ye ulaştı; ~1,7× hızlanma. Tam indirme hâlâ yaklaşık 95 dakika sürecekti, güç elle kesildi.

Sektör başına 1024 cmd52 pratik değil

cmd52_write_u32 dört tek-bayt cmd52; 128 kelimelik bir sektör yaz+verify ile yaklaşık 1024 cmd52 demek. Completion sınırı indi ama inhibit 100K kaldı; cmd53 blok yazma hâlâ gerçek hızlı yol adayı.

Doğru çalışanlar

  • CMD_COMPLETE_POLLS=50_000 zararsız biçimde kaldı.
  • R48'in sektör-128 pencere hatası bu kez aşılmış göründü.
  • Tam firmware ve tarama yok.

imaj 0207cf9b011e2ea076e34ef6e539edd5f74fe40a87f4535a0f3e767cbe5e2668
kanıt evidence/rpi5/radio/attempt-r50-firmware-full-download-fast-complete-uart-capture/

R512026-09-07

Sorulan: Wrapper yazmaları cmd52'ye alınır ve gerçek ai_resetcore denenirse cmd53-TCM açılır mı?

Cevap: Hayır. Resetcore hipotezi çürüdü; cmd53-TCM açılmadı ve bozuk reset dizisi TCM erişimini kararttı.

Wrapper cmd52 yazmaları iniyor

HALT WRITE_OK=1. backplane_write32'nin cmd52'ye alınması wrapper kayıtlarına yazmayı R5-temiz hale getirdi; bu ayrı düzeltme çalıştı.

Resetcore TCM'i bozdu

RST_ASSERT=0, IOCTL_A=0x00, CPUHALT=0, HALTED=0. CLK biti kayboldu; TCM_C52=0x00000000 ve W_TOOK=0. Boot-ROM'un bıraktığı clocked+halted durum bozulunca TCM erişilemez oldu.

cmd53-TCM ayırt edicisi çekirdek saati değil

R40'ta CLK açıkken cmd53-TCM 0x0060 ile düşüyordu. R51 resetcore'u bozuldu diye cmd53 açılmadı; hızlı yol hâlâ kapalı.

Doğru çalışanlar

  • FWREAD yine 609309 baytı buldu; SDIO/ChipCommon yolu sağlıklı kaldı.
  • main'den yavaş FWSTAGE çıkarıldı, tarama yok.
  • Sıradaki fork: resetcore'u düzeltmek veya cmd52 yolunu hızlandırmak.

imaj ee14647c40b6b837d26fc56c402a10ab47d2dd1b31449f468867ae6398e30484
kanıt evidence/rpi5/radio/attempt-r51-resetcore-cmd53-tcm-probe-uart-capture/

R522026-09-07

Düzeltme (R14 sonrası): R53 bu probu düzeltti ve gerçek ölçümü aldı; R52'deki sıfır süreler performans sonucu değildir.

Sorulan: Saat-süpürme probu /16, /32 ve /64'te cmd52 yaz+verify hızını gerçek ölçebilir mi?

Cevap: Hayır. Prob pencere ok'ine fazla güvendi, ok=false'ta erken döndü; üç saatte de ölçüm yapılmadı.

SECTOR_US=0 gerçek ölçüm yok demek

CLKSWEEP DIV=0x08/0x10/0x20 için MATCHED=0 ve SECTOR_US=0. 1024 cmd52'lik döngü çalışsa süre sıfır olamazdı; set_backplane_window ok=false dönüşü erken return ettirdi.

R53 düzeltmesi belirlendi

Pencere baytları R5 gürültüsüne rağmen inebiliyor. R53 probu pencere ok'ine güvenmeyecek: 5x retry, koşulsuz ölçüm, WIN_OK/WIN_TRIES telemetrisi.

Doğru çalışanlar

  • Hang yok; boot UI'ye ulaştı.
  • GATE1=1, EROM sağlıklı, resetcore main dışında kaldı.
  • Firmware indirilmedi.

imaj 8afc6f3b3159202afb34d79852c1e5eb52f350b71f0785fdddfc57ad17f1bbb1
kanıt evidence/rpi5/radio/attempt-r52-clock-sweep-uart-capture/

R532026-09-07

Sorulan: Düzeltilmiş saat-süpürme probu gerçek ölçüm verdiğinde yavaş saat cmd52 bütünlüğünü veya hızı iyileştiriyor mu?

Cevap: Hayır. R53 son durum: yavaş saat yardımcı değil; süre veri aktarımından değil, sabit timeout-spin beklemelerinden geliyor.

Saat-süpürme ilk kez ölçtü

DIV 0x08 (/16): WIN_OK=1, MATCHED=100/128, SECTOR_MS=4976, FULL_MIN=98. DIV 0x10 (/32): MATCHED=46/128, SECTOR_MS=4274, FULL_MIN=84. DIV 0x20 (/64): WIN_OK=0, MATCHED=0/128, SECTOR_MS=3442, FULL_MIN=68.

Süre saatten bağımsız, timeout domine

SECTOR_MS saatle ölçeklenmiyor; /64 hafif daha hızlı bile görünüyor. Bu, gerçek veri hızından çok issue() içindeki sabit inhibit 100K + completion 50K poll sınırlarının takılmış status bitlerinde tüketildiğini gösteriyor.

R54 kaldıraç noktası

MATCHED yavaş saatte düştü (100→46→0), bu yüzden saat /16'da kalmalı. Asıl sonraki hamle, inhibit bekleme sınırını completion gibi fail-fast düşürmek; bütünlük verify+retry ile korunuyor.

Doğru çalışanlar

  • GATE1=1; resetcore main dışında kaldı, TCM bozulmadı.
  • Ölçüm gerçek: pencere retry + koşulsuz ölçüm çalıştı.
  • Tam firmware, NVRAM/CLM, CR4 start, tarama ve SSID yok.

imaj 01fdc49c2adef3207f4b9a89f77557eb445c560ab1875b885ccd8f43dd6a34ea
kanıt evidence/rpi5/radio/attempt-r53-clock-sweep-measured-uart-capture/

R542026-09-07

Sorulan: issue() bekleme sınırı faza göre 2K'ya çekilince cmd52 indirmesi /16'da pratik hıza gelir mi, bütünlük bozulur mu?

Cevap: Evet, ~45× hızlandı: /16'da 4976 ms → 109 ms/sektör, tam indirme ~2 dk; bütünlük bozulmadı.

Faza bağlı sınır 2K: ~45× hızlanma

ISSUEBOUND N=2000. CLKSWEEP DIV=0x08 (/16): WIN_OK=1, MATCHED=106/128, SECTOR_MS=109 (R53'te 4976 idi), FULL_MIN_EST=2. Gate1/erom /256'da 50K korundu; yalnız staging /16'da 2K'ya çekildi. Süre saatten değil, issue() timeout-spin'lerinden geliyordu; sınır düşünce çözüldü.

Fail-fast bütünlüğü bozmadı

MATCHED=106/128 — R53'ün 100'ünden bile iyi. /32=43, /64=0; slower saat yine kötü, /16 tatlı nokta doğrulandı. Prob settle'sız write+immediate-read yapar (kötümser); gerçek stage_to_tcm settle+verify+retry ile kalan uyuşmazlıkları toplar.

Doğru çalışanlar

  • issue() sınırı faza bağlı static (ISSUE_STATUS_POLLS) + setter; inhibit ve completion aynı dinamik sınırdan geçer.
  • Bu imajda UI metni 'Yayın taraması yok' (eski 'Ağ taraması yok').
  • Tam firmware, tarama, SSID yok — bu yalnız hız ölçümüdür.

imaj a765ded00f1c1c76198237d8934699889c089f7e3007f9a702c625654289ec16
kanıt evidence/rpi5/radio/attempt-r54-staging-poll-bound-uart-capture/

R552026-09-07

Sorulan: Faza bağlı 2K sınırla tam 1191-sektör firmware indirme TCM'e tam ve doğru iner mi?

Cevap: PASS. 609 KB firmware CR4 TCM'e TAM ve DOĞRULANMIŞ indirildi: SECTORS_DONE=1191, WORDS_V=152448, RETRIES=0, OK=1, ~2–3 dk.

Tüm dosya doğrulandı (OK=1)

FWSTAGE SECTORS_DONE=1191 WORDS_W=152448 WORDS_V=152448 (=1191×128) RETRIES=0 REWINDOWS=19 BYTES=609792 OK=1. Her kelime cmd52 ile TCM'e yazıldı ve geri okumada doğrulandı; hiç yeniden yazma gerekmedi (RETRIES=0).

Kapı 2b (firmware indirme) geçti

Aylarca (R44→R55) süren yavaşlığın kök nedeni /16'da tamamlama bitinin set olmaması ve her cmd52'nin sabit timeout-spin'i ödemesiydi (R48'de 8 s/sektör, ~160 dk). Faza bağlı sınırla ~2–3 dk. cmd53 TCM'de bölge-özgü düştüğü için indirme cmd52 + verify + R49 pencere-retry ile yapıldı.

Doğru çalışanlar

  • Firmware imaja gömülü değil; karttan (BRCMFW.BIN) cmd52 ile TCM'e indi.
  • Tarama/SSID/Bağlan HÂLÂ yok: bu indirme, çalıştırma değil.
  • Sırada firmware ÇALIŞTIRMA: NVRAM/CLM yükleme, CR4 start, ready handshake, SDPCM/BCDC, escan.

imaj bccd414122c07a6ea54c4761c61fbbd7d3f787c7bbb8bc5ef404202001ca436b
kanıt evidence/rpi5/radio/attempt-r55-full-download-fast-uart-capture/

R562026-09-07

Düzeltme (R14 sonrası): R57 retry artırdı ama yetmedi; asıl kök nedeni (R5-temiz ok kriteri) R58 DATA-tabanlı doğrulamayla çözdü.

Sorulan: Firmware indikten sonra NVRAM RAM tepesine (0x238000 − varsz) yüklenip doğrulanır mı?

Cevap: Bu boot'ta test edilemedi: firmware indirme şanssız /16 boot'unda sektör 128'de abort etti; NVRAM (st.ok'a bağlı) çalışmadı.

Firmware sektör 128'de abort

SECTORS_DONE=128 WORDS_V=16383 OK=0. FWSTAGE kodu R55 (PASS) ile BAYT-BAYT aynı; fark yalnız boot-to-boot /16 değişkenliği — 5-retry pencere + 3-retry kelime şanssız boot'ta yetmedi.

NVRAM kodu koşturulmadı (doğru davranış)

NVRAM adımı if st.ok(stage_sectors)'a bağlı; firmware OK=0 olunca atlandı. nvram_transform host-test edildi (gerçek BRCMNVR.TXT'de token doğru) ama cihazda henüz çalışmadı.

Doğru çalışanlar

  • Hang yok; boot UI'ye ulaştı.
  • NVRAM koşmadı çünkü firmware ön koşulu bu boot'ta sağlanmadı.

imaj f9aaf05702ad4f5defa50b6d74c9a85f8acdb4622944ef70138756f69f1e6554
kanıt evidence/rpi5/radio/attempt-r56-nvram-load-uart-capture/

R572026-09-07

Düzeltme (R14 sonrası): R58 doğrulamayı DATA-tabanlı yaptı (completion/R5 yoksayılır) ve firmware+NVRAM geçti.

Sorulan: Pencere-retry 5→16 ve kelime-retry 3→8 firmware'i şanssız boot'ta kurtarır mı?

Cevap: Hayır — daha da erken abort etti (sektör 64). Retry SAYISI kök neden değil.

Retry artışı yetmedi

SECTORS_DONE=64 WORDS_V=8191 OK=0. 16 window retry de İLK pencere geçişinde (0x1a0000) tükendi. Bu boot R56'dan daha gürültülüydü.

Kök: R5-temiz ok kriteri, retry değil

set_backplane_window'un ok'i cmd52 write+read'in R5-TEMİZ olmasını istiyor; /16'da kötü boot'ta R5 hiç temizlenmiyor. Ama SBADDR baytları iniyor ve card doğru DATA döndürüyor (R47/R53). Aynı sorun kelime-verify'da: cmd52_read_u32 completion set olmayınca None döner.

Doğru çalışanlar

  • Hang yok; boot UI'ye ulaştı.
  • Ölçüm net: sorun status-tabanlı doğrulamada, retry sayısında değil.

imaj 31838a2e9997194abf6bf5391740ab6e389e6fa9d7a7598ecb4fb1d055161cea
kanıt evidence/rpi5/radio/attempt-r57-nvram-load-robust-uart-capture/

R582026-09-07

Sorulan: Verify ve pencere-set completion/R5'i yoksayıp DATA baytıyla doğrularsa firmware güvenilir iner ve NVRAM yüklenir mi?

Cevap: PASS ×2. Gürültülü boot'ta bile firmware WORDS_V=152448 RETRIES=0 OK=1, ve NVRAM ilk kez yüklendi (OK=1, TOKEN_OK=1, FW_INTACT=1).

Firmware gürültülü boot'ta %100 doğrulandı

WORDS_W=101526 (152448'in yalnız %67'si R5-temiz yazma) = R56/R57'yi abort ettiren gürültü seviyesi. Ama DATA-tabanlı verify ile WORDS_V=152448, RETRIES=0, REWINDOWS=19, OK=1. Status yerine gerçek veriyi okumak gürültülü boot'u sorunsuz geçirdi.

NVRAM ilk kez TCM'de

FOUND=1 SRC_LEN=2074 VARSZ=1748 ADDR=0x23792c TOKEN=0xfe4b01b4 TOKEN_OK=1 WORDS=437 VERIFIED=437 OK=1. FW_WORD0=0xb83ef198 FW_INTACT=1 — NVRAM firmware'in üstüne binmedi (0x238000 − varsz, token 0x237FFC'de).

Doğru çalışanlar

  • DATA-tabanlı okuma (cmd52_read_byte_data): status yerine response veri baytı — R47 ilkesinin doğru uygulaması.
  • Güvenlik: bayat pencere / yanlış veri DATA karşılaştırmasında eşleşmez → yakalanır (sessiz bozulma yok).
  • CR4 START YOK: firmware+NVRAM TCM'de ama çekirdek başlatılmadı. Sıradaki R59.

imaj a984c16b3664be504b70b4abfb5e3b6c9b9da9d72e8ddfa75d3e5a984dce4a61
kanıt evidence/rpi5/radio/attempt-r58-nvram-data-verify-uart-capture/

R592026-09-07

Sorulan: CR4 çekirdeği (reset vektörü + reset döngüsü IOCTL 0x23→0x03→0x01) başlatılabilir mi?

Cevap: 3 denemede başarısız. R59a boot USB-init döngüsüne takıldı, R59b SD kart firmware tarafından okunamadı (ikisi de kart oturması); R59c reseat sonrası firmware+NVRAM 3. kez PASS ama CR4 START başarısız — reset döngüsü saati kesti (R51 gibi).

Kök neden R59a/b: kart oturması

Firmware USB-boot döngüsü / SD okunamaması bizim kodumuz değil, kart yuvası oturmasıydı; Mac kartı sorunsuz okudu, SHA doğrulandı. Reseat düzeltti.

CR4 START saati kesiyor

R59c: firmware+NVRAM OK=1 ama çekirdek serbest bırakılınca wrapper/TCM karardı; ilk hipotez 'reset döngüsü saati kesiyor'.

Doğru çalışanlar

  • Firmware+NVRAM 3. kez PASS (OK=1).

imaj 6c54b6ed0cbfdff19381d13c0218b548c4f62d342510984f7d9229edc396eb21
kanıt evidence/rpi5/radio/attempt-r59c-cr4-start-uart-capture/

R602026-09-07

Sorulan: Reset döngüsü yerine doğrudan CPUHALT temizlense saat düşmesi önlenir mi?

Cevap: Hayır. Clear-CPUHALT de saati kesti (IOCTL_F=0x00, STARTED=0). Sorun reset döngüsü değil; çekirdek serbest bırakılınca backplane saat-tutması kayboluyor.

Reset değil, saat-tutma

Reset döngüsünü atlayıp doğrudan CPUHALT temizlemek de wrapper'ı kararttı → suçlu reset dizisi değil, saatin tutulmaması.

Doğru çalışanlar

  • Firmware+NVRAM PASS.

imaj aec507b4630d9f3aef2c568e79b1c8772664d94f7e50e9d82858e3743814a0d3
kanıt evidence/rpi5/radio/attempt-r60-cr4-start-cpuhalt-clear-uart-capture/

R612026-09-07

Sorulan: Backplane saati (ALP) tutulursa çekirdek serbest bırakılınca ayakta kalır mı?

Cevap: R61a çok gürültülü boot'ta firmware sektör 576'da abort etti (CR4-start test edilemedi). R61b temiz PASS'te: ALP tutuldu ama CR4-start yine saati kesti — HT gerekiyor ve verilemiyor.

ALP tutmak yetmiyor

ALP tutulmuş olsa da çekirdek un-halt olunca wrapper karardı; asıl gereken HT ve o gelmiyor.

Doğru çalışanlar

  • R61b firmware+NVRAM temiz PASS.

imaj a8d547da552a2a97042ef550c71ad7ecc2f4a52f4948f54e70519f719f9447d8
kanıt evidence/rpi5/radio/attempt-r61b-cr4-start-clkhold-retry-uart-capture/

R622026-09-07

Sorulan: FGC (Force Gated Clock) biti saati zorlar mı?

Cevap: Yetmedi. CLK_CSR=0x58 CLK_ALP=1 ama IOCTL_F=0x00 STARTED=0. Saat ZORLANMADIĞI için ALP kaynağı çekirdek un-halt olunca düştü.

FGC tek başına çözmedi

FGC ile de wrapper karardı; o an 'saat zorlanmalı' diye yorumlandı.

Doğru çalışanlar

  • Firmware+NVRAM PASS.

imaj acd3a6b503b3d55e8521f255bb6b0c8628e735127eee1727f2b466c4bb9f2f6c
kanıt evidence/rpi5/radio/attempt-r62-cr4-start-fgc-uart-capture/

R632026-09-07

Sorulan: Zorlanmış ALP + FGC birlikte HT'yi getirir mi?

Cevap: Hayır (5. deneme). CLK_CSR=0x69 CLK_HT=0 CLK_ALP=1 IOCTL_F=0x00 STARTED=0. CR4-start bir HT/PMU duvarı gibi görünüyor.

HT/PMU duvarı ilk kez adlandırıldı

Zorlanmış ALP+FGC de HT üretmedi; duvarın saat/PMU kaynaklı olabileceği ilk kez yazıldı.

Doğru çalışanlar

  • Firmware+NVRAM PASS.

imaj 7d2b4efc764d92127b581ca736604301b6732bbaf50fb4d9a6fc370880948d96
kanıt evidence/rpi5/radio/attempt-r63-cr4-start-force-alp-uart-capture/

R642026-09-07

Düzeltme (R14 sonrası): R72/R73: boşluk bitleri 3/16/18 saat kaynağı DEĞİL (HSICLDO/PERST/ILP); PMU-force ölüydü.

Sorulan: PMU salt-okunur tanısı: duvar takılı-silikon mu, düzeltilebilir-PMU mu?

Cevap: Salt-okunur PMU tanısı: PMU kararlı (takılı-transition değil), minimum kaynaklarda. RES_STATE=0x0fcaff77 == MINRES, MAXRES=0x0fcfff7f (fark: bit 3/16/18), RES_PEND=0, PMU STAT=0x2a.

PMU kararlı, minimumda

RES_STATE==MINRES ve RES_PEND=0 → PMU takılı değil; MAXRES daha fazlasına izin veriyor → o an 'düzeltilebilir-PMU' sanıldı (R72/R73 bu boşluk bitlerinin saat olmadığını gösterdi).

Doğru çalışanlar

  • Salt-okunur — cihaza yazma yok.

imaj eb79f153839db56e5d75f4750e78ddede4061b3b63ef605351d50e86a0f94797
kanıt evidence/rpi5/radio/attempt-r64-pmu-probe-uart-capture/

R652026-09-07

Düzeltme (R14 sonrası): R72/R73: HT host-tarafı açılamaz (max_res_mask HT bitlerini kapatır) → PMU-force yapısal olarak etkisiz.

Sorulan: min_res_mask'i MAXRES'e çekmek HT/PLL kaynağını açar mı?

Cevap: Sonuçsuz. min_res_mask=MAXRES yazıldı ama RES_STATE değişmedi, HT gelmedi (CLK_HT=0, OK=0). Yazmanın gerçekten oturduğu teyit edilmedi.

PMU-force etkisiz

İlk PMU yazması; RES_STATE hareket etmedi. Yazma teyidi gerekiyordu → R66.

Doğru çalışanlar

  • Firmware+NVRAM PASS.

imaj 4b950251d6791ea3ddce4c84dacd01766c93ccb1560d525609176f10313fb16b
kanıt evidence/rpi5/radio/attempt-r65-pmu-force-cr4-start-uart-capture/

R662026-09-07

Sorulan: PMU-force yazması gerçekten oturuyor mu (geri-okuma)?

Cevap: Geri-okuma da gürültülü: MINRES_SET geri 0x0f000f00 okundu, IOCTL_F=0x18181818. /16 SD saatinde cr4_start-içi okumalar güvenilmez — bu, sonraki denemelerde DATA-tabanlı okumaya geçişi motive etti.

/16'da cr4_start-içi okuma güvenilmez

Geri-okumalar gürültülü/garbage → makbuz güvenilirliği için DATA-tabanlı okuma ve doğru oracle gerektiği anlaşıldı.

Doğru çalışanlar

  • Firmware+NVRAM PASS.

imaj 32740a16d365409765c68b278fa081c9b23d166433fc69311679b95e98cd9bb5
kanıt evidence/rpi5/radio/attempt-r66-pmu-force-readback-uart-capture/

R672026-09-07

Sorulan: cyw43/brcmf'in DOĞRU dizisi + doğru oracle ile çekirdek çalışır mı?

Cevap: Firmware çalışmadı (HT 1 sn'de gelmedi, STARTED=0). Reframe: HT firmware-sürümlü (~29ms SONRA), kararmış wrapper NORMAL hand-off. Ama RST_ASSERT=0 → o an 'yanlış wrapper (idle slave)' şüphesi doğdu.

Doğru dizi de çalıştırmadı

rstvec adres-0'a, reset döngüsü, terminal 0x01; RSTVEC_OK=1 ALIAS_OK=1 IOCTL_B=0x21 ama HT_AVAIL=0. Araştırma: HT firmware-sürümlü, dark wrapper normal.

Doğru çalışanlar

  • Firmware+NVRAM PASS; araştırma workflow'u ile doğru dizi çıkarıldı.

imaj 0e794c4ecb86d55185100e77a5e1962e2df8c5aaffb2afde1e42d751bce9e30d
kanıt evidence/rpi5/radio/attempt-r67-cr4-start-ht-oracle-uart-capture/

R682026-09-07

Düzeltme (R14 sonrası): R73: 'FGC suçlu' YANLIŞTI — karanlık okuma FGC saat-gate'inin beklenen etkisi; FGC geri konunca da çekirdek çalışmadı.

Sorulan: 0x18102000 gerçek CR4 wrapper mı yoksa idle slave mı (yazmaya yanıt veriyor mu)?

Cevap: Wrapper GERÇEK: IOCTL_B=0x21 reset döngüsünden ÖNCE temiz okundu (idle slave bunu vermezdi). Ama 0x23 (CPUHALT|FGC|CLK) yazınca sonraki TÜM okumalar 0x00 = wrapper karardı. O an FGC suçlu sanıldı.

Yanlış-wrapper ipucu çürüdü

IOCTL_B=0x21 temiz → 0x18102000 doğru CR4 wrapper. Yazmadan sonra 0x00 → o an 'FGC backplane okuma yolunu kesiyor' diye yorumlandı.

Doğru çalışanlar

  • Firmware+NVRAM PASS.

imaj e31c8ed7e153b3c650388167cba86ac7ffe1a8446526a11c09067497b1195517
kanıt evidence/rpi5/radio/attempt-r68-wrapper-response-diag-uart-capture/

R692026-09-07

Düzeltme (R14 sonrası): R72/R73: karartma zaten CR4/HT saat-domeninin beklenen etkisi; wrapper canlılık göstergesi değildi.

Sorulan: FGC reset döngüsünden çıkarılırsa wrapper okunabilir kalır mı?

Cevap: Hayır. Aynı 0x21 değerini (FGC yok) yazınca da IOCTL_PRE=0x00 (wrapper karardı). O an 'yazmanın kendisi, değerden bağımsız, wrapper'ı karartıyor' diye yorumlandı.

FGC-özgü değil

0x21 (değişmeyen değer, FGC yok) yazınca da karardı → FGC hipotezi o an çürütüldü sanıldı; asıl neden sonra anlaşıldı.

Doğru çalışanlar

  • Firmware+NVRAM PASS.

imaj c4a3100887175454c97b98418d71c55b8454d2b8a719bce4a506c0d774478b9a
kanıt evidence/rpi5/radio/attempt-r69-reset-no-fgc-uart-capture/

R702026-09-07

Sorulan: Doğru başarı-göstergesi (sdpcm_shared @ 0x237FFC) çekirdeğin koştuğunu gösterir mi?

Cevap: Araştırma: HT_AVAIL ve wrapper CR4 yürütmesini raporlayamaz. Doğru gösterge 0x237FFC (rambase+ramsize-4). Ama saat temizken SHARED_RAW=0x00 (token bile değil) — çekirdek serbest bırakılınca TCM okuması karardı.

Yeni olgu: release sonrası TCM karardı

Adım 2'de (halt) adres-0 TCM okundu; adım 5'te (serbest) 0x237FFC=0x00. O an 'saati temizlediğimiz için backplane saati düştü' diye yorumlandı → R71.

Doğru çalışanlar

  • Salt-okuma oracle değişikliği (0 cihaz yazması); firmware+NVRAM PASS.

imaj ffce629f31a01cde65524b678884d2fce95af096d928a05a326ef22de2349fde
kanıt evidence/rpi5/radio/attempt-r70-shared-word-oracle-uart-capture/

R712026-09-07

Sorulan: Backplane saati (ALP) tutulursa release sonrası 0x237FFC okunabilir mi?

Cevap: Hayır. CLK_CSR=0x49 (ALP tutuldu) ama SHARED_RAW yine 0x00. Karartma saatten BAĞIMSIZ: çekirdeğin reset'ten çıkması host'un TCM erişimini saatten bağımsız karartıyor.

Saat-tut hipotezi çürüdü

ALP zorla-tutulsa bile TCM okunamadı → sorun host clock isteği değil.

Doğru çalışanlar

  • Firmware+NVRAM PASS.

imaj eeb8e70d6fe78007e0cd6455c376d03a61257d6b0a647ffddfc2cb32606bef4d
kanıt evidence/rpi5/radio/attempt-r71-hold-alp-clock-uart-capture/

R722026-09-07

Düzeltme (R14 sonrası): R73: 'LPO donanım duvarı' FAZLA-ÇIKARIMDI — EXT_LPO_AVAIL=0 normaldir (43455 iç LPO; Pi'de harici 32kHz yok); HAVEALP=1+res_pend=0 iç LPO'yu kanıtlar.

Sorulan: Çekirdek bölgesi DIŞINDA, always-on tanıklar çekirdeğin koştuğunu gösterir mi?

Cevap: EROM'dan SDIO çekirdeği (0x829 @ 0x18004000) bulundu. CC_CHIPID=0x4345 (backplane canlı) ama MBOX=0, INTSTAT=0 (1 sn), RES_PEND=0, EXECUTED=0 → yürütme tanığı yok. O an EXT_LPO_AVAIL=0 görülüp 'LPO donanım duvarı' sanıldı.

Doğru gösterge: yürütme yok

Always-on SDIO mailbox/intstatus + PMU (CR4/HT domeni dışında) hiç yürütme sinyali göstermedi.

Doğru çalışanlar

  • Salt-okuma (0 cihaz yazması); firmware+NVRAM PASS.

imaj 720c459005a27c78a559ed8a181899f8b84e6ad7ff602aa4dd170ba1bfce50cc
kanıt evidence/rpi5/radio/attempt-r72-execution-witness-uart-capture/

R732026-09-07

Sorulan: FGC geri yüklenirse (R69'u tersine çevir) + doğru oracle ile çekirdek koşar mı?

Cevap: Hayır. FGC geri (0x23/0x03) ama MBOX=0, INTSTAT=0, RES_PEND=0, EXECUTED=0 — R72 ile aynı. FGC de belirleyici değil. PMU_TA=PMU_TB=0x00 (belirsiz). İki fazla-çıkarım düzeltildi.

İki yorum dürüstçe düzeltildi

(a) EXT_LPO_AVAIL=0 normaldir (iç LPO aktif); (b) FGC var/yok fark etmiyor. Kalan tek spesifik hipotez: 4345 CR4 rstvec/giriş semantiği (backplane-0 vs rambase).

Doğru çalışanlar

  • Firmware+NVRAM 16. kez PASS; doğru always-on gösterge kuruldu. CR4 yürütmüyor — kapsamlı belgelenmiş donanım/giriş duvarı.

imaj aa17c94c852b077e6004b05d9b89173f9355f5fa3fb63242a9fddb258fb49311
kanıt evidence/rpi5/radio/attempt-r73-fgc-restore-witness-uart-capture/

R742026-09-08

Sorulan: Kaynak-teyitli tek KESİN sapma — brcmf'in cr4_set_passive'de D11 (802.11 MAC) çekirdeğini disable etmesi — uygulanırsa CR4 koşar mı?

Cevap: Hayır (16. CR4-start denemesi; radyo kapanışı). Önce rstvec kaynakla DOĞRU teyit edildi (brcmfmac chip.c:1343 ve sdio.c:3903-3905 — backplane adres-0 yazması CR4 için doğru, CM3-ism değil). Bu satır numaraları R75 kontrol koşusunun çalıştırdığı ağaca aittir: Linux 6.18.34+rpt-rpi-2712, drivers/net/wireless/broadcom/brcm80211/brcmfmac/. Kaynak dosyalar bu depoda YOKTUR; iddia depoda yalnızca R80 trace'i ve R75 dmesg'i ile bağımsız olarak doğrulanabilir. Sonra D11-disable uygulandı: EROM D11'i buldu (D11_WRAP=0x18101000), yazmalar landı — ama yürütme yine YOK (MBOX=0, INTSTAT=0, RES_PEND=0, EXECUTED=0). Firmware 17. kez PASS.

rstvec kaynak-teyitli DOĞRU (elenen 4. lead)

brcmfmac cr4_set_active gerçek rstvec'i ops->activate'e geçirir (chip.c:1343, Linux 6.18.34+rpt-rpi-2712 ağacı); sdio.c:3903-3905 rstvec'i backplane ADRES 0'a yazar; cm3_set_active 0 geçer (guard atlar) → adres-0 yazması CR4'ün doğru yoludur, CM3-ism değil. Bizim yaptığımız birebir doğru. Vektör hata DEĞİL.

D11-disable uygulandı, çekirdek yine koşmadı

Tek KESİN upstream sapması (brcmf cr4_set_passive D11'i disable eder, chip.c:1334; biz atlıyorduk). EROM D11'i (0x812) 0x18101000'de buldu; ai_coredisable yazmaları R5-temiz. Ama MBOX/INTSTAT/RES_PEND/EXECUTED hepsi 0. D11 de elendi. (D11 wrapper'ı CR4 gibi yazma-sonrası karardığından disable geri-okumayla teyit edilemez, ama yazmalar landı.)

Radyo dürüstçe kapatıldı

Elenen kaynak-teyitli/spesifik ipuçları: reset-dizisi (FGC/saat/oracle), rstvec (doğru), D11-disable (uygulandı, sonuç yok). Kalan iki olasılık doğrulanmış sdio.c/chip.c yolunun DIŞINDA ve zayıf: nvram trailing-token biçimi (firmware.c), fw[0] entry bu imaj için. Fiziksel döngüyü hak edecek güçte değil.

Doğru çalışanlar

  • Firmware+NVRAM 17. kez PASS; EROM D11 (0x812) çekirdeğini buldu ve hedefledi.
  • rstvec/CR4-giriş kaynak-teyitli DOĞRU (blind düzeltme yapılmadı).
  • CR4 yürütmüyor — 16 denemede kaynak-teyitli elemelerle kapsamlı belgelenmiş donanım/giriş duvarı. Radyo donduruldu.

imaj 0d171f223ce4766813a130a49a18c2c140d88c57500dbd9e90880155101fa25b
kanıt evidence/rpi5/radio/attempt-r74-d11-disable-uart-capture/

R752026-09-08 (cihaz saati 2026-06-18)

Sorulan: Aynı fiziksel Raspberry Pi 5 kartı tam cold boot sonrası Linux/brcmfmac ile BCM43455'i çalıştırabiliyor mu?

Cevap: Evet. R75 Linux kontrolü pozitif: brcmfmac aynı F1 imzasını/CHIPID'i okudu, aynı 43455 firmware ailesiyle firmware preinit'i tamamladı, wlan0 arayüzü oluştu ve Bluetooth HCI hci0 çalıştı. Bu association/ping kanıtı değildir; WLAN soft-blocked kaldı.

Linux Wi‑Fi firmware yolu çalıştı

dmesg: brcmfmac F1 signature read @0x18000000=0x15264345; brcmf_fw_alloc_request brcm/brcmfmac43455-sdio kullandı; brcmf_c_preinit_dcmds firmware satırı geldi: BCM4345/6 wl0, version 7.45.265, FWID 01-b677b91b. Negatif aramada HT Avail timeout veya brcmf firmware-start failure satırı yok.

Aynı firmware kimlikleri

Linux kartındaki 43455 dosyalarının SHA256'ları AselsanOS sayfasındaki pinlerle aynı: standard firmware d608f866…, NVRAM txt ca709be8…, CLM blob 9823842c…. Yani R75, farklı blob ailesiyle alınmış bir başarı değil.

Bluetooth HCI de çalıştı

Bluetooth hci0 UP/RUNNING, BCM43455 37.4MHz satırı görüldü; hciconfig RX/TX event/command sayacı pozitif; btmon başarılı HCI Command Complete olayları kaydetti. R2–R53'teki AselsanOS TX=4 ANSWERED=0 suskunluğu Linux'ta tekrar etmedi.

Doğru çalışanlar

  • R75 cloud-init otomasyonu tamamlandı ve EVIDENCE_SHA256SUMS mühürü doğrulandı.
  • wlan0 managed interface olarak oluştu; rfkill WLAN soft-blocked=yes, hard-blocked=no — ilk kurulum politikası, firmware start hatası değil.
  • Bu sonuç kart/silikon/blob 'asla çalışmaz' hipotezini kapatır; sıradaki AselsanOS işi Linux-vs-AselsanOS host-init first-diff'tir.

imaj Raspberry Pi OS 64-bit · Linux 6.18.34+rpt-rpi-2712 · Raspberry Pi 5 Model B Rev 1.1
kanıt evidence/rpi5/radio/attempt-r75-linux-control/

R762026-09-08

Sorulan: Linux brcmf_sdio_buscore_activate() gibi SDIO core intstatus'u rstvec'ten önce temizlemek CR4 yürütmesini başlatır mı?

Cevap: Hayır. R76 tek semantik değişkeni doğru uyguladı: SDIO_INT_B=0x00020000, SDIO_INT_CLR=1, SDIO_INT_A=0x00000000. Latch temizlendi ama MBOX=0, INTSTAT=0, HT_AVAIL=0, EXECUTED=0, STARTED=0 kaldı.

intstatus clear yazması gerçekten landı

R76'nın yeni CR4START makbuzu SDIO core interrupt latch'inin önce 0x00020000 olduğunu, 0xffffffff clear yazmasının başarıyla çıktığını ve sonrasında 0x00000000 okunduğunu gösterdi.

CR4 yürütme tanığı yine yok

MBOX=0, INTSTAT=0, HT_AVAIL=0, EXECUTED=0, STARTED=0. Bu yüzden intstatus temizliği tek başına Linux/AselsanOS first-diff değil.

Doğru çalışanlar

  • Firmware staging PASS: SECTORS_DONE=1191, WORDS_V=152448, OK=1.
  • NVRAM PASS: TOKEN_OK=1, OK=1, FW_INTACT=1.
  • Ekran ve touch yolu geldi: SCREEN0 ve TOUCHREADY; fiziksel görüntü kullanıcı tarafından görüldü.

imaj 168bd3bb47464bddf0ef33e4b0e365ea946206d959985e6ed77d74712726551d
kanıt evidence/rpi5/radio/attempt-r76-intstatus-first-diff-uart-capture/

R772026-09-08

Sorulan: Linux brcmf_sdio_kso_init() gibi SLEEPCSR KSO bitini D11/rstvec öncesi set etmek CR4 yürütmesini başlatır mı?

Cevap: Hayır. R77 ölçtü: KSO_REV=21, KSO_B=0x03, KSO_W=1, KSO_A=0x03, KSO_SET=1, KSO_DEVON=1. KSO/DEVON zaten iyiydi; MBOX=0, INTSTAT=0, HT_AVAIL=0, EXECUTED=0, STARTED=0 kaldı.

KSO init uygulanabilir ama eksik halka değil

SDIO core rev 21 olduğu için Linux KSO init kuralı geçerliydi. Ancak KSO_B=0x03, KSO ve DEVON bitlerinin yazmadan önce zaten 1 olduğunu gösterdi. Yazma yolu KSO_W=1 ile tamamlandı, KSO_A=0x03 kaldı.

CR4 yürütme tanığı yine yok

R76 intstatus clear yine land etti, fakat MBOX/INTSTAT/EXECUTED/STARTED sıfır kaldı. KSO init tek başına Linux/AselsanOS first-diff değil.

Doğru çalışanlar

  • Firmware staging PASS: SECTORS_DONE=1191, WORDS_V=152448, OK=1.
  • NVRAM PASS: TOKEN_OK=1, OK=1, FW_INTACT=1.
  • Ekran ve touch yolu geldi: SCREEN0 ve TOUCHREADY.

imaj bd7d86e59b0ac8c083738e9455619169ff3accb23f946ebd041769820220cebb
kanıt evidence/rpi5/radio/attempt-r77-kso-init-uart-capture/

R782026-09-08

Sorulan: Exact Linux brcmf_sdio_buscoreprep clock dizisini (CHIPCLKCSR 0x28→0x21) KSO/D11/rstvec öncesine almak CR4 yürütmesini başlatır mı?

Cevap: Hayır. R78 clock dizisini uyguladı: CLK_REQ=0x28, CLK_R=0x68, CLK_HOLD=0x21, CLK_CSR=0x61. Ama MBOX=0, INTSTAT=0, HT_AVAIL=0, EXECUTED=0, STARTED=0 kaldı; ayrıca WRITE_OK=0 ile bu yerleşim zararlı çıktı.

Exact clock landed, CR4 başlamadı

Linux buscoreprep byte'ları ölçüldü: 0x28 isteği, 0x68 readback, 0x21 hold, 0x61 son CSR. Buna rağmen host-görünür yürütme tanığı yok.

Yan etki: WRITE_OK düştü

R76/R77'de WRITE_OK=1 iken R78'de WRITE_OK=0 oldu. Bu yüzden sonraki adaylarda exact 0x28→0x21 tutulmayacak; R77'nin non-harmful 0x29→0x09 clock baseline'ına dönülecek.

Doğru çalışanlar

  • Firmware staging PASS: SECTORS_DONE=1191, WORDS_V=152448, OK=1.
  • NVRAM PASS: TOKEN_OK=1, OK=1, FW_INTACT=1.
  • Ekran ve touch yolu geldi: SCREEN0 ve TOUCHREADY.

imaj bc3889b94248af6c7f1b24298beee134be7ea1c1af8eb16662ce94eb46a26925
kanıt evidence/rpi5/radio/attempt-r78-exact-buscoreprep-clock-uart-capture/

R792026-09-08

Sorulan: Linux probe_attach() gibi Function-0 CARDCTRL_WLANRESET bitini KSO sonrası, D11/rstvec öncesi set etmek CR4 yürütmesini başlatır mı?

Cevap: Hayır. R79 ölçtü: CARD_B=0x01, CARD_W=1, CARD_A=0x03, CARD_WLANRST=1, CLK_REQ=0x29, CLK_HOLD=0x09, WRITE_OK=1. Bit land etti ama MBOX=0, INTSTAT=0, HT_AVAIL=0, EXECUTED=0, STARTED=0 kaldı.

CARDCTRL_WLANRESET yazması gerçekten landı

Function-0 0xf1 önce 0x01 okundu, bit 1 set edildi, sonra 0x03 geri okundu. CARD_WLANRST=1. R77 clock baseline korundu ve WRITE_OK=1 geri geldi.

CR4 yürütme tanığı yine yok

MBOX=0, INTSTAT=0, HT_AVAIL=0, EXECUTED=0, STARTED=0. Bounded first-diff 1–4 (intstatus, KSO, exact clock, CARDCTRL) tek başına elendi.

Doğru çalışanlar

  • Firmware staging PASS: SECTORS_DONE=1191, WORDS_V=152448, OK=1.
  • NVRAM PASS: TOKEN_OK=1, OK=1, FW_INTACT=1.
  • Ekran ve touch yolu geldi: SCREEN0 ve TOUCHREADY.

imaj 8892f43599572bd3f23a5aeb3091490258ecdec35a20e1a53cc164271f06070f
kanıt evidence/rpi5/radio/attempt-r79-cardctrl-wlanreset-uart-capture/

R802026-09-08

Sorulan: Aynı Pi 5'te Linux brcmfmac/mmc/sdio işlem sırası boot-time ftrace ile yakalanır mı?

Cevap: Evet. Manuel collector `R80 done` yazdı. wlan0 managed (ch 36), hci0 UP RUNNING, CHIPID 0x15264345, firmware 7.45.265. 27 MB function trace: buscoreprep @25.714586, htclk @25.823750, ramrw @25.823769.

Linux buscoreprep firmware indirmeden önce

brcmf_sdio_buscoreprep probe'da, ramrw'dan ~109 ms önce. R78 aynı clock byte'larını CR4-start sonrasına koyduğu için yanlış yere uyguladı ve WRITE_OK=0 oldu.

htclk hemen ramrw öncesi

firmware_callback → htclk → ramrw. KSO watchdog thread firmware ayaktayken geliyor; R77'nin rstvec-öncesi KSO'su bu izdeki ilk kso_control değil.

Doğru çalışanlar

  • Aynı blob SHA: standard.bin d608f866, nvram ca709be81, clm 9823842cae.
  • trace.txt 90916 kayıt, mmc1 Wi-Fi SDIO, tracing_on=1.

imaj linux-r80-manual-collector
kanıt evidence/rpi5/radio/attempt-r80-linux-sdio-trace/

R812026-09-08

Sorulan: Linux probe_attach (KSO+CARDCTRL+PMU RES_RELOAD+D11) firmware'den önce ve htclk ALP_AVAIL_REQ 0x08 ramrw hemen öncesi CR4'ü başlatır mı?

Cevap: Hayır; koşu CR4-start'a ulaşmadı. ATTACH KSO/CARDCTRL land etti, HTCLK REQ=0x08 ALP=1 HT=0, sonra firmware heartbeat S=64/1191'de durdu. SCREEN0/TOUCHREADY/CR4START yok. PMU RELOAD=0 ve D11_RST=0 (0x18181818 gürültü).

HTCLK 0x08 ramrw öncesi TCM yolunu durdurdu

Buscoreprep hold 0x21'i ALP_AVAIL_REQ 0x08 ile değiştirdikten sonra stage_to_tcm S=64'te takıldı. R79 aynı kartta FWSTAGE OK=1 ve TOUCHREADY üretmişti. R70 saat temizlemenin TCM'i kararttığını zaten göstermişti; Linux alp_only bu yuvaya kopyalanamaz.

KSO ve CARDCTRL attach yuvasında land etti

KSO_B=0x03 KSO_A=0x03 SET=1 DEVON=1; CARD_B=0x01 CARD_A=0x03 WLANRST=1. Bunlar R77/R79 ile aynı bitler, Linux probe_attach yerinde.

Doğru çalışanlar

  • BOOT0–BOOT4, WIFIINV, WIFICMD5, CHIPID=0x15264345, EROM NCORES=7.
  • Yeşil LED SD erişimini gösterdi; UART 12932 B (usb-reset 0 B ayrı).

imaj 90d221007f6d834e3176b0f4de1d96f5bf15769b42455c7dd8225406722b716c
kanıt evidence/rpi5/radio/attempt-r81-linux-order-combined-uart-capture/

R822026-09-08

Sorulan: R81 HTCLK 0x08 yazmadan, buscoreprep ALP hold 0x21 ile firmware indirmek CR4 yolunu açar mı?

Cevap: Hayır. HTCLK SKIP=1 CSR=0x61 ALP=1 doğru hold'u gösterdi ama FWSTAGE yine S=64'te durdu. SCREEN0/CR4START yok. 0x08 tek neden değil.

ALP hold ramrw'ya kadar durdu, TCM yine takıldı

REQ=0x00 SKIP=1 CSR=0x61 = FORCE_ALP|ALP_AVAIL. Firmware heartbeat S=0 sonra S=64, UART 12959 B'de dondu. Yeşil LED söndü.

R79 farkı: attach'te PMU+D11 firmware öncesi

R79 firmware'i bitirdi; KSO/CARDCTRL CR4-start'taydı. R81/R82 attach PMU RES_RELOAD ve D11 disable'ı ramrw öncesine aldı. R83 bunları atlar.

Doğru çalışanlar

  • BOOT0–EROM, CHIPID=0x15264345, ATTACH KSO/CARDCTRL land, HTCLK SKIP=1.

imaj b41f096b0d82aadc1bd211aa07a39d5933be3e5ea234a9d4e7be9a1a3c0cedca
kanıt evidence/rpi5/radio/attempt-r82-alp-hold-through-ramrw-uart-capture/

R832026-09-08

Sorulan: Attach'te yalnız KSO+CARDCTRL (PMU RES_RELOAD ve D11 disable ramrw öncesi yok) firmware'i R79 gibi bitirir ve CR4'ü başlatır mı?

Cevap: Firmware evet, CR4 hayır. SKIP_PMU=1 SKIP_D11=1, HTCLK SKIP=1 CSR=0x61, FWSTAGE OK=1, NVRAM OK=1, TOUCHREADY. CR4START WRITE_OK=1 ama MBOX=0 INTSTAT=0 EXECUTED=0 STARTED=0 HT_AVAIL=0. Wi-Fi PASS değil.

R81/R82 S=64 takılması PMU+D11 ramrw öncesinden

Aynı HTCLK skip ile R82 S=64'te durdu; R83 o iki yazmayı atlayınca SECTORS_DONE=1191 OK=1 ve NVRAM OK=1 geldi. KSO+CARDCTRL attach yuvası TCM ile uyumlu.

CR4 tanığı R79 ile aynı sıfır

CLK_REQ=0x29 CLK_HOLD=0x09 WRITE_OK=1. CARD_B=0x03 (attach'te zaten 0x03). D11_RESET=0. MBOX/INTSTAT/EXECUTED/STARTED/HT_AVAIL=0.

SCREEN0 UART makbuzu; operatör görüntü görmedi

UART BACKLIGHT=15 PANEL_ENABLE=1 DMA_IRQ=0x45 TOUCHREADY yazdı ama PHYSICAL=0 PIXEL=0. Operatör panele görüntü gelmediğini bildirdi. Bu R81/R82 S=64 takılması değil (yeşil LED sönmedi, FWSTAGE OK=1).

Doğru çalışanlar

  • Firmware staging PASS: SECTORS_DONE=1191, WORDS_V=152448, OK=1.
  • NVRAM PASS: TOKEN_OK=1, OK=1, FW_INTACT=1.
  • UART SCREEN0 ve TOUCHREADY; PHYSICAL=0 PIXEL=0; operatör görüntü görmedi.

imaj 69014605ca9f5fa94030e8976d2a719f67a86abfcfbadf290b3f9e5558372d01
kanıt evidence/rpi5/radio/attempt-r83-attach-kso-cardctrl-only-uart-capture/

R842026-09-09

Sorulan: Attach'te KSO+CARDCTRL'ye yalnız PMU RES_RELOAD eklemek (D11 ramrw sonrası) firmware'i bozar mı, CR4'ü başlatır mı?

Cevap: Firmware bozuldu, CR4'e ulaşılmadı. SKIP_PMU=0 SKIP_D11=1, HTCLK SKIP=1 CSR=0x61. PMU CTL_W=0 CTL_A=0x18181818 RELOAD=0. FWSTAGE_P S=0'da durdu. SCREEN0/CR4START yok. PASS değil.

Pre-ramrw PMU yazması D11 olmadan da TCM'i durdurur

R83 aynı HTCLK skip ile FWSTAGE OK=1 verdi. R84 yalnız PMU RES_RELOAD ekledi; yazma land etmedi (0x18181818) ve heartbeat S=0'da kaldı. R82 S=64 takılması D11'e indirgenemez.

PMU okunurdu, yazma bozdu

CTL_B=0x01770181 (R83 NVRAM sonrası dump ile aynı aile). CTL_W=0, sonra CTL_A=0x18181818. Linux probe_attach yuvasındaki bu yazma bu bus'ta kopyalanamaz.

Doğru çalışanlar

  • BOOT0–EROM, CHIPID=0x15264345, ATTACH KSO/CARDCTRL land, HTCLK SKIP=1.
  • SKIP_PMU=0 SKIP_D11=1 bayrakları UART'ta görüldü.

imaj 0973ea248156e82d956ecb502104b7b8f7f868630d77089f80daa6375c01a239
kanıt evidence/rpi5/radio/attempt-r84-attach-pmu-reload-uart-capture/

R852026-09-09

Sorulan: PMU RES_RELOAD'u NVRAM'den sonra, ramrw öncesi değil, yazmak CR4'ü başlatır mı?

Cevap: Hayır. Firmware ve NVRAM OK=1. PMUREL CTL_B=0x01770181 CTL_W=0 CTL_A=0x18181818 RELOAD=0. CR4START RSTVEC_OK=0 WRITE_OK=0, bütün tanıklar 0x18181818. EXECUTED=1 STARTED=1 WITNESS_MS=0: mailbox!=0 gürültüye denk geldi, ARM yürütmesi değil. PASS değil.

Aynı yazma ramrw sonrasında da bus'ı bozuyor

R84 ramrw öncesi S=0 takılması; R85 firmware'i bitirdi sonra aynı PMUControl yazması 0x18181818 üretti. CTL okunuyor, yazma land etmiyor.

EXECUTED=1 yanlış pozitif

cr4_start mbox_data!=0 görünce executed=true diyor. 0x18181818 sıfır değil; WITNESS_MS=0. R83'te MBOX=0 EXECUTED=0 WRITE_OK=1 idi.

Operatör DSI panelde görüntü gördü

UART SCREEN0 PHYSICAL=0 PIXEL=0 (çekirdek piksel iddiası yok). Operatör R85 imajında panele görüntü geldiğini bildirdi. R83'te aynı protokolde görüntü yoktu. Bu Wi-Fi veya CR4 PASS değildir.

Doğru çalışanlar

  • Firmware staging PASS: SECTORS_DONE=1191, WORDS_V=152448, OK=1.
  • NVRAM PASS: TOKEN_OK=1, OK=1, FW_INTACT=1.
  • UART SCREEN0 ve TOUCHREADY; PHYSICAL=0 PIXEL=0; operatör görüntü geldi dedi.

imaj 44340ede7b0e251b6bd1001fc8cbda7de61dd84468918647031937c0d75aa22a
kanıt evidence/rpi5/radio/attempt-r85-post-nvram-pmu-reload-uart-capture/

R862026-09-09

Sorulan: PMUControl'ü Linux sdiod_writel gibi tek CMD53 4 bayt + 4B bayrağı ile yazmak biti land eder mi, bus'ı bozar mı?

Cevap: Land etmedi, bus bozulmadı. PATH=C53_4B C53_OK=0 C53_B=0 C53_ERR=0x0020, CTL_A=0x01770181 RELOAD=0. CR4START RSTVEC_OK=1 WRITE_OK=1 MBOX=0 EXECUTED=0 WITNESS_MS=1000 (R83 kalıbı, R85 gürültüsü değil). PASS değil.

4× CMD52 zehirdi; CMD53 4B CRC ile düştü ve kaydı değiştirmedi

R85 CTL_A=0x18181818. R86 aynı yuvada Linux writel: DATA CRC 0x0020, C53_B=0, PMUControl aynı kaldı. 0x18181818 yok.

CR4 tanıkları yine dürüst sıfır

EXECUTED=0 STARTED=0 WRITE_OK=1 CHIPID=0x15264345. RES_RELOAD bu host'ta CR4-start kolu değil.

Doğru çalışanlar

  • Firmware staging PASS: SECTORS_DONE=1191, WORDS_V=152448, OK=1.
  • NVRAM PASS: TOKEN_OK=1, OK=1, FW_INTACT=1.
  • UART SCREEN0 ve TOUCHREADY; PHYSICAL=0 PIXEL=0.

imaj 47ed584bb1c67474cd8f64b1933079dc5dcda44ae6cfa2d1694b79674ae7d1e8
kanıt evidence/rpi5/radio/attempt-r86-pmu-writel-uart-capture/

R872026-09-09

Sorulan: pmu_res_reload'u boot yolundan çıkarmak R83 firmware+CR4 tanık kalıbını geri getirir mi?

Cevap: Evet kalıp, hayır CR4. PMUREL yok. FWSTAGE OK=1, NVRAM OK=1. CR4START RSTVEC_OK=1 WRITE_OK=1 MBOX=0 EXECUTED=0 WITNESS_MS=1000. 0x18181818 yok. PASS değil.

RES_RELOAD bu host'ta CR4-start kolu değil

R84/R85 yazınca bus öldü; R86 CMD53 CRC; R87 yazmayınca R83 tanıkları döndü. Bit land etmiyor ve çekirdeği başlatmıyor.

Doğru çalışanlar

  • Firmware staging PASS: SECTORS_DONE=1191, WORDS_V=152448, OK=1.
  • NVRAM PASS: TOKEN_OK=1, OK=1, FW_INTACT=1.
  • UART SCREEN0 ve TOUCHREADY; PHYSICAL=0 PIXEL=0.

imaj db99ca474e96b88fa22538f90cabbf1f35285b196e4ab3ed7f3b85808badfbf2
kanıt evidence/rpi5/radio/attempt-r87-drop-pmu-reload-uart-capture/

R882026-09-09

Sorulan: Linux buscore_activate ramrw gibi rstvec'i adres 0'a CMD53 4 bayt + 4B bayrağı ile yazmak vektörü land eder mi, CR4'ü başlatır mı?

Cevap: Land etmedi, CR4 başlamadı. RSTVEC_C53=0 RSTVEC_B=0 RSTVEC_ERR=0x0060 RSTVEC_OK=0. WRITE_OK=1 MBOX=0 EXECUTED=0 WITNESS_MS=1000. 0x18181818 yok. PASS değil.

Linux ramrw CMD53 4B bu host'ta rstvec'e de kopyalanamaz

R87 4× CMD52 aynı adreste RSTVEC_OK=1 verdi. R88 CMD53 DATA CRC+END BIT 0x0060 (R40 TCM CMD53 ailesi), C53_B=0, vektör inmedi. Bus zehirlenmedi.

Operatör DSI panelde görüntü gördü

UART SCREEN0 PHYSICAL=0 PIXEL=0. Operatör R88 imajında panele görüntü geldiğini bildirdi. Bu Wi-Fi veya CR4 PASS değildir.

Doğru çalışanlar

  • Firmware staging PASS: SECTORS_DONE=1191, WORDS_V=152448, OK=1.
  • NVRAM PASS: TOKEN_OK=1, OK=1, FW_INTACT=1.
  • UART SCREEN0 ve TOUCHREADY; PHYSICAL=0 PIXEL=0; operatör görüntü geldi dedi.

imaj d3289b2f0d293ed0ecc62ba5e1c0562d6e043b81c1c3b2a6c9fbd9a27ae59ea5
kanıt evidence/rpi5/radio/attempt-r88-set-active-vs-cr4-start-uart-capture/

R892026-09-09

Sorulan: R88'in CMD53 ramrw rstvec yazmasını R87 cmd52_write_u32'ye geri almak vektörü tekrar land eder mi, CR4'ü başlatır mı?

Cevap: Vektör indi, CR4 başlamadı. RSTVEC_OK=1 ALIAS_OK=1 RSTVEC_C53=0 RSTVEC_ERR=0x0000. WRITE_OK=1 MBOX=0 EXECUTED=0 WITNESS_MS=1000. 0x18181818 yok. PASS değil.

CMD52 rstvec landing R87 kalıbına döndü

R88 RSTVEC_OK=0 ERR=0x0060. R89 aynı adreste 4× CMD52: RSTVEC_OK=1 C53 kullanılmadı. CR4 yine EXECUTED=0.

Operatör DSI panelde görüntü gördü

UART SCREEN0 PHYSICAL=0 PIXEL=0. Operatör R89 imajında panele görüntü geldiğini bildirdi. Bu Wi-Fi veya CR4 PASS değildir.

Doğru çalışanlar

  • Firmware staging PASS: SECTORS_DONE=1191, WORDS_V=152448, OK=1.
  • NVRAM PASS: TOKEN_OK=1, OK=1, FW_INTACT=1.
  • UART SCREEN0 ve TOUCHREADY; PHYSICAL=0 PIXEL=0; operatör görüntü geldi dedi.

imaj 57bae63ce3c33cec1a4d969da380ca9bd45872e5d47dd195fce28993cbf7315a
kanıt evidence/rpi5/radio/attempt-r89-rstvec-cmd52-restore-uart-capture/

R902026-09-09

Sorulan: Linux cr4_set_active gibi aynı rstvec sözcüğünü halt penceresinde CR4 rambase'e yazmak CR4'ü başlatır mı?

Cevap: Hayır. RAM_W=0 RAM_OK=0. RSTVEC_OK=1 (adres 0 önce indi). Sonra IOCTL_TERM/CHIPID/MBOX/INTSTAT=0x18181818, WRITE_OK=0, WITNESS_MS=0 EXECUTED=1 STARTED=1: R85 gürültüsü, ARM yürütmesi değil. PASS değil.

Halt penceresinde rambase yazması bus'ı zehirledi

Firmware aynı rambase'e cr4_start'tan önce cmd52 ile inmişti (FW_INTACT=1). Reset assert sonrası backplane_write32(CR4_RAM_BASE) RAM_W=0 verdi ve sonraki okumalar 0x18181818 oldu.

EXECUTED=1 yanlış pozitif

MBOX=0x18181818 sıfır değil; WITNESS_MS=0. R89'da MBOX=0 EXECUTED=0 WRITE_OK=1 idi.

Operatör DSI panelde görüntü gördü

UART SCREEN0 PHYSICAL=0 PIXEL=0. Operatör R90 imajında panele görüntü geldiğini bildirdi. Bu Wi-Fi veya CR4 PASS değildir.

Doğru çalışanlar

  • Firmware staging PASS: SECTORS_DONE=1191, WORDS_V=152448, OK=1.
  • NVRAM PASS: TOKEN_OK=1, OK=1, FW_INTACT=1.
  • UART SCREEN0 ve TOUCHREADY; PHYSICAL=0 PIXEL=0; operatör görüntü geldi dedi.

imaj 34f127f9a65fcb241b6412880cffa6f2aa600e8853f314da6e530e05a5a3f5f7
kanıt evidence/rpi5/radio/attempt-r90-rambase-rstvec-second-write-uart-capture/

R912026-09-09

Sorulan: R90 rambase rstvec yazmasını boot yolundan çıkarmak R89 firmware+CR4 tanık kalıbını geri getirir mi?

Cevap: Evet kalıp, hayır CR4. RAM_W=0 RAM_OK=0 (yazma yok). RSTVEC_OK=1 WRITE_OK=1 MBOX=0 EXECUTED=0 WITNESS_MS=1000. 0x18181818 yok. PASS değil.

Rambase ikinci yazma bu host'ta CR4-start kolu değil

R90 yazınca bus zehirledi; R91 yazmayınca R89 dürüst sıfırlar döndü. Firmware zaten rambase'de (FW_INTACT=1).

Operatör DSI panelde görüntü gördü

UART SCREEN0 PHYSICAL=0 PIXEL=0. Operatör R91 imajında panele görüntü geldiğini bildirdi. Bu Wi-Fi veya CR4 PASS değildir.

Doğru çalışanlar

  • Firmware staging PASS: SECTORS_DONE=1191, WORDS_V=152448, OK=1.
  • NVRAM PASS: TOKEN_OK=1, OK=1, FW_INTACT=1.
  • UART SCREEN0 ve TOUCHREADY; PHYSICAL=0 PIXEL=0; operatör görüntü geldi dedi.

imaj 3553027c3a857179381ae82f374c5762ee8b37e6430f041bd9dacda8c43aaf46
kanıt evidence/rpi5/radio/attempt-r91-drop-rambase-rstvec-uart-capture/

R932026-09-09

Sorulan: CR4+D11 wrapper erişimlerine 4-bayt bayrağı (0x8000) eklenirse (Linux gibi atomik) çekirdek koşar mı?

Cevap: Hayır — ama aday kök nedeni daralttı. Flagged OKUMA çalıştı (IOCTL_B=0x21 flagged yolla okundu) ama flagged BAYT-CMD52 atomik 32-bit commit vermedi: MBOX=0 INTSTAT=0 EXECUTED=0 (firmware+NVRAM 30. PASS). R92 trace-diff'i (R80) göstermişti: reset değer/sıra Linux'la birebir; tek fark erişim — Linux wrapper'a CMD53 byte-mode 4-byte atomik yazıyor, biz 4×CMD52.

ADAY KÖK NEDEN: küçük-CMD53 yazma transportu (ölçülen ile çıkarımı ayır)

Linux CR4 wrapper register'larını (IOCTL 0x18102408, RESET_CTL 0x18102800) CMD53 byte-mode blocks=1 block_size=4 ile ATOMİK 32-bit yazıyor (R80 trace: cmd_arg=0x95481004/0x95500004 @ 0xA408/0xA800). ÖLÇÜLEN: bizim küçük CMD53 YAZMAMIZ cihazda düşüyor (R86 0x0020, R88 0x0060) ve CMD53 OKUMA ChipCommon'da çalışıyor (R30 gerçek chip-id döndü). ÖLÇÜLMEYEN üç şey açıkça kayıtlıdır: (1) 0x0060 yalnızca yazmaya özgü DEĞİL — R40'ta bir CMD53 OKUMASI da TCM'de TCM_C53_ERR=0x0060 verdi, yani ayrım yön değil ADRES BÖLGESİ olabilir (ChipCommon çalışıyor, TCM/backplane RAM düşüyor); o klasörün README'si de bunu böyle yazıyor. (2) 'cmd53_write busy DAT hattına issue ediyor' mekanizması hiçbir makbuzda ölçülmedi: bus_was_busy alanı yalnız CMD53 OKUMA satırlarında (WIFICMD53/WIFISWEEP) basılıyor ve ölçülen tüm BUSY değerleri sıfır. (3) '4×CMD52 atomik commit vermiyor' bir çıkarımdır; FWSTAGE zaten CMD52 kullanıyor ve sorunsuz. R94 düzeltmesi (busy-gate + DAT0-release poll) kodlandı ama HEAD'in CR4-start yolunda hâlâ tek bir CMD53 yazma yok — yani düzeltme cihazda SINANMADI.

Bir cr4_start tweak'i DEĞİL — SDHCI sürücü işi

Önerilen yol: küçük CMD53 DATA-fazı hatasını düzeltmek (BLKSIZE/BLKCNT, byte-mode, timeout, PIO/DMA, DAT hattı disiplini). Referans implementasyon R80 Linux trace'inde. Flagged okuma çalıştığı için (IOCTL_B=0x21) erişim yolu doğru; hipotez, eksik olanın atomik 32-bit yazma transportu olduğu. Bu hipotez cihazda henüz sınanmadı ve R40'ın okuma tarafındaki 0x0060'ı da açıklamak zorunda.

Doğru çalışanlar

  • Firmware+NVRAM 30. kez PASS (R58→R93, makbuzlardan sayıldı).
  • CR4 yürütmüyor. Sıradaki iş düzeltilmiş cmd53'ü CR4 wrapper yoluna bağlayıp cihazda sınamak (R94-cihaz); bu bir donanım duvarı DEĞİL (R75 Linux kontrolü).

imaj 5d9ae1a1022ace2af9e190f96e7f7011e20e840a47e919d624aa1fb24a95f838
kanıt evidence/rpi5/radio/attempt-r93-wrapper-4byte-flag-uart-capture/

R952026-09-09

Sorulan: CR4 TCM boyutu çipten ölçülüp NVRAM ile yürütme tanığı RAM'in GERÇEK tepesine taşınırsa çekirdek koşar mı?

Cevap: Hayır — ama iki adayı birden KAPATTI ve kalıcı bir kazanç bıraktı. Çip kendi banka tablosundan RAMSIZE=0x000c8000 dedi (EXPECT_R80 ile birebir); NVRAM artık Linux'un yazdığı adrese (0x0025f92c) iniyor ve yükleme bozulmadı (FW_INTACT=1, 31. PASS). Buna rağmen MBOX=0, INTSTAT=0, EXECUTED=0, HT_AVAIL=0.

KAPI 1 PASS — ramsize artık tahmin değil, ölçüm

ASELSAN/CR4RAM CORE=0x18002000 CAP=0x00000b44 BANKS=8 RAMSIZE=0x000c8000 MEASURED=1 TOP=0x00260000 EXPECT_R80=0x000c8000. CAP'in düşük nibble'ı 4 A-bankası, üst nibble'ı 4 B-bankası veriyor = 8 banka; bu, R80 izindeki sekiz BANKIDX/BANKINFO turuyla da uyuşuyor. Depodaki 0xA0000 sabiti gerçekten 160 KiB eksikti ve yorumu bunu zaten itiraf ediyordu ('609 KB firmware bunu gerektirir'). Ölçüm, izden BAĞIMSIZ ikinci bir kaynaktan aynı sayıyı verdi.

KAPI 2 PASS — yerleşim Linux'la birebir, yükleme bozulmadı

ASELSAN/NVRAM ADDR=0x0025f92c (R93'te 0x0023792c) TOKEN_OK=1 WORDS=437 VERIFIED=437 OK=1 FW_INTACT=1; FWSTAGE SECTORS_DONE=1191 WORDS_V=152448 RETRIES=0 OK=1. 1748 baytlık blob artık tam 0x00260000'da bitiyor — R80 izinde Linux'un yaptığının aynısı.

KAPI 3 NEGATİF — ve bu sefer tanık DOĞRU adresten baktı

MBOX=0x00000000 INTSTAT=0x00000000 EXECUTED=0 HT_AVAIL=0 STARTED=0 SHARED_RAW=0x00000000. Kritik olan şu: SHARED_RAW bu koşuda 0x25FFFC'den okundu, yani C03'ün 'yanlış pencereden bakıyoruz' açıklaması ELENDİ. Firmware oraya hiçbir şey yazmadı. 'CR4 yürütmüyor' cümlesi artık bir ölçüm körlüğüne dayanmıyor.

C04 öne çıktı: FORCE_ALP hâlâ tutuluyor, HT hiç istenmiyor

CLK_REQ=0x29 CLK_R=0x69 CLK_HOLD=0x09 CLK_CSR=0x49. Linux release sonrası 0x00 → 0x10 yazıp HT bekliyor. R98 bu farkı sınadı: istek latch etti, HT gelmedi. Düzeltme: Linux'un erken 0x21 yazması FORCE_ALP içerir; indirme tutamağı 0x08'dir.

İki açık aday yeniden üretildi

PMU_TA=0x00000000 PMU_TB=0x00000000 — PMU serbest-koşan zamanlayıcısı 1 saniyede yine hiç ilerlemedi, oysa PMU_STAT=0x0000002a ve RES_ST=0x0fcaff77 aynı yoldan sağlıklı dönüyor (C13). WORDS_W=95683 ama WORDS_V=152448 ve RETRIES=0 — yazma sayacı ile doğrulama sayacı yine tutmuyor (C14).

Doğru çalışanlar

  • Firmware+NVRAM 31. kez PASS (R58→R95, makbuzlardan sayıldı).
  • Kanıt paketi TAM: bootloader banner'ından TOUCHREADY'ye kadar; R93'te eksik olan BOOT0/PINMUX/WIFIPWR/WIFICMD5/EROM/SDCLK satırlarının hepsi bu pakette var.
  • Ölçüm yolu kalıcı: ramsize bir daha elle yazılmayacak; ölçüm düşerse fallback korunur ve makbuz MEASURED=0 der.

imaj 7b7b7f2a4dc1ebe9e20bad4fac73ccc16c8eae73438f15960063e36c888ce565
kanıt evidence/rpi5/radio/attempt-r95-tcm-ramsize-uart-capture/

R962026-09-09

Sorulan: cr4_start, staging için daraltılan bütçe yerine tanımlama fazının bütçesiyle koşarsa çekirdek çalışır mı?

Cevap: Hayır — ve çok daha ağır bir şey ortaya çıktı: tanık okumaları GÜVENİLMEZ. C12 kapandı (geri alma çalıştı, sonuç değişmedi), ama aynı koşuda CC_CHIPID=0x15264345 iken CHIPID2=0x00000000 ölçüldü. Bu ikisi AYNI kaydın aynı yoldan iki okuması.

C12 uygulandı ve kapandı

ASELSAN/CR4PRE POLLS=50000 CLKDIV=0x80 CLK_STABLE=1 WAS_POLLS=2000 WAS_CLKDIV=0x08; cr4_start içinde ölçülen POLLS=50000. Geri alma çalıştı, EXECUTED yine 0. Daraltılmış bütçe tek başına açıklama değildi.

ASIL BULGU: CHIPID2=0x00000000 — sıfır olamayacak bir kayıt sıfır döndü

CC_CHIPID (cr4_start girişinde) 0x15264345; CHIPID2 (tanık döngüsünden sonra) 0x00000000. Aynı fonksiyon (backplane_read32_data), aynı adres (ChipCommon 0x18000000). ChipCommon chip id sıfır olamaz. Yani tanık penceresinde okuma yolu gerçek veri döndürmüyor ve MBOX=0 / INTSTAT=0 / SHARED_RAW=0 / PMU_TA-TB-TC=0 hiçbiri 'çekirdek sessiz' olarak okunamaz.

Bağımsız tanık: hat R70'ten beri ölü

cr4_start'tan hemen sonra koşan WIFISWEEP kendi pencere yazmasını yapıp geri okuyor ve taze bir CMD52 ile chipid okuyor. R67 ve R69: WIN_OK=1 C52_0=0x15264345 — hat CANLI. R70'ten R96'ya kadar HEPSİ: WIN_OK=0 C52_0=0x00000000 — hat ÖLÜ. Kırılma noktası R69→R70 ve R70 tam olarak TCM shared-word okumasını tanık döngüsünden ÖNCE ekleyen koşudur. R70'in kendi README'si olguyu görmüş ('çekirdek serbest bırakılınca TCM okuması da karardı') ama karartmanın ardından gelen her şeyi de karattığı fark edilmemiş.

Arıza backplane'e özgü değil, SD bağlantısının tamamı

Aynı koşuda WIFIWRITE ENTRY_SYNC=0: fonksiyon-0 CCCR okumasının sekiz denemesi de düştü. F0/CCCR okuması pencere ve backplane kullanmaz; bir pencere muhasebesi hatası onu bozamaz. Ayrıca kaynak iki katmanda da durumu yok sayıyor: backplane_read32_data pencere yazmasının ok bayrağını atıyor (let _ = set_backplane_window) ve cmd52_read_byte_data komut tamamlanmasa bile yanıt kaydını koşulsuz okuyor — birlikte bir 'sessiz sıfır' makinesi.

C17 ilk kez gerçek host durumunu gösterdi

HOST_TMO=0x00 — veri zaman aşımı sayacı EN KISA değerde. HOST_CLK=0x8007 (/256, iç saat + kararlı + SD saati açık), HOST_CTL1=0x02 (4-bit), HOST_BLK=0x0004, HOST_CTL2=0x0000. Bugüne kadar makbuzdaki host değerleri bring_up ÖNCESİ ölü durumdu.

Doğru çalışanlar

  • Firmware+NVRAM 32. kez PASS; CR4RAM birebir tekrarlandı (RAMSIZE=0x000c8000 MEASURED=1), yani R95 ölçümü kararlı.
  • C12 kapandı: bütçe geri alması uygulandı ve sonucu değiştirmediği ölçüldü.
  • Salt-okunur bir ayırt edici (C15), tek değişkenli bir koşuda arşivin yorumunu değiştirdi — R96 kusuru ÜRETMEDİ, İSİMLENDİRDİ.

imaj 226d3b018301764ec3a3f246806cdc968689dceb36da12322d9e2cae6ed5fd51
kanıt evidence/rpi5/radio/attempt-r96-cr4pre-budget-uart-capture/

R972026-09-09

Sorulan: Tanık okumaları sırasında SD hattı gerçekten canlı mı? MBOX=0 bir ölçüm mü, yoksa ölü bir hattın sessizliği mi?

Cevap: Hat CANLIYDI: MBOX=0 ve INTSTAT=0 ilk kez canlılık kontrolüyle ölçüldü. Bu, host-görünür sinyal gözlenmediğini gösterir; CR4'ün hiç komut yürütmediğini tek başına kanıtlamaz. R70–R96 tanıkları geçersiz kaldı ve ilerleyen PMU sayacı 'LPO ölü' yorumunu çürüttü.

NÖBETÇİ: hat tanık döngüsü boyunca canlıydı

SENT_N=100 SENT_OK=100 — yüz turun yüzünde ChipCommon ofset 0'dan beklenen 0x45 okundu. SENT_LAST_OK_MS=990 (1000 ms'lik pencerenin sonu), SENT_BAD_MS=4294967295 (u32::MAX = hiç bozulmadı), WIN_OK_END=1, WIN_W=WIN_R=0x18000000. Nöbetçi MBOX ile AYNI 32 KB pencerede ve aynı komut tipiyle okunuyor (0x18004000 & 0xffff8000 == 0x18000000), yani yan kanal değil eş-konumlu kontrol okuması.

Sonuç: canlı hatta host-görünür sinyal gözlenmedi

MBOX=0x00000000, INTSTAT=0x00000000, EXECUTED=0; nöbetçi 100/100. FENCE=0xdeadbeef beklenen sabitle uyumlu. HT_AVAIL ve SHARED_RAW ise TCM okumasından sonra gelen ölçüm sınırlarına tabidir; geçerli HT sonucu R98'in istek bloğunda alındı.

C13 ÇÖKTÜ: PMU sayacı aslında çalışıyormuş

PMU_TA=0x00776d9e → PMU_TB=0x007cdaaa: sayaç İLERLEDİ. Önceki 13 mühürlü koşuda PMU_TA=PMU_TB=0x00000000 görünüyordu ve kodun kendi yorumu 'sabit → LPO gerçekten ölü' diyordu. O sabitlik LPO'nun değil, ÖLÜ HATTIN eseriymiş. 'Donanım duvarı' yorumunun bu ayağı da düştü.

C33 mekanizması doğrulandı: TCM okumak hattı düşürüyor

PMU_TC=0x00000000 ve CHIPID2=0x00000000 — ikisi de TCM okumasından SONRA alınıyor ve ikisi de sıfır. SHARED_AFTER=1, SHARED_RAW=0x00000000, WIFISWEEP yine WIN_OK=0 C52_0=0x00000000. Yani 0x0025FFFC (CR4 TCM) okumak SDIO bağlantısını düşürüyor; R70 bu okumayı döngünün önüne koyarak R70–R96 arasındaki bütün tanıkları zehirlemiş.

Bir alanın sıfır olması okunduğu anlamına gelmez

F0_REV=0x00 F0_OK=0 bu koşuda ÖLÇÜM DEĞİLDİR: bu alanlar yalnızca nöbetçi ilk kez bozulduğunda doldurulur ve nöbetçi hiç bozulmadı, dolayısıyla Default sıfırları olarak basıldılar. Aynı tuzak arşivde daha önce de var (erken dönen fonksiyonların Default alanları).

Doğru çalışanlar

  • Firmware+NVRAM 33. kez PASS; NVRAM yine 0x0025f92c, FW_INTACT=1.
  • CR4RAM üçüncü kez birebir aynı: RAMSIZE=0x000c8000 MEASURED=1 — ölçüm kararlı.
  • Kanıt paketi TAM ve mühürlü; ekran da geldi (exact_screen0=1, TOUCHFRAME=15).

imaj 16f4a7566614ed34a510514ff5424c26384382cc3086fe2a4e4b82ac147efa2f
kanıt evidence/rpi5/radio/attempt-r97-witness-sentinel-uart-capture/

R982026-09-09

Sorulan: CR4 release sonrası FORCE_ALP bırakılıp HT istendiğinde yüksek hız saati geliyor mu?

Cevap: İstek latch etti, HT gelmedi. CHIPCLKCSR 0x40 → 0x50 oldu; 60 ms yoklama sonunda yine 0x50. C04'ün 'HT hiç istenmiyor' açıklaması tek başına elendi; PMU kaynak ailesi sıradaki ölçüm alanı.

İstek cihazda görüldü

HT_CLR_OK=1 HT_REQ_OK=1 HT_CSR_CLR=0x40 HT_CSR_REQ=0x50 HT_CSR_FIN=0x50 HT_REQ_MS=60 HT_REQ_AVAIL=0. FORCE_ALP temizlendi, ALP hazır kaldı ve HT_AVAIL_REQ biti okundu. R80 Linux izinde HT 24–31 ms'de geliyordu.

Hat canlı; host-görünür yürütme sinyali yok

FENCE=0xdeadbeef SENT_N=100 SENT_OK=100 SENT_LAST_OK_MS=990 SENT_BAD_MS=4294967295 WIN_OK_END=1. MBOX=0x00000000 INTSTAT=0x00000000 EXECUTED=0 STARTED=0. HT_AVAIL=0 alanı TCM okumasından sonra alındığı için saat sonucu HT_REQ_AVAIL ve HT_CSR_FIN üzerinden okunur.

PMU sayacı ilerledi; C09 yeniden önde

PMU_TA=0x00775ee2 → PMU_TB=0x007cc944; PMU_STAT=0x0000002a RES_ST=0x0fcaff77 RES_PEND=0x00000000. Bunlar istek sonrası tek görüntüdür; öncesi/sonrası karşılaştırması henüz yok. R84/R85/R86'da CTL_W=0 RELOAD=0 olduğu için RES_RELOAD elenmiş sayılamaz. PMU'nun kök neden olduğu henüz kanıtlanmadı.

Doğru çalışanlar

  • Firmware+NVRAM 34. PASS: ADDR=0x0025f92c FW_INTACT=1.
  • uart10.raw 30734 bayt; capture_transport=PASS, TOUCHREADY ve SHA-256 mühürleri doğrulandı.
  • Wi-Fi tarama veya bağlantı kanıtı yok; Bluetooth ANSWERED=0.

imaj 134c197de2846d381dbf80c055628138f85a889a761f7714703a29b7473c034a
kanıt evidence/rpi5/radio/attempt-r98-post-release-htclk-uart-capture/

R992026-09-09

Sorulan: HT isteği öncesi ve sonrası PMU kaynak görüntüleri değişiyor mu?

Cevap: İki geçerli PMU görüntüsü aynı kaldı; HT_REQ_AVAIL=0. PMU sayacı ilerledi, ancak kaynak ailesi kök neden olarak kanıtlanmadı.

PMU pencereleri geçerli ve eşit

PRE/POST WIN_OK=1 READ_OK=0x3f VALID=1, CHIP_B=CHIP_A=0x15264345. CTL=0x01770181, STAT=0x2a, RES_ST=0x0fcaff77, RES_PEND=0, MINRES=0x0fcaff77, MAXRES=0x0fcfff7f iki görüntüde de aynı.

HT hâlâ gelmedi

HT_CLR_OK=1 HT_REQ_OK=1 HT_CSR_CLR=0x40 HT_CSR_REQ=0x50 HT_CSR_FIN=0x50 HT_REQ_MS=60 HT_REQ_AVAIL=0. FENCE=0xdeadbeef, SENT_N=100, SENT_OK=100 ve WIN_OK_END=1 korundu.

Doğru çalışanlar

  • Firmware/NVRAM 35. arşivlenmiş PASS: 1191 sektör, WORDS_V=152448, FW_INTACT=1.
  • Mühürlü fiziksel UART paketi ve PMUHT geçerlilik makbuzları.
  • Wi-Fi taraması, SSID veya association yok.

imaj 66587e93977600e654c2b937d080fb3eb104965bb2c98fcfade03cbcd4a3c80b
kanıt evidence/rpi5/radio/attempt-r99-pmu-ht-snapshot-uart-capture/

R1002026-09-09

Sorulan: SDHCI clock register yazması bitişik TIMEOUT_CONTROL alanını bozuyor mu?

Cevap: u16 erişim HOST_TMO=0x0e değerini korudu; HT_REQ_AVAIL=0 kaldı. Bu bir radyo başarı sonucu değildir.

Clock/timeout kusuru ayrıldı

HOST_TMO=0x0e, HOST_CLK=0x8007, HOST_CTL1=0x02 ve POLLS=50000. R99/R98'deki HOST_TMO=0x00 yerine timeout korunmuş oldu.

Radyo hâlâ hazır değil

HT_CLR_OK=1 HT_REQ_OK=1 HT_CSR_CLR=0x40 HT_CSR_REQ=0x50 HT_CSR_FIN=0x50 HT_REQ_MS=60 HT_REQ_AVAIL=0; MBOX=0 INTSTAT=0 EXECUTED=0.

Doğru çalışanlar

  • Firmware/NVRAM tamamlandı: 1191/1191 sektör, 152448 doğrulanmış kelime, OK=1.
  • Clock register genişliği değişikliği fiziksel olarak doğrulandı.
  • FullMAC kontrol cevabı, tarama veya BSS yok.

imaj 194c569b0496008cda4e878230cefca9a742b794546b3eb5b88f9f89cddf62c6
kanıt evidence/rpi5/radio/attempt-r100-clock-register-width-uart-capture/

R1012026-09-09

Sorulan: İlk D11 wrapper CMD53 yazması cihazda gerçekten issue ediliyor mu?

Cevap: İlk D11 yazması DAT inhibit nedeniyle issue edilmedi; işlem tamamlanmadan durdu. Wi-Fi yolu bu koşuda başlamadı.

Transport kapısı yazmayı engelledi

CR4CTRL PHASE=D11 ABORTED=1 REASON=TRANSPORT, ADDR=0x18101408, WRITE=1, VALUE=0x0000000f, ISSUED=0, COMPLETE=0, BUSY=1.

HT sonucu ölçülmedi

HT_ATTEMPTED=0; PMUHT, witness ve geç dönem host okumaları uygulanmadı. DAT[3:0] seviyesi 7 ve DAT_INHIBIT, yalnız DAT0 yüksek olmasının yeterli olmadığını gösterdi.

Doğru çalışanlar

  • Firmware/NVRAM 1191/1191 ve 152448 doğrulanmış kelimeyle tamamlandı.
  • D11 stop noktası ve issue edilmemiş CMD53 ayrımı mühürlü makbuzda var.
  • Tarama, kontrol cevabı veya ağ listesi yok.

imaj ec88daa88871fe689513ee230e0666e991779a548ec0571eb4173184963893b7
kanıt evidence/rpi5/radio/attempt-r101-single-word-control-uart-capture/

R1022026-09-10

Sorulan: Host DATA kurtarma ve wrapper tamamlanınca HT ile FullMAC başlatılabiliyor mu?

Cevap: Host DATA reseti ve wrapper tamamlandı, HT_REQ_AVAIL=1 görüldü; ilk TOSB_DATA yazmasında response ownership kusuru nedeniyle başlatma durdu.

Host ve CR4 kapıları geçti

CR4HOSTDATA MEASURED=1 APPLIED=1 CLEARED=1 READY=1; CR4CTRL COMPLETE=1, OPS=18, R5=0x10 ERR=0; HT_CSR_FIN=0xd0 ve HT_REQ_AVAIL=1.

Dış reddetme sonraki CMD53 yanıtından geldi

İç CMD53 temiz tamamlandı: ISSUED=1, command/buffer/transfer complete, BYTES=4, R5=0x10, ERR=0. Sonraki settle CMD52'sinin 0x9043 yanıtı önceki yazmaya mal edildi; gerçek kontrol cevabı gözlenmedi.

Doğru çalışanlar

  • Firmware/NVRAM ve host DATA kurtarma mühürlü pakette doğrulandı.
  • HT_REQ_AVAIL=1 ve runtime başlangıç sınırına kadar ilerleme görüldü.
  • SSID, BSS, association veya Internet erişimi yok.

imaj b79befa75e24bfad32352733aaf3dd9318e943b8f3a0c406a3c84493d92263d0
kanıt evidence/rpi5/radio/attempt-r102-host-data-scan-uart-capture/

R1032026-09-10

Sorulan: CMD53 sonucunu kendi işleminin makbuzuyla taşıyınca runtime parser sınırı geçiliyor mu?

Cevap: Runtime STARTED=1 oldu; ardından Session(Wire(Truncated)) ile durdu. Kontrol cevabı ya da BSS gözlenmedi.

Önceki INIT_ERROR sınırı geçildi

Host DATA kurtarma, 18 wrapper işlemi, HT_REQ_AVAIL=1 ve WIFIPROTO STARTED=1 aynı koşuda görüldü.

Eksik çerçeve içeriği bilinmiyor

WIFISCAN_RESULT STATUS=ERROR ERROR=Session(Wire(Truncated)). R103 hata yolunda WIFIRX yazmadığı için olay zarfının boş mu, kısa mı olduğu bu kayıttan çıkarılamaz.

Doğru çalışanlar

  • Firmware/NVRAM 1191/1191, 152448 kelime ve FW_INTACT=1.
  • PMUHT PRE/POST geçerli; HT_REQ_AVAIL=1.
  • READY=1, kontrol cevabı, tarama veya ağ listesi yok.

imaj 01243db4a02ccf4c356ce46687ba9fdbd64eecc4543d65c4777a55e79d1aba17
kanıt evidence/rpi5/radio/attempt-r103-owned-transfer-response-uart-capture/

R1042026-09-10

Sorulan: Boş Event/Data zarfları güvenli biçimde tüketilip kontrol isteği ilerliyor mu?

Cevap: İki header-only Event/Data zarfı doğrulandı; kontrol isteği gönderildi ama cevap gelmedi ve ControlTimeout oluştu.

R103 parser sınırı ayrıştırıldı

WIFIPROTO STARTED=1 READY=0; iki WIFIRX kaydı LEN=12, DOFF=12, EMPTY=1, SEQ=0/1, TXWIN=21 olarak basıldı.

Kontrol cevabı hâlâ yok

WIFICTRLTX FRAMELEN=48 XFER=48 BCDCLEN=20 öncesinde controls_sent=1; WIFIFAIL sonrası controls_replied=0 ve ControlTimeout görüldü.

Doğru çalışanlar

  • Firmware/NVRAM, host DATA, wrapper ve HT kapıları tamamlandı.
  • Boş zarf tanısı gerçek UART akışında görüldü.
  • Raw UART, capture.log, kaynak yamaları ve README EVIDENCE_SHA256SUMS ile mühürlendi; bu fiziksel sonuç yine de radyo başarı sonucu değildir.

imaj 510333c7f0c71cb0ed06e79bf4456a0dba1bbff4314f91d552f83e9ec568ad00
kanıt evidence/rpi5/radio/attempt-r104-empty-event-data-uart-capture/

R1052026-09-10

Sorulan: BCDC GET_VAR isteğinde veri uzunluğu isim ve kapasiteyi birlikte taşıyor mu?

Cevap: Evet. 48 bayt çerçeve ve BCDC len=20 fiziksel olarak gönderildi; iki boş RX zarfından sonra kontrol cevabı gelmedi.

R105 değişikliği fiziksel olarak görüldü

WIFICTRLTX FRAMELEN=48 XFER=48 BCDCLEN=20 SEQ=255 TXWIN=21 SENT=1 REPLIED=0. BCDC arithmetic hipotezi bu ölçümle kapandı.

Sınır RX/control transport tarafında

WIFIPROTO STARTED=1 READY=0; iki WIFIRX LEN=12 DOFF=12 EMPTY=1 sonrası WIFIFAIL frames_received=2, header_only_frames=2, controls_sent=1, controls_replied=0 ve ControlTimeout.

Doğru çalışanlar

  • FWSTAGE 1191/1191, WORDS_V=152448, NVRAM VERIFIED=437, FW_INTACT=1.
  • CR4HOSTDATA READY=1, CR4CTRL COMPLETE=1, HT_REQ_AVAIL=1.
  • Mühürlü tekrar-03 UART paketi; radyo başarı sonucu, READY=1 veya SSID yok.

imaj f0d8f63bfa7a6e8e631a43adf17fe85568b024946e05a7e6c0793ae18d6e0691
kanıt evidence/rpi5/radio/attempt-r105-bcdc-reply-capacity-uart-capture-repeat-03/

R1062026-09-11

Sorulan: R105'in değişmez 48/20 BCDC isteği sonrası RX başlığı/payload ve kontrol cevabı sahipliği görünür kılındığında gerçek durma sınırı nerede?

Cevap: İki header-only RX frame ham başlıklarıyla doğrulandı; kontrol cevabı gelmeden host Read32(INTSTATUS) SDIO transfer hatasıyla durdu.

RX transport fiziksel olarak görünür

WIFIRX/WIFIRX_RAW iki frame için LEN=12, HEADER_LEN=12, PAYLOAD_LEN=0, SEQ=0/1, RX_NEXT=1/2, TXWIN=21 ve CTRL_PENDING=1 gösterdi.

BCDC isteği korunuyor, cevap yok

WIFICTRLTX FRAMELEN=48 XFER=48 BCDCLEN=20 olarak gönderildi; WIFICTRLSTATE SENT=1 REPLIED=0 kaldı ve timeout nedeni core+INTSTATUS Read32 SDIO Transfer/R5 hatası oldu.

Doğru çalışanlar

  • FWSTAGE 1191/1191, WORDS_V=152448, NVRAM VERIFIED=437, FW_INTACT=1.
  • CR4HOSTDATA READY=1, WIFIPROTO STARTED=1; iki RX header-only frame ve ham header hex'i gerçek UART akışında görüldü.
  • Raw UART, capture.log, kaynak tanısı, README ve EVIDENCE_SHA256SUMS ile mühürlendi; bu sonuç Wi-Fi başarı sonucu değildir.

imaj eedf04afb5d48b7b66e9ade7a575da66d02deadf763d67af3bce86c09f208c1a
kanıt evidence/rpi5/radio/attempt-r106-rx-header-control-ownership-uart-capture/

R1072026-09-11

Sorulan: R107 imajı Pi 5'e takılı ve güç verilmişken fiziksel açılış ile INTSTATUS Read32 makbuzu birlikte kanıtlanıyor mu?

Cevap: Fiziksel açılış kanıtlandı: firmware/NVRAM/CR4 hazırlığı geçti, iki header-only RX frame görüldü ve koşu ControlTimeout ile sonlandı. Hedef Read32 makbuzu oluşmadı.

Kart + güç + boot kanıtı artık ayrı mühürlü

UART akışı FWSTAGE'den başlayarak WIFISCAN_RESULT terminal satırına kadar gözlendi. Bu, kartın Pi'de takılı ve R107 imajının gerçekten çalışır durumda olduğuna dair fiziksel koşu kanıtıdır; güç geçişinin kendisi capture öncesinde gerçekleştiği için yalnızca UART'ın gördüğü boot sınırı iddia edilir.

Read32 hedefi hâlâ açık

WIFIPROTO STARTED=1 READY=0, WIFIRX SEQ=0/1 header-only, WIFICTRLSTATE SENT=1 REPLIED=0 ve WIFISCAN_RESULT STATUS=ERROR ControlTimeout görüldü. WIFIREAD satırı oluşmadı; R107 Read32 sahipliği PASS sayılmaz.

Doğru çalışanlar

  • FWSTAGE SECTORS_DONE=1191, WORDS_V=152448, OK=1.
  • NVRAM TOKEN_OK=1, VERIFIED=437, OK=1, FW_INTACT=1; CR4HOSTDATA READY=1.
  • WIFIRX ham header ve capture.log, README, EVIDENCE_SHA256SUMS ile mühürlendi.

imaj 149e234c466938fb3822b3804b66812550553f6bca7c59cd2ab9cb3df05fa88e
kanıt evidence/rpi5/radio/attempt-r107-live-attach-after-power-uart-capture/

R1082026-09-11

Sorulan: UART güç döngüsünden önce arm edilirse F1 INTSTATUS Read32 CMD53 issue/complete/R5/error sınırı aynı boot kaydında görülebilir mi?

Cevap: Firmware, NVRAM, host-data ve iki RX header geçti; ilk F1 Read32 aktarımı timeout'a ulaşmadan data-CRC/transfer hatasıyla düştü.

İlk F1 aktarım sınırı ölçüldü

WIFIREAD OP=Read32 FUNCTION=1 ADDRESS=0x18004020, STATUS=0x00208001, R5_FLAGS=0x10, ERROR_STATUS=0x0020, ISSUED=1 fakat COMMAND_COMPLETE=0, BUFFER_READY=0, TRANSFER_COMPLETE=0 ve BYTES_READ=0 görüldü.

Timeout snapshot'ı bilinçli olarak yok

WIFICTRLWAIT CAPTURED=0 kaldı; hata control timeout öncesinde gerçekleştiği için timeout makbuzu uydurulmadı. Bu sonuç Wi-Fi PASS değildir.

Doğru çalışanlar

  • FWSTAGE 1191/1191, NVRAM VERIFIED=437 ve CR4HOSTDATA READY=1.
  • İki header-only RX frame ve BCDC 48/20 gönderimi sonraki F1 hatasından önce görüldü.

imaj 3547c2c8f5271a12b7503362280a79e7b6d571518f5b26d046cb93ada944383b
kanıt evidence/rpi5/radio/attempt-r108-read32-transfer-error-uart-capture/

R1092026-09-11

Sorulan: R108'de ölçülen F1 data-CRC sonucu birleşik CRC/end-bit maskesiyle güvenli CMD52×4 fallback'e ayrılabilir mi?

Cevap: Hayır; gerçek hata ERROR_STATUS=0x0060 olarak geldi ve R109'un tam-eşitlik kapısı fallback'i açmadı. F1 sınırı daha geniş maskeyle ölçülmesi gereken ayrı bir transport dalı oldu.

Birleşik hata fiziksel olarak tekrarlandı

FWSTAGE/NVRAM/CR4HOSTDATA geçti; iki header-only frame alındı. F1 Read32 `ERROR_STATUS=0x0060`, R5=0x10, COMMAND_COMPLETE=0 ve TRANSFER_COMPLETE=0 ile düştü.

Fallback bilinçli olarak uygulanmadı

R109 yalnız exact DATA_CRC=0x0020 eşitliğini kabul etti; 0x0060 başka bir SDHCI sınıfı gibi muamele gördü. Bu koşu Wi-Fi veya CR4 PASS değildir.

Doğru çalışanlar

  • İmaj SHA ve ham UART SHA README/EVIDENCE_SHA256SUMS ile eşleştirildi.
  • R109 sonucu R110 CRC-bit-mask adayını doğrudan ölçülebilir hâle getirdi.

imaj f07d31239c57ed7dab35e4847d7e81dffec17f9edaa1644e490e00d57880a7f3
kanıt evidence/rpi5/radio/attempt-r109-data-crc-endbit-uart-capture/

R1102026-09-11

Sorulan: R109'un birleşik DATA_CRC bit-mask fallback'i fiziksel koşuda F1 sınırını geçip D11 kontrol yoluna ulaştırıyor mu?

Cevap: Bu koşuda fallback'e ulaşılmadı; ilk D11 CMD53 kontrol yazması DATA_TIMEOUT=0x0010 ile abort oldu ve CORE_READY=0 kaldı.

D11, F1 fallback'inden önce ayrı bir transport dalı açtı

CR4CTRL PHASE=D11 ABORTED=1 REASON=TRANSPORT OPS=1 ISSUED=1 CMD=1 BUF=1 XFER=1 BYTES=4 R5=0x10 ERR=0x0010 görüldü.

Hata sınıfları karıştırılmadı

R109 F1 data-CRC/end-bit sonucu ile R110 D11 data-timeout sonucu ayrı tutuldu; R110 Read32 CMD52×4 fallback'i bu boot'ta denenmedi.

Doğru çalışanlar

  • Firmware/NVRAM/CR4HOSTDATA hazırlığı geçti; terminal sonuç STATUS=UNAVAILABLE CORE_READY=0 CLM_LOADED=1.
  • D11 retry ihtiyacı R111 için tek ölçülmüş değişken olarak sınırlandı.

imaj d32d5b520157b76f04f0ef33226f1e300dcd4ddf52705b9f24ef63a5992a8952
kanıt evidence/rpi5/radio/attempt-r110-cr4-d11-transport-uart-capture/

R1112026-09-11

Sorulan: Ölçülen D11 timeout dalına tek bounded retry uygulanınca ilk SDPCM control-response sınırı nerede kalıyor?

Cevap: D11 kontrolü temiz geçti; iki header-only RX frame ve 48/20 BCDC isteği görüldü, fakat eşleşen control reply gelmeden timeout oluştu.

D11 ve ilk SDPCM RX yolu geçti

CR4CTRL COMPLETE=1/ERR=0x0000, D11_RETRY_ATTEMPTED=0, WIFIPROTO STARTED=1 READY=0, SEQ=0/1, TXWIN=21 ve payload=0 görüldü.

İlk BCDC cevabı yok

FRAMELEN=48, XFER=48, BCDCLEN=20 gönderildi; REPLIED=0 ve READ_FAILURES=0 kaldı. Timeout snapshot'ında INTSTATUS=0 idi.

Doğru çalışanlar

  • Firmware/NVRAM/CR4HOSTDATA/D11 transport ve iki RX header mühürlü fiziksel kayıtta doğrulandı.
  • D11 retry dalı bu boot'ta tetiklenmedi; sonuç Wi-Fi PASS değildir.

imaj ba2fb47ee74f0f6f68ab64dff89f303d88459a026feccdc25ed4b3f800e19199
kanıt evidence/rpi5/radio/attempt-r111-sdpcm-control-timeout-uart-capture/

R1122026-09-11

Sorulan: Bekleyen SDPCM FIFO frame'leri yeni init/scan/abort kontrolünden önce tüketilirse ilk BCDC timeout'u çözülüyor mu?

Cevap: Bu koşuda FIFO-drain hipotezi ölçülemedi; D11 geçtikten sonraki CR4 activation yazması data-CRC=0x0020 ile düştü ve SDPCM oturumu başlamadı.

CR4 activation transport varyansı ölçüldü

FWSTAGE, NVRAM ve CR4HOSTDATA geçti; D11_RESET=1/D11_IOCTL=0x00000007 sonrasında CR4CTRL PHASE=CR4, OPS=17, ADDR=0x18102408 yazısı R5=0x10/ERR=0x0020 ile abort oldu.

FIFO sırası hakkında sonuç çıkarılmadı

WIFIPROTO veya control-response ordering sonucu oluşmadı. D11_RETRY_ATTEMPTED=0, hatanın D11-only retry sınırından sonra oluşmasıyla uyumludur; R112 FIFO değişikliğini PASS/FAIL olarak etiketlemez.

Doğru çalışanlar

  • R112 imajı, DTB'si, profili ve ham UART SHA'ları kanıt paketinde sabitlendi.
  • Sonuç Wi-Fi PASS veya FIFO-drain hipotezinin kapanışı değildir.

imaj f40aab719df8d91e06c604fab6fa16a47ccb011be8fc266a6734d34f6de0a2d7
kanıt evidence/rpi5/radio/attempt-r112-sdpcm-fifo-drain-uart-capture/

R1132026-09-12

Sorulan: R112 FIFO-drain değişikliği korunurken bounded ilk-D11 retry ve ilk BCDC kontrol alımı temiz açılışta birlikte ölçülebiliyor mu?

Cevap: Firmware, NVRAM, host-data ve D11 kontrol yazması geçti; ancak CR4START makbuzu STARTED=0/OK=0 kaldı. İki header-only RX frame ve doğru 48/20 BCDC isteği görüldü, kontrol cevabı gelmeden ControlTimeout oluştu. D11 retry dalı bu koşuda tetiklenmedi.

Host-data ve D11 transport makbuzları temiz

FWSTAGE 1191/1191, NVRAM VERIFIED=437, CR4HOSTDATA READY=1 ve CR4CTRL COMPLETE=1/R5=0x10/ERR=0x0000 görüldü. D11_RETRY_ATTEMPTED=0 olduğu için R113, retry başarısını değil temiz birincil D11 geçişini kanıtlar.

CR4 yürütme ve ilk kontrol cevabı hâlâ kanıtlanmadı

CR4START STARTED=0/OK=0 kaldı. WIFIPROTO STARTED=1 READY=0 sonrasında SEQ=0/1, LEN=12, DOFF=12, EMPTY=1, TXWIN=21 iki RX frame alındı; ilk BCDC GET_VAR isteği FRAMELEN=48/XFER=48/BCDCLEN=20 olarak gönderildi ama REPLIED=0 kaldı.

R114'ün ölçmesi gereken dar sınır

WIFICTRLWAIT CAPTURED=1, INTSTATUS=Some(0) ve READ_FAILURES=0 ile terminal hata ControlTimeout oldu. Bu, firmware yüklemesini ya da BCDC uzunluğunu yeniden değiştirmek yerine ilk control-response receive/interrupt sahipliğinin ayrıştırılmasını gerektirir.

Doğru çalışanlar

  • R113 imajı Pi 5 üzerinde fiziksel olarak açıldı; FWSTAGE, NVRAM, CR4HOSTDATA ve CR4CTRL mühürlü makbuzları geçti.
  • R113 ham UART SHA-256: 45f52103b3a9f89928828cc673fe87d9a14c526258d689df7ad987ef79c1e627; kanıt paketi EVIDENCE_SHA256SUMS ile mühürlü.
  • D11 retry koşulu çalıştırılmadı; bu kayıt Wi-Fi PASS, CR4 yürütme, READY=1, BSS, association veya DHCP kanıtı değildir.

imaj 77eec6d48b1ff00486e330ad750bf5aca1a44ec05ccea0ef74754d1f6b3969db
kanıt evidence/rpi5/radio/attempt-r113-d11-crc-retry-uart-capture/

R1142026-09-12

Sorulan: İlk BCDC control-response bekleyişinde exact TX, interrupt geçmişi ve FIFO/host sahipliği aynı request ID ile ayrılabilir mi?

Cevap: Exact 48-byte ID=1 isteği doğrulandı; ancak koşu ControlTimeout'a ulaşmadı. F1 INTSTATUS CMD53 ERROR_STATUS=0x0060 sonrası CMD52×4 fallback sıfır döndürdü, sonraki SBADDR_LOW erişimi DAT_INHIBIT nedeniyle issue edilmeden durdu.

İlk kontrol TX'i byte-for-byte doğrulandı

WIFICTRLTX_RAW COMMAND=262 REQUEST_ID=1 INTERFACE=0 SET=0 LOGGED=48 kaydı, FRAMELEN=48/XFER=48/BCDCLEN=20 isteğini exact hex ile sabitledi. İki SEQ=0/1 header-only Event yine istekten önce tüketildi.

Fallback host-data durumunu temizlemeden başarı döndürdü

WIFIREAD_FALLBACK ADDRESS=0x18004020, ERROR_STATUS=0x0060, PRESENT_STATE=0x01ff0206, RESULT=PASS, VALUE=0 sonrasında F1 0x1000a SBADDR_LOW Write8 işlemi reason=Inhibit ile ve issued=false durumda kesildi.

Control-response sahipliği bu koşuda ölçülmedi

WIFICTRLWAIT CAPTURED=0, IEN/INT_PENDING/WFRAMEBC/RFRAMEBC=None ve CTRL_SEEN=0 kaldı; terminal sonuç ControlTimeout değil pre-deadline transport I/O hatasıdır. Birikimli CORE_OR sayaçları startup trafiğini de içerir.

Doğru çalışanlar

  • Firmware/NVRAM/CR4HOSTDATA ve CR4CTRL tamamlandı; D11 retry kullanılmadı.
  • R114 imajı kart üzerinde doğrulandı, UART güçten önce arm edildi ve 42.423 baytlık raw kayıt terminal marker + 60 saniye grace ile 0444 kapandı.
  • Bu kayıt Wi-Fi PASS, kontrol cevabı, READY=1, scan, association veya DHCP kanıtı değildir.

imaj d82ce641084d0c893a65be5ccb0b2eafdfa676bcd8b10111ce5db5cfc54848f5
kanıt evidence/rpi5/radio/attempt-r114-first-control-interrupt-ownership-uart-capture/

R1152026-09-12

Sorulan: R114'ün fallback false-success dalı host idle ile kapılanır ve timeout dışı pending hata makbuzu korunursa fiziksel sınır nereye taşınır?

Cevap: R115 kapıları doğru çalıştı, fakat Wi-Fi hazır olmadı. F1 INTSTATUS CMD53 saf DATA_CRC=0x0020 aldı; CMD52×4 VALUE=0 üretmesine rağmen host veri motoru 100.000 pasif kontrolde idle olmadı ve primary Read32 hatası korundu.

Fallback değeri artık host sağlığı olmadan kabul edilmiyor

WIFIREAD_FALLBACK RESULT=PASS VALUE=0 yanında HOST_IDLE=0, PSTATE_B=0x01ff0206, PSTATE_A=0x017f0206, POLLS=100000 ve DAT0=1 ölçüldü. R114'teki SBADDR_LOW Write8 bu koşuda hiç denenmedi.

Pending terminal sahipliği timeout olmadan yakalandı

WIFICTRLWAIT CAPTURED=1 PENDING_BEFORE=1 AGE_MS=994 oldu. F1 tanı okumaları düşse de host PRESENT_STATE=0x017f0206, INT_STATUS=0x00000101 ve HOST_CARD_INT=true alanları korundu.

Sayaçlar yalnız request ID 1 sonrasını gösteriyor

CORE_OR, FRAME_IND_SEEN, HOST_INT_SEEN, FIFO_READS, CTRL_SEEN ve CTRL_UNMATCHED sıfır kaldı; iki startup Event frame ve protocol mailbox artık pending control cevabına mal edilmedi.

Doğru çalışanlar

  • Firmware/NVRAM, CR4HOSTDATA ve CR4CTRL geçti; D11 retry kullanılmadı.
  • İki header-only Event ve exact 48-byte cur_etheraddr isteği yeniden doğrulandı.
  • 41.454 baytlık raw UART 0444 kapandı ve SHA-256 5067accce31f265bf635fc225b02f1b8a791db2deab7523e71332ecbaba31622 ile mühürlendi.
  • Bu kayıt tanı PASS'idir; control reply, READY=1, scan, association, DHCP veya Internet kanıtı değildir.

imaj 7f7ca549198b87c4308833331a8cd2270f4a3313c2c43b131f4efd574ba4b770
kanıt evidence/rpi5/radio/attempt-r115-f1-fallback-host-idle-uart-capture/

R1162026-09-12

Sorulan: R115'in 100.000 pasif kontrolde temizlenmeyen host veri motoru, tek ve bir kez sahiplenilen host-only SDHCI DATA reset ile açılır mı; açılırsa Wi-Fi hazır olur mu?

Cevap: Reset dalı tam tasarlandığı gibi çalıştı ve tıkanan tarafın HOST olduğunu ölçtü: DAT_INHIBIT 2 yoklama / 10 µs içinde temizlendi. Wi-Fi yine hazır olmadı; aynı registerın bir sonraki CMD53'ü saf DATA_CRC yerine DATA_CRC+DATA_END_BIT=0x0060 aldı ve orijinal hata korundu.

Tıkanan taraf ölçüldü: host SDHCI veri motoru

WIFIREAD_RECOVERY ELIGIBLE=1 APPLIED=1 RESET_FIRST=0x04 RESET_A=0x00 RESET_POLLS=2 ELAPSED_US=10; PSTATE 0x017f0206 → 0x017f0000, HOST_IDLE=1, CONFIG_SAME=1, POST_MATCH=1, ACCEPTED=1. Saat, timeout, host-control, güç, blok ve control2 registerları değişmedi.

Bir kez kullanım disiplini tuttu

İkinci olayda USED_BEFORE=1 ELIGIBLE=0 APPLIED=0 ACCEPTED=0 oldu; ikinci reset denenmedi, CMD53 hiç tekrarlanmadı ve primary Read32 hatası korundu.

Firmware çalışıyor ve konuşuyor; arıza taşındı

Arıza makbuzunda clock=0xd0 (HT_AVAIL|ALP_AVAIL), io_ready=6 (F1+F2 hazır), mailbox=0x00040002 (DEVREADY, sürüm alanı 0x04), iki header-only Event ve TXWIN=21 var. Kurtarma bir CMD53 denemesi kazandırdı: PENDING_POLLS 56 → 121, AGE_MS 994 → 2183; sonraki hata 0x0020 yerine 0x0060 oldu.

Doğru çalışanlar

  • Firmware/NVRAM (SECTORS_DONE=1191/1191, BYTES=609792, RETRIES=0), CR4HOSTDATA ve CR4CTRL geçti; D11 retry kullanılmadı.
  • İki header-only Event ve exact 48/20 cur_etheraddr isteği yeniden doğrulandı.
  • 46.667 baytlık raw UART 0444 kapandı ve SHA-256 63000c7a267dc29b2f7fda2e690f0c19f0baff2c063e3ada5001e45c7b995f8e ile mühürlendi; USB-UART descriptor bu koşuda hiç sıfırlanmadı (reconnect_attempts=1).
  • 60 saniyelik grace penceresinde yalnız ekran/dokunma trafiği var: tekrar tarama, BSS veya kurtarma yok.
  • Bu kayıt tanı PASS'idir; control reply, READY=1, scan, association, DHCP veya Internet kanıtı değildir.

imaj 39e7de9d92563b5efd2a9f124a60ef4cb025683d27b5954b4553793ae13e45d6
kanıt evidence/rpi5/radio/attempt-r116-sdhci-data-reset-uart-capture/

R1172026-09-12

Sorulan: 0x18004020 CMD53 okumasını kıran değişken veriyolu durumu mu, transfer modu mu, yoksa adres mi?

Cevap: Adres. Kırılan işlemin tam şekli — bayraklı 4 baytlık byte-mode CMD53 — aynı pencerede, mikrosaniyeler sonra ChipCommon'da kusursuz çalıştı; CMD52×4 ve tek-blok 64 baytlık CMD53 de çalıştı, üçü de 0x15264345 döndürdü. VERDICT=ADDRESS_SPECIFIC. Aynı koşuda taşıma sona kadar ayakta kaldı ve terminal hata BusError'dan gerçek ControlTimeout'a döndü. Wi-Fi yine hazır olmadı.

Veriyolu durumu ve transfer modu elendi

WIFIREAD_MATRIX CMD52_OK=1 BYTE_OK=1 BLOCK_OK=1, üçünde de V=0x15264345 ve M=1, ERR=0x0000; her probun öncesinde ve sonrasında PRESENT_STATE=0x01ff0000, TAIL_IDLE=1 TAIL_POLLS=0. Pencere yazılmadı (WINDOW_W=WINDOW_R=0x18000000), kırılan register CMD53 ile bir daha okunmadı.

İlk kez okunabilen firmware durumu

READ_FAILURES=0 (R115/R116'da 13'tü): CLOCK=0xd2 (HT hazır), SLEEP=0x03 (KSO+DEVON), IO_READY=0x06 ve F2_ENABLED=0x06, MAILBOX=0x00040002 (DEVREADY, sürüm alanı 4), INTSTATUS=0, IEN=0, INT_PENDING=0, FRAMECTRL/WFRAMEBC/RFRAMEBC=0.

Arıza sınıfı değişti: taşıma değil, cevapsızlık

Host doğru 48/20 cur_etheraddr isteğini gönderdi, 136 yoklama boyunca tam 2500 ms bekledi ve veriyolu sonuna kadar boş kaldı (PRESENT_STATE=0x01ff0000). Terminal hata Session(Transport(ControlTimeout)) oldu; hiçbir CMD53/CMD52 okuması düşmedi.

Doğru çalışanlar

  • Firmware/NVRAM (1191/1191 sektör, 609.792 bayt, RETRIES=0), CR4HOSTDATA, CR4CTRL ve R116 kurtarması (RESET_POLLS=2, ELAPSED_US=10, ACCEPTED=1) yeniden geçti.
  • İki header-only Event ve exact 48/20 cur_etheraddr isteği yeniden doğrulandı.
  • 41.353 baytlık raw UART 0444 kapandı ve SHA-256 68f243e5c4d7292c339da4e4da3b309faf092590ccd89a9d4c91dee5dafb07b3 ile mühürlendi; descriptor sıfırlanmadı (reconnect_attempts=1).
  • Üç probun taşımanın ayakta kalmasına katkısı mı, yoksa koşudan koşuya değişkenlik mi olduğu tek kayıttan ayrılamaz.
  • Bu kayıt tanı PASS'idir; control reply, READY=1, scan, association, DHCP veya Internet kanıtı değildir.

imaj e4e1583dcc9cb21d782d563e00dd05d0267a4b98f5982475df0572ac089dc5f0
kanıt evidence/rpi5/radio/attempt-r117-failure-moment-read-matrix-uart-capture/

R1182026-09-12

Sorulan: Sürücünün 136 kez yokladığı INTSTATUS=0 değeri gerçek register mı, yoksa 4-baytlık erişim bayrağı olmayan yolun ürettiği bir yanılsama mı?

Cevap: Cevap alınamadı. Bu boot'ta ilk veri hatası saf 0x0020 değil 0x0060 geldi; R116 kurtarma kapısı saf DATA_CRC istediği için uygun değildi, host 100.000 pasif kontrolde idle olmadı ve hem R117 matrisi hem R118 prob çifti takılı bir host'u ölçmeyi reddetti. VERDICT=INCOMPLETE. Veri üretilmedi, ama yanlış veri de üretilmedi.

Zincir fail-closed davrandı

WIFIREAD_RECOVERY ELIGIBLE=0 APPLIED=0; WIFIREAD_MATRIX CMD52_SKIP=1 ve tüm problar A=0; WIFICORE_ACCESS INT_SKIP=1, INT_PLAIN=None, MBOX_PLAIN=None. TAIL_IDLE=0, TAIL_POLLS=100000, TAIL_PSTATE=0x017f0206.

İlk hata sınıfı koşudan koşuya değişiyor

R115/R116/R117'de ilk hata 0x0020 ve SDHCI STATUS kart-kesme bitini taşıyordu (0x00208101); R118'de 0x0060 ve o bit yok (0x00608001). Hangi dala düşüldüğü deterministik değil.

R117'nin hükmü bu yüzden nitelenmeli

ADDRESS_SPECIFIC, kurtarılabilir dala düşmüş tek bir boot'un doğru ölçümüdür; henüz tekrarlanmış bir sonuç değildir.

Doğru çalışanlar

  • Firmware/NVRAM (1191/1191, 609.792 bayt, RETRIES=0), CR4HOSTDATA ve CR4START yeniden geçti.
  • İki header-only Event ve exact 48/20 cur_etheraddr isteği yeniden doğrulandı; READ_FAILURES=13, PENDING_POLLS=65, AGE_MS=1150.
  • 44.837 baytlık raw UART 0444 kapandı ve SHA-256 c9fb76f1c131cb1d870bfc455e865012692f167480f6afd18eee9031e23b26e9 ile mühürlendi.
  • VERDICT=INCOMPLETE, bayraklı/bayraksız hipotezi hakkında ne lehte ne aleyhte kanıttır; karşılaştırma hiç çalışmadı.
  • Bu kayıt tanı kaydıdır; control reply, READY=1, scan, association, DHCP veya Internet kanıtı değildir.

imaj db5809cb08acd6244b589c0e951d7c67e9eb561f38f96672cbe75bc89026d4ef
kanıt evidence/rpi5/radio/attempt-r118-flagged-vs-plain-backplane-read-uart-capture/

R1192026-09-12

Sorulan: Sahiplenilmiş DATA reset kapısı veri-hatası sınıfının tamamına açılınca, ölçüm artık boot'un hangi dala düştüğüne bağlı kalmayacak mı?

Cevap: Bu koşuda kapı hiç sınanmadı: veri hatası olmadı. Kayıtta tek bir WIFIREAD/FALLBACK/RECOVERY/MATRIX/CORE_ACCESS satırı yok — 0x18004020 CMD53 okuması bu boot'ta hiç kırılmadı. Buna karşılık koşu daha değerli bir şey verdi: taşıma sona kadar kusursuz kaldı, hiçbir okuma düşmedi ve firmware yine cevap vermedi. R117'den sonra ikinci temiz-taşıma ControlTimeout'u.

Taşıma arızası aralıklı: belirti, kök neden değil

Beş koşu, beş farklı taşıma davranışı: R115/R116/R117 ilk hata 0x0020, R118 0x0060, R119 hiç hata yok. 0x18004020 her zaman okunamaz değil; R117'nin ADDRESS_SPECIFIC hükmü o boot'un doğru ölçümüydü, adresin özelliği değil.

Tam süre, tamamen boş veri yolunda beklendi

READ_FAILURES=0, PENDING_POLLS=144, AGE_MS=2500, PRESENT_STATE=0x01ff0000. CLOCK=0xd2, SLEEP=0x03, IO_READY=0x06, F2_ENABLED=0x06, MAILBOX=0x00040002, INTSTATUS=0, IEN=0, INT_PENDING=0, FRAME_IND_SEEN=0, RFRAMEBC=0.

seq=255 kontrol edildi: hata değil

Gönderilen SDPCM başlığı seq=0xff taşıyor. brcmf_sdio.rs tx_sequence'i kasıtlı 255'e ilklendiriyor ve kredi hesabı sarmalı: tx_window.wrapping_sub(tx_sequence) = 21−255 (mod 256) = 22, yani çerçeve pencere içinde. Mühürlü R80 izi CMD53 veri baytlarını taşımadığı için Linux'un ilk çerçevesine karşı doğrulanamadı; açık kontrol olarak kaydedildi.

Doğru çalışanlar

  • Firmware/NVRAM (1191/1191, 609.792 bayt, RETRIES=0), CR4HOSTDATA ve CR4START yeniden geçti.
  • İki header-only Event (seq 0/1, TXWIN=21) ve exact 48/20 cur_etheraddr isteği yeniden doğrulandı.
  • 41.847 baytlık raw UART 0444 kapandı ve SHA-256 ff607845c261e7a2c0b36d4c7987a542192fb38fc216726dc2e949896de13f0d ile mühürlendi.
  • Hatanın olmaması hatanın düzeldiği anlamına gelmez; bu sonuç zaten değişken ölçülmüş bir davranışın tek gözlemidir.
  • Bu kayıt tanı kaydıdır; control reply, READY=1, scan, association, DHCP veya Internet kanıtı değildir.

imaj c2818abf67d0b8f63852ad94081f5c20f0ae87564b0b80a0e6804e83ea72faca
kanıt evidence/rpi5/radio/attempt-r119-widened-data-error-gate-uart-capture/

R1202026-09-12

Sorulan: BCM43455'te BT ve WLAN aynı kalıpta PMU/saat paylaşıyor ve BT_ON, SDPCM başlamadan hemen önce yükseliyor. BT bring-up'ı çıkarılırsa kontrol isteği cevaplanır mı?

Cevap: Hayır. BT_ON hiç sürülmemiş ve UARTA'ya hiç yazılmamışken sonuç R119 ile ölçülen her alanda birebir aynı — PENDING_POLLS=144'e kadar. Paylaşılan-PMU hipotezi bu arızayı açıklamıyor; Linux'ta bu çip için bildirilen dtoverlay=miniuart-bt çözümü bizimkinden başka bir arızaya bakıyor.

İzolasyon uygulandı ve yalnız izolasyon uygulandı

PINMUX BT_ON=Some(0) WRITES=0, WIFIPWR BT_ON_TOUCHED=0, BTINV MAP=OK BT_WRITES=0, BTHCI SKIPPED=1 REASON=PMU_ISOLATION BT_ON_DRIVEN=0 UARTA_WRITES=0. Salt-okunur envanter korundu; hiçbir şey eklenmedi.

Wi-Fi sonucu alan alan aynı

İki koşuda da hiç WIFIREAD satırı yok, READ_FAILURES=0, PENDING_POLLS=144, AGE_MS=2500, CLOCK=0xd2, SLEEP=0x03, IORx=IOEx=0x06, MAILBOX=0x00040002, INTSTATUS=IEN=INT_PENDING=0, 2 çerçeve / 0 cevap, terminal ControlTimeout.

Yedi koşudan sonra tekrarlayan tek olgu

Firmware açılıyor, DEVREADY + sürüm alanı 4 bildiriyor, F1+F2 açıyor, HT kaldırıyor, tam iki header-only Event ve 21 kredi veriyor — sonra ilk BCDC isteğine hiç cevap vermiyor, kesme kaldırmıyor, host'a bayt kuyruğa koymuyor. Sağlıklı ve bozuk taşımada, BT'li ve BT'siz aynı.

Doğru çalışanlar

  • Karşılaştırma tabanı sabit: kartta yazmadan önce tam olarak R119 vardı ve iki imaj yalnız rpi5-bt-isolate feature'ı ile ayrılıyor.
  • Her iki koşuda da taşıma sağlıklıydı, bu yüzden karşılaştırma aralıklı CMD53 arızasıyla bulanmadı.
  • 39.858 baytlık raw UART 0444 kapandı ve SHA-256 9e7ec7cbb008711186a0c917a7ae1cd789d38bb665b85dc7e69aee14df1c710c ile mühürlendi.
  • Tek boot çifti güçlü bir eşleşmedir ama soak sonucu değildir; ilk veri-hatası sınıfının koşudan koşuya değiştiği ölçülmüştür.
  • Bu imaj Bluetooth'u bilerek açmıyor, dolayısıyla hiçbir Bluetooth iddiası taşımıyor.

imaj 2f220c4bbcdfb6a9e200a670ac2a9a50f85fb9dc7758a1af2ee14852c4a3961d
kanıt evidence/rpi5/radio/attempt-r120-bt-isolation-uart-capture/

R1222026-09-12

Sorulan: R121'in ölçtüğü F2 watermark farkı (Linux 0x08, biz 0x60) tek değişken olarak 0x08 yazılırsa ilk BCDC isteği cevaplanır mı?

Cevap: Değişken hiç icra edilmedi. Koşu watermark yazmasından önce, D11 aşamasında backplane pencere geri-okumasında kırıldı. WIN_OK=0, istenen pencere 0x18100000, okunan 0x18181800 (üç bayt da 0x18), ISSUED=0; terminal UNAVAILABLE CORE_READY=0, ControlTimeout değil. R115–R120'de WIN_OK=0 hiç yoktu.

F2 watermark bu boot'ta yazılmadı

Watermark yazması SDPCM'in Function2Pending → ProtocolPending geçişindedir; CR4 başladıktan ve fonksiyon 2 hazır olduktan sonra gelir. Bu boot CR4'ü başlatmadı. Bir baytlık revizyon hakkında ne lehte ne aleyhte sonuç çıkmaz.

Üçüncü arıza imzası: CMD52 pencere geri-okuma uyuşmazlığı

CR4CTRL PHASE=D11 ABORTED=1 REASON=TRANSPORT WIN_OK=0 WIN_W=0x18100000 WIN_R=0x18181800 COMPLETE=0 ISSUED=0. Fail-closed yol tasarlandığı gibi komutu karta göndermedi. WIN_OK=0 bu kayıtta üç kez basıldı; R115–R120'de sıfır kez.

Üç imza tek hipoteze sığar, henüz oran yoktur

CMD53 veri-fazı hatası (R115–R118), temiz taşımada cevapsız ilk BCDC (R117/R119/R120) ve CMD52 pencere uyuşmazlığı (R122). R121 çerçeve hedefi ve geometrisinin Linux ile aynı olduğunu kapattı. Tek koşu tek veri noktası verir; R123 her SDIO işlemini sayarak oran üretir.

Doğru çalışanlar

  • Karşılaştırma tabanı sabit: kartta yazmadan önce tam olarak R120 vardı (2f220c4bbcdf…); R122 ona karşı tek bayt.
  • Firmware/NVRAM yeniden PASS: SECTORS_DONE=1191/1191, BYTES=609792, RETRIES=0, WORDS=437 VERIFIED=437 OK=1 FW_INTACT=1. CR4HOSTDATA MEASURED=1 APPLIED=1 CLEARED=1.
  • 38.209 baytlık raw UART 0444 kapandı ve SHA-256 19a5198a2bd23ae34e275031289094e5574a0d95fc62e6b611739248ffc797c5 ile mühürlendi.
  • Bu kayıt tanı kaydıdır; watermark değeri, control reply, READY=1, scan, association, DHCP veya Internet kanıtı değildir — firmware bu boot'ta hiç başlatılmadı.

imaj 8fd85b5a7e38bdba33a271809a05679dc1dc5d39c88ed619db4690e330f5a29c
kanıt evidence/rpi5/radio/attempt-r122-f2-watermark-uart-capture/

R1232026-09-12

Sorulan: Her SDIO işlemi sayılırsa, üç arıza imzası (CMD53 CRC, cevapsız BCDC, CMD52 pencere uyuşmazlığı) aralıklı veriyolu bozulmasının oranı mıdır, yoksa arıza yapısal mıdır?

Cevap: CMD53 yazmaları tamamlandı (0/15 incomplete), pencere uyuşmazlığı olmadı, 48 baytlık kontrol çerçevesi XFER=48 çıktı. İki CMD53 okuma CRC'si (2/164) bilinen INTSTATUS yolunda; kurtarma sonrası bekleme yolu READ_FAILURES=0 ve INTSTATUS=0 her iki erişimle doğrulandı. Terminal yine ControlTimeout. F2 watermark 0x08 bu boot'ta icra edildi ve cevap üretmedi. Arama protokole döner.

Sayım makbuzu her sonuç dalında basıldı

WIFIBUSCENSUS STAGE=ERROR CMD52_OPS=612077 CMD52_FAIL=83469 CMD53R_OPS=164 CMD53R_INCOMPLETE=2 CMD53W_OPS=15 CMD53W_INCOMPLETE=0 ERR_CRC_ONLY=1 ERR_CRC_ENDBIT=1 ERR_DATA_TIMEOUT=0 ERR_CMD_CLASS=0 ERR_OTHER=0 WINDOW_MISMATCH=0. Linux R80 ~12.000 CMD52 / ~4.200 CMD53; biz firmware'i hâlâ cmd52+verify ile indirdiğimiz için CMD52 51×, CMD53 1/23.

CMD52_FAIL TCM bozulması değildir

cmd52() None (issue not-ok veya R5) sayılır. FWSTAGE yine OK=1 RETRIES=0 WORDS_V=152448; R58 DATA-doğrulaması R5 kirliyken baytı kabul eder. 83.469/612.077 (%13,6) üç imzanın oranı değildir.

Cevapsız ioctl'ü aralıklı CMD53 yazma bozulması karşılamıyor

CMD53W_INCOMPLETE=0, XFER=48, WINDOW_MISMATCH=0. İki okuma CRC'si INTSTATUS 0x0020 ve bir DATA_CRC|END_BIT; kurtarma ACCEPTED=1, sonra 2500 ms boyunca READ_FAILURES=0. WIFICORE_ACCESS VERDICT=POLLED_VALUE_CONFIRMED: INTSTATUS=0 düz ve bayraklı yolda aynı.

Doğru çalışanlar

  • R122'nin ulaşamadığı yol bu boot'ta geçti: CR4CTRL PHASE=COMPLETE WIN_OK=1, CR4START RSTVEC_OK=1, WIFIPROTO STARTED=1, iki header-only RX, exact 48/20 cur_etheraddr SENT=1 REPLIED=0.
  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, BYTES=609792, RETRIES=0, NVRAM OK=1 FW_INTACT=1.
  • 41.963 baytlık raw UART 0444 kapandı ve SHA-256 f47f63675174dfd4743543de0928e907cecd6470a214f1fbe22bbe64b86e3044 ile mühürlendi; reconnect_attempts=1.
  • Bu kayıt tanı kaydıdır; control reply, READY=1, scan, association, DHCP veya Internet kanıtı değildir.

imaj 8ab16337d0e0c000ff1ae73c80ed94e3795e61240d6385dde9083811dfbffeb2
kanıt evidence/rpi5/radio/attempt-r123-sdio-transport-census-uart-capture/

R1242026-09-12

Sorulan: Linux'un ilk kontrol çerçevesinden hemen önce yazdığı CCCR INT_ENABLE 0x03 sonra 0x07, IEN=0 iken firmware'in cevapsız ioctl'ünü açar mı?

Cevap: Değişken hiç icra edilmedi. Koşu Function2Ready'den önce, D11 aşamasında CMD53 veri-CRC ile kırıldı. WIN_OK=1, ISSUED=1, ERR=0x0020, XFER=0; WIFIEN yok; terminal UNAVAILABLE CORE_READY=0. INT_ENABLE hakkında ne lehte ne aleyhte sonuç çıkmaz.

Census kırılımı çalıştı

CMD52_STAGE_OPS=611542 STAGE_FAIL=78837; CMD52_OTHER_OPS=457 OTHER_FAIL=0. 78.837 fail'in tamamı firmware/NVRAM cmd52 yazması (R46 sahte R5). Staging dışı CMD52 bu boot'ta temiz.

D11 taşıması pencere değil, CMD53 CRC

CR4CTRL PHASE=D11 ABORTED=1 REASON=TRANSPORT ADDR=0x18101800 WRITE=0 WIN_OK=1 WIN_W=WIN_R=0x18100000 COMPLETE=0 ISSUED=1 R5=0x10 ERR=0x0020. R122'nin WIN_R=0x18181800 imzası yok (WINDOW_MISMATCH=0). Komut çıktı, veri fazı DATA_CRC aldı.

INT_ENABLE yazılmadı

Yazma Function2Ready'de, CR4 start ve F2 hazır olduktan sonra. Bu boot CR4'ü başlatmadı. WIFIPROTO ve WIFIEN satırı yok.

Doğru çalışanlar

  • Karşılaştırma tabanı sabit: kartta yazmadan önce tam olarak R123 vardı (8ab16337d0e0…).
  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, BYTES=609792, RETRIES=0, NVRAM OK=1 FW_INTACT=1. CR4HOSTDATA READY=1.
  • 36.432 baytlık raw UART 0444 kapandı ve SHA-256 e312a18f3e9786e033c0e885c03dee063e245cf6a16599c434950b462cbbbefb ile mühürlendi.
  • Bu kayıt tanı kaydıdır; INT_ENABLE, control reply, READY=1, scan, association, DHCP veya Internet kanıtı değildir.

imaj 644ed7aad9eae7998bf4a64ae2256bb79061d15186deb05de32ab708cf3bc10c
kanıt evidence/rpi5/radio/attempt-r124-cccr-int-enable-uart-capture/

R1252026-09-12

Sorulan: R124 imajı Function2Ready'ye kadar giderse, CCCR INT_ENABLE 0x03 sonra 0x07 ilk BCDC isteğini cevaplar mı?

Cevap: Kapı açıldı ve kapalı kaldı; cevap gelmedi. WIFIEN W1=3 W2=7 READBACK=7, timeout IEN=Some(7) INT_PENDING=Some(0). 48/20 cur_etheraddr XFER=48 SENT=1 REPLIED=0, INTSTATUS=0, ControlTimeout. R115–R124 IEN=Some(0) okuyordu; bu boot Linux çiftini yazdı. INT_ENABLE cevapsız ioctl'ün nedeni değil.

INT_ENABLE icra edildi ve latch etti

Function2Ready'de 0x03 sonra 0x07 yazıldı. Geri-okuma 7. 2500 ms sonra WIFIIRQWAIT hâlâ IEN=Some(7). INT_PENDING=0, CORE_OR=0, FRAME_IND_SEEN=0.

Protokol yolu R123 ile aynı, artı açık kesme kapısı

CR4CTRL COMPLETE WIN_OK=1, CR4START RSTVEC_OK=1, WIFIPROTO STARTED=1, iki header-only RX SEQ=0/1 payload=0, exact 48/20, READ_FAILURES=0, WIFICORE_ACCESS VERDICT=POLLED_VALUE_CONFIRMED. CMD53W_INCOMPLETE=0/15. İlk INTSTATUS 0x0060; kurtarma ACCEPTED=1.

Census kırılımı yine STAGE'e hapsetti

CMD52_STAGE_FAIL=74995, CMD52_OTHER_FAIL=0/535. WINDOW_MISMATCH=0.

Doğru çalışanlar

  • Aynı imaj, yeni güç döngüsü: R124 flash'ı duruyordu (644ed7aad9ea…). UART güçten önce arm.
  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, RETRIES=0, NVRAM OK=1 FW_INTACT=1.
  • 42.190 baytlık raw UART 0444 kapandı ve SHA-256 57805577837c951e8553a94dff024e2774f403388e1c87723fd842b1166915b5 ile mühürlendi.
  • Bu kayıt tanı kaydıdır; control reply, READY=1, scan, association, DHCP veya Internet kanıtı değildir.

imaj 644ed7aad9eae7998bf4a64ae2256bb79061d15186deb05de32ab708cf3bc10c
kanıt evidence/rpi5/radio/attempt-r125-cccr-int-enable-uart-capture/

R1262026-09-12

Sorulan: R121'in dört ölçülmüş hazırlık farkından üçüncüsü — fn1 WAKEUPCTRL (0x1001e) = 0x02 (HT-wait), Linux'un yazdığı noktada — yazılırsa cevapsız ioctl açılır mı?

Cevap: İlk boot D11'de Function2Ready'den önce düştü, değişken hiç icra edilmedi (STATUS=UNAVAILABLE CORE_READY=0). Tekrar koşu — aynı imaj, reflash YOK, yeni güç döngüsü — değişkeni icra etti: WIFIWAKEUP BEFORE=Some(0) WROTE=Some(2) READBACK=Some(2); ardından 48/20 isteği XFER=48 SENT=1 REPLIED=0, IEN=Some(7) INT_PENDING=Some(0), ControlTimeout. WAKEUPCTRL=0x02 cevapsız ioctl'ün nedeni DEĞİL: dört farktan üçü elendi, tek kalan fn0 CCCR 0x000f0=0x06.

İlk boot değişkene ulaşmadı

D11 aşamasında kırıldı (R124 sınıfı bir varışsızlık); WIFIWAKEUP satırı yok, kontrol çerçevesi gönderilmedi. Aynı imajla tekrar koşu gerekti — R125'in R124'e olan ilişkisi.

Tekrar boot değişkeni icra etti ve eledi

Kartın güç-açılış değeri Some(0) ölçüldü — 0x02 gerçek bir değişiklikti, boş yazma değil. Yazıldı, latch etti, firmware yine cevap vermedi. Watermark (R123), INT_ENABLE (R125), WAKEUPCTRL (R126) elendi; geriye CCCR 0x000f0=0x06 kaldı.

Tekrar yakalama PARTIAL olarak beyan edildi

UART güçten SONRA kurulduğu için başı eksik (ilk satır ASELSAN/FWSTAGE_P S=128 PH=0); eksik bölüm WAKEUPCTRL sorusuna ait değildir ama paket tam-boot yakalama diye kullanılamaz. İlk paket bu imajın tam-boot kaydıdır.

Doğru çalışanlar

  • Aynı imaj, yeni güç döngüsü: kart yeniden yazılmadı (0e4fb7ae33ad…).
  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, RETRIES=0, NVRAM OK=1 FW_INTACT=1.
  • İki mühürlü paket: 36.443 baytlık raw UART SHA-256 a6e7721994d5278f1f218719ccd4c0ec5301ee4602576a64b453957997faff93 ile; tekrar 27.777 baytlık raw SHA-256 198fc75c055bf963251be87faf8521c07b1abf05600aae46c874ef5b5cb6fd0d ile mühürlendi.
  • Bu kayıt tanı kaydıdır; control reply, READY=1, scan, association, DHCP veya Internet kanıtı değildir.

imaj 0e4fb7ae33ad4caa97fef2c4b65c76fd634b0187c6fd65290c159de5f5783e2c
kanıt evidence/rpi5/radio/attempt-r126-wakeupctrl-uart-capture/ · attempt-r126-wakeupctrl-uart-capture-repeat-01/

R1272026-09-12

Sorulan: On bir hazırlık profili tek boot'ta süpürülürse (deneme 0 = R126 tabanı, LINUX_EXACT dahil), dört farktan hangi kombinasyon kontrol cevabını üretir?

Cevap: İlk boot D11'de düştü — WIFITRIALPLAN bile basılmadı (yine de CMD52_FAIL=0/611999, kayıttaki en temiz CMD52 boot'u; CMD53W_INCOMPLETE=2/2). Tekrar boot'ta motor çalıştı: TRIAL=0 tabanı birebir doğruladı (ControlTimeout), TRIAL=1 LINUX_EXACT altı hazırlık kaydının tümünü uyguladı ve geri okumayla doğruladı — zincirde İLK KEZ tam Linux hazırlık eşitliği. Hemen ardından WriteFifo fn=2 error_status=0x0020; Io kalıcı terminal oldu, STOP TRIALS_RUN=1/11 REPLIED=0. LINUX_EXACT elenmedi: çerçevesi hiç iletilemedi, sorusu sorulmadı.

Süpürme motoru cihazda çalışıyor

Arm oldu, denemeler koştu, makbuzlar basıldı, tek sonlandırma işareti ile yakalama temiz kapandı.

İlk tam Linux hazırlık eşitliği uygulandı ve geri okundu

WM 0x08, WC 0x02, DEVCTL 0x10→0x00, MESBUSY 0xd0→0x00, CARDCAP 0x00→0x06, IEN 0x07 — hepsi geri okumayla doğrulandı; CCCR 0x000f0=0x06 hiçbir koşuda karta ulaşmamıştı.

Aday (n=1): DEVICE_CTL bit 4

O boot'taki 16 CMD53 yazmasından düşen tek yazma, biti temizleyen profilin hemen ardından geldi; bitin upstream adı bu pakette doğrulanmadı ve DEVICE_CTL hiç tek başına temizlenmedi — R128 tam bunu sınar.

Doğru çalışanlar

  • Tekrar boot reflash'sız: aynı imaj (882c67867b88…), yeni güç döngüsü.
  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, RETRIES=0, NVRAM OK=1 FW_INTACT=1.
  • İki mühürlü tam-boot paket: 36.066 bayt (bea41b4a41578d69b9495fddef2e4757bde3c8a271b0fdb1605d021fed9331cc) ve 49.417 bayt (5c5818fe66408101ef8c213eb9d0c56a31868e6748e840113395de72a4c899c0) raw UART.
  • Bu kayıt tanı kaydıdır; control reply, READY=1, scan, association, DHCP veya Internet kanıtı değildir.

imaj 882c67867b88a4af3d72d427e2172be91937eabc905f2c31f725addbe4938bbd
kanıt evidence/rpi5/radio/attempt-r127-prereq-sweep-uart-capture/ · attempt-r127-prereq-sweep-uart-capture-repeat-01/

R1282026-09-12

Sorulan: R127'nin adayı doğru mu: DEVICE_CTL bit 4'ün temizlenmesi ikinci F2 yazmasını mı düşürüyor?

Cevap: ÇÜRÜTÜLDÜ. R128'de düşen deneme biti KORUDU (DEVICE_CTL 0x10→0x10, geri okumayla doğrulandı; MESBUSY 0xd0→0xd0, tek değişiklik CARDCAP 0x00→0x06) ve aynı işlemde aynı hatayı aldı: WriteFifo fn=2 addr=0x8000, CMD53W_OPS=16 INCOMPLETE=1, STOP=NOT_REARMABLE TRIALS_RUN=1/11. DEVICE_CTL sebep değil.

İki boot, adayın adını verdiği bitte farklılaşan iki profil, birebir aynı sonuç

R127 TRIAL=1 LINUX_EXACT biti temizledi (0x10→0x00); R128 TRIAL=1 CARDCAP_06 biti korudu (0x10→0x10, geri okumayla); MESBUSY de farklı (0xd0→0x00 / 0xd0→0xd0). İkisi de aynı WriteFifo fn=2 hatası.

Kartın gerçek güç-açılış watermark'ı 0x20 ölçüldü

Deneme 0 güç-açılış durumunu kaydetti: WM=0x20 WC=0x00 DEVCTL=0x00 MESBUSY=0x00 CARDCAP=0x00 IEN=0x00 — ne bizim 0x60'ımız ne Linux'un 0x08'i.

Kalan tek ortak nokta daha keskin

İki düşen yazma da CEVAPSIZ KALAN bir çerçeveden SONRAKİ ilk çerçeveydi; iki boot'ta da 16 CMD53 yazmasından düşen tek yazma oydu. İki okuma: (a) yeniden kurmamız eksik — her mühürlü koşuda FIFO_READS=0; (b) kart yoksaydığı çerçeveden sonra F2 yazması kabul etmiyor. R129 ikisini ayırır.

Doğru çalışanlar

  • D11 GEÇTİ — yeni flash olmasına rağmen (reflash deseni 0/4'ten 1/5'e indi).
  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, RETRIES=0, NVRAM OK=1 FW_INTACT=1.
  • 51.130 baytlık raw UART 0444 kapandı ve SHA-256 f301f54813ede76fb25d64039aa6b9a52f3c1d19520e695d87f2c63d2818ce26 ile mühürlendi; tam boot.
  • Bu kayıt tanı kaydıdır; control reply, READY=1, scan, association, DHCP veya Internet kanıtı değildir.

imaj 19d1caafb30d73e258f62161716884ecf802947b6b44ab1653eca8a7d97f3c1e
kanıt evidence/rpi5/radio/attempt-r128-prereq-sweep-ordered-uart-capture/

R1292026-09-12

Sorulan: Her yeniden kurmadan ÖNCE maskeli core INTSTATUS temizliği + koşulsuz tek F2 FIFO boşaltması yapılırsa, ikinci yazma kurtulur mu? (R128'in 'yeniden kurmamız eksik' ve 'F2'de toplanmamış cevap var' okumaları)

Cevap: Kurtarma tamamlandı ve ikinci yazmayı kurtarmadı. WIFIRECOVER ATTEMPTED=1 INTSTATUS=Some(0) CLEARED=0 FIFO_OK=1 FIFO_FAILED=0 LENGTH=Some(0) LEN_COMPLEMENT_OK=0, host veri motoru idle. FIFO boştu, kesme yoktu — ve yeniden kurulan çerçeve üçüncü boot üst üste aynı WriteFifo fn=2 0x0020 ile düştü. İki okuma da çürüdü.

FIFO'da bekleyen çerçeve yoktu

Boşaltma okuması LENGTH=Some(0) döndü; 'kart, toplamadığımız bir cevabı F2 FIFO'da tutuyor' okuması çürüdü.

INTSTATUS zaten sıfırdı, host idle'dı

CLEARED=0 (temizlenecek bit yok), PSTATE idle; 'eksik yeniden kurma' okumasının somut biçimi elendi.

Üçüncü boot aynı imza

R127/R128/R129 üç boot'ta da cevapsız çerçeveden sonraki ilk F2 yazması aynı 0x0020 data CRC ile düştü; kart F2 okumayı kabul ediyor, yazmayı reddediyor.

Doğru çalışanlar

  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, RETRIES=0, NVRAM OK=1 FW_INTACT=1.
  • 59.227 baytlık raw UART 0444 kapandı ve SHA-256 8974eb0e5ed1ce4caa8eb93da0381e6ced3916761f4a56865bb6937dd76c77e1 ile mühürlendi; tam boot. Aynı imajın bir erken denemesi belgelenmiş yavaş staging moduna girdiği için bilerek iptal edildi ve mühürlenmedi.
  • Bu kayıt tanı kaydıdır; control reply, READY=1, scan, association, DHCP veya Internet kanıtı değildir.

imaj aedd2f1c1450fabb34a0bbec0bff1ee3a6c71bf6d2f8e286152e33df49734c4a
kanıt evidence/rpi5/radio/attempt-r129-inter-trial-recovery-uart-capture/

R1302026-09-12

Sorulan: CCCR IO_ABORT (0x06) kaydına function 2 seçimi (0x02) ikinci yazmadan hemen önce yazılırsa, F2 yazma yolu kurtulur mu?

Cevap: Abort tamamlandı ve kurtarmadı. WIFIF2ABORT ATTEMPTED=1 OK=1 FAILED=0; hemen ardından yeniden kurulan ikinci F2 yazması aynı işlemde, aynı data CRC sınıfıyla düştü. IO_ABORT tek başına — bu sınırda — elendi.

IO_ABORT ilk kez issue edildi ve geçti

Hiçbir koşuda issue edilmemiş mekanizma cihazda tamamlandı: ATTEMPTED=1 OK=1 FAILED=0, FUNCTION=2 REGISTER=0x06 VALUE=0x02.

Aynı yazma aynı hatayla düştü

Abort ile ikinci yazma bitişikti; 0x0020 imzası değişmedi.

Sınır daraldı, kapsam dışı kalanlar kayıtlı

F2 disable/enable ve block-size re-assert bu koşuda YOKTUR; ikisi sonraki revizyonların tek değişkenidir.

Doğru çalışanlar

  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, RETRIES=0, NVRAM OK=1 FW_INTACT=1.
  • 55.233 baytlık raw UART 0444 kapandı ve SHA-256 b67ab28be11df904dc0260438f0c803a8154d731c82e1c9bbb1e3754613e17b7 ile mühürlendi; tam boot.
  • Bu kayıt tanı kaydıdır; control reply, READY=1, scan, association, DHCP veya Internet kanıtı değildir.

imaj 670818f2326d84f7f50a1571bf466823abeb8cdd7badf0fb89ae81741e93bfdc
kanıt evidence/rpi5/radio/attempt-r130-f2-io-abort-uart-capture/

R1312026-09-12

Sorulan: Function 2'nin enable/ready yaşam döngüsü tamamen kapatılıp (F1 korunarak) yeniden açılırsa, ikinci yazma kurtulur mu?

Cevap: Yaşam döngüsü tamamlandı ve kurtarmadı. WIFIF2REENABLE ATTEMPTED=1 BEFORE_ENABLE=Some(6) DISABLE_OK=1 READY_CLEAR=1 ENABLE_OK=1 READY_SET=1 FAILED=0 — her geçiş ilk bounded poll'da. Hemen ardından ikinci F2 yazması yine 0x0020 ile düştü. Yeni ayırt edici fark: CORE_OR=0x00000080 (R130'un aynı sınırında 0) — yaşam döngüsünün ürettiği post-lifecycle HOST_INT.

Yaşam döngüsü gerçekten tamamlandı

Enable biti gözlendi, temizlendi, hazır-biti düşüşü doğrulandı, geri açıldı, hazır-biti yükselişi doğrulandı — yalnızca register yazılmış sayılmadı.

Post-lifecycle HOST_INT=0x80

R130'un aynı sınırında CORE_OR=0 idi; R131 yaşam döngüsünden sonra 0x80. Pre-lifecycle INTSTATUS=0 olduğundan bu yeni kart durumu ayrıca sınanmalıdır — R132 tam bunu yapar.

Disable/enable test edilen tam formda elendi

Yeni kesmeyi servis etmeden yapılan kapat/aç ikinci yazmayı kurtarmadı; kesmeyi servis eden form R132'nin değişkenidir.

Doğru çalışanlar

  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, RETRIES=0, NVRAM OK=1 FW_INTACT=1.
  • 54.700 baytlık raw UART 0444 kapandı ve SHA-256 f6bb107921026c59c280daf9fa12761d3c7476ae6368f7fec0c61ac4efbc5dfe ile mühürlendi; tam boot.
  • Bu kayıt tanı kaydıdır; control reply, READY=1, scan, association, DHCP veya Internet kanıtı değildir.

imaj 877a1b96ba3df93034c31d93991986605c6447d38dfdd3076f39ecf0954f892f
kanıt evidence/rpi5/radio/attempt-r131-f2-reenable-uart-capture/

R1322026-09-12

Sorulan: Yaşam döngüsünün ürettiği HOST_INT (0x80) yaz-bir-temizle ile ack edilip geri okuma sıfır okunursa, ikinci yazma kurtulur mu?

Cevap: Ack tamamlandı ve kurtarmadı. WIFIF2POSTIRQ ATTEMPTED=1 BEFORE=Some(128) MASKED=Some(128) ACK_ATTEMPTED=1 ACK_OK=1 AFTER=Some(0); ardından ikinci F2 yazması yine aynı 0x0020 ile düştü. Post-lifecycle HOST_INT açıklaması elendi.

0x80 gerçekten vardı

READY_SET sonrası core INTSTATUS 0x80 okudu; R131'deki gözlemin yalnız sonuç-sonrası gürültü olmadığı zaman olarak daraldı.

Ack sonrası çekirdek durumu sıfırdı

Write-one-to-clear tamamlandı, readback Some(0); trial boyunca core status sıfır kaldı — buna rağmen aynı yazma aynı veri CRC'siyle düştü.

Doğru çalışanlar

  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, RETRIES=0, NVRAM OK=1 FW_INTACT=1.
  • 53.772 baytlık raw UART 0444 kapandı ve SHA-256 3741c13128fee95eadc1a89c5773028bdcdffe64e5f789c3b544c0b66e947448 ile mühürlendi; tam boot.
  • Bu kayıt tanı kaydıdır; control reply, READY=1, scan, association, DHCP veya Internet kanıtı değildir.

imaj 3fddd839a9e9f31830d62f17da1f1f3907fa6b6990c9c6c4911a656075ab2582
kanıt evidence/rpi5/radio/attempt-r132-post-lifecycle-host-int-uart-capture/

R1332026-09-12

Sorulan: F2 block-size (0x210/0x211) 512 olarak yeniden yazılıp iki baytı geri okunursa, ikinci yazma kurtulur mu?

Cevap: Üçüncü boot değişkene ulaştı: block-size önce 0x00/0x02 idi, iki yazma ve iki geri okuma geçti, MATCH_512=1 FAILED=0. Bitişik ikinci F2 yazması yine 0x0020 ile düştü. İlk iki boot değişkene ulaşmadı (biri trial 0'ı ControlTimeout'tan önce F1 Read32 duvarında kesti, biri D11'de kırıldı). Block-size kaybı veya bayat programlama elendi.

Ulaşım üç boot aldı

İlk paket trial 0'ı ControlTimeout'tan önce F1 Read32 BusError ile kesti (WIFIRECOVER ATTEMPTED=0); ikinci paket D11'de kırıldı (plan satırı bile yok); üçüncü paket R129–R132 zincirinin tamamını geçip değişkeni icra etti.

MATCH_512=1

BEFORE_LOW/HIGH=Some(0)/Some(2), WRITE_LOW/HIGH_OK=1, READBACK 0x00/0x02 — blok boyutu zaten doğruydu ve yeniden yazılıp doğrulandı.

Block-size elendi

Aynı ikinci yazma aynı 0x0020; FIFO, kesme, enable/ready ve block-size durumlarının tümü tek tek sağlıklı doğrulandığı hâlde yazma düşüyor.

Doğru çalışanlar

  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, RETRIES=0, NVRAM OK=1 FW_INTACT=1 (üç boot'ta da).
  • Üç mühürlü tam-boot paket: 53.314 bayt (02d33ef17340cf8bbc8b70fcc88d9216522fe67634c36bc9b00543b0f358a248), 41.066 bayt (689fae68e7b53063b25176b96daba71abeaab2726670beaf77ed3e0c2b9cd990) ve 51.293 bayt (a2a9776becfedda57d3be7c81b554bbec0387b09b9253e16f8560b2a00af083b) raw UART.
  • Bu kayıt tanı kaydıdır; control reply, READY=1, scan, association, DHCP veya Internet kanıtı değildir.

imaj c58ee8c1fa30a776e1b67a4253353e6df1609cd8e020dd4d4cf58201c7509c37
kanıt evidence/rpi5/radio/attempt-r133-f2-block-size-uart-capture/ · attempt-r133-f2-block-size-repeat-uart-capture/ · attempt-r133-f2-block-size-repeat-2-uart-capture/

R1342026-09-13

Sorulan: Send sınırında host-only SDHCI DATA reset (byte register 0x2f, mask 0x04) — idle doğrulamasıyla — ikinci yazmadan hemen önce uygulanırsa, ikinci yazma kurtulur mu?

Cevap: İlk boot eyleme ulaşamadı: TRIAL=0 sonrası kurtarma merdiveninde F1 Read32 (INTSTATUS) bus-ömründe-bir-kez reset kullanıldıktan sonra aynı adreste ikinci kez 0x0020 aldı, transport NOT_REARMABLE kapandı (WIFIHOSTDATA makbuzu yok). Tekrar koşu ulaştı ve ELEDİ: ATTEMPTED=1 MEASURED=1 APPLIED=1 CLEARED=1 READY=1 CONFIG_SAME=1 (2 poll, 10 µs), reset ile ikinci yazma arasında hiçbir SDIO makbuzu yok; ikinci yazma YİNE 0x0020 ile düştü. R24 (meşgul hatta), R116 (arıza sonrası kurtarma) ve R134 (send sınırı) ile host SDHCI DATA reset eylemi yerleşim-bağımsız elendi.

Eylem makbuzu tamam

PSTATE_B/A=0x017f0000, RESET_FIRST=0x04, 2 poll / 10 µs; SOFTWARE_RESET.DAT self-clear doğrulandı. Reset ile ikinci yazma arasına hiçbir SDIO işlemi girmedi.

Konfigürasyon korundu

CONFIG_SAME=1 — saat/timeout/kontrol/güç/blok/control2 konfigürasyonunun korunduğu kanıtlandı; bu kör bir reset değildi.

Yerleşim-bağımsız eleme

Profil sözleşmesi birebir işledi: APPLIED=1, READY=1 ve aynı 0x0020 tekrarı → ELEME. Reset eylemi hangi yerleşimde olursa olsun ikinci yazmanın 0x0020'sinin nedeni değil; kurtarma-yolu reset'i kodda kaldığı gibi durur.

İlk boot aynı F1 Read32 duvarını tekrarladı

Kurtarma INTSTATUS okuması, bus reset'inden sonra aynı adreste ikinci kez 0x0020 aldı; R133'ün ilk paketi ile ortak varışsızlık imzası. Süpürme motorunun bu kırılganlığı ayrı bir nottur.

Doğru çalışanlar

  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, RETRIES=0, NVRAM OK=1 FW_INTACT=1 (iki boot'ta da).
  • İki mühürlü tam-boot paket: 39.824 bayt (b7cdc3ed482e0b0e2cae406e21b297866ae13d0a6d9211c312b3f952e4993c5f) ve 44.801 bayt (c409d7fcd52b9202c7e2bc5fdef2a3230f2874d5e708582e04edd2403767500e) raw UART.
  • Bu kayıt tanı kaydıdır; control reply, READY=1, scan, association, DHCP veya Internet kanıtı değildir.

imaj b3910252804ba69fb8ed40c90f52abf4c886d9849c77ac64961f5efd059f1cf0
kanıt evidence/rpi5/radio/attempt-r134-host-data-reset-at-send-boundary-uart-capture/ · attempt-r134-host-data-reset-at-send-boundary-uart-capture-repeat/

R1352026-09-13

Sorulan: Yeniden kurulan ikinci F2 yazması Linux'un kısa-yazma birimi olan 64 bayt byte-mode (16 sıfır dolgu) ile gönderilirse, R127'den beri düşen 0x0020 kurtulur mu? (R80 izi: Linux fn=2 adres=0x8000'e HİÇ 48 bayt yazmıyor; 64×1456 adet.)

Cevap: Üç boot gerekti ve üçüncüsü ELEDİ. İlk iki boot değişkene ulaşmadı: TRIAL=0 cevap bekleyişinde F1 Read32 (INTSTATUS) ile öldü — ilki AGE_MS=383'te error_status=0x0060, ikincisi AGE_MS=2133'te 0x0020; WIFIF2BLKSZ ATTEMPTED=0, ikinci yazma hiç denenmedi. Üçüncü boot ulaştı: plan arm oldu (WIFIF2WRITE64_PLAN ARMED=1 UNIT=64 PAD_ZERO=1 FIRST_WRITE_UNCHANGED=1 CARD_COMMANDS=0 HOST_RESET=0), TRIAL=0 tabanı korudu (48/48, ControlTimeout), kurtarma + R131/R132/R133 zinciri tam makbuzla geçti, WIFIHOSTDATA sıfır kez basıldı — ve 64 baytlık ikinci yazma YİNE aynı 0x0020 ile düştü: WIFIREAD OP=WriteFifo BYTES_READ=64 ERROR_STATUS=0x0020, STOP=NOT_REARMABLE TRIALS_RUN=1/11. Byte-count şekli elendi.

Değişken birebir icra edildi, profil sözleşmesi işledi

İkinci yazmanın teldeki bayt sayısı 64 oldu (WIFIREAD BYTES_READ=64, BusError bytes_read: 64); ilk yazma FRAMELEN=48 XFER=48 değişmedi; R134'ün elenen reset'i imajda yoktu (WIFIHOSTDATA makbuzu 0 adet, plan HOST_RESET=0).

R129–R133 zinciri bu boot'ta da tam geçti

WIFIRECOVER ATTEMPTED=1 INTSTATUS=Some(0) FIFO_OK=1 LENGTH=Some(0); F2REENABLE DISABLE_OK=1 READY_CLEAR=1 ENABLE_OK=1 READY_SET=1 FAILED=0; F2POSTIRQ BEFORE=Some(128) ACK_OK=1 AFTER=Some(0); F2BLKSZ MATCH_512=1 FAILED=0. Düşen tek işlem yine yeniden kurulan ikinci F2 yazmasıydı.

İki varışsızlık paketi ayrı mühürlendi

İlk boot 0x0060, ikinci boot 0x0020 F1 Read32 imzasıyla TRIAL=0'da öldü; ikisi de 'R135 sorusunu cevaplamaz' diye beyan edildi. Kart hiç yeniden yazılmadı — üç boot aynı db93f033… imajındaydı.

Sıradaki aday: re-arm→yazma zamanlaması (R26 emsali)

Kart tarafı (FIFO, kesme, enable/ready, block-size), host tarafı (DATA reset) ve teldeki byte sayısı elendi; MATCH_512 makbuzu ile ikinci yazma arasındaki ZAMAN hiç tek değişken olarak sınanmadı. R26 saf beklemenin yetmediğini, araya giren tek CMD52'nin senkronize ettiğini göstermişti. Önce masabaşı notu, sonra fiziksel koşu.

Doğru çalışanlar

  • Aynı imaj, üç tam cold boot: kart yeniden yazılmadı (db93f033…).
  • Firmware/NVRAM PASS üç boot'ta da: SECTORS_DONE=1191/1191, RETRIES=0, NVRAM OK=1 FW_INTACT=1.
  • Üç mühürlü tam-boot paket: 52.972 bayt (b2f1b8c94f8e4278661d550d7b1fb5d16eb6b6f5171bec782888806c6fb75c09), 55.441 bayt (702d55a35d9d93f30d7d454b8e7a4455fcda394ba33bfbec1b1a160e79e37445) ve 57.787 bayt (e11fab801097e3d6777e3b889f70dabc7e2050ec19598014d655d25fa937346f) raw UART.
  • Tek değişken kapısı derleme-zamanında kuruldu: aynı ağaçtan R134/R135 imajlarının ASELSAN/ işaretçi kümeleri arasındaki tek fark WIFIF2WRITE64_PLAN eklenmesi ve WIFIHOSTDATA(_PLAN) çıkarılmasıdır; mühürlü R134 imajı karttan kurtarılıp build/rpi5-wifi-scan-r134-sealed/ altına alındı.
  • Bu kayıt tanı kaydıdır; control reply, READY=1, scan, association, DHCP veya Internet kanıtı değildir.

imaj db93f033197a844046dda915ac79e1d23690e48a9cab867be0e77ec94999aa2d
kanıt evidence/rpi5/radio/attempt-r135-f2-write64-uart-capture/ · attempt-r135-f2-write64-uart-capture-repeat-01/ · attempt-r135-f2-write64-uart-capture-repeat-02/

R1362026-09-13

Sorulan: Kontrol çerçevesi Linux'un aynı kartta ölçülen SDPCM glom biçimiyle (8 baytlık eklenti, BCDC dcmd 20. baytta) gönderilirse hem hat kabul eder hem firmware cevap verir mi?

Cevap: Tel biçimi duvarı KIRILDI, cevap gelmedi. Yeniden kurulan ikinci F2 yazması ilk kez kabul edildi: TRIAL=1 FRAMELEN=56 XFER=56 SENT=2 REPLIED=0 ERR=ControlTimeout — WriteFifo/0x0020 hatası YOK; süpürme TRIAL=2'ye ilerledi (TRIALS_RUN=2). Ancak her denemede REPLIED=0 CTRL_SEEN=0 FRAME_IND=0 HOST_INT=0 CORE_OR=0 kaldı: firmware çerçeveyi işlemiyor, terminal yine ControlTimeout.

Duvar taşımadan firmware mantığına kaydı

R127–R135 host tarafını (FIFO, kesme, yaşam döngüsü, block-size, DATA reset, byte-count) elemişti; R136 tel biçimini Linux'la eşitledi ve ikinci yazma kabul edildi. Artık sınır SDIO değil: firmware çerçeveyi yutuyor ve hiç kesme üretmiyor.

Kalan ölçülmüş farklar (R137 adayları)

Ölçülen Linux çerçeveleriyle (linux-r136-first-frame-v3) yapı birebir aynı; kalan farklar: SDPCM seq (bizde 255 taşıma başlangıcı, Linux'ta küçük ve artan), dcmd türü/id (bizde GET id=1, Linux ölçümünde SET id=4+), ve Linux'un preinit sırası (bus:txglomalign, ver, cur_etheraddr, mpc, bus:txglom, event_msgs, scan_ver).

Makbuz kusuru düzeltildi

R136 koşusunda WIFICTRLTX BCDCLEN=0 ve EXPECT_R80_* alanları eski yerleşimin ofsetlerini okuyordu; çerçevenin kendisi doğruydu (RAW satırında 14 00 00 00 = 20). Makbuz artık CONTROL_DATA_OFFSET+4'ten okuyor.

Doğru çalışanlar

  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, RETRIES=0, NVRAM OK=1 FW_INTACT=1.
  • R133 zinciri korundu: WIFIF2BLKSZ ATTEMPTED=1 MATCH_512=1 FAILED=0; R134 reset'i ve R135 64-bayt deneyi imajda yok.
  • 45.849 baytlık raw UART 0444 kapandı; yakalama güçten önce arm edildi (WHOLE BOOT).
  • Bu kayıt tanı kaydıdır; control reply, READY=1, scan, association, DHCP veya Internet kanıtı değildir.

imaj 940ff0ae798cca612f4481bf5b8b22c81c0ac5753b33d764ab5a11ce5c8fa246
kanıt evidence/rpi5/radio/attempt-r136-glom-control-frame-uart-capture/

R1372026-09-13

Sorulan: Mailbox el sıkışması görünür kılınırsa: dongle protokol için hazır oluyor mu (FWREADY) ve tel biçimi dört çerçeve boyunca kararlı mı?

Cevap: Taşıma sağlam, dongle hazır değil. Dört deneme üst üste kabul edildi (TRIAL=0..3 FRAMELEN=56 XFER=56 BCDCLEN=20 SENT=1..4, seq 255→0→1→2→3; TRIALS_RUN=4/11) ve makbuz artık doğru BCDCLEN okuyor. Ancak yeni tanık 87 örnekte mailbox değerinin HİÇ değişmediğini ölçtü: LAST=0x00040002 = sürüm 4 + DEVREADY; FWREADY (0x0008, 'fw ready for protocol activity') hiç görünmedi ve kabul edilen çerçevelerin hiçbirine cevap gelmedi (REPLIED=0 FRAME_IND=0 HOST_INT=0).

Taşıma duvarı gerçekten aşıldı

R136'da iki denemeye çıkan süpürme R137'de dörde çıktı; her çerçeve kabul edildi ve düşen tek şey bilinen Read32(INTSTATUS) duvarı oldu. Tel biçimi (glom) ve makbuz alanları doğru.

Dongle protokol hazır bayrağını kaldırmıyor

ASELSAN/WIFIMBOXWATCH SAMPLES=87 CHANGES=0 LAST=0x00040002: DEVREADY var, FWREADY yok. brcmfmac'te FWREADY 'fw ready for protocol activity' demektir; bayrak kalkmadan kontrol isteklerinin cevaplanmaması beklenir.

Sıradaki aday: hostmail el sıkışmasının zamanlaması (R138)

Linux `brcmf_sdio_hostmail` her okumada SMB_INT_ACK yazar ve DEVREADY/FWREADY görünce sürümü yeniden yazar. Bizde ACK yalnız değer değiştiğinde, sürüm yalnız F2-hazır yolunda bir kez gidiyor; R138 yalnız bu iki yazmanın zamanlamasını değiştirir (docs/radio/R138-hostmail-ack-desk.md).

Doğru çalışanlar

  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, RETRIES=0, NVRAM OK=1 FW_INTACT=1.
  • R136 glom biçimi ve R133 zinciri korundu; R134/R135 deneyleri imajda yok.
  • 74.047 baytlık raw UART 0444 kapandı; yakalama güçten önce arm edildi (WHOLE BOOT).
  • Bu kayıt tanı kaydıdır; control reply, READY=1, scan, association, DHCP veya Internet kanıtı değildir.

imaj 68cad3b57b5c34bbe4a306d0314904e9241bcf9672111eb11901d88dc821ad76
kanıt evidence/rpi5/radio/attempt-r137-mailbox-handshake-uart-capture/

R1382026-09-13

Sorulan: Host mailbox el sıkışması Linux'un brcmf_sdio_hostmail dizisiyle (her okumada SMB_INT_ACK + DEVREADY/FWREADY görülünce sürüm yazımı) tamamlanırsa dongle FWREADY'yi kaldırır ve çerçeveleri cevaplar mı?

Cevap: Hayır — hipotez ELENDİ. Üçüncü koşuda değişken tam icra edildi: 32 örnekte her okuma ACK'lendi (ACKS=32) ve her okumada protokol sürümü yeniden yazıldı (VERSION_WRITES=32); dongle yine FWREADY'yi kaldırmadı (FWREADY_SEEN=0, LAST=0x00040002 = sürüm 4 + DEVREADY) ve iki kusursuz glom çerçevesi cevapsız kaldı. Oturum host tarafında CommandDeadline(Mac) ile kapandı.

Değişken tam icra edildi

WIFIHOSTMAIL_PLAN ARMED=1 ACK_EVERY_READ=1 VERSION_REWRITE_ON_READY=1; WIFIMBOXWATCH SAMPLES=32 CHANGES=0 DEVREADY_SEEN=1 FWREADY_SEEN=0 VERSION=4 ACKS=32 VERSION_WRITES=32 LAST=0x00040002. R137'nin makbuz kusuru da düzeldi: bayraklar artık her örnekte değerlendiriliyor.

El sıkışma adayı elendi

Linux'un dizisi birebir uygulandı (her okumada ACK, hazır bayrağında sürüm yazımı); dongle yine 'protokol aktivitesi için hazır' demiyor. Duvar host el sıkışmasında değil.

Üç kanıt tek okumada birleşiyor

Dosya TCM'e doğrulanarak yükleniyor (FWSTAGE/NVRAM OK=1) ama CR4START makbuzları STARTED=0/EXECUTED=0; dongle DEVREADY diyor, FWREADY demiyor; host tarafı hâlâ kırılgan (F1 Read32/Write8 inhibit, CommandDeadline). Uygulama firmware'inin yürümediği okuması güçlendi — R139'un yönü bu.

Doğru çalışanlar

  • Üç boot da firmware/NVRAM PASS: SECTORS_DONE=1191/1191, RETRIES=0, NVRAM OK=1 FW_INTACT=1 (ilki D11'de düştü, değişken icra edilmedi — mühürlü varışsızlık paketi).
  • R136 glom biçimi ve R133 zinciri korundu; R134/R135 deneyleri imajda yok.
  • Üç mühürlü paket: 38.748 (varışsızlık), 51.653 (değişken icra, erken kapanış) ve 55.558 bayt (karar) raw UART; hepsi WHOLE BOOT ve 0444.
  • Bu kayıt tanı kaydıdır; control reply, READY=1, scan, association, DHCP veya Internet kanıtı değildir.

imaj e125208d4eb9d73bd0d7a71985766ce0fa172be9f4a2b975523bc80e57536b39
kanıt evidence/rpi5/radio/attempt-r138-hostmail-complete-uart-capture/ · attempt-r138-hostmail-complete-uart-capture-repeat-01/ · attempt-r138-hostmail-complete-uart-capture-repeat-02/

R1392026-09-13

Sorulan: Reset vektörü Linux'un yaptığı gibi 4-baytlı bayraklı CMD53 ile backplane adres 0'a yazılırsa iner mi (R88'in 0x0060'ı R94 sonrası tekrarlar mı) ve CR4 yürütme tanıkları değişir mi?

Cevap: Taşıma KAPANDI, yürütme değişmedi. RSTVEC_C53=1 RSTVEC_B=4 RSTVEC_ERR=0x0000 RSTVEC_CMD52_FALLBACK=0 — 4-baytlı bayraklı CMD53 indi; R88'in veri CRC'si R94 sonrası tekrarlamadı ve CMD52 geri dönüşü hiç kullanılmadı. Buna rağmen CR4 tanıkları sıfır kaldı (EXECUTED=0 STARTED=0 MBOX=0 INTSTAT=0 SHARED_RAW=0; HT_REQ_AVAIL=1) ve dongle FWREADY demedi (SAMPLES=18 ACKS=18 VERSION_WRITES=17 FWREADY_SEEN=0).

Kritik yoldaki son bilinen yapısal fark kapandı

Linux'un CR4 başlatma değerleri R139 ölçümünde birebir çıkmıştı (ioctl 0x03/0x23/0x21/0x01, +0x800 1→0, rstvec 0xb83ef198, sürüm 0x00040000, hostintmask 0x200000f0, ACK 2). Bu koşu taşımayı da eşitledi: rstvec artık 4-baytlı bayraklı CMD53 ile iniyor.

CR4 yürütme hâlâ görünmüyor

Değerler ve taşıma Linux'la aynı olduğu hâlde paylaşımlı bellek boş (SHARED_RAW=0), mailbox ve intstatus sıfır. Yani eksik olan, yazdığımız değerler ya da bu yazmanın taşıması değil.

Kalan iki aday (R140)

(a) firmware staging taşıması — biz CMD52 ile yazıp geri okuyoruz, Linux CMD53 blok yazmalarıyla indiriyor; (b) F1 yazma güvenilirliği — bu koşu kendi el sıkışma yazmamızın tosbmailboxdata (0x18004048) Write32'sinde 0x0020 ile düştüğünü gösterdi.

Doğru çalışanlar

  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, RETRIES=0, NVRAM OK=1 FW_INTACT=1.
  • R136 glom biçimi, R133 zinciri ve R138 hostmail tamamlama korundu; R134/R135 deneyleri imajda yok.
  • 55.546 baytlık raw UART 0444 kapandı; yakalama güçten önce arm edildi (WHOLE BOOT).
  • Bu kayıt tanı kaydıdır; control reply, READY=1, scan, association, DHCP veya Internet kanıtı değildir.

imaj a7d06727d947bdaa1aad452a83eb9ea21bff8156e35378ee4b65e9b8ed438eaa
kanıt evidence/rpi5/radio/attempt-r139-rstvec-cmd53-uart-capture/

R1402026-09-13

Sorulan: "Host hazır" protokol sürümü yazması CR4 bırakılışından hemen sonra yapılırsa (Linux'un brcmf_sdio_firmware_callback konumu) dongle FWREADY'ye geçer mi?

Cevap: GEÇTİ — ilk kez. Yazma bırakılıştan 5 ms sonra indi (WRITE_OK=1, AFTER=0x00040000) ve dongle 30 ms içinde 0x00040008 (sürüm 4 + FWREADY) yazdı; intstatus 0x208000c0 (I_CHIPACTIVE|HMB_HOST_INT|HMB_FRAME_IND) kalktı. Pencere salt-okunur olduğu için el sıkışma cevaplanmadı ve protokol fazında posta kutusu DEVREADY'ye (0x00040002) geri düştü; koşu F1 Read32 0x18004020 veri CRC'siyle (0x0020) kapandı.

Duvar bir zamanlama duvarıymış

R136–R139 aynı değerleri yazıyordu ama bu yazma bırakılıştan saniyeler sonra gidiyordu; Linux'ta 74 µs sonra gidiyor. Yer değişince dongle aynı sırayla cevap verdi: 5 ms'de yazma, 30 ms'de FWREADY.

Cevapsız el sıkışma geri düşüyor

Salt-okunur pencere dongle'ı memnun etmiyor: FWREADY bir süre sonra DEVREADY'ye dönüyor ve denemeler yine hiç kesme görmüyor (CORE_OR=0x00000000). Linux aynı pencerede postayı ACK'liyor (0x18004040 ← 2) ve intstatus'ı write-1-to-clear ediyor.

Kalan duvar iki parçalı

(a) posta kesmesini erken pencerede cevaplamak (R141'in tek değişkeni), (b) F1 0x18004020 okumasındaki veri CRC'si — bu koşuda da koşuyu kapatan hata oldu.

Doğru çalışanlar

  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, RETRIES=0, NVRAM OK=1 FW_INTACT=1.
  • R136 glom biçimi, R133 zinciri, R138 hostmail tamamlama ve R139 CMD53 rstvec korundu; R134/R135 deneyleri imajda yok.
  • Erken pencere HİÇ yazma yapmadı (WRITES=0) — bu bir değişken değil, salt-okunur tanıktı.
  • 57.712 baytlık raw UART 0444 kapandı; yakalama güçten önce arm edildi (WHOLE BOOT).
  • Bu kayıt tanı kaydıdır; control reply, READY=1, scan, association, DHCP veya Internet kanıtı değildir.

imaj 12595cd216f02de34ba7c320360d6abd39aed982c91f41173d46530287cf7471
kanıt evidence/rpi5/radio/attempt-r140-hostready-at-start-uart-capture/

R1412026-09-13

Sorulan: R140'ın salt-okunur penceresinde gelen FWREADY ve host kesmesi Linux ISR'inin yaptığı gibi cevaplanırsa (tosbmailbox ← SMB_INT_ACK, intstatus write-1-to-clear) el sıkışma tamamlanır ve kalıcı olur mu?

Cevap: Cevap İNDİ (ACKS=7 INT_WRITES=2 INT_MASKED=0x200000c0 SETTLED=1 FWREADY_ACKED_MS=25) ama durum KALICI OLMADI: protokol fazında posta kutusu yine 0x00040002'ye düştü ve koşu TRIAL=0'da F1 Read32 0x18004020 veri CRC'siyle (0x0020) kapandı. Arıza makbuzu mekanizmayı gösterdi: HOST_CARD_INT=true (kart DAT1'i sürüyor) ve SDHCI_INT_SIGNAL_ENABLE=0 (kesme servis edilmiyor).

Cevap tasarlandığı gibi çalıştı

El sıkışma oturdu: FWREADY 25 ms'de onaylandı, intstatus 0x200000c0 write-1-to-clear edildi ve pencere erken kapandı (SETTLED=1). R140'ın salt-okunur penceresi artık cevap veriyor.

Dongle durumu yine korumadı

Protokol fazında posta kutusu 0x00040002 (yalnız DEVREADY) ve CHANGES=0; denemeler yine CORE_OR=0x00000000 gördü. Tek kesme onayı el sıkışmayı kalıcı kılmıyor.

Yeni ve doğrudan kanıt: kart DAT1'i sürüyor

SDHCI HOST_CARD_INT=true ve SDHCI_INT_SIGNAL_ENABLE=0; 4 baytlık CMD53 okumaları DAT1 sürülürken veri CRC'siyle düşüyor (0x0020/0x0060). Kartın bu izni bizden: F2 hazırlığında CCCR INT_ENABLE 0x03 → 0x07 yazılıyor, yani master+F1+F2 kesmeleri açık. Yoklamalı tasarımda DAT1'e ihtiyaç yok — R142'nin adayı bu.

Doğru çalışanlar

  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, RETRIES=0, NVRAM OK=1 FW_INTACT=1.
  • R136 glom biçimi, R133 zinciri, R138 hostmail, R139 CMD53 rstvec ve R140 host-hazır konumu korundu; R134/R135 deneyleri imajda yok.
  • 52.965 baytlık raw UART 0444 kapandı; yakalama güçten önce arm edildi (WHOLE BOOT).
  • Bu kayıt tanı kaydıdır; control reply, READY=1, scan, association, DHCP veya Internet kanıtı değildir.

imaj 044266fbe0a4b9b616feca094abab47352bef9c6606e1a69a9e9a090dac5d765
kanıt evidence/rpi5/radio/attempt-r141-mailbox-answer-uart-capture/

R1422026-09-13

Sorulan: Kartın DAT1 kesme hattını sürmesinin izni CCCR INT_ENABLE (F0 0x04) fonksiyon/master bitleri mi? Master biti temiz yazılırsa (0x03→0x02, 0x07→0x06) veri hattı CRC'leri biter mi?

Cevap: Yazma İNDİ (WIFIEN W1=Some(2) W2=Some(6) READBACK=Some(6)) ve koşu ilerledi (TRIALS_RUN=2), ama hipotez ELENDİ: kart DAT1'i yine sürdü (HOST_CARD_INT=true, SDHCI_INT_STATUS=0x101 bit 8) ve koşu yine F1 Read32 0x18004020 veri CRC'siyle kapandı (READ_FAILURES=5).

CCCR fonksiyon bitleri bu silikonda kapı değil

Master bit temizken de kart interrupt hattını sürüyor; SDHCI'nin card-interrupt durum biti (0x101) set kalıyor.

Tanık dinamik

Aynı koşuda HOST_CARD_INT önce false, sonra true okundu — latch'lenmiş bir kalıntı değil, kartın o an hattı sürdüğünü gösteriyor.

Kalan aday: SDIO çekirdeği host kesme maskesi

Bu sürücünün yazdığı tek diğer kesme etkinleştirmesi 0x18004024 (R121'den beri Linux'a benzemek için 0x200000f0). R143 tam onu sınadı.

Doğru çalışanlar

  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, RETRIES=0, NVRAM OK=1 FW_INTACT=1.
  • R136 glom, R133 zinciri, R138 hostmail, R139 CMD53 rstvec, R140 host-hazır yeri ve R141 posta cevabı korundu.
  • 60.507 baytlık raw UART 0444 kapandı; yakalama güçten önce arm edildi (WHOLE BOOT).
  • Bu kayıt tanı kaydıdır; control reply, READY=1, scan, association, DHCP veya Internet kanıtı değildir.

imaj 6de90c05876cf2fd28fa01781c53e96cecb2fde5392407cb10a31c7cee4edc11
kanıt evidence/rpi5/radio/attempt-r142-int-enable-off-uart-capture/

R1432026-09-13

Sorulan: Kartın DAT1'i sürme izni SDIO çekirdeği host kesme maskesi mi? 0x18004024 ← 0x200000f0 yerine 0 yazılırsa hat susar ve F1 okumaları temiz kalır mı?

Cevap: Yazma İNDİ (hostintmask_written: Some(0)) ve koşu yine ilerledi (TRIALS_RUN=3), ama hipotez ELENDİ: maskeyle de kart DAT1'i sürüyor (HOST_CARD_INT=true ×4) ve koşu F1 Read32 0x18004020 veri CRC'siyle kapandı. Posta kutusu protokol fazında hâlâ 0x00040002, REPLIED=0.

Üç kesme-etkinleştirme hipotezi sırayla elendi

R141 posta cevabı (TRIALS_RUN=0), R142 CCCR master biti (2), R143 SDIO çekirdeği maskesi (3): hepsi indi, hiçbiri hattı kapatmadı, hepsi veri CRC'siyle bitti.

DAT1 tanığı dinamik — çakışma teşhisi ayakta

R142'de önce false sonra true okunması bitin latch olmadığını gösteriyor; dongle host cevap vermediği için hattı sürüyor ve 4-bit veri transferlerimizi aralıklı bozuyor.

Kurtarma yolu çalışıyor ama yoklamaya bağlı değil

WIFIREAD_RECOVERY PRIMARY_ERR=0x0020 → APPLIED=1 CLEARED=1 RECOVERY_OK=1 POST_READ_OK=1 POST_VALUE=Some(0): arıza temizlenebiliyor. R144 bu yolu yoklama döngüsüne bağlar; o zaman koşu protokol sorusuyla biter.

Doğru çalışanlar

  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, RETRIES=0, NVRAM OK=1 FW_INTACT=1.
  • Önceki tüm zincir (R136–R142) korundu; R134/R135 deneyleri imajda yok.
  • 66.321 baytlık raw UART 0444 kapandı; yakalama güçten önce arm edildi (WHOLE BOOT).
  • Bu kayıt tanı kaydıdır; Wi-Fi PASS değildir.

imaj 79e05167ce0bf84fbc8d2fdaa2b207f1c08a9f6e6ecc31506be2b91127d2eb80
kanıt evidence/rpi5/radio/attempt-r143-hostintmask-off-uart-capture/

R1442026-09-13

Sorulan: Yoklamadaki aralıklı veri CRC'si (R141–R143'ün üçünü de kapatan hata) turu düşürmesin: taşıma katmanının sınırlı kurtarmasından sonra okuma bir kez yinelenirse koşu protokol sorusuna ulaşır mı?

Cevap: ULAŞTI — bu hattın en ileri noktası. Protokol fazı İLK KEZ dongle'ın kesmelerini gördü (interrupt_status_or=0xc0, frame_ind_seen=1, host_int_seen=1, FRAME_IND=1 HOST_INT=1; R136–R143'te bu alan hep 0x00000000 idi) ve F2 çerçeve okumasını denedi. Yeni duvar F2 okuması: transfer zaman aşımı + veri CRC'si (error_status=0x20, transfer_complete=false, bytes_read=64).

Dongle'ın kesmesi ilk kez görüldü

WIFIFAIL interrupt_status_or=192 (0xc0) = I_HMB_HOST_INT | I_HMB_FRAME_IND ve FRAME_IND=1 HOST_INT=1: dongle veri göndermek istiyor. Bu alan R136–R143 boyunca hep sıfırdı.

F2 okuması denendi ve düştü

ReadFifo function=2 address=0x8000, 64 bayt: command_complete=true, buffer_ready=true, ama transfer_complete=false, bytes_read=64, error_status=0x20, timeout_transfer=true. Duvar artık F2 okuma yolu.

Yoklama hatası artık koşuyu düşürmüyor

WIFIPOLLRETRY RETRIES=0 RETRY_OK=0 RETRY_FAILED=0: bu koşuda R141–R143'ü kapatan hata hiç oluşmadı; koşu F2 okumasına kadar ilerledi.

Doğru çalışanlar

  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, RETRIES=0, NVRAM OK=1 FW_INTACT=1.
  • R140 host-hazır konumu, R141 posta cevabı, R142/R143 kesme-etkinleştirme değişiklikleri ve tüm R136 zinciri korundu.
  • İlk boot non-arrival'dı (CR4 dizisi erken durdu, RSTVEC_C53=0); kural gereği yorumlanmadı ve aynı imaj taze güç çevrimiyle yinelendi.
  • 52.910 baytlık raw UART 0444 kapandı; yakalama güçten önce arm edildi (WHOLE BOOT).
  • Bu kayıt tanı kaydıdır; Wi-Fi PASS değildir.

imaj 81323546eef41f6eff9437e597e5307dad8e8c547988675ef7941486dc09a2f3
kanıt evidence/rpi5/radio/attempt-r144-poll-retry-uart-capture-repeat-01/

R1452026-09-13

Sorulan: R144'ün tek-yeniden-deneme kuralı F2 çerçeve okumalarına da uygulanırsa ilk kez dongle'dan gelen bir çerçeve okunur mu?

Cevap: KISMEN: taşıma artık koşuyu taşıyor (2. boot TRIALS_RUN=8/11, 9 kontrol çerçevesi) ama dongle denemeler boyunca hiç kesme kaldırmadı (CORE_OR=0x00000000, REPLIED=0) ve F2 okuma yoluna hiç çerçeve gelmedi. 1. boot ise F2 yoluna ulaşamadan yoklama okumasında düştü (RETRIES=1 RETRY_FAILED=1).

Taşıma katmanı artık taşıyor

8/11 deneme tamamlandı ve WIFIRECOVER dokuz kez FIFO_OK=1 döndü; R141–R143'te koşuyu kapatan hata artık ölçümü bloke etmiyor.

Dongle susuyor

Her denemede CORE_OR=0x00000000 ve posta kutusu 158 örnek boyunca 0x00040002 (DEVREADY): R140'ın 25 ms'de gördüğü FWREADY (0x00040008) kaybolmuş durumda, dongle bir daha sinyal vermiyor.

Boot'lar arası değişkenlik büyük

Aynı imajın 1. boot'u 1/11 denemede düştü, 2. boot'u 8/11'e çıktı; ölçüm için tek boot yeterli değil.

Doğru çalışanlar

  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, RETRIES=0, NVRAM OK=1 FW_INTACT=1.
  • R136–R144 zinciri korundu (glom biçimi, CMD53 rstvec, host-hazır konumu, posta cevabı, yeniden deneme kuralı).
  • 100.443 baytlık raw UART 0444 kapandı; yakalama güçten önce arm edildi (WHOLE BOOT).
  • Bu kayıt tanı kaydıdır; Wi-Fi PASS değildir.

imaj 167cb2334c20a188c9af717f19c96f3e3b5d235ad049dc7e48f2375f8d163739
kanıt evidence/rpi5/radio/attempt-r145-fifo-retry-uart-capture-repeat-01/

R1462026-09-13

Sorulan: Dongle'ın kendi yayınladığı SDPCM paylaşım alanı (Linux'un brcmf_sdio_readshared yolu: RAM tepesi-4'teki işaretçi + yapının flags/trap/assert/konsol alanları) okunursa firmware'in durumu ne çıkar?

Cevap: Firmware CANLI ve SAĞLIKLI: paylaşım alanı yayınlanmış (PTR=0x00201cc0, PTR_PLAUSIBLE=1, STRUCT_OK=1), W0_FLAGS=0x00000001 (sürüm 1; ASSERT/TRAP/FAIL bitleri yok), konsol adresi W5_CONSOLE=0x0025debc, firmware kimliği W7/W10=0xb677b91b (FWID 01-b677b91b — bizim BRCMFW.BIN ile aynı). Chipid nöbetçisi okuma öncesi/sonrası 0x15264345: kararma yok.

Susma bir çökme değil

Flags alanında ASSERT/ASSERT_BUILT/TRAP/FAIL bitlerinin hiçbiri yok ve trap/assert alanları sıfır: firmware kendini sağlıklı bildiriyor. Paylaşım alanını yayınlaması, protokol katmanına geldiğini gösteriyor.

Firmware kimliği bizim dosyamızla aynı

W7 ve W10 = 0xb677b91b → FWID 01-b677b91b; BRCMFW.BIN'in kuyruğundaki kimlikle birebir. Yanlış blob kuşkusu da böylece kapandı.

Elimizde yeni bir kanal var: firmware konsolu

W5_CONSOLE=0x0025debc RAM aralığımızın içinde; firmware'in kendi log metni orada duruyor ve okunabilir. R147'nin tek işi bu.

Doğru çalışanlar

  • Salt-okunur: WRITES=0 — bu koşuda hiçbir kayıt yazılmadı.
  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, RETRIES=0, NVRAM OK=1 FW_INTACT=1.
  • R136–R145 zinciri korundu; R97'nin kararma uyarısına uyularak okuma koşunun EN SONUNA konuldu ve nöbetçiyle doğrulandı.
  • 67.678 baytlık raw UART 0444 kapandı; yakalama güçten önce arm edildi (WHOLE BOOT).
  • Bu kayıt tanı kaydıdır; Wi-Fi PASS değildir.

imaj 6b7e0c2116e8c6568b9f30b54f4451c125b58ca066141ec09bac8f2da0314b4e
kanıt evidence/rpi5/radio/attempt-r146-shared-witness-uart-capture/

R1472026-09-13

Sorulan: R146'nın bulduğu konsol adresinden (0x0025debc) firmware'in kendi log metni okunabilir mi?

Cevap: OKUNDU. Yapı tutarlı: tampon 0x0025dab4, boy 0x400 (1024 — metnin '1024..' önekiyle birebir), yazma indeksi 0x177 (367 bayt). Metin firmware'in kendi damgalı log biçimini taşıyor ve ilk satırlar WLC başlatması: 'wl0: wlc_channels_commit: no valid channel for "#n" nbands 2 bandlocked 0', 'wl0: Broadcom BCM4345 80…'.

Konsol yapısı ölçüldü

W2=tampon, W3=boy, W4=yazma indeksi; metnin öneki '1024..' boyla birebir eşleşiyor. Ring tampon olduğu için satır sırası doğrusal değil.

Firmware WLAN yığınını kuruyor

'wl0:' satırları WLC attach ve kanal kararlarının çalıştığını gösteriyor; ilk 62 ms'de kanal uyarısı düşüyor.

239 bayt daha var

Bu koşuda ilk 128 bayt okundu; tamponda 367 bayt yazılı. R148 tam logu okuyacak.

Doğru çalışanlar

  • Salt-okunur: WRITES=0.
  • 1. boot non-arrival'dı (CR4 dizisi tamamlanmadı, IOCTL_TERM=0); kural gereği yorumlanmadı ve aynı imaj taze güç çevrimiyle yinelendi.
  • 55.257 baytlık raw UART 0444 kapandı; yakalama güçten önce arm edildi (WHOLE BOOT).
  • Bu kayıt tanı kaydıdır; Wi-Fi PASS değildir.

imaj 9a51d4a3b407a8272bc2a03a73218bf0f6c3fab871d00a6c28c4300ab7e0b147
kanıt evidence/rpi5/radio/attempt-r147-console-witness-uart-capture-repeat-01/

R1482026-09-13

Sorulan: Tam konsol logu (1024 bayt) okunursa firmware çerçevelerimiz hakkında ne yazmış?

Cevap: NEDENİ YAZMIŞ: 'sdpcmd_dpc: Enable' (t=2.919 s) → 'sdpcmd_dpc: Disable' + 'sdpcmd_tx: device disabled' + 'sdpcmd_sendheader: tx submit failed!!' (t=6.022 s) → 'sdpcmd_dpc: Enable'. Yani kontrol çerçevemiz cihaz devre dışıyken gönderildi ve firmware onu düşürdü; cevap bu yüzden yok. Aynı logda 'wl0: wlc_stf_txcore_shmem_write: No clock' ve 'wlc_channels_commit: no valid channel for "#n"' satırları da var.

Dongle nedeni kendi yazdı

sdpcmd_sendheader: tx submit failed!! — çerçevemizin gönderimi tam o anda düştü. Bu, R136'dan beri aranan cevabın doğrudan kanıtı.

Firmware içinde saat yok

wl0: wlc_stf_txcore_shmem_write: No clock — PHY/TX çekirdeğine saat bulunamıyor. Linux bu yüzden CR4 bırakılışından hemen sonra CHIPCLKCSR'yi saveclk|FORCE_HT (0xd2) yapar; bizde 0xd0.

Kanal listesi boş

wlc_channels_commit: no valid channel for "#n" nbands 2 bandlocked 0 — regulatory/CLM yapılandırması boş; ayrıca 'Invalid antennas available in srom' ve 'TCAM: 256 used: 255' satırları var.

Doğru çalışanlar

  • Salt-okunur: WRITES=0; nöbetçi temiz (SENT_RETRIES=0).
  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, NVRAM OK=1 FW_INTACT=1.
  • 60.174 baytlık raw UART 0444 kapandı; yakalama güçten önce arm edildi (WHOLE BOOT).
  • Bu kayıt tanı kaydıdır; Wi-Fi PASS değildir.

imaj f5c772b4892b8da5060463a62786f0a1bcad397b7ecb552c22f95e602a108e69
kanıt evidence/rpi5/radio/attempt-r148-console-full-uart-capture/

R1492026-09-13

Sorulan: Linux'un CR4 bırakılışından hemen sonra yazdığı FORCE_HT biti (CHIPCLKCSR 0xd2, bizde 0xd0) firmware'in R148'de kendi yazdığı 'No clock' şikâyetini giderir mi?

Cevap: HAYIR. Bit indi (BEFORE=0xd0 WROTE=0xd2 AFTER=0xd2, HT_CSR_FIN=0xd2) ve firmware bu boot'ta SDPCM veri yolunu kapatmadı (R148'in 'sdpcmd_dpc: Disable' + 'sdpcmd_sendheader: tx submit failed!!' satırları logda yok) — ama 'wl0: wlc_stf_txcore_shmem_write: No clock' satırı t=55 ms'de aynen duruyor: SDIO/backplane HT saatini zorlamak PHY/TX çekirdeğine saat vermiyor.

Bit indi, etkisi ölçüldü

WIFIFORCEHT BEFORE=0xd0 WROTE=0xd2 WRITE_OK=1 AFTER=0xd2 ve CR4START HT_CSR_FIN=0xd2. Yani Linux'un değeri artık bizde de yazılı.

Firmware'in saat şikâyeti sürüyor

Tam konsol logunda 'wl0: wlc_stf_txcore_shmem_write: No clock' (t=55 ms) değişmedi; buna karşılık bu boot'ta veri yolu kapanmadı (log 375 baytta 'sdpcmd_dpc: Enable' ile bitiyor).

Açıklama bizim dizimizde: D11 reset'te

CR4 başlatırken D11 (PHY/TX) çekirdeğini reset'te bırakıyoruz; R139'un Linux tel izinde D11 için hiç reset-ctl yazması yok, yalnız ioctl 0x07 var. Reset'teki çekirdeğin saati olmaz — R150'nin tek değişkeni bu.

Doğru çalışanlar

  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, NVRAM OK=1 FW_INTACT=1.
  • Salt-okunur tanıklar yine çalıştı: WIFISHAREDCONSOLE_FULL SIZE=1024 IDX=375 READ=1024 PRINTABLE=992 SENT_RETRIES=0 WRITES=0.
  • 55.407 baytlık raw UART 0444 kapandı; yakalama güçten önce arm edildi (WHOLE BOOT).
  • Bu kayıt tanı kaydıdır; Wi-Fi PASS değildir.

imaj 3e348bd06eaa86223c7df9470e531a45f1f803bb762c57b8d7705174cab46d27
kanıt evidence/rpi5/radio/attempt-r149-force-ht-uart-capture/

R1502026-09-13

Sorulan: D11 (PHY/TX) çekirdeğinin reset'ini kaldırmak (Linux'ta D11 için reset-ctl yazması hiç yok) firmware'in 'No clock' şikâyetini giderir mi?

Cevap: GİDERDİ. WIFID11RELEASE RST_BEFORE=0x00000001 → RST_AFTER=0x00000000 RELEASED=1 ve tam konsol logunda 'wl0: wlc_stf_txcore_shmem_write: No clock' satırı artık YOK. Yani D11'i reset'te tutmak firmware'in çekirdek saatini gerçekten engelliyormuş. Kalan imza: ~2,97 s'de bir DPC kapanıyor ve çerçevemizin gönderimi düşüyor.

Firmware'in saat şikâyeti kapandı

R148 ve R149'da t=55 ms'de görünen 'No clock' satırı bu koşuda yok; D11 reset'inin kaldırılması firmware'in PHY/TX saatini bulmasını sağladı.

Yeni kalıp: veri yolu ~2,97 s'de bir kapanıyor

'sdpcmd_dpc: Disable' + 'sdpcmd_tx: device disabled' + 'sdpcmd_sendheader: tx submit failed!!' + 'sdpcmd_dpc: Enable' dört kez yinelendi (6.082, 9.048, 12.014, 14.979) ve TRIALS_RUN=4: çerçevemiz her seferinde kapalı pencerede gönderiliyor.

Zaman çizgileri hizalanmalı

Firmware logu kendi damgalarını taşıyor; host tarafı damgasız. R151 bu yüzden host tarafına monoton ms damgası ekler.

Doğru çalışanlar

  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, NVRAM OK=1 FW_INTACT=1.
  • R149'un FORCE_HT değeri ve tüm önceki zincir korundu (HT_CSR_FIN=0xd2).
  • 76.580 baytlık raw UART 0444 kapandı; yakalama güçten önce arm edildi (WHOLE BOOT).
  • Bu kayıt tanı kaydıdır; Wi-Fi PASS değildir.

imaj 7889fea1c1f8919182fcb96c0abbde04fdca7557ccfe10e391b65e8b406f541d
kanıt evidence/rpi5/radio/attempt-r150-d11-release-uart-capture/

R1512026-09-13

Sorulan: Host olayları CR4 bırakılışına göre damgalanırsa firmware'in kendi damgalı Disable anlarıyla hizalanabilir mi?

Cevap: ALTYAPI KURULDU ama damgalar okunamadı: bütün T_MS alanları 0 çıktı, çünkü T0_MS=2018624513 ham sayacıydı (freq_cached() ilk çağrıda 0). Ölçüm bu yüzden hizalanamadı; R152 kaynağı düzeltti. Aynı koşuda 'No clock' satırı geri gelmişti ve 'tx submit failed' hiç yoktu.

Kaynak hatası makbuzda göründü

T0_MS ham sayac, sonraki çağrılar gerçek ms: saturating_sub her yerde 0 üretti. R152 host_now_ms()'i frekansı kendisi kaydettirecek şekilde düzeltti.

D11 etkisi kararsız

R150'de 'No clock' yoktu, R151'de geri geldi: D11 release'inin firmware'e saat vermesi boot'lar arasında değişiyor.

Veri yolu bu boot'ta kapanmadı

'tx submit failed' 0 kez; koşu yine Read32 0x18004020 ile kapandı (REPLIED=0).

Doğru çalışanlar

  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, NVRAM OK=1 FW_INTACT=1.
  • WIFITIMELINE ve T_MS alanları basıldı (altyapı çalışıyor).
  • 55.720 baytlık raw UART 0444 kapandı; yakalama güçten önce arm edildi (WHOLE BOOT).
  • Bu kayıt tanı kaydıdır; Wi-Fi PASS değildir.

imaj b9b2560f26c6e1208b99a0de2f24c687822a5a2074ac0ef59d266fc2de7d2b27
kanıt evidence/rpi5/radio/attempt-r151-host-timeline-uart-capture/

R1522026-09-13

Sorulan: ms kaynağı düzeltilince host zaman çizgisi firmware'in Disable damgalarıyla hizalanır mı?

Cevap: HİZALANDI ve tetikleyici ortaya çıktı: her 'Disable' + 'tx submit failed!!' olayı bizim bir kontrol çerçevesi gönderimimizden SABİT ~326 ms sonra geliyor (5752↔6095, 8736↔9062, 11703↔12029, 14669↔14996, 17636↔17963 ms). Yani dongle çerçevemizi alıyor, sonra cihaz devre dışı kalıyor ve gönderim düşüyor.

Tetikleyici bizim çerçevemiz

Sabit ~326 ms kayma, firmware saatimin bizim T0'ımıza göre kaymasıdır; her denemede bir Disable ve bir tx submit failed var — tesadüf değil, bizim gönderimimize bağlı.

Kalan çerçeve farkı ölçülü

R136 mühründe Linux'un ilk kontrol çerçevesi seq=0x02, bizimki 0xFF. R136 bunu kapanış notunda açık bırakmıştı; artık tek baytlık bir değişken olarak sınanabilir.

'No clock' bu boot'ta yok

R150 gibi; R151'de vardı. D11 release'inin firmware saatine etkisi boot'lar arasında değişken — kayda geçti.

Doğru çalışanlar

  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, NVRAM OK=1 FW_INTACT=1.
  • Zaman çizgisi altyapısı doğrulandı: T_MS değerleri artan ve gerçek (5702 → 20151 ms).
  • 82.550 baytlık raw UART 0444 kapandı; yakalama güçten önce arm edildi (WHOLE BOOT).
  • Bu kayıt tanı kaydıdır; Wi-Fi PASS değildir.

imaj 0d6349ce99ca3f35fb0ecbae3c774fb5aa7f0f88107cc07194e3e5ec42b4d7df
kanıt evidence/rpi5/radio/attempt-r152-timeline-fix-uart-capture/

R1532026-09-13

Sorulan: İlk kontrol çerçevesinin SDPCM seq baytı 0xFF yerine Linux'un ölçülmüş değerine (küçük/artan; mühürlü decode'da 0x02) çevrilirse firmware'in 'tx submit failed' deseni kaybolur ve cevap gelir mi?

Cevap: HAYIR — hipotez elendi. seq=0 hatta çıktı (TRIAL=0 SEQ=0, TRIAL=1 SEQ=1) ama firmware yine veri yolunu kapatıp gönderimi düşürdü (t=6.106 s'de bir kez daha Disable + tx submit failed!!) ve REPLIED=0 kaldı; TRIALS_RUN=1/11.

Seq baytı tetikleyici değil

R136'dan beri kalan tek ölçülü çerçeve farkı buydu; değiştirildi ve desen sürdü. Böylece çerçevenin bu alanı da elendi.

Kalan aday kredi/pencere

Çerçevemiz TXWIN=21 ile gidiyor; bu bizim başlangıç varsayımımız ve dongle'ın kendi ilan ettiği pencereyi hiç görmedik. Linux'ta bus->tx_max dongle'ın çerçevelerinden öğrenilir.

'No clock' kararsızlığı dört koşuda iki-iki

R150 ve R152'de yok, R151 ve R153'te var. D11 release'inin firmware saatine etkisi boot'a bağlı; kayda geçti ve tek başına değişken yapılmadı.

Doğru çalışanlar

  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, NVRAM OK=1 FW_INTACT=1.
  • Zaman çizgisi ve konsol tanıkları çalışmaya devam etti (T0_MS=196426, konsol T_MS=22845).
  • 71.834 baytlık raw UART 0444 kapandı; yakalama güçten önce arm edildi (WHOLE BOOT).
  • 1. boot non-arrival'dı (RSTVEC_OK=0); kural gereği yorumlanmadı ve aynı imaj taze güç çevrimiyle yinelendi.
  • Bu kayıt tanı kaydıdır; Wi-Fi PASS değildir.

imaj c8a51ce7203b897e56b92e3b7ee0ddd04926da7e188152fcbd2ef83c7ee80b74
kanıt evidence/rpi5/radio/attempt-r153-seq-zero-uart-capture-repeat-01/

R1542026-09-13

Sorulan: Oturumun ilk kontrol çerçevesi Linux'un ölçülmüş preinit çerçevesiyle (SET cur_etheraddr, cmd=263, id=4, len=20) değiştirilirse firmware'in veri yolunu kapatıp gönderimi düşürmesi durur ve cevap gelir mi?

Cevap: Desen DURDU, cevap gelmedi. WIFIPREINIT USED=1 (cmd=263, id=4, SET, 20 bayt) ve konsolda hiç 'Disable' / 'device disabled' / 'tx submit failed!!' satırı yok (R152'de 5, R153'te 1 kez vardı) — ilk olumlu sinyal. Ama REPLIED=0 ve koşu 1. denemede taşıma hatasıyla kapandı; karar için tekrar boot gerekir.

Ölçülen preinit çerçevesi hatta çıktı

WIFITRIAL_RESULT TRIAL=0 REQ_ID=4 CMD=263 FRAMELEN=56 BCDCLEN=20 SEQ=0 — Linux'un mühürlü preinit çerçevesi tel biçimi (R136 glom, dat_offset=20) korunarak gönderildi.

Veri yolu bu boot'ta kapanmadı

Konsolda Disable/tx-submit-failed yok. Bu, R152'de ölçülen 'bizim çerçevemiz veri yolunu kapatıyor' deseninin içerikle ilişkili olduğunu destekliyor.

Tek boot karar için yetmez

Koşu 1. denemede aralıklı Read32 hatasıyla kapandı ve 'No clock' yine var; imajın 2. ve 3. boot'u kuralla bekleniyor.

Doğru çalışanlar

  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, NVRAM OK=1 FW_INTACT=1.
  • Zaman çizgisi (T0_MS, T_MS alanları) ve konsol tanığı çalışmaya devam etti.
  • 56.000 baytlık raw UART 0444 kapandı; yakalama güçten önce arm edildi (WHOLE BOOT).
  • Bu kayıt tanı kaydıdır; Wi-Fi PASS değildir.

imaj 0d930016cab64c745088291621e130fccd82665f6ca9c4915eeff9b78df98024
kanıt evidence/rpi5/radio/attempt-r154-preinit-first-uart-capture/ · attempt-r154-preinit-first-uart-capture-repeat-01/

R1552026-09-13

Sorulan: Okuma-hatası kurtarmalarına (WIFIREAD_RECOVERY, SDHCI hat sıfırlaması içerir) zaman damgası eklenirse dongle'ın Disable'ını çerçeve mi yoksa kendi hat sıfırlamamız mı tetikliyor, ayırt edilebilir mi?

Cevap: Altyapı kuruldu (T_MS damgaları var) ama bu boot'ta Disable hiç olmadı: 'Disable' ve 'tx submit failed' 0, 'No clock' yok, TRIALS_RUN=4/11 ve REPLIED=0. İki kurtarma da CR4 bırakılışının hemen ardında (T_MS=1 ve 0) oluştu; deneme sırasında hiç kurtarma yok — yani soru bu boot'ta sınanamadı.

Damga çalışıyor

WIFIREAD_RECOVERY artık T_MS taşıyor; zaman çizgisi yardımcıları tüm imajlarda derleniyor, sıfır noktası yalnız ilgili özellik açıkken işaretleniyor.

Desen varyansı netleşti

Son beş koşuda Disable sayısı 5/1/0/1/0; 'No clock' varlığı bağımsız değişiyor (R152 ve R155'te yok, R153/R154'te var). İkisi arasında bağ görünmüyor.

Ortak gözlem: cevap yok

Her denemede CORE_OR=0x00000000 ve REPLIED=0 — dongle kontrol çerçevemize karşılık üretmiyor ya da ürettiğini göremiyoruz. Sıradaki adım: Disable'ın görüldüğü boot'larda kurtarma damgalarını hizalamak.

Doğru çalışanlar

  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, NVRAM OK=1 FW_INTACT=1.
  • Zaman çizgisi, konsol ve preinit tanıkları çalışmaya devam etti; 4 deneme tamamlandı.
  • 78.172 baytlık raw UART 0444 kapandı; yakalama güçten önce arm edildi (WHOLE BOOT).
  • Bu kayıt tanı kaydıdır; Wi-Fi PASS değildir.

imaj 4f7b59a7b91eae4b7d4a14e75c91c23e3fc52c3e79f9985473c26463aa8a7abe
kanıt evidence/rpi5/radio/attempt-r155-recovery-timeline-uart-capture/

R1562026-09-13

Sorulan: Aynı R155 imajının tekrar boot'unda kurtarma T_MS'leri firmware'in Disable damgalarıyla hizalanırsa deseni çerçeve mi yoksa kendi hat sıfırlamamız mı tetikliyor, kesinleşir mi?

Cevap: Kesinleşti: deseni ÇERÇEVEMİZ tetikliyor. Kurtarmalar T_MS=0/1 (CR4 bırakılışının hemen ardı), çerçevemiz T_MS=5907 ve 'Disable' + 'tx submit failed!!' 6.239 s (≈ bizim 5913 ms'imiz) — yani olay çerçeveden ~6 ms sonra; kurtarma yolu olaydan ~5,9 s önce.

Kurtarma yolu elendi

SDHCI hat sıfırlaması içeren iki kurtarma da CR4 bırakılışının hemen ardında; Disable ile hiç çakışmıyor.

Tetikleyici çerçevenin kendisi

Disable, çerçevemizden ~6 ms sonra (bizim saatimizde) geliyor; bu, R152'de ölçülen sabit kaymayı koruyor ve içerik/seq denemelerinin (R153/R154) neden bir şeyi değiştirmediğini açıklıyor.

Yeni kanıt: glom pazarlığı

Linux'un preinit sırası glomsuz çerçevelerle başlıyor ve glom ikinci çerçevede (bus:rxglom=1) pazarlık ediliyor; bizim ilk çerçevemiz ise glomlu. R157 ölçülen sırayı ve her çerçevenin kendi ölçülen biçimini uygular.

Doğru çalışanlar

  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, NVRAM OK=1 FW_INTACT=1.
  • Zaman çizgisi ve kurtarma damgaları birlikte çalıştı; hizalama ilk kez tam yapıldı.
  • 64.275 baytlık raw UART 0444 kapandı; yakalama güçten önce arm edildi (WHOLE BOOT).
  • Bu kayıt tanı kaydıdır; Wi-Fi PASS değildir.

imaj 4f7b59a7b91eae4b7d4a14e75c91c23e3fc52c3e79f9985473c26463aa8a7abe
kanıt evidence/rpi5/radio/attempt-r155-recovery-timeline-uart-capture-repeat-01/

R1572026-09-13

Sorulan: Oturumun ilk üç kontrol çerçevesi Linux'un ölçülmüş preinit sırası olursa (iki glomsuz çerçeveyle glom pazarlığı, sonra glomlu cur_etheraddr) dongle veri yolunu kapatmayı bırakır ve cevap gelir mi?

Cevap: Bu boot'ta sınanamadı: WIFIPREINITSEQ SENT=0 — çağrı "istek gönder" dalının içindeydi ve koşu ondan önce F2 yazma hatasıyla (WriteFifo, F2 0x8000, T_MS=3351) kapandı. Çağrı yoklamanın öncesine taşındı, imaj yeniden üretildi; tekrar boot bekliyor.

İlk RX başarısı

WIFIFAIL frames_received=2, frame_ind_seen=1, host_int_seen=1, fifo_reads=3 ve CORE_OR=0x000000c0: dongle host kesmesini kaldırdı ve iki çerçeve aldık — bu hatta ilk kez. Koşu F2 yazma hatasıyla erken kapandı.

Çağrı yeri düzeltildi

Preinit sırası artık taşıma hazır olur olmaz, yoklamanın ve F2 okuma yolunun öncesinde gönderiliyor (Linux'un gönderdiği yer).

Desen bu boot'ta yok

Konsolda Disable ve tx submit failed yok; No clock var. Erken kapanma yüzünden yorum yapılmıyor.

Doğru çalışanlar

  • Firmware/NVRAM PASS: SECTORS_DONE=1191/1191, NVRAM OK=1 FW_INTACT=1.
  • Zaman çizgisi, konsol ve paylaşım tanıkları çalışmaya devam etti.
  • 74.652 baytlık raw UART 0444 kapandı; yakalama güçten önce arm edildi (WHOLE BOOT).
  • Bu kayıt tanı kaydıdır; Wi-Fi PASS değildir.

imaj fccf3ee52e94038d6f521cbf9880f8e3e91425f2c5b0bba9c9f6795f751b408d (düzeltilmiş: 3b3f3a5ae2fa736ccc79f0c03527a447653580cc1d37eaf44820d2e0e2519af0)
kanıt evidence/rpi5/radio/attempt-r157-glom-negotiation-uart-capture/

Siber güvenlik denetimleri — yalnızca Wi-Fi ve Bluetooth yüzeyi

Bu tablodaki maddelerin çoğu 'özellik yok, risk de yok' durumundadır. Bu bir güvenlik başarısı değildir; yalnızca saldırı yüzeyinin henüz açılmadığını söyler. Gerçek güvenlik iddiaları ancak radyo çalışır duruma geldiğinde anlam kazanır ve o zaman bu tablo yeniden yazılmalıdır.

RF-01

Tescilli firmware imaja gömülmedi

Kodla zorlanıyor
Tehdit
609 KB'lık kapalı bir ikiliyi çekirdek imajına gömmek, denetlenemeyen kodu güvenilir imajın içine taşır ve imaj imzasını anlamsızlaştırır.
Bulgu
Kurulan her radyo imajında firmware imzası (bcm94345wlpagb) sıfır kez geçer; make verify-rpi5-wifi-firmware bunu her kurulumda tarar. Bayt sayısı her derlemede değişir, kimlik kanıtı o sayı değil.
Yöntem
Kurulan .img üzerinde dize taraması, artı sürücü kaynağında include_bytes! yasağı.
Kapı
make verify-rpi5-wifi-firmware · rpi5_radio_source
RF-02

Blob kimliği pinli, sessizce değiştirilemez

Kodla zorlanıyor
Tehdit
Teslimat yolu SD kart olduğu için kartı eline geçiren biri firmware'i değiştirebilir. Değiştirilmiş firmware ayrı bir işlemcide, bizim denetlemediğimiz kodu çalıştırır.
Bulgu
Üç dosyanın da SHA256'sı depoda pinli; make copy-rpi5-wifi-firmware kopyaladıktan sonra karttaki BRCMFW.BIN'in imzasını yeniden doğruluyor. DİKKAT — bu savunma yalnızca geliştirici makinesindedir: cihaz üstünde bütünlük ya da boyut kontrolü YOKTUR. firmware_size_expected() saf bir const fn'dir ve tek çağıranı bir makbuz alanıdır (main.rs:2962 → ASELSAN/FWREAD EXPECTED=); hiçbir dallanma ona bakmaz, yani karttaki dosya kaç bayt olursa olsun TCM'e yazılır.
Yöntem
SHA256SUMS + kopyalama sonrası yeniden doğrulama (host tarafı). firmware_size_expected() yalnızca raporlar, engellemez.
Kapı
make copy-rpi5-wifi-firmware · rpi5_radio_source
RF-03

Firmware denetlenemez ve ayrı bir işlemcide koşacak

Kabul edilmiş risk
Tehdit
Blob 609 KB kapalı kaynaktır. Kendi ARM çekirdeğinde koşar, kendi RAM'ine sahiptir ve SDIO üzerinden ana işlemciyle konuşur. Sistemdeki en büyük güvenilmeyen bileşen budur ve kaynak incelemesi mümkün değildir.
Bulgu
Risk kaldırılamaz, yalnızca sınırlanabilir. R58 itibarıyla firmware ve NVRAM TCM'e yüklendi ama çip ÇALIŞTIRILMADI; CLM aktarılmadı ve çipin ARM çekirdeği başlatılmadı. Çalıştırıldığında da ana işlemcinin belleğine doğrudan erişimi olmayacak — SDIO bir mesaj arayüzüdür, paylaşımlı bellek değildir.
Yöntem
Statik gerçek: dosya kapalı kaynaktır. Azaltma, ne zaman ve neyle konuştuğunun sınırlanmasıdır.
Kapı
Kabul edilmiş, belgelenmiş risk. firmware/wifi/README.md
RF-04

Hiçbir kimlik bilgisi saklanmıyor

Özellik yok, risk de yok
Tehdit
Wi-Fi parolaları klasik bir sızıntı hedefidir: düz metin saklanır, belleğe düşer, çekirdek dökümünde görünür.
Bulgu
Kayıtlı ağ deposunda parola alanı YOK. SavedNetwork yalnızca ad, güvenlik tipi ve otomatik-katıl bayrağı tutuyor. Sızacak kimlik bilgisi bulunmuyor çünkü hiç girilmiyor.
Yöntem
kernel/src/ui/ios_home.rs · SavedNetwork alan listesi.
Kapı
rpi5_ios_home
RF-05

Komut yüzeyi tam olarak sayılı

Kodla zorlanıyor
Tehdit
Bir SDIO sürücüsünün gönderebileceği her komut bir yetenektir. Sessizce eklenen bir komut indeksi, sözleşmeyi kimse fark etmeden genişletir.
Bulgu
Gönderilen indeksler tam olarak 0, 3, 5, 7, 52 ve 53. CMD53 okuma R16'da açıldı; CMD53 YAZMA yolu Kapı 2a'da BİLEREK açıldı. cmd53_write'in yedi çağrı sitesi ve altı sahibi var: write_probe (iki atıl CR4 RAM dönüş yazması), write_diag, backplane_write32_cmd53, WifiSdioBus::write32, WifiSdioBus::write_fifo ve pmu_res_reload. write_probe/write_diag atıl CR4 RAM'ine (0x199000) yazar; pmu_res_reload ChipCommon PMUControl'e (0x1800_0600) yazar ve R86'da C53_ERR=0x0020 ile düştü. Wrapper/FIFO sahipleri kaynakta mevcut olsa da çalıştırma kanıtı ayrı tutulur. Firmware staging yolu R41/R42 sonrası cmd52 + verify ile yalnızca TCM'e yazar. Firmware imaja gömülü DEĞİLDİR; ama R55'ten beri tam 609 KB TCM'e yazılıp doğrulanıyor (SECTORS_DONE=1191, WORDS_V=152448, OK=1) ve R58'den beri NVRAM de yükleniyor — 42 mühürlü paket. Çalıştırılmadı: CR4 EXECUTED=0.
Yöntem
Kaynak testi: cmd53_arg(true) yalnızca cmd53_write_inner gövdesinde (R123 sarmalayıcısı inner'a taşır; cmd53_write yalnız sayar), veri portuna (0x20) yazma yalnızca cmd53_write_inner içinde, write_probe'un hedefi CR4_RAM_BASE bölgesi ve asla ChipCommon değil; stage_to_tcm yalnızca rambase/TCM'e yazar ve verify-readback ister. include_bytes! ve download_firmware hâlâ yok. NOT: mevcut kapı testi write_probe'u pinliyor, cmd53_write'in çağıran KÜMESİNİ değil — pmu_res_reload bu yüzden kapının dışında kaldı.
Kapı
rpi5_radio_source · the_write_probe_targets_only_inert_ram_never_chipcommon
RF-06

BT_ON hattı kör yazılmıyor

Kodla zorlanıyor
Tehdit
Bluetooth'u besleyen GPIO bankası aynı zamanda 2712_BOOT_CS_N, PCIE_SDA/SCL, PWR_GPIO, WL_ON ve WiFi SDIO hatlarını taşır. Oku-değiştir-yaz sırasında çöp bir okuma geri yazılırsa bankadaki HER hat yeniden programlanır.
Bulgu
Sürücü tekdüze DATA desenlerinde (0x00000000 ya da 0xFFFFFFFF) yazmayı tamamen reddediyor. Makbuz kaç bitin değiştiğini ve komşu ON hattına dokunulup dokunulmadığını ayrı ayrı bildiriyor. R1 koşusu kapının İLK HALİNİN fazla katı olduğunu gösterdi: IODIR=0xffffffff'i ölü pencere sayıp meşru bir işlemi engelledi ve Bluetooth çipi hiç beslenmedi. Kapı, canlılığı yalnızca DATA'dan okuyacak şekilde düzeltildi ve cihazdan okunan gerçek çiftin kabul edilmesi gerektiğini pinleyen bir regresyon testi eklendi.
Yöntem
gpio_write_allowed() kapısı; kaynak testi kapının ilk store'dan ÖNCE geldiğini kanıtlıyor. R1 regresyonu ayrıca pinli.
Kapı
rpi5_radio_source · the_bt_on_line_is_one_named_bit…
RF-07

Varsayılan telefon imajı radyoları haritalamıyor

Kodla zorlanıyor
Tehdit
Radyo sayfaları üretim imajında haritalıysa, radyo koduna hiç niyet edilmeden ulaşılabilir.
Bulgu
rpi5-ios-home-demo profilinde wifi_claim() ve bluetooth_claim() NeverMapped döner. Radyo sayfaları yalnızca opt-in rpi5-radio-inventory profilinde haritalanır.
Yöntem
Derleme zamanı özellik kapısı + kaynak testi.
Kapı
rpi5_radio_source · default_images_never_map_the_radios
RF-08

Ağ aracısı fail-closed

Kodla zorlanıyor
Tehdit
Bir akış açma isteği sessizce başarılı olursa, üst katmanlar var olmayan bir ağa güvenir.
Bulgu
open_flow() her radyo türü için hata döner: Wi-Fi ve Bluetooth RadioSilent, Ethernet BarUnmapped, hücresel CellularAbsent. Trafik sayacı sıfır.
Yöntem
kernel/src/driver/rpi5_radio.rs; her dönüş yolu testte sabitlenmiş.
Kapı
rpi5_radio_source · the_broker_is_silent_and_traffic_is_zero
RF-09

Regülasyon tablosu yüklenmedi — ve yayın da yok

Özellik yok, risk de yok
Tehdit
CLM blob'u çipin hangi kanallarda ve hangi güçte YAYIN yapabileceğini söyler. Yanlış ya da eksik CLM ile çalışan bir radyo, bulunduğu ülkede yasa dışı kanallarda yayın yapabilir.
Bulgu
Bugün hiçbir yayın yok — ama gerekçe dar bir marja dayanıyor. Tam firmware ve NVRAM CR4 TCM'e YÜKLÜ ve doğrulanmış (R58'den beri 30 mühürlü koşu). CR4 start her radyo boot'unda DENENİYOR (main.rs:2894 cr4_start) ve yazmalar iniyor (RSTVEC_OK=1, WRITE_OK=1). Yayın olmamasının tek fiili nedeni çekirdeğin YÜRÜTMEMESİ (MBOX=0, EXECUTED=0). Gerçekten yüklenmeyen tek şey CLM'dir: dosya kartta duruyor, TCM'e hiç aktarılmıyor. Yayın kapısı açılmadan önce CLM'in yüklendiğinin doğrulanması bir ÖN KOŞUL olarak kaydedildi ve CR4 yürütmeye başladığı an bu satır YENİDEN YAZILMALIDIR.
Yöntem
R89–R93 cihaz koşuları + kaynak sözleşmeleri; yükleme var, yürütme yok, CLM aktarımı hiç yok.
Kapı
WIFI-A3 açık · CLM aktarımı yok · CR4 EXECUTED=0
RF-10

Bluetooth eşleşme ve bağlantı anahtarı yok

Özellik yok, risk de yok
Tehdit
Eşleşmiş cihazlar ve bağlantı anahtarları (link key) kalıcı sırlardır; sızarlarsa saldırgan güvenilir bir cihaz gibi davranabilir.
Bulgu
Eşleşme hiç uygulanmadı. Sürücüde LinkKey, BdAddr ve eşleşme fonksiyonu adı bile geçmiyor — kaynak testi bu adları yasaklıyor. Gönderilen tek HCI komutu Reset.
Yöntem
Kaynak testinde yasaklı belirteç listesi.
Kapı
rpi5_radio_source · only_the_two_radio_buses_may_write…
RF-11

Arayüz uydurma ağ verisi göstermiyor

Kodla zorlanıyor
Tehdit
Ekranda gerçek görünen sahte veri, en sinsi güvenlik hatasıdır: kullanıcı var olmayan bir ağa bağlandığını sanır ve güvenlik kararlarını ona göre verir.
Bulgu
Çekirdek kaynağında tek bir uydurma SSID yok. local://wifi sayfası ölçülmemişken 'ölçülmedi' yazıyor ve 0x4345 ya da BCM43455 üretmiyor; ölçüldüğünde gerçek makbuzu basıyor.
Yöntem
Test önce makbuzu siliyor ve sayfanın kimlik uydurmadığını kanıtlıyor, sonra ölçüm yayınlayıp gerçek değerleri gösterdiğini doğruluyor.
Kapı
rpi5_ios_home_browser · local_wifi_page_is_measured_facts_not_invented
RF-12

Hava arayüzünde saldırı yüzeyi bugün sıfır

Özellik yok, risk de yok
Tehdit
Çalışan bir Wi-Fi/Bluetooth yığını, kimlik doğrulamasından önce paket ayrıştıran kodla saldırıya açıktır: yönetim çerçeveleri, beacon'lar, HCI olayları.
Bulgu
Radyoların ikisi de çalışma durumuna hiç geçmiyor. Wi-Fi firmware'siz yayın yapamaz ve alamaz; Bluetooth yalnızca tek bir Reset gönderip cevabını okuyor. Ayrıştırılan tek hava verisi YOK.
Yöntem
Statik: alma yolu yok. Bu, güvenlik mühendisliği değil, özelliğin yokluğudur ve öyle sayılmalıdır.
Kapı
WIFI-A4 ve BT keşif kapısı açık

Sıradaki işlem

R58 AselsanOS firmware indirmeyi GÜVENİLİR kıldı ve NVRAM'i yükledi; o günden beri 119 mühürlü koşuda tekrarlandı, fakat READY/REPLIED sıfır kaldı; R106/R107/R111/R113'te istek uzunluğu doğruydu, iki header-only RX frame görüldü fakat kontrol cevabı gelmeden ControlTimeout oluştu; R123 sayımı CMD53 yazmalarını temiz ve pencere uyuşmazlığını sıfır ölçtü, F2 watermark 0x08 icra edildi, terminal yine ControlTimeout.R75 Linux kontrolü bu sınırı daralttı: aynı kartta brcmfmac aynı CHIPID ve aynı firmware ailesiyle firmware preinit'i tamamladı, wlan0 ve hci0 oluştu. Mühürlü son AselsanOS koşusu R164: firmware yine OK=1, kontrol çerçevesi gitti, cevap gelmedi. R129–R134 zinciri yeniden kurma, IO_ABORT, F2 yaşam döngüsü, HOST_INT ack, block-size ve send-sınırı host DATA reset'ini tek tek eledi; R135 üçüncü boot'unda yeniden kurulan ikinci yazmayı 64 bayt byte-mode gönderdi ve aynı 0x0020 ile düştü (BYTES_READ=64) — byte-count şekli de elendi. R136 tel biçimini Linux'un ölçülmüş glom düzenine çekti ve taşıma duvarını kırdı (ikinci yazma kabul, TRIALS_RUN=2); cevap yine gelmedi, sınır artık firmware'in çerçeveyi işlememesi. R137 taşımayı dört çerçeveye çıkardı ve mailbox tanığını ekledi: dongle DEVREADY diyor ama FWREADY (protokol aktivitesi için hazır) hiç gelmiyor. R138 el sıkışmayı her okumada tamamladı ve bu adayı da eledi; üç kanıt tek okumada birleşiyor: dosya TCM'e yükleniyor ama STARTED=0, dongle DEVREADY diyor ama FWREADY demiyor, host tarafı F1 hatalarıyla kırılgan. Sıradaki işlem R165 (F1 okuma yolu / CommandDeadline): R164 — netboot altyapısı — KOŞTU ve amacına ulaştı: çekirdek ve Wi-Fi payload'ı ağdan geldi (kart hiç kullanılmadı), `FWPAYLOAD FW SRC=INITRAMFS BYTES=609309 SHA256=d608f866…36c3 VERIFIED=1` (SD ile aynı imza), `FWSTAGE OK=1`, `NVRAM OK=1 FW_INTACT=1`, `CR4START RSTVEC_OK=1` ve `WIFIPREINITSEQ SENT=3`. Süpürme SD boot ile aynı ilk-deneme davranışını verdi (`TRIALS_RUN=1/11`, `REPLIED=0`); ikinci deneme `Session(CommandDeadline(Mac))` ile kapandı ve R163'te ölçülen F1 `INTSTATUS` okuması duvarının kardeşidir. R165'in tek değişkeni bu yol: taşımanın çerçeve gönderiminden sonra son teslim tarihini aşması — sınırlı okuma kurtarması/zaman bütçesi ile karşılanacak; çerçeve baytları, geometri, kabul kuralı ve kimlik devamlılığı değişmeyecek. Ayrıca hands-free hattı donanımda doğrulandı: `WIFIAUTORESET ARMED=1`, netboot ile koşular kart çıkarılmadan yinelenebiliyor; UART 'R' resetinin kartı geri getirmediği ölçüldü (röle önerilir). Rastgele CR4/saat register denemesi yok; ürün ağı paralelde LTE/UART-AT ve Ethernet/RP1 GEM hattından açılır.