ASELSANMicrokernel
S62 · SOURCE-BOUND GATE EVIDENCE

G8e SGI1 re-arm contract ve adversarial UART validator donduruldu; runtime kasıtlı RED

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

S62Focused kod testiOperations id exactsource SHA exacttest target exact

operation: rpi5-g8e-contract-uart-validator-frozen

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 öğesiL1–L56
kernel/src/g8d_contract.rs::TARGET_LIST
//! Allocation-free contract for the narrow Raspberry Pi 5 G8d reschedule gate.
//!
//! G8d sends exactly one non-secure GICv2 SGI1 from CPU0 to CPU1.  CPU1
//! acknowledges and EOIs that delivery exactly once, returns to EL1h with IRQ
//! masked, and runs one wake of G8c's existing statically pinned task on the
//! existing 64 KiB stack.  Migration, TLB shootdown, CPU2 and CPU3 stay off.

pub const SOURCE_MPIDR: u64 = 0;
pub const SOURCE_CPU_INDEX: u64 = 0;
pub const TARGET_MPIDR: u64 = 0x100;
pub const TARGET_CPU_INDEX: u64 = 1;
pub const TARGET_LIST: u8 = 0x02;
pub const SGI_INTID: u32 = 1;

pub const EXPECTED_SENDS: u64 = 1;
pub const EXPECTED_DELIVERIES: u64 = 1;
pub const EXPECTED_ACKS: u64 = 1;
pub const EXPECTED_EOIS: u64 = 1;
pub const EXPECTED_RESCHEDULES: u64 = 1;
pub const EXPECTED_WAKEUPS: u64 = 1;
pub const EXPECTED_TASK_RUNS: u64 = 1;
pub const TASK_PROGRESS: u64 = 3;
pub const TASK_STACK_BYTES: usize = 64 * 1024;

pub const MAX_G8C_HANDOFF_TICKS: u64 = 5;
pub const MAX_STAGE_WAIT_TICKS: u64 = 100;
pub const MIN_PRIMARY_PROOF_TICKS: u64 = 10;

pub const TASK_ARGUMENT: u64 = 0x4738_4457_414b_4531; // "G8DWAKE1"
pub const TASK_RETURN: u64 = 0x4738_4452_4554_0001; // "G8DRET" + 1

pub const STAGE_IDLE: u64 = 0;
pub const STAGE_RELEASE: u64 = 1;
pub const STAGE_GIC_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_PARKED: u64 = 8;
pub const STAGE_ERROR: u64 = u64::MAX;

pub const SPSR_MODE_MASK: u64 = 0xf;
pub const SPSR_EL1H: u64 = 0b0101;
pub const DAIF_IRQ_MASK: u64 = 1 << 7;
pub const CPACR_FPEN_MASK: u64 = 0b11 << 20;

const _: () = assert!(SOURCE_CPU_INDEX == 0);
const _: () = assert!(TARGET_CPU_INDEX == 1);
const _: () = assert!(TARGET_LIST == 1 << TARGET_CPU_INDEX);
const _: () = assert!(SGI_INTID < 16);
const _: () = assert!(EXPECTED_SENDS == 1);
const _: () = assert!(EXPECTED_SENDS == EXPECTED_DELIVERIES);
const _: () = assert!(EXPECTED_DELIVERIES == EXPECTED_ACKS);
const _: () = assert!(EXPECTED_ACKS == EXPECTED_EOIS);
const _: () = assert!(EXPECTED_EOIS == EXPECTED_RESCHEDULES);
snippet sha256: e3482e853c89file sha256: 4f1a63b7422c
02 · Doğrulayan test kodu

Operations komutuna bağlı focused test

tam Rust öğesiL69–L90
simulation/tests/rpi5_g8d_uart.rs::source_target_delivery_ack_and_raw_eoi_fail_closed

#[test]
fn source_target_delivery_ack_and_raw_eoi_fail_closed() {
    for (from, to, needle) in [
        (
            "TARGET_LIST=0x02",
            "TARGET_LIST=0x04",
            "field TARGET_LIST expected",
        ),
        ("SGI=1", "SGI=2", "field SGI expected"),
        ("SOURCE_CPU=0", "SOURCE_CPU=1", "field SOURCE_CPU expected"),
        ("DELIVERIES=1", "DELIVERIES=2", "field DELIVERIES expected"),
        ("ACKS=1", "ACKS=0", "field ACKS expected"),
        ("EOIS=1", "EOIS=0", "field EOIS expected"),
        ("ACK_RAW=0x1", "ACK_RAW=0x401", "ACK_RAW source mismatch"),
        ("EOI_RAW=0x1", "EOI_RAW=0x2", "raw EOI must exactly equal"),
        ("RESCHED=1", "RESCHED=2", "field RESCHED expected"),
    ] {
        let messages = failures(replace_suffix(from, to));
        assert!(has(&messages, needle), "{from}->{to}: {messages:?}");
    }
}
snippet sha256: 3cab0baa8404file sha256: 6f0c72e97c10
03 · Kapı kimlik kaydı

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

tam Operations kaydıL31353–L31450
website/src/lib/operations.ts::rpi5-g8e-contract-uart-validator-frozen
  {
    id: "rpi5-g8e-contract-uart-validator-frozen",
    date: "2026-08-21",
    sequence: 62,
    status: "partial",
    title:
      "G8e SGI1 re-arm contract ve adversarial UART validator donduruldu; runtime kasıtlı RED",
    summary:
      "G8d'nin immutable fiziksel round-1 kanıtını yeniden üretmeden kullanan dar G8e sözleşmesi ve strict UART/adversarial validator host-only olarak donduruldu. Sözleşme yalnız aynı SGI1/TARGET_LIST=0x02 kanalında bir yeni CPU0→CPU1 wake/run ekler: prior=1, new=1 ve aggregate send/delivery/ack/EOI/reschedule/task wake/run toplamlarının tamamı exact 2'dir. İkinci gönderim öncesi ve finalde pending/active sıfır, Non-secure GICC_CTLR EOImodeNS bit 9 sıfır ve acknowledge ile aynı raw EOI zorunludur; CPEND, ICACTIVER, GICC_DIR ve GIC re-init fail-closed yasaktır. G8d+G8e validator zinciri 15/15 PASS ve verifier example cargo check PASS verdi. Buna karşılık source gate kasıtlı olarak yalnız eksik kernel/src/rpi5_g8e.rs runtime dosyasında RED tutuldu; implementasyon, image, microSD ve fiziksel BOOT8E henüz yoktur.",
    evidence: [
      "Host-only kapsam kernel/src/g8e_contract.rs, simulation/src/g8e_uart.rs, iki G8e test dosyası, beş satırlık sentetik fixture, verify_rpi5_g8e_log example'ı, simulation/src/lib.rs bağlantıları ve docs/M8.1-RPi5-G8e-SGI1-Rearm-Staged-Proof.md belgesidir.",
      "Fixture exact 5 satır ve 40e4748fa64bcff1dda37e9c0eb1e2e59d42611ad435a4f7d5d349d91f14ce2f SHA-256 ile donduruldu; bu fixture fiziksel UART capture değildir.",
      "Immutable prerequisite G8d round1 prior=1 olarak korunur; G8e yalnız NEW_SENDS/DELIVERIES/ACKS/EOIS/RESCHED/WAKEUPS/RUNS=1 ekler ve bütün TOTAL alanlarını exact 2 ister.",
      "Exact kanal SGI=1, TARGET_LIST=0x02 ve SGIR=0x00020001'dir; başka hedef, kaynak veya ikinci yeni gönderim reddedilir.",
      "G8E0 PRIOR_PENDING=0 ve PRIOR_ACTIVE=0; G8E2/BOOT8E FINAL_PENDING=0 ve FINAL_ACTIVE=0 zorunludur. Non-secure GICC_CTLR EOImodeNS bit 9 sıfır, EOIMODE=DROP_DEACTIVATE ve EOI_RAW=ACK_RAW=0x1 olmalıdır.",
      "G8e diliminde CPEND, ICACTIVER, GICC_DIR ve GIC distributor/CPU-interface re-init yasaktır; validator extra/unknown marker, bozuk sıra, count substitution, timing underflow ve eski validator future-marker prefix durumlarını adversarial olarak reddeder.",
      "Kabul marker'ları exact G8E0, G8E1, G8E2 ve BOOT8E'dir; CPU1 aynı statik stack region üzerinde ikinci kez PROGRESS=3 üretip local idle'a dönmelidir.",
      "Validator'ın ilk iterasyonu 5 PASS/3 FAIL ile future-marker prefix ve timing-underflow hatalarını görünür kıldı; düzeltme sonrasında G8e 8/8 PASS verdi.",
      "Final birlikte koşuda G8d 7/7 + G8e 8/8 = 15/15 PASS; verify_rpi5_g8e_log example cargo check ve hedefli rustfmt --check exit 0 verdi.",
      "rpi5_g8e_source kasıtlı RED exit 101 verdi: line 16 include_str yalnız eksik kernel/src/rpi5_g8e.rs için OS error 2 üretti. Runtime uygulanmadan source gate yeşile çevrilmedi.",
    ],
    terminalSessionsNote:
      "Pozitif fixture ve validator sonuçları host-only sözleşme kanıtıdır. İlk 5/3 koşusu validator kusurlarını yakalayan tarihsel RED, son source-test RED'i ise eksik runtime'ı bilerek kilitleyen güncel fail-closed sınırdır.",
    terminalSessions: [
      {
        id: "g8e-contract-freeze-inventory",
        title: "Contract, fixture, belge ve hedefli format dondurması",
        commandLines: [
          "wc -l + shasum -a 256 G8e contract/validator/tests/fixture/example/proof",
          "rustfmt --edition 2021 --check <five G8e Rust files>",
        ],
        outputLines: [
          "contract=105 lines · validator=710 lines · UART tests=321 lines · source tests=314 lines",
          "fixture=5 lines · sha256=40e4748fa64bcff1dda37e9c0eb1e2e59d42611ad435a4f7d5d349d91f14ce2f",
          "staged proof=190 lines",
          "targeted rustfmt_check_exit=0",
        ],
        exitCode: 0,
        outputMode: "selected",
      },
      {
        id: "g8e-validator-first-red",
        title: "İlk adversarial validator koşusu ve bulunan iki kusur sınıfı",
        commandLines: [
          "cargo test -p aselsan_microkernel_simulation --test rpi5_g8e_uart",
        ],
        outputLines: [
          "first iteration: pass=5 fail=3 exit=101",
          "older-validator future-marker prefix rejection bug exposed",
          "timing-underflow adversarial bug exposed",
          "both validator defects corrected before final acceptance",
        ],
        exitCode: 101,
        outputMode: "selected",
        outputNote:
          "Bu tarihsel RED runtime sonucu değildir; strict validator geliştirme sırasında yakalanıp düzeltilen host-only kusurlardır.",
      },
      {
        id: "g8e-validator-final-green",
        title: "G8d immutable prerequisite ve G8e final validator zinciri",
        commandLines: [
          "cargo test -p aselsan_microkernel_simulation --test rpi5_g8e_uart",
          "cargo test -p aselsan_microkernel_simulation --test rpi5_g8d_uart --test rpi5_g8e_uart",
          "cargo check -p aselsan_microkernel_simulation --example verify_rpi5_g8e_log",
        ],
        outputLines: [
          "G8e final=8/8 PASS",
          "G8d=7/7 PASS · G8e=8/8 PASS · aggregate=15/15",
          "verify_rpi5_g8e_log cargo_check_exit=0",
          "fixture remains synthetic · physical capture=false",
        ],
        exitCode: 0,
        outputMode: "complete",
      },
      {
        id: "g8e-source-intentional-red",
        title: "Eksik runtime'a kilitli kasıtlı source-test RED",
        commandLines: [
          "cargo test -p aselsan_microkernel_simulation --test rpi5_g8e_source",
        ],
        outputLines: [
          "error: couldn't read simulation/tests/../../kernel/src/rpi5_g8e.rs",
          "No such file or directory (os error 2)",
          "simulation/tests/rpi5_g8e_source.rs:16:19 include_str",
          "g8e_source_exit=101",
        ],
        exitCode: 101,
        outputMode: "complete",
      },
    ],
    limitations: [
      "Bu kayıt contract, sentetik fixture ve host validator kanıtıdır; kernel G8e runtime implementasyonu, staged image, microSD yazımı veya fiziksel BOOT8E PASS değildir.",
      "G8d round1 yalnız sequence 57'nin e1c43c7d…49c1d immutable raw kanıtından gelir; sentetik G8e fixture bu fiziksel kaydı değiştirmez veya yeniden kanıtlamaz.",
      "rpi5_g8e_source yalnız eksik kernel/src/rpi5_g8e.rs nedeniyle kasıtlı RED kalır; runtime ve makine-kodu gate'leri tamamlanmadan paket üretilemez.",
      "Sıra 61'deki G8b/G8c SMP layout regex STOP'u ile generic `_start`, scheduler/runqueue ve per-CPU timer/GIC açıkları devam eder; generic SMP fiziksel kapsam dışıdır.",
      "Pi kapalıdır; karta, UART aygıtına veya doğrulanmış G8d rollback evidence'ına dokunulmadı.",
    ],
  },
snippet sha256: 04d3b910bb5efile sha256: 9726dbf00f84
Focused test komutu
cargo test -p aselsan_microkernel_simulation --test rpi5_g8d_uart --test rpi5_g8e_uart
Registry schema v5 · generator website/scripts/generate-code-gates.mjs · Tam SHA-256: 91d38c7b6222f0b4c117be786454853543da55a160e543d9b951057cc20dcc06