blob: 262340ef59a3451ad42730b3d3e6e332e5098180 [file] [log] [blame]
Jai Luthrae526653e2023-11-13 08:51:49 -06001.. SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
2.. sectionauthor:: Jai Luthra <j-luthra@ti.com>
3
4AM62A Platforms
5===============
6
7Introduction:
8-------------
9The AM62A SoC family is built on the K3 Multicore SoC architecture platform,
10providing a deep learning accelerator, multi-camera support with ISP, video
11transcoder and other BOM-saving integrations.
12The AM62A SoC enables cost-sensitive automotive applications including driver
13and in-cabin monitoring systems, next generation of eMirror system, as well as
14a broad set of industrial applications in Factory Automation, Building
15Automation, Robotics and more.
16
17Some highlights of this SoC are:
18
19* Quad-Cortex-A53s (running up to 1.4GHz) in a single cluster.
20* Cortex-R5F for general-purpose or safety usage.
21* Deep Learning Accelerator with Single-core C7x Vector DSP with MMA (up to
22 1.0GHz).
23* Vision Processing Accelerator (VPAC) with a 315MPixel/s ISP (up to 5MP @
24 60fps) supporting 16-bit RAW input with RGB-IR separation.
25* 4K Video encoder and decoder for HEVC (Level 5.1 High-tier) and H.264 (Level
26 5.2) supporting upto 240MPixels/s and MJPEG encoder at 416MPixels/s
27* Single display with 24-bit RGB parallel (DPI) interface supporting upto
28 165Mhz pixel clock for 2K resolution.
29* Integrated Giga-bit Ethernet switch supporting up to a total of two
30 external ports (TSN capable).
31* 9xUARTs, 5xSPI, 6xI2C, 2xUSB2, 3xCAN-FD, 3x eMMC and SD, GPMC for
32 NAND/FPGA connection, OSPI memory controller, 3xMcASP for audio,
33 1x CSI-RX-4L for Camera, eCAP/eQEP, ePWM, among other peripherals.
34* Dedicated Centralized System Controller for Security, Power, and
35 Resource Management.
36* Multiple low power modes support, ex: Deep sleep, Standby, MCU-only,
37 enabling battery powered system design.
38
39More details can be found in the Technical Reference Manual:
40https://www.ti.com/lit/pdf/spruj16
41
42Platform information:
43
44* https://www.ti.com/tool/SK-AM62A-LP
45
46Boot Flow:
47----------
48Below is the pictorial representation of boot flow:
49
Dhruva Golec6bfa972024-08-05 19:59:34 +053050.. image:: img/boot_diagram_am62.svg
Jai Luthrae526653e2023-11-13 08:51:49 -060051 :alt: Boot flow diagram
52
53- Here TIFS acts as master and provides all the critical services. R5/A53
54 requests TIFS to get these services done as shown in the above diagram.
55
56Sources:
57--------
58
59.. include:: ../ti/k3.rst
60 :start-after: .. k3_rst_include_start_boot_sources
61 :end-before: .. k3_rst_include_end_boot_sources
62
Dhruva Gole4a395e92024-08-05 19:59:32 +053063.. include:: ../ti/k3.rst
64 :start-after: .. k3_rst_include_start_boot_firmwares
65 :end-before: .. k3_rst_include_end_tifsstub
66
Jai Luthrae526653e2023-11-13 08:51:49 -060067Build procedure:
68----------------
690. Setup the environment variables:
70
71.. include:: ../ti/k3.rst
72 :start-after: .. k3_rst_include_start_common_env_vars_desc
73 :end-before: .. k3_rst_include_end_common_env_vars_desc
74
75.. include:: ../ti/k3.rst
76 :start-after: .. k3_rst_include_start_board_env_vars_desc
77 :end-before: .. k3_rst_include_end_board_env_vars_desc
78
79Set the variables corresponding to this platform:
80
81.. include:: ../ti/k3.rst
82 :start-after: .. k3_rst_include_start_common_env_vars_defn
83 :end-before: .. k3_rst_include_end_common_env_vars_defn
84.. code-block:: bash
85
86 $ export UBOOT_CFG_CORTEXR=am62ax_evm_r5_defconfig
87 $ export UBOOT_CFG_CORTEXA=am62ax_evm_a53_defconfig
88 $ export TFA_BOARD=lite
89 $ # we dont use any extra TFA parameters
90 $ unset TFA_EXTRA_ARGS
91 $ export OPTEE_PLATFORM=k3-am62ax
92 $ # we dont use any extra OPTEE parameters
93 $ unset OPTEE_EXTRA_ARGS
94
951. Trusted Firmware-A:
96
97.. include:: ../ti/k3.rst
98 :start-after: .. k3_rst_include_start_build_steps_tfa
99 :end-before: .. k3_rst_include_end_build_steps_tfa
100
1012. OP-TEE:
102
103.. include:: ../ti/k3.rst
104 :start-after: .. k3_rst_include_start_build_steps_optee
105 :end-before: .. k3_rst_include_end_build_steps_optee
106
1073. U-Boot:
108
109* 3.1 R5:
110
111.. include:: ../ti/k3.rst
112 :start-after: .. k3_rst_include_start_build_steps_spl_r5
113 :end-before: .. k3_rst_include_end_build_steps_spl_r5
114
115* 3.2 A53:
116
117.. include:: ../ti/k3.rst
118 :start-after: .. k3_rst_include_start_build_steps_uboot
119 :end-before: .. k3_rst_include_end_build_steps_uboot
120
121Target Images
122--------------
123In order to boot we need tiboot3.bin, tispl.bin and u-boot.img. Each SoC
124variant (GP, HS-FS, HS-SE) requires a different source for these files.
125
126 - GP
127
128 * tiboot3-am62ax-gp-evm.bin from step 3.1
129 * tispl.bin_unsigned, u-boot.img_unsigned from step 3.2
130
131 - HS-FS
132
133 * tiboot3-am62ax-hs-fs-evm.bin from step 3.1
134 * tispl.bin, u-boot.img from step 3.2
135
136 - HS-SE
137
138 * tiboot3-am62ax-hs-evm.bin from step 3.1
139 * tispl.bin, u-boot.img from step 3.2
140
141Image formats:
142--------------
143
144- tiboot3.bin
145
146.. image:: img/multi_cert_tiboot3.bin.svg
147 :alt: tiboot3.bin image format
148
149- tispl.bin
150
Dhruva Golec6bfa972024-08-05 19:59:34 +0530151.. image:: img/tifsstub_dm_tispl.bin.svg
Jai Luthrae526653e2023-11-13 08:51:49 -0600152 :alt: tispl.bin image format
153
154Switch Setting for Boot Mode
155----------------------------
156
157Boot Mode pins provide means to select the boot mode and options before the
158device is powered up. After every POR, they are the main source to populate
159the Boot Parameter Tables.
160
161The following table shows some common boot modes used on AM62 platform. More
162details can be found in the Technical Reference Manual:
163https://www.ti.com/lit/pdf/spruj16 under the `Boot Mode Pins` section.
164
165.. list-table:: Boot Modes
166 :widths: 16 16 16
167 :header-rows: 1
168
169 * - Switch Label
170 - SW2: 12345678
171 - SW3: 12345678
172
173 * - SD
174 - 01000000
175 - 11000010
176
177 * - OSPI
178 - 00000000
179 - 11001110
180
181 * - EMMC
182 - 00000000
183 - 11010010
184
185 * - UART
186 - 00000000
187 - 11011100
188
189 * - USB DFU
190 - 00000000
191 - 11001010
192
193For SW2 and SW1, the switch state in the "ON" position = 1.
194
195Debugging U-Boot
196----------------
197
198See :ref:`Common Debugging environment - OpenOCD<k3_rst_refer_openocd>`: for
199detailed setup information.
200
201.. warning::
202
203 **OpenOCD support since**: August 2023 (git master)
204
205 Until the next stable release of OpenOCD is available in your development
206 environment's distribution, it might be necessary to build OpenOCD `from the
207 source <https://github.com/openocd-org/openocd>`_.
208
209.. include:: k3.rst
210 :start-after: .. k3_rst_include_start_openocd_connect_XDS110
211 :end-before: .. k3_rst_include_end_openocd_connect_XDS110
212
213To start OpenOCD and connect to the board
214
215.. code-block:: bash
216
217 openocd -f board/ti_am62a7evm.cfg