Skip to content

Commit 2ca0f5f

Browse files
cyliangtwkartben
authored andcommitted
boards: nuvoton: add support for numaker m55m1
Add new development board numaker_m55m1 for m55m1x series. Signed-off-by: cyliang tw <[email protected]>
1 parent 89e950e commit 2ca0f5f

File tree

12 files changed

+258
-1
lines changed

12 files changed

+258
-1
lines changed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# SPDX-License-Identifier: Apache-2.0
2+
#
3+
# Nuvoton NuMaker M55M1 board configuration
4+
#
5+
# Copyright (c) 2025 Nuvoton Technology Corporation.
6+
7+
config BOARD_NUMAKER_M55M1
8+
select SOC_FLASH_NUMAKER
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# SPDX-License-Identifier: Apache-2.0
2+
#
3+
# Nuvoton NuMaker M55M1 board configuration
4+
#
5+
# Copyright (c) 2025 Nuvoton Technology Corporation.
6+
7+
config BOARD_NUMAKER_M55M1
8+
select SOC_M55M1XXX
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# SPDX-License-Identifier: Apache-2.0
2+
3+
board_runner_args(pyocd "--target=m55m1h2ljae")
4+
5+
include(${ZEPHYR_BASE}/boards/common/pyocd.board.cmake)
6+
include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake)
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
board:
2+
name: numaker_m55m1
3+
full_name: NUMAKER M55M1
4+
vendor: nuvoton
5+
socs:
6+
- name: m55m1xxx
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
.. zephyr:board:: numaker_m55m1
2+
3+
Overview
4+
********
5+
6+
The NuMaker M55M1 is an Internet of Things (IoT) application focused platform
7+
specially developed by Nuvoton. The NuMaker-M55M1 is based on the NuMicro® M55M1
8+
series MCU with ARM® -Cortex®-M55 core.
9+
10+
Features
11+
========
12+
- 32-bit Arm Cortex®-M55 M55M1H2LJAE MCU
13+
- Core clock up to 220 MHz
14+
- 2 MB embedded Dual Bank Flash and 1344 KB SRAM
15+
- 128 KB DTCM and 64 KB ITCM
16+
- USB 2.0 Full-Speed OTG / Device
17+
- USB 1.1 Host
18+
- Arduino UNO compatible interface
19+
- One push-button is for reset
20+
- Two LEDs: one is for power indication and the other is for user-defined
21+
- On-board NU-Link2 ICE debugger/programmer with SWD connector
22+
23+
More information about the board can be found at the `NuMaker M55M1 User Manual`_.
24+
25+
Supported Features
26+
==================
27+
28+
.. zephyr:board-supported-hw::
29+
30+
The on-board 12-MHz crystal allows the device to run at its maximum operating speed of 220 MHz.
31+
32+
More details about the supported peripherals are available in `M55M1 TRM`_
33+
34+
Building and Flashing
35+
*********************
36+
Flashing
37+
========
38+
39+
Here is an example for the :zephyr:code-sample:`hello_world` application.
40+
41+
On board debugger Nu-link2 can emulate UART0 as a virtual COM port over usb,
42+
To enable this, set ISW1 DIP switch 1-3 (TXD RXD VOM) to ON.
43+
Connect the NuMaker-M55M1 to your host computer using the USB port, then
44+
run a serial host program to connect with your board. For example:
45+
46+
.. code-block:: console
47+
48+
$ minicom -D /dev/ttyACM0
49+
50+
.. zephyr-app-commands::
51+
:zephyr-app: samples/hello_world
52+
:board: numaker_m55m1
53+
:goals: flash
54+
55+
Debugging
56+
=========
57+
58+
Here is an example for the :zephyr:code-sample:`hello_world` application.
59+
60+
.. zephyr-app-commands::
61+
:zephyr-app: samples/hello_world
62+
:board: numaker_m55m1
63+
:goals: debug
64+
65+
Step through the application in your debugger.
66+
67+
References
68+
**********
69+
70+
.. target-notes::
71+
72+
.. _NuMaker M55M1 User Manual:
73+
https://www.nuvoton.com/products/microcontrollers/arm-cortex-m55-mcus/m55m1-series/
74+
.. _M55M1 TRM:
75+
https://www.nuvoton.com/products/microcontrollers/arm-cortex-m55-mcus/m55m1-series/
61.4 KB
Loading
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/*
2+
* Copyright (c) 2025 Nuvoton Technology Corporation.
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
#include "pinctrl/m55m1h2l-pinctrl.h"
8+
9+
&pinctrl {
10+
uart0_default: uart0_default {
11+
group0 {
12+
pinmux = <PB12MFP_UART0_RXD>,
13+
<PB13MFP_UART0_TXD>;
14+
};
15+
};
16+
17+
/* TX/RX/RTS/CTS/RST --> D1/D0/A2/A3/D2 --> PB3/PB2/PB8/PB9/PC9 */
18+
uart1_default: uart1_default {
19+
group0 {
20+
pinmux = <PB9MFP_UART1_nCTS>,
21+
<PB8MFP_UART1_nRTS>,
22+
<PB2MFP_UART1_RXD>,
23+
<PB3MFP_UART1_TXD>,
24+
<PC9MFP_GPIO>;
25+
};
26+
};
27+
};
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
/*
2+
* Copyright (c) 2025 Nuvoton Technology Corporation.
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
/dts-v1/;
8+
9+
#include <nuvoton/m55m1h2l.dtsi>
10+
#include "numaker_m55m1-pinctrl.dtsi"
11+
#include <zephyr/dt-bindings/input/input-event-codes.h>
12+
13+
/ {
14+
model = "Nuvoton NuMaker M55M1 board";
15+
compatible = "nuvoton,numaker-m55m1";
16+
17+
aliases {
18+
led0 = &green_led;
19+
led1 = &yellow_led;
20+
};
21+
22+
chosen {
23+
zephyr,console = &uart0;
24+
zephyr,shell-uart = &uart0;
25+
zephyr,sram = &sram0;
26+
zephyr,dtcm = &dtcm;
27+
zephyr,itcm = &itcm;
28+
zephyr,flash = &flash0;
29+
zephyr,code-partition = &slot0_partition;
30+
};
31+
32+
leds {
33+
compatible = "gpio-leds";
34+
35+
green_led: led_0 {
36+
gpios = <&gpiod 5 GPIO_ACTIVE_LOW>;
37+
label = "User LD0";
38+
};
39+
40+
yellow_led: led_1 {
41+
gpios = <&gpiod 6 GPIO_ACTIVE_LOW>;
42+
label = "User LD1";
43+
};
44+
};
45+
};
46+
47+
&gpiod {
48+
status = "okay";
49+
};
50+
51+
&flash0 {
52+
partitions {
53+
compatible = "fixed-partitions";
54+
#address-cells = <1>;
55+
#size-cells = <1>;
56+
57+
boot_partition: partition@0 {
58+
label = "mcuboot";
59+
reg = <0x0 0x8000>;
60+
};
61+
62+
slot0_partition: partition@8000 {
63+
label = "image-0";
64+
reg = <0x8000 0xf8000>;
65+
};
66+
67+
slot1_partition: partition@100000 {
68+
label = "image-1";
69+
reg = <0x100000 0xf8000>;
70+
};
71+
72+
storage_partition: partition@1f8000 {
73+
label = "storage";
74+
reg = <0x1f8000 0x8000>;
75+
};
76+
};
77+
};
78+
79+
&sram0 {
80+
reg = <0x20100000 DT_SIZE_K(1344)>;
81+
};
82+
83+
&uart0 {
84+
current-speed = <115200>;
85+
pinctrl-0 = <&uart0_default>;
86+
pinctrl-names = "default";
87+
status = "okay";
88+
};
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Copyright (c) 2025 Nuvoton Technology Corporation.
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
identifier: numaker_m55m1
5+
name: NUVOTON NUMAKER-M55M1 Kit
6+
type: mcu
7+
arch: arm
8+
toolchain:
9+
- zephyr
10+
- gnuarmemb
11+
ram: 1536
12+
flash: 2048
13+
supported:
14+
- gpio
15+
vendor: nuvoton
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# SPDX-License-Identifier: Apache-2.0
2+
3+
CONFIG_GPIO=y
4+
5+
# Enable system clock controller driver
6+
CONFIG_CLOCK_CONTROL=y
7+
CONFIG_CLOCK_CONTROL_NUMAKER_SCC=y
8+
9+
# Enable MPU
10+
CONFIG_ARM_MPU=y
11+
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=220000000
12+
13+
# Enable UART driver
14+
CONFIG_SERIAL=y
15+
CONFIG_UART_INTERRUPT_DRIVEN=y
16+
17+
# Console
18+
CONFIG_CONSOLE=y
19+
CONFIG_UART_CONSOLE=y
20+
21+
# Enable FMC
22+
CONFIG_FLASH=y

0 commit comments

Comments
 (0)