ASELSANMicrokernel
S51 · SOURCE-BOUND GATE EVIDENCE

RPi5 G8c gerçek UART10 kaydında CPU1 yerel task ve BOOT8C fiziksel PASS verdi

Operations --test hedefi → focused test içindeki include_str!/#[path] bağı → kaynak kesiti Bu sayfa yalnız S51 kapısına aittir; komşu kapıların kaynakları bu kabulün içine katılmaz.

S51Focused kod testiOperations id exactsource SHA exacttest target exact

operation: rpi5-g8c-physical-boot8c-pass

uygulama/model · focused test · Operations · 3 exact excerpt

sequence-bound=true · implementation-bound=false
01 · Testin bağlı olduğu uygulama/model kodu

Kapının yürüttüğü gerçek kaynak

tam Rust öğesiL681–L685
kernel/src/rpi5_g8c.rs::rpi5_g8d_existing_task_stack_canary_intact

#[inline]
pub(crate) unsafe fn rpi5_g8d_existing_task_stack_canary_intact() -> bool {
    stack_canary_intact()
}
snippet sha256: 4e2d1f5f06f3file sha256: 0eca06bc35b3
02 · Doğrulayan test kodu

Operations komutuna bağlı focused test

tam Rust öğesiL146–L185
simulation/tests/rpi5_g8c_source.rs::cpu1_dispatch_validates_registers_stack_restore_and_local_idle

#[test]
fn cpu1_dispatch_validates_registers_stack_restore_and_local_idle() {
    let secondary = G8C
        .split("pub extern \"C\" fn rpi5_g8c_secondary_run")
        .nth(1)
        .expect("G8c secondary")
        .split("/// CPU0 side")
        .next()
        .expect("bounded G8c secondary");
    for contract in [
        "rpi5_g8b_prerequisite_complete",
        "read_mpidr()",
        "current_el()",
        "read_tpidr()",
        "read_daif()",
        "timer::read_control()",
        "read_cpacr()",
        "get_kernel_stack_top_for_cpu",
        "stack_canary_intact()",
        "rpi5_g8c_call_on_stack",
        "task_return != TASK_RETURN",
        "scheduler_sp_after != scheduler_sp_before",
        "STAGE_TASK_RETURNED",
        "STAGE_PARKED",
        "asm!(\"wfe\"",
    ] {
        assert!(secondary.contains(contract), "missing {contract}");
    }
    for forbidden in [
        "kprintln!",
        "DAIFClr",
        "timer::init",
        "gic::",
        "task::scheduler",
        "spawn_kernel_task",
    ] {
        assert!(!secondary.contains(forbidden), "forbidden {forbidden}");
    }
}
snippet sha256: cd10908638eefile sha256: 987f44d02907
03 · Kapı kimlik kaydı

Operations sıra, kimlik ve başlık bağı

tam Operations kaydıL32442–L32550
website/src/lib/operations.ts::rpi5-g8c-physical-boot8c-pass
  {
    id: "rpi5-g8c-physical-boot8c-pass",
    date: "2026-08-21",
    sequence: 51,
    status: "passed",
    title:
      "RPi5 G8c gerçek UART10 kaydında CPU1 yerel task ve BOOT8C fiziksel PASS verdi",
    summary:
      "Sıra 50'de exact karta formatsız yazılan 255168 bayt / 2950ca3c…c8538 G8c paketi gerçek Raspberry Pi 5'te fail-closed capture zinciriyle sınandı. İlk capture kullanıcı güç vermeden önce 900 saniyelik güvenlik zaman aşımına ulaştı; tek NUL içeren 1 baytlık immutable raw reddedildi ve daha sonra yapılan güç açılışı kanıta katılmadı. Pi tamamen kapatıldıktan sonra aynı /dev/cu.usbmodem214402 aygıtında same-descriptor 115200 8N1 raw ve TCIFLUSH ile arm edilen ikinci capture değişmemiş 13408 bayt / 04158260…e0db olarak donduruldu. Strict G8c validator ve bağımsız byte/sıra/timer audit'i doğrudan bu raw üzerinde PASS verdi: CPU1-pinned tek statik EL1 task gerçek 64 KiB stack'te RUNS=1 ve PROGRESS=3 ile çalıştı; CANARY/STACK_RESTORE OK, timer OFF ve IRQ maskeli local-idle dönüşü ardından ilişkili SEC8 ile BOOT8C 701→800 fiziksel olarak kapandı.",
    evidence: [
      "Fiziksel artefakt sıra 50'de exact 62,549,655,552 bayt TISD64G Secure Digital/FAT32 karta format atmadan yazılan 255168 bayt / 2950ca3c1b0238e7e26f3f4b6c2cfa44cd88870a01596e5dc3dba2d39c1c8538 G8c imajıdır; kart manifesti 3/3, dört cmp, sync/eject geçti.",
      "Capture /dev/cu.usbmodem214402 üzerinde tek açık descriptor ile effective 115200/115200, 8N1 raw, parity/flow-control kapalı ve input_flushed=TCIFLUSH olarak capture_armed=YES verdi; güç yalnız bundan sonra açıldı.",
      "İlk arm penceresi güç verilmeden önce timeout oldu. /var/folders/lm/x3tmtzs943x9tbzkpv7gf8hr0000gn/T/aselsanos-g8c-uart10.yquzQ4DvJL/uart10.raw exact 1 bayt / 6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d, tek 0x00 ve mode 0444 olarak donduruldu; terminal_seen=false ve exit=3 olduğu için reddedildi.",
      "Pi tamamen kapatıldıktan sonra ikinci capture güç öncesinde yeniden arm edildi; terminal BOOT8C marker'ı byte 13050'de görüldü ve üç saniyelik grace sonrasında capture kapandı.",
      "Kabul edilen immutable raw /var/folders/lm/x3tmtzs943x9tbzkpv7gf8hr0000gn/T/aselsanos-g8c-uart10.yquzQ4DvJL/uart10-attempt2.raw exact 13408 bayt / 04158260078e3023e8ac2cacaf401a34613569ad40b7dc63257a178c0cc4e0db ve mode -r--r--r-- olarak donduruldu.",
      "Accepted raw leading/total NUL=2/2, CR/LF/CRLF=235/235/235, bare CR/LF=0/0, trailing CRLF=yes, NUL sonrası UTF-8 ve forbidden control byte=0 verdi.",
      "Strict verify_rpi5_g8c_log değişmemiş raw üzerinde doğrudan ‘G8c PASS: cpu=1 runs=1 progress=3 task_tick=701 stack_sp=0xd0000 timer_delta=99’ verdi.",
      "Aynı boot G8b prerequisite'ini yeniden geçti: BOOT8B BASE_TICKS=601 TICKS=700 sonrasında G8C0 START_TICKS=701 ile handoff 1 tick oldu.",
      "G8C0 exact CPU=0 TARGET=CPU1 MPIDR=0x100 POLICY=PINNED_LOCAL TASKS=1 RUNQUEUE=STATIC1 STACK=STATIC64K IRQ=MASKED TIMER=OFF FP=TRAP MIGRATION/IPI/TLB_SHOOTDOWN/CPU2_3=OFF START_TICKS=701 verdi.",
      "G8C1 exact CPU=1 MPIDR=0x100 TASK=PINNED0 RUNS=1 PROGRESS=3 STACK_SP=0xd0000 CANARY=OK STACK_RESTORE=OK RETURN=LOCAL_IDLE IRQ=MASKED TIMER=OFF EL=1 TPIDR=1 TICK=701 verdi.",
      "G8C1 ile BOOT8C arasında [SEC 8] ticks=800 drift=+0 µs örneği görüldü. BOOT8C exact SCHED=LOCAL CPU1_TASK=1 RUNS=1 PROGRESS=3 STACK=STATIC64K CANARY/STACK_RESTORE/RETURN=OK, IRQ=MASKED, TIMER/IPI/MIGRATION/TLB_SHOOTDOWN/CPU2_3=OFF, SCOPE=CPU1_LOCAL_TASK_ONLY, BASE_TICKS=701 TICKS=800 verdi.",
      "Aynı boot G8b timer yeniden ölçümü START_COUNT=383998504, DEADLINE=386698504 ve FIRED_COUNT=386698528 verdi: programmed delta=2700000, fired delta=2700024, deadline lateness=24 count.",
      "Bağımsız audit BOOT7D<G8S0<G8S1<BOOT8<G8B0<G8B1<BOOT8B<G8C0<G8C1<SEC8<BOOT8C exact-once sırasını; SEC1–SEC11 gap/mismatch=0, drift +0 µs ve forbidden/unknown G8c marker=0 sonuçlarını doğruladı.",
      "G8c kaynak/izolasyon testleri 9/9 ve strict UART/adversarial testleri 6/6 olmak üzere hedef toplamı fiziksel doğrulama sonrasında yeniden 15/15 PASS verdi.",
      "Fiziksel kabul ve dar kapsam docs/M8.1-RPi5-G8c-Physical-UART-Proof.md içinde donduruldu.",
    ],
    commands: [
      "attempt 1 same-FD termios UART10 capture · timeout before power · rejected",
      "power off · attempt 2 same-FD termios UART10 capture · 115200 8N1 raw · TCIFLUSH",
      "stat + shasum -a 256 immutable attempt2 uart10.raw",
      "cargo run -q -p aselsan_microkernel_simulation --example verify_rpi5_g8c_log -- <attempt2 raw>",
      "independent exact-once/order/SEC/control-byte audit + G8c targeted tests",
    ],
    terminalSessionsNote:
      "Bu oturumlar 21 Ağustos 2026'da gerçek Raspberry Pi 5 ve aynı Debug Probe UART10 aygıtında alınan immutable capture'ların gerçek seçili yanıtlarıdır. İlk timeout kaydı reddedilmiştir; fiziksel PASS yalnız ikinci temiz güç döngüsündeki değişmemiş raw dosyaya dayanır.",
    terminalSessions: [
      {
        id: "g8c-uart-timeout-rejected",
        title: "Güç öncesi zaman aşımına ulaşan ilk capture · reddedildi",
        commandLines: [
          "same-FD termios UART10 capture attempt 1 · 115200 8N1 raw · TCIFLUSH",
        ],
        outputLines: [
          "capture_armed=YES",
          "capture_timeout=YES elapsed_seconds=900",
          "capture_closed=true terminal_seen=false exact_bytes=1 mode=0444",
          "sha256=6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d · content=00",
          "result=REJECTED · no boot evidence",
        ],
        exitCode: 3,
        outputMode: "complete",
      },
      {
        id: "g8c-uart-accepted-capture",
        title: "İkinci temiz güç döngüsü · same-descriptor immutable UART10",
        commandLines: [
          "power off",
          "same-FD termios UART10 capture attempt 2 · 115200 8N1 raw · TCIFLUSH",
          "power on only after capture_armed=YES",
        ],
        outputLines: [
          "device=/dev/cu.usbmodem214402 · same_descriptor=true",
          "effective_baud_115200=true ispeed=115200 ospeed=115200",
          "format=8N1 raw=true flow_control=false · input_flushed=true method=TCIFLUSH",
          "capture_armed=YES",
          "terminal_marker_seen=ASELSAN/BOOT8C bytes=13050",
          "terminal_grace_complete=true",
          "capture_closed=true terminal_seen=true exact_bytes=13408 mode=0444",
        ],
        exitCode: 0,
        outputMode: "complete",
      },
      {
        id: "g8c-uart-strict-validator",
        title: "Değişmemiş accepted raw üzerinde strict G8c validator",
        commandLines: [
          "cargo run -q -p aselsan_microkernel_simulation --example verify_rpi5_g8c_log -- <immutable-raw>",
        ],
        outputLines: [
          "G8c PASS: cpu=1 runs=1 progress=3 task_tick=701 stack_sp=0xd0000 timer_delta=99",
        ],
        exitCode: 0,
        outputMode: "complete",
      },
      {
        id: "g8c-uart-independent-audit",
        title: "Immutable byte, marker sırası, SEC ve hedef-test auditi",
        commandLines: [
          "stat + shasum + control-byte/CRLF audit",
          "exact-once marker/order + SEC1–SEC11 audit",
          "cargo test -q -p aselsan_microkernel_simulation --test rpi5_g8c_source --test rpi5_g8c_uart",
        ],
        outputLines: [
          "bytes=13408 · sha256=04158260078e3023e8ac2cacaf401a34613569ad40b7dc63257a178c0cc4e0db · mode=0444",
          "leading/total NUL=2/2 · CR/LF/CRLF=235/235/235 · bare=0/0 · UTF-8 PASS · forbidden control=0",
          "BOOT8B<G8C0<G8C1<SEC8<BOOT8C · exact-once PASS",
          "SEC1–SEC11 contiguous · ticks=second×100 · drift=+0 µs",
          "rpi5_g8c_source 9/9 · rpi5_g8c_uart 6/6 · total 15/15 PASS",
        ],
        exitCode: 0,
        outputMode: "complete",
      },
    ],
    limitations: [
      "Bu fiziksel PASS tek temiz boot, tek CPU1-pinned statik EL1 task, tek çalışma ve kısa 99-tick tamamlama smoke'udur; genel SMP scheduler PASS'i değildir.",
      "İkinci task, fairness/load balancing, migration, reschedule IPI/SGI, TLB shootdown, ASID/VMID koordinasyonu, CPU2/CPU3, hotplug, EL0-on-CPU1 ve uzun soak kanıtlanmaz.",
      "G8d ayrı kapıdır: yalnız tek CPU0→CPU1 SGI/reschedule, CPU1 exact-once acknowledge/EOI ve sabit yerel task wake kanıtlanmalıdır.",
    ],
  },
snippet sha256: 1109bf3d8985file sha256: 9726dbf00f84
Focused test komutu
cargo test -q -p aselsan_microkernel_simulation --test rpi5_g8c_source --test rpi5_g8c_uart
Registry schema v5 · generator website/scripts/generate-code-gates.mjs · Tam SHA-256: 3050638b71a684d8f8f947a8a6faa237a17fa8db5dc0db04fb207b668b462af9