blob: 4fd2aff8354770d1731426c53adcea2b823d4ea9 [file] [log] [blame]
Udit Kumared92ede2023-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 Menon4981d9a2023-07-27 13:59:00 -050029Platform information:
30
31* https://www.ti.com/tool/J7200XSOMXEVM
32
Udit Kumared92ede2023-05-11 14:47:48 +053033Boot Flow:
34----------
35Below is the pictorial representation of boot flow:
36
Nishanth Menonb47c9f72023-07-27 13:58:45 -050037.. image:: img/boot_diagram_k3_current.svg
Nishanth Menon5539eaf2023-08-22 11:41:00 -050038 :alt: Boot flow diagram
Udit Kumared92ede2023-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 Kumared92ede2023-05-11 14:47:48 +053045
Nishanth Menonee91e482023-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
Udit Kumared92ede2023-05-11 14:47:48 +053049
Dhruva Gole26e0ddf2024-08-05 19:59:33 +053050.. include:: k3.rst
51 :start-after: .. k3_rst_include_start_boot_firmwares
52 :end-before: .. k3_rst_include_end_boot_firmwares
53
Udit Kumared92ede2023-05-11 14:47:48 +053054Build procedure:
55----------------
Nishanth Menonb7ee22f2023-07-27 13:58:48 -0500560. Setup the environment variables:
Udit Kumared92ede2023-05-11 14:47:48 +053057
Nishanth Menonb7ee22f2023-07-27 13:58:48 -050058.. include:: k3.rst
59 :start-after: .. k3_rst_include_start_common_env_vars_desc
60 :end-before: .. k3_rst_include_end_common_env_vars_desc
Udit Kumared92ede2023-05-11 14:47:48 +053061
Nishanth Menonb7ee22f2023-07-27 13:58:48 -050062.. include:: k3.rst
63 :start-after: .. k3_rst_include_start_board_env_vars_desc
64 :end-before: .. k3_rst_include_end_board_env_vars_desc
Udit Kumared92ede2023-05-11 14:47:48 +053065
Nishanth Menonb7ee22f2023-07-27 13:58:48 -050066Set the variables corresponding to this platform:
Udit Kumared92ede2023-05-11 14:47:48 +053067
Nishanth Menonb7ee22f2023-07-27 13:58:48 -050068.. include:: k3.rst
69 :start-after: .. k3_rst_include_start_common_env_vars_defn
70 :end-before: .. k3_rst_include_end_common_env_vars_defn
Nishanth Menonfdd7cb72023-11-02 23:40:26 -050071.. prompt:: bash $
Udit Kumared92ede2023-05-11 14:47:48 +053072
Nishanth Menonfdd7cb72023-11-02 23:40:26 -050073 export UBOOT_CFG_CORTEXR=j7200_evm_r5_defconfig
74 export UBOOT_CFG_CORTEXA=j7200_evm_a72_defconfig
75 export TFA_BOARD=generic
76 # we dont use any extra TFA parameters
77 unset TFA_EXTRA_ARGS
78 export OPTEE_PLATFORM=k3-j7200
79 # we dont use any extra OP-TEE parameters
80 unset OPTEE_EXTRA_ARGS
Nishanth Menonb7ee22f2023-07-27 13:58:48 -050081
82.. j7200_evm_rst_include_start_build_steps
83
841. Trusted Firmware-A:
85
86.. include:: k3.rst
87 :start-after: .. k3_rst_include_start_build_steps_tfa
88 :end-before: .. k3_rst_include_end_build_steps_tfa
89
90
912. OP-TEE:
92
93.. include:: k3.rst
94 :start-after: .. k3_rst_include_start_build_steps_optee
95 :end-before: .. k3_rst_include_end_build_steps_optee
Udit Kumared92ede2023-05-11 14:47:48 +053096
Neha Malcom Francis507be122023-07-22 00:14:43 +0530973. U-Boot:
Udit Kumared92ede2023-05-11 14:47:48 +053098
Nishanth Menondaed6db2023-08-22 11:41:05 -050099* 3.1 R5:
Udit Kumared92ede2023-05-11 14:47:48 +0530100
Nishanth Menonb7ee22f2023-07-27 13:58:48 -0500101.. include:: k3.rst
102 :start-after: .. k3_rst_include_start_build_steps_spl_r5
103 :end-before: .. k3_rst_include_end_build_steps_spl_r5
Udit Kumared92ede2023-05-11 14:47:48 +0530104
Nishanth Menondaed6db2023-08-22 11:41:05 -0500105* 3.2 A72:
Udit Kumared92ede2023-05-11 14:47:48 +0530106
Nishanth Menonb7ee22f2023-07-27 13:58:48 -0500107.. include:: k3.rst
108 :start-after: .. k3_rst_include_start_build_steps_uboot
109 :end-before: .. k3_rst_include_end_build_steps_uboot
110.. j7200_evm_rst_include_end_build_steps
Udit Kumared92ede2023-05-11 14:47:48 +0530111
112Target Images
Heinrich Schuchardtb72160b2023-10-28 11:59:32 +0200113-------------
114
Tom Rinifdf45032023-07-25 12:44:16 -0400115In order to boot we need tiboot3.bin, tispl.bin and u-boot.img. Each SoC
116variant (GP, HS-FS, HS-SE) requires a different source for these files.
Neha Malcom Francis507be122023-07-22 00:14:43 +0530117
118 - GP
119
Nishanth Menondaed6db2023-08-22 11:41:05 -0500120 * tiboot3-j7200-gp-evm.bin from step 3.1
121 * tispl.bin_unsigned, u-boot.img_unsigned from step 3.2
Neha Malcom Francis507be122023-07-22 00:14:43 +0530122
123 - HS-FS
124
Nishanth Menondaed6db2023-08-22 11:41:05 -0500125 * tiboot3-j7200_sr2-hs-fs-evm.bin from step 3.1
126 * tispl.bin, u-boot.img from step 3.2
Neha Malcom Francis507be122023-07-22 00:14:43 +0530127
128 - HS-SE
129
Nishanth Menondaed6db2023-08-22 11:41:05 -0500130 * tiboot3-j7200_sr2-hs-evm.bin from step 3.1
131 * tispl.bin, u-boot.img from step 3.2
Udit Kumared92ede2023-05-11 14:47:48 +0530132
133Image formats:
134--------------
135
Nishanth Menonb1e1c3b2023-07-27 13:58:49 -0500136- tiboot3.bin
Udit Kumared92ede2023-05-11 14:47:48 +0530137
Nishanth Menonb1e1c3b2023-07-27 13:58:49 -0500138.. image:: img/j7200_tiboot3.bin.svg
Nishanth Menon5539eaf2023-08-22 11:41:00 -0500139 :alt: tiboot3.bin image format
Udit Kumared92ede2023-05-11 14:47:48 +0530140
141- tispl.bin
142
Nishanth Menonb1e1c3b2023-07-27 13:58:49 -0500143.. image:: img/dm_tispl.bin.svg
Nishanth Menon5539eaf2023-08-22 11:41:00 -0500144 :alt: tispl.bin image format
Udit Kumared92ede2023-05-11 14:47:48 +0530145
146Switch Setting for Boot Mode
147----------------------------
148
149Boot Mode pins provide means to select the boot mode and options before the
150device is powered up. After every POR, they are the main source to populate
151the Boot Parameter Tables.
152
153The following table shows some common boot modes used on J7200 platform. More
154details can be found in the Technical Reference Manual:
155https://www.ti.com/lit/pdf/spruiu1 under the `Boot Mode Pins` section.
156
Nishanth Menon2fd774e2023-07-27 13:58:55 -0500157.. list-table:: Boot Modes
158 :widths: 16 16 16
159 :header-rows: 1
Udit Kumared92ede2023-05-11 14:47:48 +0530160
Nishanth Menon2fd774e2023-07-27 13:58:55 -0500161 * - Switch Label
162 - SW9: 12345678
163 - SW8: 12345678
164
165 * - SD
166 - 00000000
167 - 10000010
168
169 * - EMMC
170 - 01000000
171 - 10000000
172
173 * - OSPI
174 - 01000000
175 - 00000110
176
177 * - UART
178 - 01110000
179 - 00000000
Udit Kumared92ede2023-05-11 14:47:48 +0530180
Nishanth Menon2fd774e2023-07-27 13:58:55 -0500181 * - USB DFU
182 - 00100000
183 - 10000000
Udit Kumared92ede2023-05-11 14:47:48 +0530184
185For SW8 and SW9, the switch state in the "ON" position = 1.
186
187eMMC:
188-----
189ROM supports booting from eMMC raw read or UDA FS mode.
190
191Below is memory layout in case of booting from
192boot 0/1 partition in raw mode.
193
194Current allocated size for tiboot3 size is 1MB, tispl is 2MB.
195
196Size of u-boot.img is taken 4MB for refernece,
197But this is subject to change depending upon atf, optee size
198
Nishanth Menon03f27e52023-07-27 13:58:59 -0500199.. image:: img/emmc_j7200_evm_boot01.svg
Nishanth Menon5539eaf2023-08-22 11:41:00 -0500200 :alt: Traditional eMMC boot partition layout
Udit Kumared92ede2023-05-11 14:47:48 +0530201
202In case of UDA FS mode booting, following is layout.
203
204All boot images tiboot3.bin, tispl and u-boot should be written to
205fat formatted UDA FS as file.
206
Nishanth Menon03f27e52023-07-27 13:58:59 -0500207.. image:: img/emmc_j7200_evm_udafs.svg
Nishanth Menon5539eaf2023-08-22 11:41:00 -0500208 :alt: eMMC UDA boot partition layout
Udit Kumared92ede2023-05-11 14:47:48 +0530209
210In case of booting from eMMC, write above images into raw or UDA FS.
211and set mmc partconf accordingly.
Jason Kacinesb0fdee92023-08-03 01:29:22 -0500212
213Debugging U-Boot
214----------------
215
216See :ref:`Common Debugging environment - OpenOCD<k3_rst_refer_openocd>`: for
217detailed setup information.
218
219.. warning::
220
221 **OpenOCD support since**: v0.12.0
222
223 If the default package version of OpenOCD in your development
224 environment's distribution needs to be updated, it might be necessary to
225 build OpenOCD from the source.
226
227.. include:: k3.rst
228 :start-after: .. k3_rst_include_start_openocd_connect_XDS110
229 :end-before: .. k3_rst_include_end_openocd_connect_XDS110
230
231To start OpenOCD and connect to the board
232
Nishanth Menonfdd7cb72023-11-02 23:40:26 -0500233.. prompt:: bash $
Jason Kacinesb0fdee92023-08-03 01:29:22 -0500234
235 openocd -f board/ti_j7200evm.cfg