|
| 1 | +.. zephyr:board:: verdin_am62 |
| 2 | +
|
| 3 | +Overview |
| 4 | +******** |
| 5 | + |
| 6 | +The Verdin-AM62 board configuration is used by Zephyr applications that run on |
| 7 | +the TI AM62x platform. The board configuration provides support for: |
| 8 | + |
| 9 | +- ARM Cortex-M4F MCU core and the following features: |
| 10 | + |
| 11 | + - Nested Vector Interrupt Controller (NVIC) |
| 12 | + - System Tick System Clock (SYSTICK) |
| 13 | + |
| 14 | +The board configuration also enables support for the semihosting debugging console. |
| 15 | + |
| 16 | +See the `Toradex Verdin AM62 Product Page`_ for details. |
| 17 | + |
| 18 | +Hardware |
| 19 | +******** |
| 20 | + |
| 21 | +The Toradex Verdin AM62 is a System on Module (SoM) based on the Texas Instruments AM62x family of |
| 22 | +processors. It features up to four Arm® Cortex®-A53 cores, a Cortex®-M4F real-time core, and |
| 23 | +dedicated peripherals such as PRU cores. |
| 24 | + |
| 25 | +Zephyr is ported to run on the M4F core. The following listed hardware specifications are used: |
| 26 | + |
| 27 | +- Low-power ARM Cortex-M4F |
| 28 | +- Memory |
| 29 | + |
| 30 | + - 256KB of SRAM |
| 31 | + - 16MB of DDR4 (can go from 512MB to 2GB maximum) |
| 32 | + |
| 33 | +Supported Features |
| 34 | +================== |
| 35 | + |
| 36 | +.. zephyr:board-supported-hw:: |
| 37 | +
|
| 38 | +Devices |
| 39 | +======== |
| 40 | +System Clock |
| 41 | +------------ |
| 42 | + |
| 43 | +This board configuration uses a system clock frequency of 400 MHz. |
| 44 | + |
| 45 | +DDR RAM |
| 46 | +------- |
| 47 | + |
| 48 | +The board can have from 512MB up to 2GB of DDR RAM. This board configuration allocates approximately |
| 49 | +16MB of RAM, which includes the resource table, shared memories for IPC and SRAM to be used by the |
| 50 | +cortex-M. |
| 51 | + |
| 52 | +Serial Port |
| 53 | +----------- |
| 54 | + |
| 55 | +This board configuration uses a single serial communication channel with the |
| 56 | +MCU domain UART (MCU_UART0). |
| 57 | + |
| 58 | +Programming the M4F Core |
| 59 | +************************ |
| 60 | + |
| 61 | +Cortex-M4F core can be programmed by remoteproc on both Linux Kernel or U-Boot bootloader. For the |
| 62 | +Linux kernel, the remoteproc uses the resource table to load the firmware into the Cortex-M4F. |
| 63 | + |
| 64 | +To test the M4F core, build the :zephyr:code-sample:`hello_world` sample with the following command: |
| 65 | + |
| 66 | +.. code-block:: console |
| 67 | +
|
| 68 | + # From the root of the Zephyr repository |
| 69 | + west build -p -b verdin_am62/am6234/m4 samples/hello_world |
| 70 | +
|
| 71 | +This builds the binary, which is located at :file:`build/zephyr` directory as :file:`zephyr.elf`. |
| 72 | + |
| 73 | +This binary needs to be copied to Verdin AN62 (can be copied to the eMMC, use an SD card, usb |
| 74 | +stick...) and place it on :file:`/lib/firmware` directory and name it as :file:`am62-mcu-m4f0_0-fw`. |
| 75 | +After that, it can be loaded by Linux remoteproc with the following commands: |
| 76 | + |
| 77 | +.. code-block:: console |
| 78 | +
|
| 79 | + echo start > /sys/class/remoteproc/remoteproc0/state |
| 80 | +
|
| 81 | +The binary will run and print Hello world to the MCU_UART0 port. |
| 82 | + |
| 83 | +If instead it is desired to load it with U-Boot, the following commands can be executed into the |
| 84 | +bootloader terminal: |
| 85 | + |
| 86 | +.. code-block:: console |
| 87 | +
|
| 88 | + rproc init |
| 89 | + rproc list |
| 90 | + load mmc 0:2 ${loadaddr} /lib/firmware/am62-mcu-m4f0_0-fw |
| 91 | + rproc load ${loadaddr} 0 0x${filesize} |
| 92 | + rproc start 0 |
| 93 | +
|
| 94 | +.. hint:: |
| 95 | + For both remoteproc examples, check the id of the remote processor to make sure the firmware is |
| 96 | + being loaded into the correct core. |
| 97 | + |
| 98 | +When the core starts, in this case with the hello world sample, this will be shown into the UART |
| 99 | +from the cortex-m (which will be /dev/ttyUSB2 for both Dahlia and Verdin Development boards): |
| 100 | + |
| 101 | +.. code-block:: console |
| 102 | +
|
| 103 | + *** Booting Zephyr OS build v4.2.0-1172-g242870ac3feb *** |
| 104 | + Hello World! verdin_am62/am6234/m4 |
| 105 | +
|
| 106 | +References |
| 107 | +********** |
| 108 | + |
| 109 | +.. _Toradex Verdin AM62 Product Page: |
| 110 | + https://www.toradex.com/computer-on-modules/verdin-arm-family/ti-am62 |
| 111 | + |
| 112 | +.. _Toradex Verdin AM62 Developer Page: |
| 113 | + https://developer.toradex.com/hardware/verdin-som-family/modules/verdin-am62/ |
0 commit comments