boards: nuvoton: add support for numaker m55m1

Add new development board numaker_gai_m55m1 for m55m1x series.

Signed-off-by: cyliang tw <cyliang@nuvoton.com>
This commit is contained in:
cyliang tw
2026-01-08 18:10:33 +08:00
committed by Fabio Baltieri
parent d5317f5d42
commit df32725c46
11 changed files with 269 additions and 1 deletions

View File

@@ -0,0 +1,8 @@
# SPDX-License-Identifier: Apache-2.0
#
# Nuvoton NuMaker NUGESTUREAI M55M1 board configuration
#
# Copyright (c) 2026 Nuvoton Technology Corporation.
config BOARD_NUMAKER_GAI_M55M1
select SOC_M55M1XXX

View File

@@ -0,0 +1,6 @@
# SPDX-License-Identifier: Apache-2.0
board_runner_args(pyocd "--target=m55m1h2ljae")
include(${ZEPHYR_BASE}/boards/common/pyocd.board.cmake)
include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake)

View File

@@ -0,0 +1,6 @@
board:
name: numaker_gai_m55m1
full_name: NUMAKER NUGESTUREAI M55M1
vendor: nuvoton
socs:
- name: m55m1xxx

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

View File

@@ -0,0 +1,88 @@
.. zephyr:board:: numaker_gai_m55m1
Overview
********
The NuMaker M55M1 is an Internet of Things (IoT) application focused platform
specially developed by Nuvoton. The NuGestureAI-M55M1 is based on the NuMicro® M55M1
series MCU with ARM® -Cortex®-M55 core.
Features
========
- 32-bit Arm Cortex®-M55 M55M1H2LJAE MCU
- Core clock up to 220 MHz
- 2 MB embedded Dual Bank Flash and 1344 KB SRAM
- 128 KB DTCM and 64 KB ITCM
- USB 2.0 Full-Speed OTG / Device
- USB 1.1 Host
- One push-button is for reset
- Two LEDs: one is for power indication and the other is for user-defined
- One SWD connector
More information about the board can be found at the `NuMaker M55M1 User Manual`_.
Supported Features
==================
.. zephyr:board-supported-hw::
The on-board 12-MHz crystal allows the device to run at its maximum operating speed of 220 MHz.
More details about the supported peripherals are available in `M55M1 TRM`_
Building and Flashing
*********************
.. zephyr:board-supported-runners::
Flashing
========
Here is an example for the :zephyr:code-sample:`hello_world` application.
On board debugger Nu-link2 can emulate UART0 as a virtual COM port over usb,
To enable this, set ISW1 DIP switch 1-3 (TXD RXD VOM) to ON.
Connect the NuMaker-M55M1 to your host computer using the USB port, then
run a serial host program to connect with your board. For example:
.. code-block:: console
$ minicom -D /dev/ttyACM0
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: numaker_gai_m55m1
:goals: flash
Debugging
=========
Here is an example for the :zephyr:code-sample:`hello_world` application.
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: numaker_gai_m55m1
:goals: debug
Step through the application in your debugger.
VS Code Support
===============
Here is to go through VS Code instead of command line.
Please install Nuvoton NuMicro Cortex-M Pack and follow getting start guide of this pack.
This pack is a complete development toolkit for Nuvotons NuMicro Cortex-M microcontrollers
in Visual Studio Code.
URL of this pack is
https://marketplace.visualstudio.com/items?itemName=Nuvoton.nuvoton-numicro-cortex-m-pack
References
**********
.. target-notes::
.. _NuMaker M55M1 User Manual:
https://www.nuvoton.com/products/microcontrollers/arm-cortex-m55-mcus/m55m1-series/
.. _M55M1 TRM:
https://www.nuvoton.com/products/microcontrollers/arm-cortex-m55-mcus/m55m1-series/

View File

@@ -0,0 +1,23 @@
/*
* Copyright (c) 2026 Nuvoton Technology Corporation.
*
* SPDX-License-Identifier: Apache-2.0
*/
#include "pinctrl/m55m1h2l-pinctrl.h"
&pinctrl {
uart5_default: uart5_default {
group0 {
pinmux = <PB4MFP_UART5_RXD>,
<PB5MFP_UART5_TXD>;
};
};
uart2_default: uart2_default {
group0 {
pinmux = <PB0MFP_UART2_RXD>,
<PB1MFP_UART2_TXD>;
};
};
};

View File

@@ -0,0 +1,104 @@
/*
* Copyright (c) 2026 Nuvoton Technology Corporation.
*
* SPDX-License-Identifier: Apache-2.0
*/
/dts-v1/;
#include <nuvoton/m55m1h2l.dtsi>
#include "numaker_gai_m55m1-pinctrl.dtsi"
#include <zephyr/dt-bindings/input/input-event-codes.h>
/ {
model = "Nuvoton NuMaker GestureAI M55M1 board";
compatible = "nuvoton,numaker-m55m1";
aliases {
led0 = &yellow_led;
sw0 = &btn0;
};
chosen {
zephyr,console = &uart5;
zephyr,shell-uart = &uart5;
zephyr,sram = &sram0;
zephyr,dtcm = &dtcm;
zephyr,itcm = &itcm;
zephyr,flash = &flash0;
zephyr,code-partition = &slot0_partition;
};
leds {
compatible = "gpio-leds";
yellow_led: led_0 {
gpios = <&gpioa 7 GPIO_ACTIVE_LOW>;
label = "User LD0";
};
};
gpio_keys {
compatible = "gpio-keys";
btn0: btn0 {
label = "BTN0";
gpios = <&gpioa 4 GPIO_ACTIVE_LOW>;
zephyr,code = <INPUT_KEY_0>;
};
};
};
&scc {
lxt = "disable";
hxt = "enable";
};
&gpioa {
status = "okay";
};
&flash0 {
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
boot_partition: partition@0 {
label = "mcuboot";
reg = <0x0 0xfe00>;
};
slot0_partition: partition@fe00 {
label = "image-0";
reg = <0xfe00 0xf4000>;
};
slot1_partition: partition@103e00 {
label = "image-1";
reg = <0x103e00 0xf4000>;
};
storage_partition: partition@1f7e00 {
label = "storage";
reg = <0x1f7e00 0x8200>;
};
};
};
&sram0 {
reg = <0x20100000 DT_SIZE_K(1344)>;
};
&uart5 {
current-speed = <115200>;
pinctrl-0 = <&uart5_default>;
pinctrl-names = "default";
status = "okay";
};
/* On enabled, husbd phy is required HXT. */
zephyr_udc0: &hsusbd {
/* Needn't pinctrl for pins being dedicated */
status = "okay";
};

View File

@@ -0,0 +1,16 @@
# Copyright (c) 2026 Nuvoton Technology Corporation.
# SPDX-License-Identifier: Apache-2.0
identifier: numaker_gai_m55m1
name: NUVOTON NUMAKER-GAI-M55M1 Kit
type: mcu
arch: arm
toolchain:
- zephyr
- gnuarmemb
ram: 1536
flash: 2048
supported:
- gpio
- usb
vendor: nuvoton

View File

@@ -0,0 +1,15 @@
# SPDX-License-Identifier: Apache-2.0
CONFIG_GPIO=y
# Enable system clock controller driver
CONFIG_CLOCK_CONTROL=y
CONFIG_CLOCK_CONTROL_NUMAKER_SCC=y
# Enable UART driver
CONFIG_SERIAL=y
CONFIG_UART_INTERRUPT_DRIVEN=y
# Console
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y

View File

@@ -0,0 +1,2 @@
source [find interface/nulink.cfg]
source [find target/numicro.cfg]

View File

@@ -205,7 +205,7 @@ manifest:
groups:
- hal
- name: hal_nuvoton
revision: 602db600cae5275ab0946de696a6068d769a6b3d
revision: 8f1bf948a94cf59926ea7b686985e1d6c6f954c7
path: modules/hal/nuvoton
groups:
- hal