Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions ARM.AVH_FVP.pdsc
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,31 @@
<require Cclass="Device" Cgroup="Startup"/>
<require Cclass="CMSIS" Cgroup="RTOS2"/>
</condition>

<condition id="Corstone-300">
<description>Requirements for Corstone-310 FVP</description>
<accept Dvendor="ARM" Dname="SSE-300-MPS3"/>
<accept Bvendor="ARM" Bname="V2M-MPS3-SSE-300-FVP"/>
</condition>

<condition id="Corstone-310">
<description>Requirements for Corstone-310 FVP</description>
<accept Dvendor="ARM" Dname="SSE-310-MPS3_FVP"/>
<accept Bvendor="ARM" Bname="V2M-MPS3-SSE-310"/>
</condition>

<condition id="Corstone-315">
<description>Requirements for Corstone-315 FVP</description>
<accept Dvendor="ARM" Dname="SSE-315-FVP"/>
<accept Bvendor="ARM" Bname="SSE-315"/>
</condition>

<condition id="Corstone-320">
<description>Requirements for Corstone-320 FVP</description>
<accept Dvendor="ARM" Dname="SSE-320-FVP"/>
<accept Bvendor="ARM" Bname="SSE-320"/>
</condition>

</conditions>

<components>
Expand Down Expand Up @@ -110,4 +135,20 @@
</component>
</components>

<csolution>
<clayer type="Board" path="board/Corstone-300" file="Board.clayer.yml" copy-to="Board/Corstone-300" condition="Corstone-300"/>
<clayer type="Board" path="board/Corstone-300" file="Board-U55.clayer.yml" copy-to="Board/Corstone-300" condition="Corstone-300"/>
<clayer type="Board" path="board/Corstone-300" file="Board-U65.clayer.yml" copy-to="Board/Corstone-300" condition="Corstone-300"/>

<clayer type="Board" path="board/Corstone-310" file="Board.clayer.yml" copy-to="Board/Corstone-310" condition="Corstone-310"/>
<clayer type="Board" path="board/Corstone-310" file="Board-U55.clayer.yml" copy-to="Board/Corstone-310" condition="Corstone-310"/>
<clayer type="Board" path="board/Corstone-310" file="Board-U65.clayer.yml" copy-to="Board/Corstone-310" condition="Corstone-310"/>

<clayer type="Board" path="board/Corstone-315" file="Board.clayer.yml" copy-to="Board/Corstone-315" condition="Corstone-315"/>
<clayer type="Board" path="board/Corstone-315" file="Board-U65.clayer.yml" copy-to="Board/Corstone-315" condition="Corstone-315"/>

<clayer type="Board" path="board/Corstone-320" file="Board.clayer.yml" copy-to="Board/Corstone-320" condition="Corstone-320"/>
<clayer type="Board" path="board/Corstone-320" file="Board-U85.clayer.yml" copy-to="Board/Corstone-320" condition="Corstone-320"/>
</csolution>

</package>
68 changes: 68 additions & 0 deletions board/Corstone-300/Board-U55.clayer.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
layer:
type: Board
description: Board setup for AI/ML with Ethos U55
for-board: ARM::V2M-MPS3-SSE-300-FVP
for-device: ARM::SSE-300-MPS3

connections:
- connect: Corstone-300-U55
provides:
- CMSIS_USART
- CMSIS_VIO
- CMSIS_VSTREAM_AUDIO_IN
- CMSIS_VSTREAM_AUDIO_OUT
- CMSIS_VSTREAM_VIDEO_IN
- CMSIS_VSTREAM_VIDEO_OUT
- STDIN
- STDOUT
- STDERR
- Heap: 786432

define:
- CMSIS_target_header: \"Corstone-300.h\"
- ETHOSU55
- CORSTONE300_FVP
- ARM_MODEL_USE_PMU_COUNTERS

packs:
- pack: ARM::CMSIS
- pack: ARM::CMSIS-Compiler@^2.1.0
- pack: ARM::ethos-u-core-driver@^1.25.2
- pack: ARM::AVH_FVP
- pack: ARM::V2M_MPS3_SSE_300_BSP@1.5.0

components:
- component: CMSIS:CORE

- component: CMSIS Driver:USART
- component: CMSIS Driver:VIO
- component: CMSIS Driver:vStream:AudioIn
- component: CMSIS Driver:vStream:AudioOut
- component: CMSIS Driver:vStream:VideoIn
- component: CMSIS Driver:vStream:VideoOut

- component: CMSIS-Compiler:CORE
- component: CMSIS-Compiler:STDERR:Custom
- component: CMSIS-Compiler:STDIN:Custom
- component: CMSIS-Compiler:STDOUT:Custom

- component: Device:Definition
- component: Device:Startup&C Startup

- component: Device:Native Driver:SysCounter
- component: Device:Native Driver:SysTimer
- component: Device:Native Driver:Timeout
- component: Device:Native Driver:UART

- component: Machine Learning:NPU Support:Ethos-U Driver&Generic U55

groups:
- group: Board
files:
- file: ./main.c
- file: ./main.h
- file: ./ethos_setup.c
- file: ./retarget_stdio.c

linker:
- regions: ./regions_SSE-300.h
68 changes: 68 additions & 0 deletions board/Corstone-300/Board-U65.clayer.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
layer:
type: Board
description: Board setup for AI/ML with Ethos U65
for-board: ARM::V2M-MPS3-SSE-300-FVP
for-device: ARM::SSE-300-MPS3

connections:
- connect: Corstone-300-U65
provides:
- CMSIS_USART
- CMSIS_VIO
- CMSIS_VSTREAM_AUDIO_IN
- CMSIS_VSTREAM_AUDIO_OUT
- CMSIS_VSTREAM_VIDEO_IN
- CMSIS_VSTREAM_VIDEO_OUT
- STDIN
- STDOUT
- STDERR
- Heap: 786432

define:
- CMSIS_target_header: \"Corstone-300.h\"
- ETHOSU65
- CORSTONE300_FVP
- ARM_MODEL_USE_PMU_COUNTERS

packs:
- pack: ARM::CMSIS
- pack: ARM::CMSIS-Compiler@^2.1.0
- pack: ARM::ethos-u-core-driver@^1.25.2
- pack: ARM::AVH_FVP
- pack: ARM::V2M_MPS3_SSE_300_BSP@1.5.0

components:
- component: CMSIS:CORE

- component: CMSIS Driver:USART
- component: CMSIS Driver:VIO
- component: CMSIS Driver:vStream:AudioIn
- component: CMSIS Driver:vStream:AudioOut
- component: CMSIS Driver:vStream:VideoIn
- component: CMSIS Driver:vStream:VideoOut

- component: CMSIS-Compiler:CORE
- component: CMSIS-Compiler:STDERR:Custom
- component: CMSIS-Compiler:STDIN:Custom
- component: CMSIS-Compiler:STDOUT:Custom

- component: Device:Definition
- component: Device:Startup&C Startup

- component: Device:Native Driver:SysCounter
- component: Device:Native Driver:SysTimer
- component: Device:Native Driver:Timeout
- component: Device:Native Driver:UART

- component: Machine Learning:NPU Support:Ethos-U Driver&Generic U65

groups:
- group: Board
files:
- file: ./main.c
- file: ./main.h
- file: ./ethos_setup.c
- file: ./retarget_stdio.c

linker:
- regions: ./regions_SSE-300.h
63 changes: 63 additions & 0 deletions board/Corstone-300/Board.clayer.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
layer:
type: Board
description: Board setup for AI/ML
for-board: ARM::V2M-MPS3-SSE-300-FVP
for-device: ARM::SSE-300-MPS3

connections:
- connect: Corstone-300
provides:
- CMSIS_USART
- CMSIS_VIO
- CMSIS_VSTREAM_AUDIO_IN
- CMSIS_VSTREAM_AUDIO_OUT
- CMSIS_VSTREAM_VIDEO_IN
- CMSIS_VSTREAM_VIDEO_OUT
- STDIN
- STDOUT
- STDERR
- Heap: 786432

define:
- CMSIS_target_header: \"Corstone-300.h\"
- CORSTONE300_FVP
- ARM_MODEL_USE_PMU_COUNTERS

packs:
- pack: ARM::CMSIS
- pack: ARM::CMSIS-Compiler@^2.1.0
- pack: ARM::AVH_FVP
- pack: ARM::V2M_MPS3_SSE_300_BSP@1.5.0

components:
- component: CMSIS:CORE

- component: CMSIS Driver:USART
- component: CMSIS Driver:VIO
- component: CMSIS Driver:vStream:AudioIn
- component: CMSIS Driver:vStream:AudioOut
- component: CMSIS Driver:vStream:VideoIn
- component: CMSIS Driver:vStream:VideoOut

- component: CMSIS-Compiler:CORE
- component: CMSIS-Compiler:STDERR:Custom
- component: CMSIS-Compiler:STDIN:Custom
- component: CMSIS-Compiler:STDOUT:Custom

- component: Device:Definition
- component: Device:Startup&C Startup

- component: Device:Native Driver:SysCounter
- component: Device:Native Driver:SysTimer
- component: Device:Native Driver:Timeout
- component: Device:Native Driver:UART

groups:
- group: Board
files:
- file: ./main.c
- file: ./main.h
- file: ./retarget_stdio.c

linker:
- regions: ./regions_SSE-300.h
42 changes: 42 additions & 0 deletions board/Corstone-300/Corstone-300.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/*---------------------------------------------------------------------------
* Copyright (c) 2025 Arm Limited (or its affiliates).
* All rights reserved.
* SPDX-License-Identifier: Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the License); you may
* not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an AS IS BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*---------------------------------------------------------------------------*/

#ifndef CORSTONE_300_H_
#define CORSTONE_300_H_

#include "Driver_USART.h"
#include "cmsis_vstream.h"

// CMSIS Driver instances of Board peripherals
#define CMSIS_DRIVER_USART 0 // CMSIS Driver USART instance number

// Retarget stdio to CMSIS UART
#define RETARGET_STDIO_UART 0

// CMSIS Drivers
extern ARM_DRIVER_USART Driver_USART0; /* Serial */
extern vStreamDriver_t Driver_vStreamAudioIn; /* Audio In Stream */
extern vStreamDriver_t Driver_vStreamAudioOut; /* Audio Out Stream */
extern vStreamDriver_t Driver_vStreamVideoIn; /* Video In Stream */
extern vStreamDriver_t Driver_vStreamVideoOut; /* Video Out Stream */

#ifdef CMSIS_shield_header
#include CMSIS_shield_header
#endif

#endif /* CORSTONE_300_H_ */
47 changes: 47 additions & 0 deletions board/Corstone-300/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Board: Arm V2M-MPS3-SSE-300-FVP

## Board Layer for Corstone-300 FVP

Device: SSE-300-MPS3

### System Configuration

| System Component | Setting
|:------------------------|:----------------------------------
| Heap | 768 kB (configured in linker file)
| Stack (MSP) | 32 kB (configured in linker file)

### STDIO mapping

**STDIO** is routed to terminal via **UART0** peripheral

### CMSIS-Driver mapping

| CMSIS-Driver | Peripheral | Connection
|:-----------------------|:-----------|:----------------------
| Driver_USART0 | UART0 | STDIN, STDOUT, STDERR
| CMSIS-Driver VIO | VIO | CMSIS_VIO
| Driver_vStreamAudioIn | VSI0 | CMSIS_VSTREAM_AUDIO_IN
| Driver_vStreamAudioOut | VSI1 | CMSIS_VSTREAM_AUDIO_OUT
| Driver_vStreamVideoIn | VSI4 | CMSIS_VSTREAM_VIDEO_IN
| Driver_vStreamVideoOut | VSI6 | CMSIS_VSTREAM_VIDEO_OUT

### CMSIS-Driver Virtual I/O mapping

VIO driver interfaces with the `arm_vio.py` Python stub implementation which
stores and loads signal values.

### CMSIS-Driver vStream configuration

| Driver | Stream Format Description
|:-----------------------|:----------------------------------------------------
| Driver_vStreamAudioIn | 16-bit PCM audio, 16000 samples/second
| Driver_vStreamAudioOut | 16-bit PCM audio, 16000 samples/second
| Driver_vStreamVideoIn | RGB888 video, resolution 1280 x 720 (W x H)
| Driver_vStreamVideoOut | RGB888 video, resolution 480 x 800 (W x H)

### FVP Configuration File

| File | Description
|:-------------------|:-------------
| fvp_config.txt | Corstone-300 FVP without Ethos-U or with Ethos-U55/U65
Loading