Skip to content

Commit 7e51bc5

Browse files
committed
Add board layer for Alif DevKit-E8 using M55 HP
1 parent 3e31b8c commit 7e51bc5

38 files changed

+35369
-0
lines changed
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
layer:
2+
type: Board
3+
description: DevKit-E8 board setup using M55_HP and Ethos-U85
4+
for-board: Alif Semiconductor::DevKit-E8:Gen 1
5+
for-device: Alif Semiconductor::AE822FA0E5597LS0:M55_HP
6+
device: :M55_HP
7+
8+
# Processor features used in this project.
9+
processor:
10+
trustzone: off
11+
12+
# List connections used to identify compatible software layers.
13+
connections:
14+
- connect: DevKit-E8 Board
15+
provides:
16+
- CMSIS_ETH
17+
- CMSIS_USART
18+
- CMSIS_USB_Device
19+
- CMSIS_VIO
20+
- CMSIS_VSTREAM_VIDEO_IN
21+
- CMSIS_VSTREAM_VIDEO_OUT
22+
- MIKROBUS_AN
23+
- MIKROBUS_INT
24+
- MIKROBUS_PWM
25+
- MIKROBUS_I2C
26+
- MIKROBUS_SPI
27+
- MIKROBUS_UART
28+
- STDIN
29+
- STDOUT
30+
- STDERR
31+
- Heap: 98304
32+
consumes:
33+
- CMSIS-RTOS2
34+
35+
# List of #define statements passed via the command line to the build tool.
36+
define:
37+
- CMSIS_target_header: \"DevKit-E8.h\"
38+
- ETHOSU85
39+
- NPU_QCONFIG: 1
40+
- NPU_REGIONCFG_0: 1
41+
- NPU_REGIONCFG_1: 0
42+
- NPU_REGIONCFG_2: 1
43+
- AXI_LIMIT0_MEM_TYPE: 3
44+
- AXI_LIMIT1_MEM_TYPE: 3
45+
- AXI_LIMIT2_MEM_TYPE: 3
46+
- AXI_LIMIT3_MEM_TYPE: 3
47+
48+
# List the packs used in the layer.
49+
packs:
50+
- pack: AlifSemiconductor::Ensemble@^2.0.4-0
51+
- pack: ARM::CMSIS@^6.2.0
52+
- pack: ARM::CMSIS-Compiler@^2.1.0
53+
- pack: ARM::CMSIS-Driver@^2.10.0
54+
- pack: ARM::ethos-u-core-driver@^1.25.2
55+
56+
# List miscellaneous options passed via the command line to the build tool.
57+
misc:
58+
- for-compiler: AC6
59+
Link:
60+
- '--diag_suppress 6312,6314,6329,6848'
61+
62+
# List components to use for your application.
63+
# A software component is a re-usable unit that may be configurable.
64+
components:
65+
- component: Device:Startup
66+
67+
- component: BSP:Board Config
68+
- component: BSP:DevKit Config&DevKit-e8
69+
- component: BSP:External peripherals:CAMERA Sensor MT9M114
70+
- component: BSP:External peripherals:Ethernet PHY
71+
- component: BSP:External peripherals:ILI9806E LCD panel
72+
73+
- component: CMSIS:CORE
74+
75+
- component: CMSIS Driver:Ethernet MAC
76+
- component: CMSIS Driver:Ethernet PHY:Custom
77+
- component: CMSIS Driver:GPIO
78+
define:
79+
- CMSIS_GPIO_DISABLE_EVENTS
80+
- component: CMSIS Driver:I2C
81+
- component: CMSIS Driver:SPI
82+
- component: CMSIS Driver:USART
83+
- component: CMSIS Driver:USB Device
84+
- component: CMSIS Driver:VIO:Board&DevKit-E8
85+
- component: CMSIS Driver:vStream:VideoIn&DevKit-E8
86+
- component: CMSIS Driver:vStream:VideoOut&DevKit-E8
87+
88+
- component: CMSIS-Compiler:CORE
89+
- component: CMSIS-Compiler:STDERR:Custom
90+
- component: CMSIS-Compiler:STDIN:Custom
91+
- component: CMSIS-Compiler:STDOUT:Custom
92+
93+
- component: Device:SOC Peripherals:CDC
94+
- component: Device:SOC Peripherals:CPI
95+
- component: Device:SOC Peripherals:DMA
96+
- component: Device:SOC Peripherals:GPIO
97+
- component: Device:SOC Peripherals:MHU
98+
- component: Device:SOC Peripherals:MIPI CSI2
99+
- component: Device:SOC Peripherals:MIPI DSI
100+
- component: Device:SOC Peripherals:MIPI DSI CSI2 DPHY
101+
- component: Device:SOC Peripherals:PINCONF
102+
103+
- component: Machine Learning:NPU Support:Ethos-U Driver&Generic U85
104+
105+
- component: Services:Retarget IO:STDERR
106+
- component: Services:Retarget IO:STDIN
107+
- component: Services:Retarget IO:STDOUT
108+
- component: Services:Secure Enclave:core&Source
109+
- component: Services:Secure Enclave:Initialization Helper&Source
110+
111+
# List of source groups and files added to a project or a layer.
112+
groups:
113+
- group: Board
114+
files:
115+
- file: ./main.c
116+
- file: ./main.h
117+
- file: ./DevKit-E8.h
118+
- file: ./ethos_setup.c
119+
- file: ./retarget_stdio.c
120+
- file: ./ext_init.c
121+
122+
- group: Ethos Interface
123+
files:
124+
- file: ./ethosu_cb_dcache.c
125+
- file: ./ethosu_cb_os_rtos2.c
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
layer:
2+
type: Board
3+
description: DevKit-E8 board setup using M55_HP and Ethos-U55
4+
for-board: Alif Semiconductor::DevKit-E8:Gen 1
5+
for-device: Alif Semiconductor::AE822FA0E5597LS0:M55_HP
6+
device: :M55_HP
7+
8+
# Processor features used in this project.
9+
processor:
10+
trustzone: off
11+
12+
# List connections used to identify compatible software layers.
13+
connections:
14+
- connect: DevKit-E8 Board
15+
provides:
16+
- CMSIS_ETH
17+
- CMSIS_USART
18+
- CMSIS_USB_Device
19+
- CMSIS_VIO
20+
- CMSIS_VSTREAM_VIDEO_IN
21+
- CMSIS_VSTREAM_VIDEO_OUT
22+
- MIKROBUS_AN
23+
- MIKROBUS_INT
24+
- MIKROBUS_PWM
25+
- MIKROBUS_I2C
26+
- MIKROBUS_SPI
27+
- MIKROBUS_UART
28+
- STDIN
29+
- STDOUT
30+
- STDERR
31+
- Heap: 98304
32+
consumes:
33+
- CMSIS-RTOS2
34+
35+
# List of #define statements passed via the command line to the build tool.
36+
define:
37+
- CMSIS_target_header: \"DevKit-E8.h\"
38+
- ETHOSU55
39+
- NPU_QCONFIG: 1
40+
- NPU_REGIONCFG_0: 1
41+
- NPU_REGIONCFG_1: 0
42+
- NPU_REGIONCFG_2: 1
43+
- AXI_LIMIT0_MEM_TYPE: 3
44+
- AXI_LIMIT1_MEM_TYPE: 3
45+
- AXI_LIMIT2_MEM_TYPE: 3
46+
- AXI_LIMIT3_MEM_TYPE: 3
47+
48+
# List the packs used in the layer.
49+
packs:
50+
- pack: AlifSemiconductor::Ensemble@^2.0.4-0
51+
- pack: ARM::CMSIS@^6.2.0
52+
- pack: ARM::CMSIS-Compiler@^2.1.0
53+
- pack: ARM::CMSIS-Driver@^2.10.0
54+
- pack: ARM::ethos-u-core-driver@^1.25.2
55+
56+
# List miscellaneous options passed via the command line to the build tool.
57+
misc:
58+
- for-compiler: AC6
59+
Link:
60+
- '--diag_suppress 6312,6314,6329,6848'
61+
62+
# List components to use for your application.
63+
# A software component is a re-usable unit that may be configurable.
64+
components:
65+
- component: Device:Startup
66+
67+
- component: BSP:Board Config
68+
- component: BSP:DevKit Config&DevKit-e8
69+
- component: BSP:External peripherals:CAMERA Sensor MT9M114
70+
- component: BSP:External peripherals:Ethernet PHY
71+
- component: BSP:External peripherals:ILI9806E LCD panel
72+
73+
- component: CMSIS:CORE
74+
75+
- component: CMSIS Driver:Ethernet MAC
76+
- component: CMSIS Driver:Ethernet PHY:Custom
77+
- component: CMSIS Driver:GPIO
78+
define:
79+
- CMSIS_GPIO_DISABLE_EVENTS
80+
- component: CMSIS Driver:I2C
81+
- component: CMSIS Driver:SPI
82+
- component: CMSIS Driver:USART
83+
- component: CMSIS Driver:USB Device
84+
- component: CMSIS Driver:VIO:Board&DevKit-E8
85+
- component: CMSIS Driver:vStream:VideoIn&DevKit-E8
86+
- component: CMSIS Driver:vStream:VideoOut&DevKit-E8
87+
88+
- component: CMSIS-Compiler:CORE
89+
- component: CMSIS-Compiler:STDERR:Custom
90+
- component: CMSIS-Compiler:STDIN:Custom
91+
- component: CMSIS-Compiler:STDOUT:Custom
92+
93+
- component: Device:SOC Peripherals:CDC
94+
- component: Device:SOC Peripherals:CPI
95+
- component: Device:SOC Peripherals:DMA
96+
- component: Device:SOC Peripherals:GPIO
97+
- component: Device:SOC Peripherals:MHU
98+
- component: Device:SOC Peripherals:MIPI CSI2
99+
- component: Device:SOC Peripherals:MIPI DSI
100+
- component: Device:SOC Peripherals:MIPI DSI CSI2 DPHY
101+
- component: Device:SOC Peripherals:PINCONF
102+
103+
- component: Machine Learning:NPU Support:Ethos-U Driver&Generic U55
104+
105+
- component: Services:Retarget IO:STDERR
106+
- component: Services:Retarget IO:STDIN
107+
- component: Services:Retarget IO:STDOUT
108+
- component: Services:Secure Enclave:core&Source
109+
- component: Services:Secure Enclave:Initialization Helper&Source
110+
111+
# List of source groups and files added to a project or a layer.
112+
groups:
113+
- group: Board
114+
files:
115+
- file: ./main.c
116+
- file: ./main.h
117+
- file: ./DevKit-E8.h
118+
- file: ./ethos_setup.c
119+
- file: ./retarget_stdio.c
120+
- file: ./ext_init.c
121+
122+
- group: Ethos Interface
123+
files:
124+
- file: ./ethosu_cb_dcache.c
125+
- file: ./ethosu_cb_os_rtos2.c

board/DevKit-e8/M55_HP/DevKit-E8.h

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
/*---------------------------------------------------------------------------
2+
* Copyright (c) 2025 Arm Limited (or its affiliates).
3+
* All rights reserved.
4+
* SPDX-License-Identifier: Apache-2.0
5+
*
6+
* Licensed under the Apache License, Version 2.0 (the License); you may
7+
* not use this file except in compliance with the License.
8+
* You may obtain a copy of the License at
9+
*
10+
* www.apache.org/licenses/LICENSE-2.0
11+
*
12+
* Unless required by applicable law or agreed to in writing, software
13+
* distributed under the License is distributed on an AS IS BASIS, WITHOUT
14+
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
* See the License for the specific language governing permissions and
16+
* limitations under the License.
17+
*---------------------------------------------------------------------------*/
18+
19+
#ifndef DEVKIT_E8_H_
20+
#define DEVKIT_E8_H_
21+
22+
#include "Driver_GPIO_Private.h"
23+
#include "Driver_ETH_MAC.h"
24+
#include "Driver_I2C.h"
25+
#include "Driver_SPI.h"
26+
#include "Driver_USART.h"
27+
#include "Driver_USBD.h"
28+
#include "cmsis_vstream.h"
29+
30+
// DevKit-E8 mikroBUS pin definitions
31+
#define MIKROBUS_AN GPIO_PIN(0, 6)
32+
#define MIKROBUS_INT GPIO_PIN(8, 1)
33+
#define MIKROBUS_PWM GPIO_PIN(5, 6)
34+
#define MIKROBUS_RST GPIO_PIN(8, 3)
35+
36+
// CMSIS Driver instances on mikroBUS connector
37+
#define MIKROBUS_I2C 0
38+
#define MIKROBUS_SPI 3
39+
#define MIKROBUS_UART 0
40+
41+
// CMSIS Driver instances of Board peripherals
42+
#define CMSIS_DRIVER_ETH 0 // CMSIS Driver Ethernet MAC instance number
43+
#define CMSIS_DRIVER_USART 4 // CMSIS Driver USART instance number
44+
#define CMSIS_DRIVER_USBD 0 // CMSIS Driver USB Device instance number
45+
#define CMSIS_DRIVER_USBD_HS 1 // CMSIS Driver USB Device high-speed support
46+
47+
// Retarget stdio to CMSIS UART
48+
#define RETARGET_STDIO_UART 4
49+
50+
// CMSIS Drivers
51+
extern ARM_DRIVER_ETH_MAC Driver_ETH_MAC0; /* Ethernet */
52+
extern ARM_DRIVER_I2C Driver_I2C0; /* mikroBUS I2C */
53+
extern ARM_DRIVER_SPI Driver_SPI3; /* mikroBUS SPI */
54+
extern ARM_DRIVER_USART Driver_USART0; /* mikroBUS UART */
55+
extern ARM_DRIVER_USART Driver_USART4; /* PRG USB */
56+
extern ARM_DRIVER_USBD Driver_USBD0; /* USB Device */
57+
extern vStreamDriver_t Driver_vStreamAudioIn; /* Audio In Stream */
58+
extern vStreamDriver_t Driver_vStreamVideoIn; /* Video In Stream */
59+
extern vStreamDriver_t Driver_vStreamVideoOut; /* Video Out Stream */
60+
61+
#ifdef CMSIS_shield_header
62+
#include CMSIS_shield_header
63+
#endif
64+
65+
#endif /* DEVKIT_E8_H_ */

board/DevKit-e8/M55_HP/README.md

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# Board: AlifSemiconductor DevKit-E8
2+
3+
## Board Layer for M55 High Performance Core
4+
5+
Device: AE822FA0E5597LS0:M55_HP
6+
7+
This setup is configured using **Conductor Tool**, an interactive tool provided by Alif Semiconductor for device configuration.
8+
Refer to ["Alif Conductor Tool Manual"](https://conductor.alifsemi.com/Alif_HTML_DCT_User_Help/Content/Help%20Manual.htm) for additional information.
9+
10+
### System Configuration
11+
12+
| System Component | Setting
13+
|:------------------------|:----------------------------------------
14+
| Heap | 96 kB (configured in M55_HP linker file)
15+
| Stack (MSP) | 8 kB (configured in M55_HP linker file)
16+
17+
### STDIO mapping
18+
19+
**STDIO** is routed to Virtual COM port via **UART4** peripheral
20+
21+
> Note:
22+
> For STDOUT (printf output) configure SW4 to position U4 (UART4)
23+
24+
### CMSIS-Driver mapping
25+
26+
| CMSIS-Driver | Peripheral | Board connector/component | Connection
27+
|:-----------------------|:-----------|:-----------------------------|:----------------------
28+
| Driver_ETH_MAC0 | ETH | Ethernet RJ45 connector (J5) | CMSIS_ETH
29+
| Driver_I2C0 | I2C0 | MikroBUS Header | MIKROBUS_I2C
30+
| Driver_SPI0 | SPI3 | MikroBUS Header | MIKROBUS_SPI
31+
| Driver_USART4 | UART4 | PRG USB connector (J3) | STDIN, STDOUT, STDERR
32+
| Driver_USBD0 | USB | SoC USB connector (J2) | CMSIS_USB_Device
33+
| CMSIS-Driver VIO | GPIO | RGB LED, Joystick | CMSIS_VIO
34+
| Driver_vStreamVideoIn | MIPI CSI | MIPI Camera (J16, J22) | CMSIS_VSTREAM_VIDEO_IN
35+
| Driver_vStreamVideoOut | MIPI DSI | GLCD Display (J21) | CMSIS_VSTREAM_VIDEO_OUT
36+
37+
### CMSIS-Driver Virtual I/O mapping
38+
39+
| CMSIS-Driver VIO | Board component
40+
|:-----------------|:----------------------------
41+
|vioBUTTON0 | Joystick Select Button
42+
|vioJOYup | Joystick Up
43+
|vioJOYdown | Joystick Down
44+
|vioJOYleft | Joystick Left
45+
|vioJOYright | Joystick Right
46+
|vioJOYselect | Joystick Select Button
47+
|vioLED0 | RGB LED Red
48+
|vioLED1 | RGB LED Green
49+
|vioLED2 | RGB LED Blue
50+
51+
### CMSIS-Driver vStream configuration
52+
53+
| Driver | Stream Format Description
54+
|:-----------------------|:----------------------------------------------------
55+
| Driver_vStreamAudioIn | 16-bit PCM audio, 16000 samples/second
56+
| Driver_vStreamVideoIn | RAW8 Bayer GBRG video, resolution 1280 x 720 (W x H)
57+
| Driver_vStreamVideoOut | RGB888 video, resolution 480 x 800 (W x H)
58+
59+
## SETOOLS
60+
61+
Before using layers on the board it is required to program the ATOC of the device
62+
using the Alif SETOOLS. The required `.vscode\tasks.json` commands are part of the
63+
Blinky examples. It is therefore recommended to start with such an example.
64+
65+
Refer to the section [Usage](https://www.keil.arm.com/packs/ensemble-alifsemiconductor)
66+
in the overview page of the Alif Semiconductor Ensemble DFP/BSP for information on how
67+
to setup these tools.
68+
69+
In VS Code use the menu command **Terminal - Run Tasks** and execute:
70+
71+
- "Alif: Install M55_HE or M55_HP debug stubs (single core configuration)"
72+
73+
> Note: For Windows ensure that the Terminal default is `Git Bash` or `PowerShell`.
74+
> - Configure SW4 to position SE (Secure UART) to enable SETOOLS communication with the device.

0 commit comments

Comments
 (0)