146 lines
4.9 KiB
ReStructuredText
146 lines
4.9 KiB
ReStructuredText
.. _phyboard_electra_am64xx_m4:
|
|
|
|
phyBOARD-Electra AM64x M4F Core
|
|
###############################
|
|
|
|
Overview
|
|
********
|
|
|
|
The AM64x phyBOARD-Electra board configuration is used by Zephyr applications
|
|
that run on the TI AM64x platform. The board configuration provides support
|
|
for the ARM Cortex-M4F MCU core and the following features:
|
|
|
|
- Nested Vector Interrupt Controller (NVIC)
|
|
- System Tick System Clock (SYSTICK)
|
|
|
|
The board configuration also enables support for the semihosting debugging console.
|
|
|
|
See the `PHYTEC AM64x Product Page`_ for details.
|
|
|
|
.. figure:: img/phyCORE-AM64x_Electra_frontside.webp
|
|
:align: center
|
|
:alt: phyBOARD-Electra AM64x
|
|
|
|
PHYTEC phyBOARD-Electra with the phyCORE-AM64x SoM
|
|
|
|
Hardware
|
|
********
|
|
The AM64x phyBOARD-Electra kit features the AM64x SoC, which is composed of a
|
|
dual Cortex-A53 cluster and two dual Cortex-R5F cores in the MAIN domain as
|
|
well as a single Cortex-M4 core in the MCU domain. Zephyr is ported to run on
|
|
the M4F core and the following listed hardware specifications are used:
|
|
|
|
- Low-power ARM Cortex-M4F
|
|
- Memory
|
|
|
|
- 256KB of SRAM
|
|
- 2GB of DDR4
|
|
|
|
- Debug
|
|
|
|
- XDS110 based JTAG
|
|
|
|
Supported Features
|
|
==================
|
|
|
|
The phyboard_electra/am6442/m4 configuration supports the following hardware features:
|
|
|
|
+-----------+------------+-------------------------------------+
|
|
| Interface | Controller | Driver/Component |
|
|
+===========+============+=====================================+
|
|
| NVIC | on-chip | nested vector interrupt controller |
|
|
+-----------+------------+-------------------------------------+
|
|
| SYSTICK | on-chip | systick |
|
|
+-----------+------------+-------------------------------------+
|
|
| PINCTRL | on-chip | pinctrl |
|
|
+-----------+------------+-------------------------------------+
|
|
| UART | on-chip | serial |
|
|
+-----------+------------+-------------------------------------+
|
|
| GPIO | on-chip | gpio |
|
|
+-----------+------------+-------------------------------------+
|
|
|
|
Other hardware features are not currently supported by the port.
|
|
|
|
Devices
|
|
========
|
|
System Clock
|
|
------------
|
|
|
|
This board configuration uses a system clock frequency of 400 MHz.
|
|
|
|
DDR RAM
|
|
-------
|
|
|
|
The board has 2GB of DDR RAM available. This board configuration
|
|
allocates Zephyr 4kB of RAM (only for resource table: 0xa4100000 to 0xa4100400).
|
|
|
|
Serial Port
|
|
-----------
|
|
|
|
This board configuration uses a single serial communication channel with the
|
|
MCU domain UART (MCU_UART0).
|
|
|
|
GPIO
|
|
----
|
|
|
|
The phyCORE-AM64x has a heartbeat LED connected to gpio6. It's configured
|
|
to build and run the :zephyr:code-sample:`blinky` sample.
|
|
|
|
SD Card
|
|
*******
|
|
|
|
Download PHYTEC's official `WIC`_ as well as `BMAP`_ and flash the WIC file with
|
|
an etching software onto an SD-card. This will boot Linux on the A53 application
|
|
cores of the SoM. These cores will then load the zephyr binary on the M4 core
|
|
using remoteproc.
|
|
|
|
The default configuration can be found in
|
|
:zephyr_file:`boards/phytec/phyboard_electra/phyboard_electra_am6442_m4_defconfig`
|
|
|
|
Flashing
|
|
********
|
|
|
|
The Linux running on the A53 uses the remoteproc framework to manage the M4F co-processor.
|
|
Therefore, the testing requires the binary to be copied to the SD card to allow the A53 cores to
|
|
load it while booting using remoteproc.
|
|
|
|
To test the M4F core, we build the :zephyr:code-sample:`hello_world` sample with the following command.
|
|
|
|
.. zephyr-app-commands::
|
|
:board: phyboard_electra/am6442/m4
|
|
:zephyr-app: samples/hello_world
|
|
:goals: build
|
|
|
|
This builds the program and the binary is present in the :file:`build/zephyr` directory as
|
|
:file:`zephyr.elf`.
|
|
|
|
We now copy this binary onto the SD card in the :file:`/lib/firmware` directory and name it as
|
|
:file:`am64-mcu-m4f0_0-fw`.
|
|
|
|
.. code-block:: console
|
|
|
|
# Mount the SD card at sdcard for example
|
|
sudo mount /dev/sdX sdcard
|
|
# copy the elf to the /lib/firmware directory
|
|
sudo cp --remove-destination zephyr.elf sdcard/lib/firmware/am64-mcu-m4f0_0-fw
|
|
|
|
The SD card can now be used for booting. The binary will now be loaded onto the M4F core on boot.
|
|
|
|
To allow the board to boot using the SD card, set the boot pins to the SD Card boot mode. Refer to `phyBOARD SD Card Booting Essentials`_.
|
|
|
|
The board should boot into Linux and the binary will run and print Hello world to the MCU_UART0
|
|
port.
|
|
|
|
|
|
.. _PHYTEC AM64x Product Page:
|
|
https://www.phytec.com/product/phycore-am64x/
|
|
|
|
.. _WIC:
|
|
https://download.phytec.de/Software/Linux/BSP-Yocto-AM64x/BSP-Yocto-Ampliphy-AM64x-PD23.2.1/images/ampliphy/phyboard-electra-am64xx-2/phytec-headless-image-phyboard-electra-am64xx-2.wic.xz
|
|
|
|
.. _BMAP:
|
|
https://download.phytec.de/Software/Linux/BSP-Yocto-AM64x/BSP-Yocto-Ampliphy-AM64x-PD23.2.1/images/ampliphy/phyboard-electra-am64xx-2/phytec-headless-image-phyboard-electra-am64xx-2.wic.bmap
|
|
|
|
.. _phyBOARD SD Card Booting Essentials:
|
|
https://docs.phytec.com/projects/yocto-phycore-am64x/en/bsp-yocto-ampliphy-am64x-pd23.2.1/bootingessentials/sdcard.html
|