blob: 41c8d4c72a8d707dfaf4354a105a906812b34f5a [file] [log] [blame]
Kishon Vijay Abraham I8baeeec2021-07-21 21:28:48 +05301.. SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
2.. sectionauthor:: Lokesh Vutla <lokeshvutla@ti.com>
3
Bryan Brattlof0820e112022-12-19 14:29:49 -06004J721E Platforms
5===============
Kishon Vijay Abraham I8baeeec2021-07-21 21:28:48 +05306
7Introduction:
8-------------
9The J721e 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 * 2 x Dual cortex ARM Cortex-R5 subsystem
27 * 2 x C66x Digital signal processor sub system
28 * C71x Digital signal processor sub-system with MMA.
29
Nishanth Menona94a4072023-11-01 15:56:03 -050030More info can be found in TRM: https://www.ti.com/lit/pdf/spruil1
Kishon Vijay Abraham I8baeeec2021-07-21 21:28:48 +053031
Nishanth Menon08df7462023-07-27 13:59:00 -050032Platform information:
33
34* https://www.ti.com/tool/J721EXSOMXEVM
35* https://www.ti.com/tool/SK-TDA4VM
36
Kishon Vijay Abraham I8baeeec2021-07-21 21:28:48 +053037Boot Flow:
38----------
39Boot flow is similar to that of AM65x SoC and extending it with remoteproc
40support. Below is the pictorial representation of boot flow:
41
Nishanth Menon9e30ebc2023-07-27 13:58:47 -050042.. image:: img/boot_diagram_j721e.svg
Nishanth Menone21a2ed2023-08-22 11:41:01 -050043 :alt: Boot flow diagram
Kishon Vijay Abraham I8baeeec2021-07-21 21:28:48 +053044
45- Here DMSC acts as master and provides all the critical services. R5/A72
46 requests DMSC to get these services done as shown in the above diagram.
47
48Sources:
49--------
Kishon Vijay Abraham I8baeeec2021-07-21 21:28:48 +053050
Nishanth Menond35dcc62023-11-04 02:21:50 -050051.. include:: ../ti/k3.rst
Nishanth Menoncce3e7a2023-07-27 13:58:44 -050052 :start-after: .. k3_rst_include_start_boot_sources
53 :end-before: .. k3_rst_include_end_boot_sources
Neha Malcom Francis1ee652a2023-07-22 00:14:43 +053054
Dhruva Goled7b23a02024-08-05 19:59:33 +053055.. include:: ../ti/k3.rst
56 :start-after: .. k3_rst_include_start_boot_firmwares
57 :end-before: .. k3_rst_include_end_boot_firmwares
58
Kishon Vijay Abraham I8baeeec2021-07-21 21:28:48 +053059Build procedure:
60----------------
Nishanth Menonc727b812023-07-27 13:58:48 -0500610. Setup the environment variables:
Kishon Vijay Abraham I8baeeec2021-07-21 21:28:48 +053062
Nishanth Menond35dcc62023-11-04 02:21:50 -050063.. include:: ../ti/k3.rst
Nishanth Menonc727b812023-07-27 13:58:48 -050064 :start-after: .. k3_rst_include_start_common_env_vars_desc
65 :end-before: .. k3_rst_include_end_common_env_vars_desc
66
Nishanth Menond35dcc62023-11-04 02:21:50 -050067.. include:: ../ti/k3.rst
Nishanth Menonc727b812023-07-27 13:58:48 -050068 :start-after: .. k3_rst_include_start_board_env_vars_desc
69 :end-before: .. k3_rst_include_end_board_env_vars_desc
70
71Set the variables corresponding to this platform:
72
Nishanth Menond35dcc62023-11-04 02:21:50 -050073.. include:: ../ti/k3.rst
Nishanth Menonc727b812023-07-27 13:58:48 -050074 :start-after: .. k3_rst_include_start_common_env_vars_defn
75 :end-before: .. k3_rst_include_end_common_env_vars_defn
Nishanth Menonca845d22023-11-02 23:40:26 -050076.. prompt:: bash $
Kishon Vijay Abraham I8baeeec2021-07-21 21:28:48 +053077
Nishanth Menonca845d22023-11-02 23:40:26 -050078 export UBOOT_CFG_CORTEXR=j721e_evm_r5_defconfig
79 export UBOOT_CFG_CORTEXA=j721e_evm_a72_defconfig
80 export TFA_BOARD=generic
81 # we dont use any extra TFA parameters
82 unset TFA_EXTRA_ARGS
83 export OPTEE_PLATFORM=k3-j721e
84 # we dont use any extra OP-TEE parameters
85 unset OPTEE_EXTRA_ARGS
Nishanth Menonc727b812023-07-27 13:58:48 -050086
87.. j721e_evm_rst_include_start_build_steps
88
891. Trusted Firmware-A:
90
Nishanth Menond35dcc62023-11-04 02:21:50 -050091.. include:: ../ti/k3.rst
Nishanth Menonc727b812023-07-27 13:58:48 -050092 :start-after: .. k3_rst_include_start_build_steps_tfa
93 :end-before: .. k3_rst_include_end_build_steps_tfa
94
Kishon Vijay Abraham I8baeeec2021-07-21 21:28:48 +053095
Neha Malcom Francis1ee652a2023-07-22 00:14:43 +0530962. OP-TEE:
Kishon Vijay Abraham I8baeeec2021-07-21 21:28:48 +053097
Nishanth Menond35dcc62023-11-04 02:21:50 -050098.. include:: ../ti/k3.rst
Nishanth Menonc727b812023-07-27 13:58:48 -050099 :start-after: .. k3_rst_include_start_build_steps_optee
100 :end-before: .. k3_rst_include_end_build_steps_optee
Kishon Vijay Abraham I8baeeec2021-07-21 21:28:48 +0530101
Neha Malcom Francis1ee652a2023-07-22 00:14:43 +05301023. U-Boot:
Kishon Vijay Abraham I8baeeec2021-07-21 21:28:48 +0530103
Nishanth Menonf340a162023-08-22 11:41:06 -0500104* 3.1 R5:
Kishon Vijay Abraham I8baeeec2021-07-21 21:28:48 +0530105
Nishanth Menond35dcc62023-11-04 02:21:50 -0500106.. include:: ../ti/k3.rst
Nishanth Menonc727b812023-07-27 13:58:48 -0500107 :start-after: .. k3_rst_include_start_build_steps_spl_r5
108 :end-before: .. k3_rst_include_end_build_steps_spl_r5
Kishon Vijay Abraham I8baeeec2021-07-21 21:28:48 +0530109
Nishanth Menonf340a162023-08-22 11:41:06 -0500110* 3.2 A72:
Kishon Vijay Abraham I8baeeec2021-07-21 21:28:48 +0530111
Nishanth Menond35dcc62023-11-04 02:21:50 -0500112.. include:: ../ti/k3.rst
Nishanth Menonc727b812023-07-27 13:58:48 -0500113 :start-after: .. k3_rst_include_start_build_steps_uboot
114 :end-before: .. k3_rst_include_end_build_steps_uboot
115.. j721e_evm_rst_include_end_build_steps
Kishon Vijay Abraham I8baeeec2021-07-21 21:28:48 +0530116
117Target Images
Heinrich Schuchardtb214e882023-10-28 11:59:32 +0200118-------------
119
Tom Rinif687c8f2023-07-25 12:44:16 -0400120In order to boot we need tiboot3.bin, sysfw.itb, tispl.bin and u-boot.img.
121Each SoC variant (GP, HS-FS and HS-SE) requires a different source for these
122files.
Neha Malcom Francis1ee652a2023-07-22 00:14:43 +0530123
124 - GP
125
Nishanth Menonf340a162023-08-22 11:41:06 -0500126 * tiboot3-j721e-gp-evm.bin, sysfw-j721e-gp-evm.itb from step 3.1
127 * tispl.bin_unsigned, u-boot.img_unsigned from step 3.2
Neha Malcom Francis1ee652a2023-07-22 00:14:43 +0530128
129 - HS-FS
130
Nishanth Menonf340a162023-08-22 11:41:06 -0500131 * tiboot3-j721e_sr2-hs-fs-evm.bin, sysfw-j721e_sr2-hs-fs-evm.itb from step 3.1
132 * tispl.bin, u-boot.img from step 3.2
Neha Malcom Francis1ee652a2023-07-22 00:14:43 +0530133
134 - HS-SE
135
Nishanth Menonf340a162023-08-22 11:41:06 -0500136 * tiboot3-j721e_sr2-hs-evm.bin, sysfw-j721e_sr2-hs-evm.itb from step 3.1
137 * tispl.bin, u-boot.img from step 3.2
Kishon Vijay Abraham I8baeeec2021-07-21 21:28:48 +0530138
139Image formats:
140--------------
141
Nishanth Menon3b83dff2023-07-27 13:58:50 -0500142- tiboot3.bin
Kishon Vijay Abraham I8baeeec2021-07-21 21:28:48 +0530143
Nishanth Menon3b83dff2023-07-27 13:58:50 -0500144.. image:: img/no_multi_cert_tiboot3.bin.svg
Nishanth Menone21a2ed2023-08-22 11:41:01 -0500145 :alt: tiboot3.bin image format
Kishon Vijay Abraham I8baeeec2021-07-21 21:28:48 +0530146
147- tispl.bin
148
Nishanth Menon3b83dff2023-07-27 13:58:50 -0500149.. image:: img/dm_tispl.bin.svg
Nishanth Menone21a2ed2023-08-22 11:41:01 -0500150 :alt: tispl.bin image format
Kishon Vijay Abraham I8baeeec2021-07-21 21:28:48 +0530151
152- sysfw.itb
153
Nishanth Menon3b83dff2023-07-27 13:58:50 -0500154.. image:: img/sysfw.itb.svg
Nishanth Menone21a2ed2023-08-22 11:41:01 -0500155 :alt: sysfw.itb image format
Kishon Vijay Abraham I8baeeec2021-07-21 21:28:48 +0530156
Jonathan Humphreys44ba2832024-06-14 11:35:36 -0500157OSPI:
158-----
159ROM supports booting from OSPI from offset 0x0.
160
161Flashing images to OSPI:
162
163Below commands can be used to download tiboot3.bin, tispl.bin, u-boot.img,
164and sysfw.itb over tftp and then flash those to OSPI at their respective
165addresses.
166
167.. prompt:: bash =>
168
169 sf probe
170 tftp ${loadaddr} tiboot3.bin
171 sf update $loadaddr 0x0 $filesize
172 tftp ${loadaddr} tispl.bin
173 sf update $loadaddr 0x80000 $filesize
174 tftp ${loadaddr} u-boot.img
175 sf update $loadaddr 0x280000 $filesize
176 tftp ${loadaddr} sysfw.itb
177 sf update $loadaddr 0x6C0000 $filesize
178
179Flash layout for OSPI:
180
181.. image:: img/ospi_sysfw.svg
182 :alt: OSPI flash partition layout
183
Manorit Chawdhry6cfdf822023-05-16 10:24:36 +0530184R5 Memory Map:
185--------------
186
187.. list-table::
188 :widths: 16 16 16
189 :header-rows: 1
190
191 * - Region
192 - Start Address
193 - End Address
194
195 * - SPL
196 - 0x41c00000
197 - 0x41c40000
198
199 * - EMPTY
200 - 0x41c40000
201 - 0x41c81920
202
203 * - STACK
204 - 0x41c85920
205 - 0x41c81920
206
207 * - Global data
208 - 0x41c859f0
209 - 0x41c85920
210
211 * - Heap
212 - 0x41c859f0
213 - 0x41cf59f0
214
215 * - BSS
216 - 0x41cf59f0
217 - 0x41cff9f0
218
219 * - MCU Scratchpad
220 - 0x41cff9fc
221 - 0x41cffbfc
222
223 * - ROM DATA
224 - 0x41cffbfc
225 - 0x41cfffff
226
Jonathan Humphreys44ba2832024-06-14 11:35:36 -0500227Firmware:
228---------
Kishon Vijay Abraham I4689aab2021-07-21 21:28:49 +0530229
230The J721e u-boot allows firmware to be loaded for the Cortex-R5 subsystem.
231The CPSW5G in J7200 and CPSW9G in J721E present in MAIN domain is configured
232and controlled by the ethernet firmware that executes in the MAIN Cortex R5.
233The default supported environment variables support loading these firmwares
234from only MMC. "dorprocboot" env variable has to be set for the U-BOOT to load
235and start the remote cores in the system.
236
237J721E common processor board can be attached to a Ethernet QSGMII card and the
238PHY in the card has to be reset before it can be used for data transfer.
239"do_main_cpsw0_qsgmii_phyinit" env variable has to be set for the U-BOOT to
240configure this PHY.
Jason Kacineseffe5082023-08-03 01:29:22 -0500241
242Debugging U-Boot
243----------------
244
245See :ref:`Common Debugging environment - OpenOCD<k3_rst_refer_openocd>`: for
246detailed setup information.
247
248.. warning::
249
250 **OpenOCD support since**: v0.12.0
251
252 If the default package version of OpenOCD in your development
253 environment's distribution needs to be updated, it might be necessary to
254 build OpenOCD from the source.
255
Nishanth Menond35dcc62023-11-04 02:21:50 -0500256.. include:: ../ti/k3.rst
Jason Kacineseffe5082023-08-03 01:29:22 -0500257 :start-after: .. k3_rst_include_start_openocd_connect_XDS110
258 :end-before: .. k3_rst_include_end_openocd_connect_XDS110
259
260To start OpenOCD and connect to the board
261
Nishanth Menonca845d22023-11-02 23:40:26 -0500262.. prompt:: bash $
Jason Kacineseffe5082023-08-03 01:29:22 -0500263
264 openocd -f board/ti_j721eevm.cfg