ASELSANMicrokernel
S72 · SOURCE-BOUND GATE EVIDENCE

G8f quiescent handoff sözleşmesi yeşil; runtime intentional RED

Operations --test hedefi → simulation public mod g8e_contract bağı → kaynak kesiti Bu sayfa yalnız S72 kapısına aittir; komşu kapıların kaynakları bu kabulün içine katılmaz.

S72Focused kod testiOperations id exactsource SHA exacttest target exact

operation: rpi5-g8f-contract-source-tdd-red

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 öğesiL45–L93
kernel/src/g8e_contract.rs::MAX_G8D_HANDOFF_TICKS
pub const TASK_STACK_BYTES: usize = crate::g8d_contract::TASK_STACK_BYTES;
pub const TASK_ARGUMENT: u64 = 0x4738_4557_414b_4532; // "G8EWAKE2"
pub const TASK_RETURN: u64 = 0x4738_4552_4554_0002; // "G8ERET" + 2

pub const MAX_G8D_HANDOFF_TICKS: u64 = 5;
pub const MIN_INTER_WAKE_TICKS: u64 = 1;
pub const MAX_INTER_WAKE_TICKS: u64 = 105;
pub const MAX_STAGE_WAIT_TICKS: u64 = 100;
pub const MIN_PRIMARY_PROOF_TICKS: u64 = 10;

pub const STAGE_IDLE: u64 = 0;
pub const STAGE_RELEASE: u64 = 1;
pub const STAGE_REARM_READY: u64 = 2;
pub const STAGE_ARMED: u64 = 3;
pub const STAGE_IRQ_HANDLED: u64 = 4;
pub const STAGE_TASK_DISPATCHED: u64 = 5;
pub const STAGE_TASK_ENTERED: u64 = 6;
pub const STAGE_TASK_RETURNED: u64 = 7;
pub const STAGE_QUIESCENT: u64 = 8;
pub const STAGE_PARKED: u64 = 9;
pub const STAGE_ERROR: u64 = u64::MAX;

pub const SPSR_MODE_MASK: u64 = crate::g8d_contract::SPSR_MODE_MASK;
pub const SPSR_EL1H: u64 = crate::g8d_contract::SPSR_EL1H;
pub const DAIF_IRQ_MASK: u64 = crate::g8d_contract::DAIF_IRQ_MASK;
pub const CPACR_FPEN_MASK: u64 = crate::g8d_contract::CPACR_FPEN_MASK;
pub const GICC_CTLR_EOIMODE_NS_MASK: u64 = 1 << 9;

const _: () = assert!(SOURCE_CPU_INDEX == 0);
const _: () = assert!(TARGET_CPU_INDEX == 1);
const _: () = assert!(TARGET_LIST == 1 << TARGET_CPU_INDEX);
const _: () = assert!(SGI_INTID == 1);
const _: () = assert!(SGIR_COMMAND == 0x0002_0001);
const _: () = assert!(PRIOR_ROUNDS == 1);
const _: () = assert!(NEW_ROUNDS == 1);
const _: () = assert!(TOTAL_ROUNDS == 2);
const _: () = assert!(EXPECTED_NEW_SENDS == 1);
const _: () = assert!(EXPECTED_NEW_SENDS == EXPECTED_NEW_DELIVERIES);
const _: () = assert!(EXPECTED_NEW_DELIVERIES == EXPECTED_NEW_ACKS);
const _: () = assert!(EXPECTED_NEW_ACKS == EXPECTED_NEW_EOIS);
const _: () = assert!(EXPECTED_NEW_EOIS == EXPECTED_NEW_RESCHEDULES);
const _: () = assert!(EXPECTED_NEW_RESCHEDULES == EXPECTED_NEW_WAKEUPS);
const _: () = assert!(EXPECTED_NEW_WAKEUPS == EXPECTED_NEW_TASK_RUNS);
const _: () = assert!(EXPECTED_TOTAL_SENDS == 2);
const _: () = assert!(EXPECTED_TOTAL_SENDS == EXPECTED_TOTAL_DELIVERIES);
const _: () = assert!(EXPECTED_TOTAL_DELIVERIES == EXPECTED_TOTAL_ACKS);
const _: () = assert!(EXPECTED_TOTAL_ACKS == EXPECTED_TOTAL_EOIS);
const _: () = assert!(EXPECTED_TOTAL_EOIS == EXPECTED_TOTAL_RESCHEDULES);
const _: () = assert!(EXPECTED_TOTAL_RESCHEDULES == EXPECTED_TOTAL_WAKEUPS);
snippet sha256: 05e10f94dad3file sha256: e40b9aaccf31
02 · Doğrulayan test kodu

Operations komutuna bağlı focused test

tam Rust öğesiL245–L289
simulation/tests/rpi5_g8e_uart.rs::order_handoff_gap_and_cpu0_timer_correlation_are_bounded

#[test]
fn order_handoff_gap_and_cpu0_timer_correlation_are_bounded() {
    let duplicate = format!("{}{}", pass(), G8E_SUFFIX);
    assert!(has(&failures(duplicate), "must occur exactly once"));

    let first = G8E_SUFFIX.lines().next().expect("G8E0");
    let second = G8E_SUFFIX.lines().nth(1).expect("G8E1");
    let reordered = replace_suffix(
        &format!("{first}\n{second}\n"),
        &format!("{second}\n{first}\n"),
    );
    assert!(has(&failures(reordered), "marker order mismatch"));

    assert!(has(
        &failures(replace_suffix("START_TICKS=1000", "START_TICKS=1006")),
        "within 5 ticks of BOOT8D"
    ));
    assert!(has(
        &failures(replace_suffix("GAP_TICKS=99", "GAP_TICKS=98")),
        "must equal START_TICKS minus"
    ));
    assert!(has(
        &failures(replace_suffix("SEND_TICK=1000", "SEND_TICK=1101")),
        "bounded stage window"
    ));
    assert!(has(
        &failures(replace_suffix("TICK=1001", "TICK=1101")),
        "bounded stage window"
    ));
    assert!(has(
        &failures(replace_suffix(
            "BASE_TICKS=1000 TICKS=1100",
            "BASE_TICKS=1000 TICKS=1009"
        )),
        "timer delta must be at least"
    ));
    assert!(has(
        &failures(replace_suffix(
            "[SEC  11] ticks=1100 drift=+0 µs (+6 count)\n",
            ""
        )),
        "requires a CPU0 SEC timer sample"
    ));
}
snippet sha256: f1592e0273e7file sha256: 0c76cfeee14a
03 · Kapı kimlik kaydı

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

tam Operations kaydıL30536–L30623
website/src/lib/operations.ts::rpi5-g8f-contract-source-tdd-red
  {
    id: "rpi5-g8f-contract-source-tdd-red",
    date: "2026-08-21",
    sequence: 72,
    status: "partial",
    title: "G8f quiescent handoff sözleşmesi yeşil; runtime intentional RED",
    summary:
      "Sıra 71'de dondurulan ilk post-BOOT8E kapı için allocation-free G8f contract, strict UART parser, canonical G8F0/G8F1/BOOT8F fixture, adversarial testler ve CLI validator oluşturuldu. Transient ACK yarışı TDD sırasında kapatıldı: stage `ACKNOWLEDGED` olarak terminal kalıyor; CPU1 ayrı `REPARK_PUBLISHED=1` Release-store'u, ack generation ve ikinci SEV'i yayımlıyor; CPU0 bunları Acquire ettikten sonra ACK tick'ini kendi sayacından ölçüyor. Gözlenemeyen exact WFE wake iddiası yoktur. Parser 9/9, önceki G8e regresyonu 9/9 ve synthetic validator PASS verdi. Source TDD, SPSEL/EL1h, salt-okunur pending/active snapshot, canary, CPU0 timer on/CPU1 timer off, üç CPU0-owned marker ve bütün forbidden write/call yüzeylerini dondurdu. Hedef source testi yalnız eksik `kernel/src/rpi5_g8f.rs` nedeniyle exit 101 verdi; runtime, layout ve Makefile henüz bilinçli olarak yoktur.",
    evidence: [
      "Sıra 71 production deployment `17f7d301…`; canonical `/operations/` dördüncü cache-bust snapshot'ta exact 2.243.954 B / a3234c78f676a4fb7faec311262ab4dc9ae8ca58ce904d3cc6a63b141e6f9354 ve local cmp PASS verdi.",
      "G8f contract 1657a9ef88d9ea9575cc68ad9461ae40d898249fda16746e0ad3e739d3016c2e; allocation-free sabitler release/ack generation=1, prior totals=2, G8f new CPU1 IRQ/SGI/task/GIC write=0 ve ack bound=5 olarak donduruldu.",
      "Strict parser 67218d6187d375d87383816b1583b897a86f28d701f8b4f987ed6c479ae2dfec; canonical fixture 1.605 B / 7567f393732a235dd040854ef9aa0d72ed7121e08c1597f8a8f78781eed0de3c.",
      "G8f adversarial parser 9/9 PASS; G8e parser regresyonu 9/9 PASS; simulation lib/check/example ve synthetic validator PASS verdi.",
      "Validator exact `G8f PASS: release_gen=1 ack_gen=1 source_cpu=0 target_cpu=1 ack_ticks=1 proof_ticks=1 cpu1_irqs=0 new_sgi=0 new_gic_writes=0 boot8f_tick=1101` çıktısını verdi.",
      "Frozen marker sırası exact G8F0→G8F1→BOOT8F; üçü de CPU0-owned, G8F1 `REPORTER=CPU0` ile CPU1 publication'larını raporlar.",
      "Protokol release SEV=1 + ack/repark SEV=1 = total SEV 2; stage transient olmadan ACKNOWLEDGED kalır ve ayrı REPARK_PUBLISHED Release-store'u CPU0 tarafından Acquire edilir.",
      "G8F1 MPIDR=0x100, TPIDR=1, EL=1, MODE=EL1H, SPSEL=1, IRQ masked, timer off, pending/active=0/0, GIC reads/writes=1/0 ve canary OK sözleşmesini taşır.",
      "BOOT8F prior send/delivery/ack/EOI/reschedule/wake/run=2, new CPU1 IRQ/SGI/task/GIC write=0, CPU0 timer on/ticks advanced ve generic SMP/migration/TLBI/CPU2_3 off değerlerini exact field/order ile zorlar.",
      "Source TDD 13.354 B / c6b22c9f55af72f6a43da148794216402a5f15595f2bd58dc4b2622713813135; hedef koşu exit 101 ve tek önceki hata eksik `kernel/src/rpi5_g8f.rs` include'ıdır.",
      "Staged proof 10.929 B / 8674a8f8214e1dc21eeb5cf60704f98d7d3cb98db07414a11fd01b7d0bd65697; G8e fiziksel 15.762 B/c9909dea…51f4d temelini immutable tutar ve runtime/layout/physical iddiası yapmaz.",
      "`cargo fmt --all -- --check`, G8f EOF/trailing-whitespace ve hedef diff-check kapıları PASS verdi.",
    ],
    terminalSessionsNote:
      "İlk oturum Sıra 71 plan yayınının canlı kapanışını, ikinci oturum G8f contract/parser GREEN'i, üçüncü oturum ise bilinçli ve tek-kök-neden source RED'i gösterir. Bu kayıt runtime veya fiziksel BOOT8F değildir.",
    terminalSessions: [
      {
        id: "g8f-seq71-production-close",
        title: "Sıra 71 yol haritası production ve canonical cmp kapanışı",
        commandLines: [
          "npm test; npm run lint; npx tsc --noEmit --incremental false; npm run build",
          "npx wrangler pages deploy out --project-name=aselsan-microkernel --branch=main --commit-dirty=true",
          "cache-busted canonical operations snapshots; compare one immutable snapshot with local out",
        ],
        outputLines: [
          "tests=123/123 · lint/TypeScript=PASS · static pages=22/22",
          "deployment=17f7d301.aselsan-microkernel.pages.dev",
          "attempts1-3=old seq70 cache · attempt4=2243954 B / a3234c78…9354 · cmp=PASS",
          "sequence71 markers=5 · roadmap hash markers=3 · operations/firmware HTTP=200/200",
        ],
        exitCode: 0,
        outputMode: "complete",
      },
      {
        id: "g8f-contract-parser-green",
        title: "G8f strict contract, adversarial parser ve G8e regresyonu",
        commandLines: [
          "cargo test -p aselsan_microkernel_simulation --test rpi5_g8f_uart",
          "cargo test -p aselsan_microkernel_simulation --test rpi5_g8e_uart",
          "stream G8 through G8f canonical fixtures into verify_rpi5_g8f_log",
          "cargo fmt --all -- --check",
        ],
        outputLines: [
          "G8f UART adversarial=9/9 PASS · G8e regression=9/9 PASS",
          "G8f PASS: release_gen=1 ack_gen=1 source_cpu=0 target_cpu=1 ack_ticks=1 proof_ticks=1",
          "cpu1_irqs=0 new_sgi=0 new_gic_writes=0 boot8f_tick=1101",
          "simulation lib/example/fmt/EOF/whitespace=PASS",
        ],
        exitCode: 0,
        outputMode: "complete",
      },
      {
        id: "g8f-source-intentional-red",
        title: "Source TDD yalnız eksik runtime dosyasında fail-closed",
        commandLines: [
          "cargo test -p aselsan_microkernel_simulation --test rpi5_g8f_source",
          "inspect exact compiler diagnostics and count previous errors",
        ],
        outputLines: [
          "exit=101",
          "couldn't read simulation/tests/../../kernel/src/rpi5_g8f.rs: No such file or directory (os error 2)",
          "source=rpi5_g8f_source.rs:13:19 · due to 1 previous error",
          "other root causes=0 · intentional RED=PASS",
        ],
        exitCode: 101,
        outputMode: "complete",
        outputNote:
          "Exit 101 bu TDD adımında beklenen ve doğrulanan tek-kök-neden RED sonucudur.",
      },
    ],
    limitations: [
      "`kernel/src/rpi5_g8f.rs`, G8e→G8f runtime seam'leri, layout gate ve Makefile wiring henüz yoktur; G8f runtime GREEN değildir.",
      "Yeni image/package üretilmedi, microSD yazılmadı ve gerçek G8F0/G8F1/BOOT8F UART marker'ı görülmedi; fiziksel PASS iddia edilmez.",
      "Generic SMP, per-CPU periodic timer, local preemption, runqueue, migration, ASID/TLBI, CPU2/CPU3, soak ve hotplug kapalıdır.",
      "Clippy `-D warnings` G8f kaynaklarından değil, mevcut G8e/G8c/paging uyarılarında durur; kapsam dışı dosyalar bu adımda değiştirilmedi.",
      "Website yayını canonical custom domain üzerinden doğrulanır; bu ortamda reset veren pages.dev direct smoke için başarı iddia edilmez.",
      "Wrangler yayını dirty/untracked workspace'ten ve stale 47d22c9 source etiketiyle yapılır; canlı artifact hash'i doğrulansa da Git-provider provenance kurulmuş sayılmaz.",
    ],
  },
snippet sha256: 311993f928d9file sha256: 9726dbf00f84
Focused test komutu
cargo test -p aselsan_microkernel_simulation --test rpi5_g8e_uart
Registry schema v5 · generator website/scripts/generate-code-gates.mjs · Tam SHA-256: 91d38c7b6222f0b4c117be786454853543da55a160e543d9b951057cc20dcc06