board: arm: Add support for apollo4p_blue_kxr_evb board.

Add devicetree, Kconfig and doc for Ambiq Apollo4 Blue Plus KXR EVB board.

Signed-off-by: Aaron Ye <aye@ambiq.com>
This commit is contained in:
Aaron Ye 2023-09-21 12:02:20 +08:00 committed by Maureen Helm
commit 7c9b76ecdf
9 changed files with 203 additions and 0 deletions

View file

@ -0,0 +1,7 @@
# SPDX-License-Identifier: Apache-2.0
#
# Copyright (c) 2023 Ambiq Micro Inc. <www.ambiq.com>
config BOARD_APOLLO4P_BLUE_KXR_EVB
bool "Ambiq Apollo4 Blue Plus KXR Evaluation Board"
depends on SOC_APOLLO4P_BLUE

View file

@ -0,0 +1,7 @@
# SPDX-License-Identifier: Apache-2.0
#
# Copyright (c) 2023 Ambiq Micro Inc. <www.ambiq.com>
config BOARD
default "apollo4p_blue_kxr_evb"
depends on BOARD_APOLLO4P_BLUE_KXR_EVB

View file

@ -0,0 +1,19 @@
/*
* Copyright (c) 2023 Ambiq Micro Inc. <www.ambiq.com>
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <dt-bindings/pinctrl/ambiq-apollo4-pinctrl.h>
&pinctrl {
uart0_default: uart0_default {
group1 {
pinmux = <UART0TX_P12>;
};
group2 {
pinmux = <UART0RX_P47>;
input-enable;
};
};
};

View file

@ -0,0 +1,36 @@
/dts-v1/;
#include <ambiq/ambiq_apollo4p_blue.dtsi>
#include "apollo4p_blue_kxr_evb-pinctrl.dtsi"
/ {
model = "Ambiq Apollo4 Blue Plus KXR evaluation board";
compatible = "ambiq,apollo4p_blue_kxr_evb";
chosen {
zephyr,itcm = &tcm;
zephyr,sram = &sram0;
zephyr,flash = &flash0;
zephyr,console = &uart0;
zephyr,shell-uart = &uart0;
zephyr,uart-pipe = &uart0;
};
aliases {
watchdog0 = &wdt0;
};
};
&uart0 {
current-speed = <115200>;
pinctrl-0 = <&uart0_default>;
pinctrl-names = "default";
status = "okay";
};
&counter0 {
status = "okay";
};
&wdt0 {
status = "okay";
};

View file

@ -0,0 +1,14 @@
identifier: apollo4p_blue_kxr_evb
name: Apollo4 Blue Plus KXR EVB
type: mcu
arch: arm
ram: 2816
flash: 1952
toolchain:
- zephyr
- gnuarmemb
supported:
- uart
testing:
ignore_tags:
- net

View file

@ -0,0 +1,10 @@
# SPDX-License-Identifier: Apache-2.0
#
# Copyright (c) 2023 Ambiq Micro Inc. <www.ambiq.com>
CONFIG_SOC_SERIES_APOLLO4X=y
CONFIG_SOC_APOLLO4P_BLUE=y
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y
CONFIG_SERIAL=y
CONFIG_UART_INTERRUPT_DRIVEN=y

View file

@ -0,0 +1,6 @@
# Copyright (c) 2023 Ambiq Micro Inc. <www.ambiq.com>
# SPDX-License-Identifier: Apache-2.0
board_runner_args(jlink "--device=AMAP42KK-KBR" "--iface=swd" "--speed=1000")
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

View file

@ -0,0 +1,104 @@
.. _apollo4p_blue_kxr_evb:
Ambiq Apollo4 Blue Plus KXR EVB
###############################
Apollo4 Blue Plus KXR EVB is a board by Ambiq featuring their ultra-low power Apollo4 Blue Plus SoC.
.. image:: ./apollo4-blue-plus-kxr-soc-eval-board.jpg
:align: center
:alt: Apollo4 Blue Plus KXR EVB
Hardware
********
- Apollo4 Blue Plus SoC with upto 192 MHz operating frequency
- ARM® Cortex® M4F core
- 64 kB 2-way Associative/Direct-Mapped Cache per core
- Up to 2 MB of non-volatile memory (NVM) for code/data
- Up to 2.75 MB of low leakage / low power RAM for code/data
- 384 kB Tightly Coupled RAM
- 384 kB Extended RAM
- Bluetooth 5.1 Low Energy
For more information about the Apollo4 Blue Plus SoC and Apollo4 Blue Plus KXR EVB board:
- `Apollo4 Blue Plus Website`_
- `Apollo4 Blue Plus Datasheet`_
- `Apollo4 Blue Plus KXR EVB Website`_
Supported Features
==================
The Apollo4 Blue Plus KXR EVB board configuration supports the following hardware features:
+-----------+------------+-------------------------------------+
| Interface | Controller | Driver/Component |
+===========+============+=====================================+
| MPU | on-chip | memory protection unit |
+-----------+------------+-------------------------------------+
| NVIC | on-chip | nested vector interrupt controller |
+-----------+------------+-------------------------------------+
| SYSTICK | on-chip | systick |
+-----------+------------+-------------------------------------+
| STIMER | on-chip | stimer |
+-----------+------------+-------------------------------------+
| GPIO | on-chip | gpio |
+-----------+------------+-------------------------------------+
| UART | on-chip | serial |
+-----------+------------+-------------------------------------+
| WDT | on-chip | watchdog |
+-----------+------------+-------------------------------------+
| RADIO | on-chip | bluetooth |
+-----------+------------+-------------------------------------+
The default configuration can be found in the defconfig file:
``boards/arm/apollo4p_blue_kxr_evb/apollo4p_blue_kxr_evb_defconfig``.
Programming and Debugging
=========================
Flashing an application
-----------------------
Connect your device to your host computer using the JLINK USB port.
The sample application :ref:`hello_world` is used for this example.
Build the Zephyr kernel and application, then flash it to the device:
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: apollo4p_blue_kxr_evb
:goals: flash
.. note::
`west flash` requires `SEGGER J-Link software`_ and `pylink`_ Python module
to be installed on you host computer.
Open a serial terminal (minicom, putty, etc.) with the following settings:
- Speed: 115200
- Data: 8 bits
- Parity: None
- Stop bits: 1
Reset the board and you should be able to see on the corresponding Serial Port
the following message:
.. code-block:: console
Hello World! apollo4p_blue_kxr_evb
.. _Apollo4 Blue Plus Website:
https://ambiq.com/apollo4-blue-plus/
.. _Apollo4 Blue Plus Datasheet:
https://contentportal.ambiq.com/documents/20123/388410/Apollo4-Blue-Plus-SoC-Datasheet.pdf
.. _Apollo4 Blue Plus KXR EVB Website:
https://www.ambiq.top/en/apollo4-blue-plus-kxr-soc-eval-board
.. _SEGGER J-Link software:
https://www.segger.com/downloads/jlink
.. _pylink:
https://github.com/Square/pylink