blob: 2bfb854b878949678d5319c5ea8dacf91a0fc57a [file]
// Licensed under the Apache-2.0 license
// AST1060-EVB SPDM Requester-Responder Test Configuration
// ARM Cortex-M4F with UART console
//
// Three-process system for testing SPDM requester/responder communication:
// 1. mctp_loopback_server - Routes MCTP messages between requester and responder
// 2. spdm_requester - SPDM requester using spdm-lib requester API
// 3. spdm_responder - SPDM responder using spdm-lib responder API
//
// Memory Layout (PMSAv7-friendly, power-of-2 aligned regions):
// 0x00000000 - 0x00000500: Vector table + kernel annotations (1280 bytes)
// 0x00000500 - 0x00020000: Kernel flash (~127KB)
// 0x00020000 - 0x00028000: mctp_loopback_server flash (32KB)
// 0x00028000 - 0x00040000: spdm_requester flash (96KB)
// 0x00040000 - 0x00058000: spdm_responder flash (96KB)
// 0x00058000 - 0x00070000: Kernel RAM (96KB)
// 0x00070000 - 0x00078000: mctp_loopback_server RAM (32KB)
// 0x00078000 - 0x00090000: spdm_requester RAM (96KB)
// 0x00090000 - 0x000A0000: spdm_responder RAM (64KB)
//
// Total: 0xA0000 = 640KB (fits within the 640KB usable window of the AST1060's 768KB SRAM).
{
arch: {
type: "armv7m",
vector_table_start_address: 0x00000000,
vector_table_size_bytes: 1280,
},
kernel: {
flash_start_address: 0x00000500,
flash_size_bytes: 129792, // ~127KB, ends at 0x20000
ram_start_address: 0x00058000,
ram_size_bytes: 98304, // 96KB
},
apps: [
// ──── MCTP Loopback Server ────
// Routes MCTP messages between requester and responder via in-memory
// loopback. Has two IPC channel handlers (one per client) and a
// wait_group for event multiplexing.
{
name: "mctp_loopback_server",
flash_size_bytes: 32768, // 32KB for server code
ram_size_bytes: 32768, // 32KB RAM (two Server instances + buffers)
processes: [
{
name: "mctp loopback server process",
objects: [
{
name: "MCTP_REQ",
type: "channel_handler",
},
{
name: "MCTP_RESP",
type: "channel_handler",
},
{
name: "WG",
type: "wait_group",
},
],
threads: [
{
name: "mctp loopback server thread",
stack_size_bytes: 4096,
},
],
},
],
},
// ──── SPDM Requester ────
// DISABLED - Requester flow is not active in this configuration
// Runs the SPDM requester flow using spdm-lib's requester API.
// Connects to the MCTP loopback server to send/receive SPDM messages.
// {
// name: "spdm_requester",
// flash_size_bytes: 98304, // 96KB for requester code
// ram_size_bytes: 98304, // 96KB RAM (SPDM context + buffers)
// processes: [
// {
// name: "spdm requester process",
// objects: [
// {
// name: "MCTP",
// type: "channel_initiator",
// handler_process: "mctp loopback server process",
// handler_object_name: "MCTP_REQ",
// },
// ],
// threads: [
// {
// name: "spdm requester thread",
// stack_size_bytes: 16384,
// },
// ],
// },
// ],
// },
// ──── SPDM Responder ────
// Runs the SPDM responder using spdm-lib's responder API.
// Connects to the MCTP loopback server to receive/send SPDM messages.
{
name: "spdm_responder",
flash_size_bytes: 98304, // 96KB for responder code
ram_size_bytes: 65536, // 64KB RAM (SPDM context + buffers)
processes: [
{
name: "spdm responder process",
objects: [
{
name: "MCTP",
type: "channel_initiator",
handler_process: "mctp loopback server process",
handler_object_name: "MCTP_RESP",
},
],
threads: [
{
name: "spdm responder thread",
stack_size_bytes: 16384,
},
],
},
],
},
],
}