|
| 1 | +.. zephyr:board:: sk_am64 |
| 2 | +
|
| 3 | +Overview |
| 4 | +******** |
| 5 | + |
| 6 | +The SK-AM64 board configuration is used by Zephyr applications that run on |
| 7 | +the TI AM64x platform. The board configuration provides support for the ARM |
| 8 | +Cortex-M4F MCU core and the following features: |
| 9 | + |
| 10 | +- Nested Vector Interrupt Controller (NVIC) |
| 11 | +- System Tick System Clock (SYSTICK) |
| 12 | + |
| 13 | +The board configuration also enables support for the semihosting debugging console. |
| 14 | + |
| 15 | +See the `TI AM64 Product Page`_ for details. |
| 16 | + |
| 17 | +Hardware |
| 18 | +******** |
| 19 | +The SK-AM64 EVM features the AM64 SoC, which is composed of a dual Cortex-A53 |
| 20 | +cluster and a single Cortex-M4 core in the MCU domain. Zephyr is ported to run on |
| 21 | +the M4F core and the following listed hardware specifications are used: |
| 22 | + |
| 23 | +- Low-power ARM Cortex-M4F |
| 24 | +- Memory |
| 25 | + |
| 26 | + - 256KB of SRAM |
| 27 | + - 2GB of DDR4 |
| 28 | + |
| 29 | +- Debug |
| 30 | + |
| 31 | + - XDS110 based JTAG |
| 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 has 2GB of DDR RAM available. This board configuration |
| 49 | +allocates Zephyr 4kB of RAM (only for resource table: 0xa4100000 to 0xa4100400). |
| 50 | + |
| 51 | +Serial Port |
| 52 | +----------- |
| 53 | + |
| 54 | +This board configuration uses a single serial communication channel with the |
| 55 | +MCU domain UART (MCU_UART0). |
| 56 | + |
| 57 | +GPIO |
| 58 | +---- |
| 59 | + |
| 60 | +The SK-AM64 has a heartbeat LED connected to MCU_GPIO0_6. It's configured |
| 61 | +to build and run the :zephyr:code-sample:`blinky` sample. |
| 62 | + |
| 63 | +SD Card |
| 64 | +******* |
| 65 | + |
| 66 | +Download TI's official `WIC`_ and flash the WIC file with an etching software |
| 67 | +onto an SD card. This will boot Linux on the A53 application cores of the EVM. |
| 68 | +These cores will then load the zephyr binary on the M4 core using remoteproc. |
| 69 | + |
| 70 | +The default configuration can be found in |
| 71 | +:zephyr_file:`boards/ti/sk_am64/sk_am64_am6442_m4_defconfig` |
| 72 | + |
| 73 | +Flashing |
| 74 | +******** |
| 75 | + |
| 76 | +The board can using remoteproc, and uses the OpenAMP resource table to accomplish this. |
| 77 | + |
| 78 | +The testing requires the binary to be copied to the SD card to allow the A53 cores to load it while booting using remoteproc. |
| 79 | + |
| 80 | +To test the M4F core, we build the :zephyr:code-sample:`hello_world` sample with the following command. |
| 81 | + |
| 82 | +.. code-block:: console |
| 83 | +
|
| 84 | + # From the root of the Zephyr repository |
| 85 | + west build -p -b sk_am64/am6442/m4 samples/hello_world |
| 86 | +
|
| 87 | +This builds the program and the binary is present in the :file:`build/zephyr` directory as |
| 88 | +:file:`zephyr.elf`. |
| 89 | + |
| 90 | +We now copy this binary onto the SD card in the :file:`/lib/firmware` directory and name it as |
| 91 | +:file:`am64-mcu-m4f0_0-fw`. |
| 92 | + |
| 93 | +.. code-block:: console |
| 94 | +
|
| 95 | + # Mount the SD card at sdcard for example |
| 96 | + sudo mount /dev/sdX sdcard |
| 97 | + # copy the elf to the /lib/firmware directory |
| 98 | + sudo cp --remove-destination zephyr.elf sdcard/lib/firmware/am64-mcu-m4f0_0-fw |
| 99 | +
|
| 100 | +The SD card can now be used for booting. The binary will now be loaded onto the M4F core on boot. |
| 101 | + |
| 102 | +To allow the board to boot using the SD card, set the boot pins to the SD Card boot mode. Refer to `SK-AM64B EVM User's Guide`_. |
| 103 | + |
| 104 | +After changing the boot mode, the board should go through the boot sequence on powering up. |
| 105 | +The binary will run and print Hello world to the MCU_UART0 port. |
| 106 | + |
| 107 | +References |
| 108 | +********** |
| 109 | + |
| 110 | +.. _TI AM64 Product Page: |
| 111 | + https://www.ti.com/product/AM6442 |
| 112 | + |
| 113 | +.. _WIC: |
| 114 | + https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-yXgchBCk98/10.01.10.04/tisdk-default-image-am64xx-evm-10.01.10.04.rootfs.wic.xz |
| 115 | + |
| 116 | +.. _SK-AM64B EVM User's Guide: |
| 117 | + https://www.ti.com/lit/ug/spruj64/spruj64.pdf |
| 118 | + |
| 119 | +.. _build OpenOCD from source: |
| 120 | + https://docs.u-boot.org/en/latest/board/ti/k3.html#building-openocd-from-source |
0 commit comments