blob: 75912426dcc8544711f4452c28bf290854a3272c [file]
// Licensed under the Apache-2.0 license
// SPDX-License-Identifier: Apache-2.0
// AST10x0 User ipc Test Configuration
// ARM Cortex-M4 @ 200 MHz with 768KB SRAM (0x00000000 - 0x000BFFFF)
// NOTE: AST10x0 does not support XIP - firmware executes from RAM.
//
// PMSAv7-Friendly Memory Layout:
// 0x00000000 - 0x00000500: Vector table (1280 bytes)
// 0x00000500 - 0x00020000: Kernel code (~126KB, ends at 128KB boundary)
// 0x00020000 - 0x00060000: ipc multi-process app code (256KB, two processes)
// 0x00060000 - 0x00080000: Kernel RAM (128KB)
// 0x00080000 - 0x000A0000: App RAM (128KB)
//
// Schema: matches the pinned upstream multi_process_app shape — a single
// `apps` entry whose name matches the `multi_process_app(name = "ipc")`
// target, containing two child processes named to match the upstream
// `rust_process(name = "initiator"|"handler")` targets.
{
arch: {
type: "armv7m",
vector_table_start_address: 0x00000000,
vector_table_size_bytes: 1280, // 0x500
},
kernel: {
flash_start_address: 0x00000500, // After vector table
flash_size_bytes: 129792, // ~126KB (ends at 0x00020000)
ram_start_address: 0x00060000, // After all flash regions
ram_size_bytes: 131072, // 128KB
},
apps: [
{
name: "ipc",
flash_size_bytes: 262144, // 256KB (power-of-2 aligned)
processes: [
{
name: "initiator",
ram_size_bytes: 65536, // 64KB
objects: [
{
name: "ipc",
type: "channel_initiator",
handler_process: "handler",
handler_object_name: "ipc",
},
],
threads: [
{
name: "initiator_thread",
kernel_stack_size_bytes: 2048,
},
],
},
{
name: "handler",
ram_size_bytes: 65536, // 64KB
objects: [
{
name: "ipc",
type: "channel_handler",
},
],
threads: [
{
name: "handler_thread",
kernel_stack_size_bytes: 2048,
},
],
},
],
},
],
}