boards/ti/sk_am62/doc/index.rst
.. zephyr:board:: sk_am62
Overview
The SK-AM62 board configuration is used by Zephyr applications that run on the TI AM62x platform. This configuration supports two board variants:
Both variants use the AM6254 SoC. The board configuration provides support for:
ARM Cortex-M4F MCU core and the following features:
ARM Cortex-A53 core and the following features:
The board configuration also enables support for the semihosting debugging console.
See the TI AM62X Product Page_ for details.
Hardware
The SK-AM62 EVM features the AM6254 SoC, which is composed of a quad Cortex-A53 cluster and a single Cortex-M4 core in the MCU domain. Zephyr is ported to run on the M4F and A53 cores. The following listed hardware specifications are used:
High-performance ARM Cortex-A53
Low-power ARM Cortex-M4F
Memory
Debug
.. zephyr:board-supported-hw::
This board configuration uses a system clock frequency of 400 MHz.
The board has 2GB of DDR RAM available. This board configuration allocates Zephyr 4kB of RAM (only for resource table: 0x9CC00000 to 0x9CC00400).
This board configuration uses a single serial communication channel with the MCU domain UART (MCU_UART0).
SD Card
Download TI's official WIC_ and flash the WIC file with an etching software
onto an SD-card. This will boot Linux on the A53 application cores of the EVM.
While programming for the M4 core, the A53 cores will then load the zephyr binary on the M4 core using remoteproc.
Programming for M4F Core
The board can use remoteproc, and uses the OpenAMP resource table to accomplish this.
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.
.. code-block:: console
west build -p -b sk_am62/am6254/m4 samples/hello_world
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:am62-mcu-m4f0_0-fw.
.. code-block:: console
sudo mount /dev/sdX sdcard
sudo cp --remove-destination zephyr.elf sdcard/lib/firmware/am62-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 EVM Setup Page_.
After changing the boot mode, the board should go through the boot sequence on powering up. The binary will run and print Hello world to the MCU_UART0 port.
Programming for A53 Core
Copy the compiled zephyr.bin to the first FAT partition of the SD card and
plug the SD card into the board. Power it up and stop the u-boot execution at
prompt.
Use U-Boot to load and kick zephyr.bin:
.. code-block:: console
fatload mmc 1:1 0x82000000 zephyr.bin; go 0x82000000
The Zephyr application should start running on the A53 core. When running the hello_world sample, you should see output similar to:
.. code-block:: console
*** Booting Zephyr OS build v4.3.0-4646-g13fc152f3546 ***
Secondary CPU core 1 (MPID:0x1) is up
Secondary CPU core 2 (MPID:0x2) is up
Secondary CPU core 3 (MPID:0x3) is up
Hello World! sk_am62/am6254/a53
This indicates that all four A53 cores have successfully booted.
Debugging
The board is equipped with an XDS110 JTAG debugger. To debug a binary, utilize the debug build target:
.. zephyr-app-commands:: :app: <my_app> :board: sk_am62/am6254/m4 :maybe-skip-config: :goals: debug
.. zephyr-app-commands:: :app: <my_app> :board: sk_am62/am6254/a53 :maybe-skip-config: :goals: debug
.. hint::
To utilize this feature, you'll need OpenOCD version 0.12 or higher. Due to the possibility of
older versions being available in package feeds, it's advisable to build OpenOCD from source_.
References
AM62x SK EVM TRM: https://www.ti.com/lit/ug/spruiv7/spruiv7.pdf
.. _TI AM62X Product Page: https://www.ti.com/product/AM625
.. _WIC: https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-PvdSyIiioq/10.01.10.04/tisdk-default-image-am62xx-evm-10.01.10.04.rootfs.wic.xz .. _AM62x SK EVM TRM: https://www.ti.com/lit/ug/spruiv7/spruiv7.pdf
.. _EVM Setup Page: https://software-dl.ti.com/mcu-plus-sdk/esd/AM62X/08_06_00_18/exports/docs/api_guide_am62x/EVM_SETUP_PAGE.html
.. _build OpenOCD from source: https://docs.u-boot.org/en/latest/board/ti/k3.html#building-openocd-from-source