Verdin AM62
Overview
The Verdin-AM62 board configuration is used by Zephyr applications that run on the TI AM62x platform. The board configuration provides support for:
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 Toradex Verdin AM62 Product Page for details.
Hardware
The Toradex Verdin AM62 is a System on Module (SoM) based on the Texas Instruments AM62x family of processors. It features up to four Arm® Cortex®-A53 cores, a Cortex®-M4F real-time core, and dedicated peripherals such as PRU cores.
Zephyr is ported to run on the M4F core. The following listed hardware specifications are used:
Low-power ARM Cortex-M4F
Memory
256KB of SRAM
16MB of DDR4 (can go from 512MB to 2GB maximum)
Supported Features
The verdin_am62
board supports the hardware features listed below.
- on-chip / on-board
- Feature integrated in the SoC / present on the board.
- 2 / 2
-
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files. -
vnd,foo
-
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.
verdin_am62/am6234/m4
target
Type |
Location |
Description |
Compatible |
---|---|---|---|
CPU |
on-chip |
ARM Cortex-M4F CPU1 |
|
Clock control |
on-chip |
Generic fixed-rate clock provider1 |
|
GPIO & Headers |
on-chip |
GPIO Controller for Davinci and Keystone devices1 |
|
I2C |
on-chip |
TI OMAP I2C Controller1 |
|
Interrupt controller |
on-chip |
ARMv7-M NVIC (Nested Vectored Interrupt Controller)1 |
|
Mailbox |
on-chip |
TI OMAP MAILBOX1 |
|
Pin control |
on-chip |
TI K3 Pin Controller1 |
|
Serial controller |
on-chip |
||
SRAM |
on-chip |
Generic on-chip SRAM3 |
|
Timer |
on-chip |
ARMv7-M System Tick1 |
|
Watchdog |
on-chip |
K3 Watchdog timer (RTI module) available in the K3 generation of processors1 |
Devices
System Clock
This board configuration uses a system clock frequency of 400 MHz.
DDR RAM
The board can have from 512MB up to 2GB of DDR RAM. This board configuration allocates approximately 16MB of RAM, which includes the resource table, shared memories for IPC and SRAM to be used by the cortex-M.
Serial Port
This board configuration uses a single serial communication channel with the MCU domain UART (MCU_UART0).
Programming the M4F Core
Cortex-M4F core can be programmed by remoteproc on both Linux Kernel or U-Boot bootloader. For the Linux kernel, the remoteproc uses the resource table to load the firmware into the Cortex-M4F.
To test the M4F core, build the Hello World sample with the following command:
# From the root of the Zephyr repository
west build -p -b verdin_am62/am6234/m4 samples/hello_world
This builds the binary, which is located at build/zephyr
directory as zephyr.elf
.
This binary needs to be copied to Verdin AN62 (can be copied to the eMMC, use an SD card, usb
stick…) and place it on /lib/firmware
directory and name it as am62-mcu-m4f0_0-fw
.
After that, it can be loaded by Linux remoteproc with the following commands:
echo start > /sys/class/remoteproc/remoteproc0/state
The binary will run and print Hello world to the MCU_UART0 port.
If instead it is desired to load it with U-Boot, the following commands can be executed into the bootloader terminal:
rproc init
rproc list
load mmc 0:2 ${loadaddr} /lib/firmware/am62-mcu-m4f0_0-fw
rproc load ${loadaddr} 0 0x${filesize}
rproc start 0
Hint
For both remoteproc examples, check the id of the remote processor to make sure the firmware is being loaded into the correct core.
When the core starts, in this case with the hello world sample, this will be shown into the UART from the cortex-m (which will be /dev/ttyUSB2 for both Dahlia and Verdin Development boards):
*** Booting Zephyr OS build v4.2.0-1172-g242870ac3feb ***
Hello World! verdin_am62/am6234/m4