boards: arm: add npcm400 evb board

Add initial support for npcm400 evaluation board

Signed-off-by: Tyrone Ting <kfting@nuvoton.com>
Signed-off-by: James Chiang <cpchiang1@nuvoton.com>
Signed-off-by: Joseph Liu <kwliu@nuvoton.com>
This commit is contained in:
Joseph Liu 2024-08-13 17:44:30 +08:00 committed by Henrik Brix Andersen
commit 2f19327ccb
9 changed files with 186 additions and 0 deletions

View file

@ -0,0 +1,6 @@
# Copyright (c) 2024 Nuvoton Technology Corporation.
#
# SPDX-License-Identifier: Apache-2.0
config SYS_CLOCK_TICKS_PER_SEC
default 1000

View file

@ -0,0 +1,5 @@
# Copyright (c) 2024 Nuvoton Technology Corporation.
# SPDX-License-Identifier: Apache-2.0
config BOARD_NPCM400_EVB
select SOC_NPCM400

View file

@ -0,0 +1,8 @@
# Copyright (c) 2024 Nuvoton Technology Corporation.
#
# SPDX-License-Identifier: Apache-2.0
board_runner_args(jlink "--device=npcm400" "--speed=4000")
board_runner_args(jlink "--file=./build/zephyr/${CONFIG_KERNEL_BIN_NAME}.npcm.bin")
board_runner_args(jlink "--reset-after-load")
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)

View file

@ -0,0 +1,5 @@
board:
name: npcm400_evb
vendor: nuvoton
socs:
- name: npcm400

View file

@ -0,0 +1,108 @@
.. _npcm400_evb:
Nuvoton NPCM400_EVB
####################
Overview
********
The NPCM400_EVB kit is a development platform to evaluate the
Nuvoton NPCM4 series microcontrollers. This board needs to be mated with
part number NPCM400 Satellite Management Controller (SMC).
.. image:: npcm400_evb.webp
:align: center
:alt: NPCM400 Evaluation Board
Hardware
********
- ARM Cortex-M4F Processor
- Core clock up to 100 MHz
- 1MB Integrated Flash
- 32KB cache for XIP and Data
- 768 KB RAM and 64 KB boot ROM
- ADC & GPIO headers
- UART0 and UART1
- I2C/I3C
- RMII
- USB2.0 Device
- USB1.1 Host
- Secure Boot is supported
Supported Features
==================
The following features are supported:
+-----------+------------+-------------------------------------+
| Interface | Controller | Driver/Component |
+===========+============+=====================================+
| NVIC | on-chip | nested vector interrupt controller |
+-----------+------------+-------------------------------------+
| ADC | on-chip | adc controller |
+-----------+------------+-------------------------------------+
| CLOCK | on-chip | reset and clock control |
+-----------+------------+-------------------------------------+
| GPIO | on-chip | gpio |
+-----------+------------+-------------------------------------+
| I2C | on-chip | i2c port/controller |
+-----------+------------+-------------------------------------+
| I3C | on-chip | i3c port/controller |
+-----------+------------+-------------------------------------+
| PINMUX | on-chip | pinmux |
+-----------+------------+-------------------------------------+
| UART | on-chip | serial port-polling; |
| | | serial port-interrupt |
+-----------+------------+-------------------------------------+
| WDT | on-chip | watchdog |
+-----------+------------+-------------------------------------+
The default configuration can be found in the defconfig file:
:zephyr_file:`boards/nuvoton/npcm400_evb/npcm400_evb_defconfig`
Connections and IOs
===================
Nuvoton to provide the schematic for this board.
Serial Port
===========
UART0 is configured for serial logs. The default serial setup is 115200 8N1.
Programming and Debugging
*************************
This board comes with a Cortex ETM port which facilitates tracing and debugging
using a single physical connection. In addition, it comes with sockets for
JTAG-only sessions.
Flashing
========
If the correct headers are installed, this board supports J-TAG.
To flash with J-TAG, install the drivers for your programmer, for example:
SEGGER J-link's drivers are at https://www.segger.com/downloads/jlink/
Here is an example for the :ref:`hello_world` application.
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: npcm400_evb
:goals: flash
Open a serial terminal, and you should see the following message in the terminal:
.. code-block:: console
Hello World! npcm400_evb/npcm400
Debugging
=========
Use JTAG/SWD with a J-Link
References
**********

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

View file

@ -0,0 +1,22 @@
/*
* Copyright (c) 2024 Nuvoton Technology Corporation.
*
* SPDX-License-Identifier: Apache-2.0
*/
/dts-v1/;
#include <nuvoton/npcm400.dtsi>
/ {
model = "Nuvoton NPCM400 evaluation board";
chosen {
zephyr,sram = &sram0;
zephyr,flash = &flash0;
};
aliases {
};
};

View file

@ -0,0 +1,16 @@
#
# Copyright (c) 2024 Nuvoton Technology Corporation.
#
# SPDX-License-Identifier: Apache-2.0
#
identifier: npcm400_evb
name: Nuvoton NPCM400 EVB
type: mcu
arch: arm
toolchain:
- zephyr
- gnuarmemb
ram: 768
flash: 1024
vendor: nuvoton

View file

@ -0,0 +1,16 @@
# Copyright (c) 2024 Nuvoton Technology Corporation.
#
# SPDX-License-Identifier: Apache-2.0
CONFIG_SRAM_VECTOR_TABLE=y
# General Kernel Options
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=96000000
CONFIG_XIP=y
# UART Driver
CONFIG_SERIAL=n
# Console Driver
CONFIG_CONSOLE=n
CONFIG_UART_CONSOLE=n