boards: Add support for the Ambiq Apollo4P EVB board
This commit adds support for the Ambiq Apollo4P EVB board (AMAP4PEVB). Signed-off-by: Maciej Sobkowski <msobkowski@antmicro.com>
This commit is contained in:
parent
1d45065e8a
commit
dc7a6d5fb8
9 changed files with 185 additions and 0 deletions
7
boards/arm/apollo4p_evb/Kconfig.board
Normal file
7
boards/arm/apollo4p_evb/Kconfig.board
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
# Copyright (c) 2023 Antmicro <www.antmicro.com>
|
||||||
|
|
||||||
|
config BOARD_APOLLO4P_EVB
|
||||||
|
bool "Ambiq Apollo4 Plus Evaluation Board"
|
||||||
|
depends on SOC_APOLLO4P
|
7
boards/arm/apollo4p_evb/Kconfig.defconfig
Normal file
7
boards/arm/apollo4p_evb/Kconfig.defconfig
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
# Copyright (c) 2023 Antmicro <www.antmicro.com>
|
||||||
|
|
||||||
|
config BOARD
|
||||||
|
default "apollo4p_evb"
|
||||||
|
depends on BOARD_APOLLO4P_EVB
|
19
boards/arm/apollo4p_evb/apollo4p_evb-pinctrl.dtsi
Normal file
19
boards/arm/apollo4p_evb/apollo4p_evb-pinctrl.dtsi
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2023 Antmicro <www.antmicro.com>
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <dt-bindings/pinctrl/ambiq-apollo4-pinctrl.h>
|
||||||
|
|
||||||
|
&pinctrl {
|
||||||
|
uart0_default: uart0_default {
|
||||||
|
group1 {
|
||||||
|
pinmux = <UART0TX_P60>;
|
||||||
|
};
|
||||||
|
group2 {
|
||||||
|
pinmux = <UART0RX_P47>;
|
||||||
|
input-enable;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
23
boards/arm/apollo4p_evb/apollo4p_evb.dts
Normal file
23
boards/arm/apollo4p_evb/apollo4p_evb.dts
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
/dts-v1/;
|
||||||
|
#include <ambiq/ambiq_apollo4p.dtsi>
|
||||||
|
|
||||||
|
#include "apollo4p_evb-pinctrl.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Ambiq Apollo4 Plus evaluation board";
|
||||||
|
compatible = "ambiq,apollo4p_evb";
|
||||||
|
chosen {
|
||||||
|
zephyr,sram = &sram0;
|
||||||
|
zephyr,flash = &flash0;
|
||||||
|
zephyr,console = &uart0;
|
||||||
|
zephyr,shell-uart = &uart0;
|
||||||
|
zephyr,uart-pipe = &uart0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart0 {
|
||||||
|
current-speed = <115200>;
|
||||||
|
pinctrl-0 = <&uart0_default>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
status = "okay";
|
||||||
|
};
|
15
boards/arm/apollo4p_evb/apollo4p_evb.yaml
Normal file
15
boards/arm/apollo4p_evb/apollo4p_evb.yaml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
identifier: apollo4p_evb
|
||||||
|
name: Apollo4P EVB
|
||||||
|
type: mcu
|
||||||
|
arch: arm
|
||||||
|
ram: 2816
|
||||||
|
flash: 1952
|
||||||
|
toolchain:
|
||||||
|
- zephyr
|
||||||
|
- gnuarmemb
|
||||||
|
supported:
|
||||||
|
- uart
|
||||||
|
testing:
|
||||||
|
ignore_tags:
|
||||||
|
- net
|
||||||
|
- bluetooth
|
9
boards/arm/apollo4p_evb/apollo4p_evb_defconfig
Normal file
9
boards/arm/apollo4p_evb/apollo4p_evb_defconfig
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
# Copyright (c) 2023 Antmicro <www.antmicro.com>
|
||||||
|
|
||||||
|
CONFIG_SOC_SERIES_APOLLO4X=y
|
||||||
|
CONFIG_CONSOLE=y
|
||||||
|
CONFIG_UART_CONSOLE=y
|
||||||
|
CONFIG_SERIAL=y
|
||||||
|
CONFIG_UART_INTERRUPT_DRIVEN=y
|
6
boards/arm/apollo4p_evb/board.cmake
Normal file
6
boards/arm/apollo4p_evb/board.cmake
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
# Copyright (c) 2023 Antmicro <www.antmicro.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)
|
BIN
boards/arm/apollo4p_evb/doc/apollo4-plus-soc-eval-board.jpg
Normal file
BIN
boards/arm/apollo4p_evb/doc/apollo4-plus-soc-eval-board.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 86 KiB |
99
boards/arm/apollo4p_evb/doc/index.rst
Normal file
99
boards/arm/apollo4p_evb/doc/index.rst
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
.. _apollo4p_evb:
|
||||||
|
|
||||||
|
Ambiq Apollo4P EVB
|
||||||
|
##################
|
||||||
|
|
||||||
|
Apollo4P EVB is a board by Ambiq featuring their ultra-low power Apollo4 Plus SoC.
|
||||||
|
|
||||||
|
.. image:: ./apollo4-plus-soc-eval-board.jpg
|
||||||
|
:align: center
|
||||||
|
:alt: Apollo4P EVB
|
||||||
|
|
||||||
|
Hardware
|
||||||
|
********
|
||||||
|
|
||||||
|
- Apollo4 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
|
||||||
|
|
||||||
|
For more information about the Apollo4 Plus SoC and Apollo4P EVB board:
|
||||||
|
|
||||||
|
- `Apollo4 Plus Website`_
|
||||||
|
- `Apollo4 Plus Datasheet`_
|
||||||
|
- `Apollo4P EVB Website`_
|
||||||
|
|
||||||
|
Supported Features
|
||||||
|
==================
|
||||||
|
|
||||||
|
The Apollo4P 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 |
|
||||||
|
+-----------+------------+-------------------------------------+
|
||||||
|
|
||||||
|
The default configuration can be found in the defconfig file:
|
||||||
|
``boards/arm/apollo4p_evb/apollo4p_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_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_evb
|
||||||
|
|
||||||
|
.. _Apollo4 Plus Website:
|
||||||
|
https://ambiq.com/apollo4-plus/
|
||||||
|
|
||||||
|
.. _Apollo4 Plus Datasheet:
|
||||||
|
https://contentportal.ambiq.com/documents/20123/388415/Apollo4-Plus-SoC-Datasheet.pdf
|
||||||
|
|
||||||
|
.. _Apollo4P EVB Website:
|
||||||
|
https://www.ambiq.top/en/apollo4-plus-soc-eval-board
|
||||||
|
|
||||||
|
.. _SEGGER J-Link software:
|
||||||
|
https://www.segger.com/downloads/jlink
|
||||||
|
|
||||||
|
.. _pylink:
|
||||||
|
https://github.com/Square/pylink
|
Loading…
Add table
Add a link
Reference in a new issue