Skip to content
Draft
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>
65 changes: 65 additions & 0 deletions board/Corstone-300/Board-U55.clayer.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
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_VSTREAM_AUDIO_IN
- CMSIS_VSTREAM_AUDIO_OUT
- CMSIS_VSTREAM_VIDEO_IN
- CMSIS_VSTREAM_VIDEO_OUT
- 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::[email protected]

components:
- component: CMSIS:CORE

- component: CMSIS Driver:USART
- 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
65 changes: 65 additions & 0 deletions board/Corstone-300/Board-U65.clayer.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
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_VSTREAM_AUDIO_IN
- CMSIS_VSTREAM_AUDIO_OUT
- CMSIS_VSTREAM_VIDEO_IN
- CMSIS_VSTREAM_VIDEO_OUT
- 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::[email protected]

components:
- component: CMSIS:CORE

- component: CMSIS Driver:USART
- 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
60 changes: 60 additions & 0 deletions board/Corstone-300/Board.clayer.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
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_VSTREAM_AUDIO_IN
- CMSIS_VSTREAM_AUDIO_OUT
- CMSIS_VSTREAM_VIDEO_IN
- CMSIS_VSTREAM_VIDEO_OUT
- 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::[email protected]

components:
- component: CMSIS:CORE

- component: CMSIS Driver:USART
- 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_ */
35 changes: 35 additions & 0 deletions board/Corstone-300/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# 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 | STDOUT, STDERR
| 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 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)
60 changes: 60 additions & 0 deletions board/Corstone-300/RTE/CMSIS_Driver/vstream_audio_in_config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
/*---------------------------------------------------------------------------
* 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 VSTREAM_AUDIO_IN_CONFIG_H_
#define VSTREAM_AUDIO_IN_CONFIG_H_

//-------- <<< Use Configuration Wizard in Context Menu >>> --------------------
//------ With VS Code: Open Preview for Configuration Wizard -------------------

// <o> Number of channels <1=>Mono <2=>Stereo
// <i> Defines the number of audio channels in stream.
// <i> Default: 2
#ifndef AUDIO_IN_CHANNELS
#define AUDIO_IN_CHANNELS 2
#endif

// <o> Number of bits per sample <0=>8 <1=>16 <2=>24 <3=>32
// <i> Defines number of bits of information in each sample.
// <i> Default: 16
#ifndef AUDIO_IN_SAMPLE_BITS
#define AUDIO_IN_SAMPLE_BITS 16
#endif

// <o> Sample rate <8000=>8 kHz <16000=>16 kHz <44100=>44.1 kHz <48000=>48 kHz
// <i> Defines the number of samples captured per second.
// <i> Default: 16000
#ifndef AUDIO_IN_SAMPLE_RATE
#define AUDIO_IN_SAMPLE_RATE 16000
#endif

// <o> Streaming Device Index
// <i> Defines the system index of the audio streaming device.
// <i> Default: -1 (system default audio device)
#ifndef AUDIO_IN_DEVICE
#define AUDIO_IN_DEVICE -1
#endif

// <s> Audio File Name
// <i> Defines the name of the audio file to be used for streaming.
// <i> Default: "" (use streaming device instead of file)
#ifndef AUDIO_IN_FILENAME
#define AUDIO_IN_FILENAME ""
#endif

#endif
Loading