Skip to content
Merged
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
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
layer:
type: Board
description: Board setup for AI/ML with Ethos U85
description: Base configuration of SSE-320 FVP with Ethos U85
for-board: ARM::SSE-320
for-device: ARM::SSE-320-FVP

Expand All @@ -12,19 +12,18 @@ layer:
- STDIN
- STDOUT
- STDERR
- Heap: 786432
- Heap: 98304
consumes:
- CMSIS-RTOS2

define:
- CMSIS_target_header: \"Corstone-320.h\"
- ETHOSU85
- ARM_MODEL_USE_PMU_COUNTERS
- UART0_BASE_S_TMP

packs:
- pack: ARM::CMSIS
- pack: ARM::CMSIS-Compiler@^2.1.0
- pack: ARM::ethos-u-core-driver@^1.25.2
- pack: ARM::SSE_320_BSP@1.1.0
- pack: ARM::CMSIS-Compiler@^2.3.0
- pack: ARM::CMSIS-Ethos-U@^1.0.0
- pack: ARM::SSE_320_BSP@^2.0.0

components:
- component: CMSIS:CORE
Expand All @@ -33,9 +32,9 @@ layer:
- component: CMSIS Driver:VIO

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

- component: Device:Definition
- component: Device:Startup&C Startup
Expand All @@ -46,14 +45,17 @@ layer:
- component: Device:Native Driver:UART

- component: Machine Learning:NPU Support:Ethos-U Driver&Generic U85
define:
- ETHOSU_MACS: 256

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

linker:
- regions: ./regions_SSE-320.h
- regions: RTE/Device/SSE-320-FVP/regions_SSE-320.h
23 changes: 10 additions & 13 deletions RockPaperScissors/AppKit-E8_USB/Board/Corstone-320/Board.clayer.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
layer:
type: Board
description: Board setup for AI/ML
description: Base configuration of SSE-320 FVP
for-board: ARM::SSE-320
for-device: ARM::SSE-320-FVP

Expand All @@ -12,17 +12,15 @@ layer:
- STDIN
- STDOUT
- STDERR
- Heap: 786432
- Heap: 98304

define:
- CMSIS_target_header: \"Corstone-320.h\"
- ARM_MODEL_USE_PMU_COUNTERS
- UART0_BASE_S_TMP

packs:
- pack: ARM::CMSIS
- pack: ARM::CMSIS-Compiler@^2.1.0
- pack: ARM::SSE_320_BSP@1.1.0
- pack: ARM::CMSIS-Compiler@^2.3.0
- pack: ARM::SSE_320_BSP@^2.0.0

components:
- component: CMSIS:CORE
Expand All @@ -31,9 +29,9 @@ layer:
- component: CMSIS Driver:VIO

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

- component: Device:Definition
- component: Device:Startup&C Startup
Expand All @@ -46,9 +44,8 @@ layer:
groups:
- group: Board
files:
- file: ./main.c
- file: ./main.h
- file: ./retarget_stdio.c
- file: main.c
- file: main.h

linker:
- regions: ./regions_SSE-320.h
- regions: RTE/Device/SSE-320-FVP/regions_SSE-320.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*---------------------------------------------------------------------------
* Copyright (c) 2025 Arm Limited (or its affiliates).
* All rights reserved.
/*
* Copyright 2026 Arm Limited and/or its affiliates.
*
* SPDX-License-Identifier: Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the License); you may
Expand All @@ -14,7 +14,7 @@
* 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_320_H_
#define CORSTONE_320_H_
Expand Down
24 changes: 19 additions & 5 deletions RockPaperScissors/AppKit-E8_USB/Board/Corstone-320/README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,29 @@
# Board: Arm SSE-320

## Board Layer for Corstone-320 FVP
## Board Layers for Corstone-320 FVP

This layer works for:
These layers work for:

```yml
board: ARM::SSE-320
device: ARM::SSE-320-FVP
```

Select one layer matching the application's NPU requirements:

| Layer file | Use in Application
|:---------------------|:------------------------
| Board.clayer.yml | Without Ethos-U support
| Board-U85.clayer.yml | With Ethos-U85 support

Use the corresponding FVP configuration file listed below.

### System Configuration

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

### STDIO mapping

Expand All @@ -41,4 +50,9 @@ interface for SDS data files using a [Virtual Streaming Interface](https://arm-s

| File | Description
|:-------------------|:-------------
| fvp_config.txt | Corstone-320 FVP without Ethos-U or with Ethos-U85
| fvp_config.txt | Corstone-320 FVP without or with an Ethos-U85-256

Ethos-U specific configuration adds `ethosu.extra_args="--fast"` option to speed
up NPU simulation while preserving functional inference results. Remove it when
benchmarking performance, otherwise performance counters and timing are not
representative of real hardware.
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
/*---------------------------------------------------------------------------
* Copyright (c) 2026 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.
* --------------------------------------------------------------------------
*
* Purpose: Configure STDERR to CMSIS-Driver USART retarget implementation
* Revision: V1.0.0
*
* --------------------------------------------------------------------------*/

#ifndef STDERR_CMSIS_UART_CONFIG_H_
#define STDERR_CMSIS_UART_CONFIG_H_

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

// <o>UART STDERR Buffer Size
// <i> UART STDERR buffer is used to store STDERR data before sending it via UART
// <i> Default: 0 (unbuffered)
#ifndef STDERR_UART_BUFFER_SIZE
#define STDERR_UART_BUFFER_SIZE 0
#endif

// <s>UART STDERR Buffer Section Name
// <i> Specify the memory section name for UART STDERR buffer
// <i> Default: .stderr_uart_buf
#ifndef STDERR_UART_BUFFER_SECTION
#define STDERR_UART_BUFFER_SECTION ".stderr_uart_buf"
#endif

// <o>UART STDERR Buffer Alignment
// <i> Define the STDERR buffer alignment in bytes
// <i> Default: 32
#ifndef STDERR_UART_BUFFER_ALIGNMENT
#define STDERR_UART_BUFFER_ALIGNMENT 32
#endif

// <q>Convert LF to CRLF
// <i> If enabled, LF characters are preceded by CR characters on output
// <i> Default: 0
#ifndef STDERR_CR_LF
#define STDERR_CR_LF 1
#endif

#endif /* STDERR_CMSIS_UART_CONFIG_H_ */
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
/*---------------------------------------------------------------------------
* Copyright (c) 2026 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.
* --------------------------------------------------------------------------
*
* Purpose: Configure STDERR to CMSIS-Driver USART retarget implementation
* Revision: V1.0.0
*
* --------------------------------------------------------------------------*/

#ifndef STDERR_CMSIS_UART_CONFIG_H_
#define STDERR_CMSIS_UART_CONFIG_H_

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

// <o>UART STDERR Buffer Size
// <i> UART STDERR buffer is used to store STDERR data before sending it via UART
// <i> Default: 0 (unbuffered)
#ifndef STDERR_UART_BUFFER_SIZE
#define STDERR_UART_BUFFER_SIZE 0
#endif

// <s>UART STDERR Buffer Section Name
// <i> Specify the memory section name for UART STDERR buffer
// <i> Default: .stderr_uart_buf
#ifndef STDERR_UART_BUFFER_SECTION
#define STDERR_UART_BUFFER_SECTION ".stderr_uart_buf"
#endif

// <o>UART STDERR Buffer Alignment
// <i> Define the STDERR buffer alignment in bytes
// <i> Default: 32
#ifndef STDERR_UART_BUFFER_ALIGNMENT
#define STDERR_UART_BUFFER_ALIGNMENT 32
#endif

// <q>Convert LF to CRLF
// <i> If enabled, LF characters are preceded by CR characters on output
// <i> Default: 0
#ifndef STDERR_CR_LF
#define STDERR_CR_LF 0
#endif

#endif /* STDERR_CMSIS_UART_CONFIG_H_ */
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
/*---------------------------------------------------------------------------
* Copyright (c) 2026 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.
* --------------------------------------------------------------------------
*
* Purpose: Configure STDIN to CMSIS-Driver USART retarget implementation
* Revision: V1.0.0
*
* --------------------------------------------------------------------------*/

#ifndef STDIN_CMSIS_UART_CONFIG_H_
#define STDIN_CMSIS_UART_CONFIG_H_

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

// <o>UART STDIN Buffer Size
// <i> UART STDIN buffer is used to store STDIN data received via UART
// <i> Default: 64
#ifndef STDIN_UART_BUFFER_SIZE
#define STDIN_UART_BUFFER_SIZE 64
#endif

// <s>UART STDIN Buffer Section Name
// <i> Specify the memory section name for UART STDIN buffer
// <i> Default: .stdin_uart_buf
#ifndef STDIN_UART_BUFFER_SECTION
#define STDIN_UART_BUFFER_SECTION ".stdin_uart_buf"
#endif

// <o>UART STDIN Buffer Alignment
// <i> Define the STDIN buffer alignment in bytes
// <i> Default: 32
#ifndef STDIN_UART_BUFFER_ALIGNMENT
#define STDIN_UART_BUFFER_ALIGNMENT 32
#endif

// <q>Echo Input Characters
// <i> If enabled, received characters are echoed to STDOUT
// <i> Default: 0
#ifndef STDIN_ECHO
#define STDIN_ECHO 0
#endif

#endif /* STDIN_CMSIS_UART_CONFIG_H_ */
Loading
Loading