blob: bcf8dc1c5f0d43ce76be82d3bf8f9e59dc9c4633 [file] [log] [blame]
Udit Kumardb7af512023-05-11 14:47:48 +05301.. SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
2.. sectionauthor:: Udit Kumar <u-kumar1@ti.com>
3
4J7200 Platforms
5===============
6
7Introduction:
8-------------
9The J7200 family of SoCs are part of K3 Multicore SoC architecture platform
10targeting automotive applications. They are designed as a low power, high
11performance and highly integrated device architecture, adding significant
12enhancement on processing power, graphics capability, video and imaging
13processing, virtualization and coherent memory support.
14
15The device is partitioned into three functional domains, each containing
16specific processing cores and peripherals:
17
181. Wake-up (WKUP) domain:
19 * Device Management and Security Controller (DMSC)
20
212. Microcontroller (MCU) domain:
22 * Dual Core ARM Cortex-R5F processor
23
243. MAIN domain:
25 * Dual core 64-bit ARM Cortex-A72
26
27More info can be found in TRM: https://www.ti.com/lit/pdf/spruiu1
28
Nishanth Menon08df7462023-07-27 13:59:00 -050029Platform information:
30
31* https://www.ti.com/tool/J7200XSOMXEVM
32
Udit Kumardb7af512023-05-11 14:47:48 +053033Boot Flow:
34----------
35Below is the pictorial representation of boot flow:
36
Nishanth Menon68b3baa2023-07-27 13:58:45 -050037.. image:: img/boot_diagram_k3_current.svg
Nishanth Menon49509df2023-08-22 11:41:00 -050038 :alt: Boot flow diagram
Udit Kumardb7af512023-05-11 14:47:48 +053039
40- Here DMSC acts as master and provides all the critical services. R5/A72
41 requests DMSC to get these services done as shown in the above diagram.
42
43Sources:
44--------
Udit Kumardb7af512023-05-11 14:47:48 +053045
Nishanth Menoncce3e7a2023-07-27 13:58:44 -050046.. include:: k3.rst
47 :start-after: .. k3_rst_include_start_boot_sources
48 :end-before: .. k3_rst_include_end_boot_sources
Neha Malcom Francis1ee652a2023-07-22 00:14:43 +053049
Udit Kumardb7af512023-05-11 14:47:48 +053050Build procedure:
51----------------
Nishanth Menonc727b812023-07-27 13:58:48 -0500520. Setup the environment variables:
Udit Kumardb7af512023-05-11 14:47:48 +053053
Nishanth Menonc727b812023-07-27 13:58:48 -050054.. include:: k3.rst
55 :start-after: .. k3_rst_include_start_common_env_vars_desc
56 :end-before: .. k3_rst_include_end_common_env_vars_desc
57
58.. include:: k3.rst
59 :start-after: .. k3_rst_include_start_board_env_vars_desc
60 :end-before: .. k3_rst_include_end_board_env_vars_desc
61
62Set the variables corresponding to this platform:
63
64.. include:: k3.rst
65 :start-after: .. k3_rst_include_start_common_env_vars_defn
66 :end-before: .. k3_rst_include_end_common_env_vars_defn
Udit Kumardb7af512023-05-11 14:47:48 +053067.. code-block:: bash
68
Nishanth Menonc727b812023-07-27 13:58:48 -050069 $ export UBOOT_CFG_CORTEXR=j7200_evm_r5_defconfig
70 $ export UBOOT_CFG_CORTEXA=j7200_evm_a72_defconfig
71 $ export TFA_BOARD=generic
72 $ # we dont use any extra TFA parameters
73 $ unset TFA_EXTRA_ARGS
74 $ export OPTEE_PLATFORM=k3-j7200
75 $ # we dont use any extra OP-TEE parameters
76 $ unset OPTEE_EXTRA_ARGS
77
78.. j7200_evm_rst_include_start_build_steps
79
801. Trusted Firmware-A:
81
82.. include:: k3.rst
83 :start-after: .. k3_rst_include_start_build_steps_tfa
84 :end-before: .. k3_rst_include_end_build_steps_tfa
85
Udit Kumardb7af512023-05-11 14:47:48 +053086
Neha Malcom Francis1ee652a2023-07-22 00:14:43 +0530872. OP-TEE:
Udit Kumardb7af512023-05-11 14:47:48 +053088
Nishanth Menonc727b812023-07-27 13:58:48 -050089.. include:: k3.rst
90 :start-after: .. k3_rst_include_start_build_steps_optee
91 :end-before: .. k3_rst_include_end_build_steps_optee
Udit Kumardb7af512023-05-11 14:47:48 +053092
Neha Malcom Francis1ee652a2023-07-22 00:14:43 +0530933. U-Boot:
Udit Kumardb7af512023-05-11 14:47:48 +053094
Nishanth Menon7af00a72023-08-22 11:41:05 -050095* 3.1 R5:
Udit Kumardb7af512023-05-11 14:47:48 +053096
Nishanth Menonc727b812023-07-27 13:58:48 -050097.. include:: k3.rst
98 :start-after: .. k3_rst_include_start_build_steps_spl_r5
99 :end-before: .. k3_rst_include_end_build_steps_spl_r5
Udit Kumardb7af512023-05-11 14:47:48 +0530100
Nishanth Menon7af00a72023-08-22 11:41:05 -0500101* 3.2 A72:
Udit Kumardb7af512023-05-11 14:47:48 +0530102
Nishanth Menonc727b812023-07-27 13:58:48 -0500103.. include:: k3.rst
104 :start-after: .. k3_rst_include_start_build_steps_uboot
105 :end-before: .. k3_rst_include_end_build_steps_uboot
106.. j7200_evm_rst_include_end_build_steps
Udit Kumardb7af512023-05-11 14:47:48 +0530107
108Target Images
109--------------
Tom Rinif687c8f2023-07-25 12:44:16 -0400110In order to boot we need tiboot3.bin, tispl.bin and u-boot.img. Each SoC
111variant (GP, HS-FS, HS-SE) requires a different source for these files.
Neha Malcom Francis1ee652a2023-07-22 00:14:43 +0530112
113 - GP
114
Nishanth Menon7af00a72023-08-22 11:41:05 -0500115 * tiboot3-j7200-gp-evm.bin from step 3.1
116 * tispl.bin_unsigned, u-boot.img_unsigned from step 3.2
Neha Malcom Francis1ee652a2023-07-22 00:14:43 +0530117
118 - HS-FS
119
Nishanth Menon7af00a72023-08-22 11:41:05 -0500120 * tiboot3-j7200_sr2-hs-fs-evm.bin from step 3.1
121 * tispl.bin, u-boot.img from step 3.2
Neha Malcom Francis1ee652a2023-07-22 00:14:43 +0530122
123 - HS-SE
124
Nishanth Menon7af00a72023-08-22 11:41:05 -0500125 * tiboot3-j7200_sr2-hs-evm.bin from step 3.1
126 * tispl.bin, u-boot.img from step 3.2
Udit Kumardb7af512023-05-11 14:47:48 +0530127
128Image formats:
129--------------
130
Nishanth Menonf4ade092023-07-27 13:58:49 -0500131- tiboot3.bin
Udit Kumardb7af512023-05-11 14:47:48 +0530132
Nishanth Menonf4ade092023-07-27 13:58:49 -0500133.. image:: img/j7200_tiboot3.bin.svg
Nishanth Menon49509df2023-08-22 11:41:00 -0500134 :alt: tiboot3.bin image format
Udit Kumardb7af512023-05-11 14:47:48 +0530135
136- tispl.bin
137
Nishanth Menonf4ade092023-07-27 13:58:49 -0500138.. image:: img/dm_tispl.bin.svg
Nishanth Menon49509df2023-08-22 11:41:00 -0500139 :alt: tispl.bin image format
Udit Kumardb7af512023-05-11 14:47:48 +0530140
141Switch Setting for Boot Mode
142----------------------------
143
144Boot Mode pins provide means to select the boot mode and options before the
145device is powered up. After every POR, they are the main source to populate
146the Boot Parameter Tables.
147
148The following table shows some common boot modes used on J7200 platform. More
149details can be found in the Technical Reference Manual:
150https://www.ti.com/lit/pdf/spruiu1 under the `Boot Mode Pins` section.
151
Nishanth Menonf940ec22023-07-27 13:58:55 -0500152.. list-table:: Boot Modes
153 :widths: 16 16 16
154 :header-rows: 1
Udit Kumardb7af512023-05-11 14:47:48 +0530155
Nishanth Menonf940ec22023-07-27 13:58:55 -0500156 * - Switch Label
157 - SW9: 12345678
158 - SW8: 12345678
Udit Kumardb7af512023-05-11 14:47:48 +0530159
Nishanth Menonf940ec22023-07-27 13:58:55 -0500160 * - SD
161 - 00000000
162 - 10000010
163
164 * - EMMC
165 - 01000000
166 - 10000000
167
168 * - OSPI
169 - 01000000
170 - 00000110
171
172 * - UART
173 - 01110000
174 - 00000000
175
176 * - USB DFU
177 - 00100000
178 - 10000000
Udit Kumardb7af512023-05-11 14:47:48 +0530179
180For SW8 and SW9, the switch state in the "ON" position = 1.
181
182eMMC:
183-----
184ROM supports booting from eMMC raw read or UDA FS mode.
185
186Below is memory layout in case of booting from
187boot 0/1 partition in raw mode.
188
189Current allocated size for tiboot3 size is 1MB, tispl is 2MB.
190
191Size of u-boot.img is taken 4MB for refernece,
192But this is subject to change depending upon atf, optee size
193
Nishanth Menon93d90bf2023-07-27 13:58:59 -0500194.. image:: img/emmc_j7200_evm_boot01.svg
Nishanth Menon49509df2023-08-22 11:41:00 -0500195 :alt: Traditional eMMC boot partition layout
Udit Kumardb7af512023-05-11 14:47:48 +0530196
197In case of UDA FS mode booting, following is layout.
198
199All boot images tiboot3.bin, tispl and u-boot should be written to
200fat formatted UDA FS as file.
201
Nishanth Menon93d90bf2023-07-27 13:58:59 -0500202.. image:: img/emmc_j7200_evm_udafs.svg
Nishanth Menon49509df2023-08-22 11:41:00 -0500203 :alt: eMMC UDA boot partition layout
Udit Kumardb7af512023-05-11 14:47:48 +0530204
205In case of booting from eMMC, write above images into raw or UDA FS.
206and set mmc partconf accordingly.
Jason Kacineseffe5082023-08-03 01:29:22 -0500207
208Debugging U-Boot
209----------------
210
211See :ref:`Common Debugging environment - OpenOCD<k3_rst_refer_openocd>`: for
212detailed setup information.
213
214.. warning::
215
216 **OpenOCD support since**: v0.12.0
217
218 If the default package version of OpenOCD in your development
219 environment's distribution needs to be updated, it might be necessary to
220 build OpenOCD from the source.
221
222.. include:: k3.rst
223 :start-after: .. k3_rst_include_start_openocd_connect_XDS110
224 :end-before: .. k3_rst_include_end_openocd_connect_XDS110
225
226To start OpenOCD and connect to the board
227
228.. code-block:: bash
229
230 openocd -f board/ti_j7200evm.cfg