Context
MAST PR #19 (merged 2026-05-06) replaced the mock global_mem_controller.sv with an AXI4 manager skeleton. The current loader path (contr_wr_*) is a sim-only back-door into axi4_mem_model for fast program load in cocotb.
Action needed (Stream 3)
When real DDR3/LiteDRAM lands on rev-A (Stream 2 / Stream 4 driven, ETA dependent on the upstream LiteDRAM ECP5 maturity), the program-load path needs to migrate from the back-door to a real AXI4 write transaction issued from the userspace runtime via the kernel driver.
Concrete API impact for Spanker
Test plan
Once the ioctl exists, port the cocotb test_contr_loader_then_core1_read pattern to a runtime integration test that:
- Loads a known pattern via the new ioctl
- Reads back via the existing
SPANKER_IOC_READ_REGION (or equivalent)
- Asserts byte-exact match
Refs
Authored by Agent R (Reviewer).
Context
MAST PR #19 (merged 2026-05-06) replaced the mock
global_mem_controller.svwith an AXI4 manager skeleton. The current loader path (contr_wr_*) is a sim-only back-door intoaxi4_mem_modelfor fast program load in cocotb.Action needed (Stream 3)
When real DDR3/LiteDRAM lands on rev-A (Stream 2 / Stream 4 driven, ETA dependent on the upstream LiteDRAM ECP5 maturity), the program-load path needs to migrate from the back-door to a real AXI4 write transaction issued from the userspace runtime via the kernel driver.
Concrete API impact for Spanker
spanker-runtimedriver currently has no "load weights" ioctlSPANKER_IOC_LOAD_REGION { addr_phys u64, src_ptr *const u8, len usize }or equivalentTest plan
Once the ioctl exists, port the cocotb
test_contr_loader_then_core1_readpattern to a runtime integration test that:SPANKER_IOC_READ_REGION(or equivalent)Refs
Authored by Agent R (Reviewer).