diff options
Diffstat (limited to 'doc/board/ti/j7200_evm.rst')
-rw-r--r-- | doc/board/ti/j7200_evm.rst | 301 |
1 files changed, 83 insertions, 218 deletions
diff --git a/doc/board/ti/j7200_evm.rst b/doc/board/ti/j7200_evm.rst index 5e3d75059c..69abc55a93 100644 --- a/doc/board/ti/j7200_evm.rst +++ b/doc/board/ti/j7200_evm.rst @@ -26,153 +26,88 @@ specific processing cores and peripherals: More info can be found in TRM: https://www.ti.com/lit/pdf/spruiu1 +Platform information: + +* https://www.ti.com/tool/J7200XSOMXEVM + Boot Flow: ---------- Below is the pictorial representation of boot flow: -.. code-block:: text - - +------------------------------------------------------------------------+-----------------------+ - | DMSC | MCU R5 | A72 | MAIN R5/C7x | - +------------------------------------------------------------------------+-----------------------+ - | +--------+ | | | | - | | Reset | | | | | - | +--------+ | | | | - | : | | | | - | +--------+ | +-----------+ | | | - | | *ROM* |----------|-->| Reset rls | | | | - | +--------+ | +-----------+ | | | - | | | | : | | | - | | ROM | | : | | | - | |services| | : | | | - | | | | +-------------+ | | | - | | | | | *R5 ROM* | | | | - | | | | +-------------+ | | | - | | |<---------|---|Load and auth| | | | - | | | | | tiboot3.bin | | | | - | | Start | | +-------------+ | | | - | | TIFS |<---------|---| Start | | | | - | | | | | TIFS | | | | - | +--------+ | +-------------+ | | | - | : | | | | | | - | +---------+ | | Load | | | | - | | *TIFS* | | | system | | | | - | +---------+ | | Config data | | | | - | | |<--------|---| | | | | - | | | | +-------------+ | | | - | | | | : | | | - | | | | : | | | - | | | | : | | | - | | | | +-------------+ | | | - | | | | | *R5 SPL* | | | | - | | | | +-------------+ | | | - | | | | | DDR | | | | - | | | | | config | | | | - | | | | +-------------+ | | | - | | | | | Load | | | | - | | | | | tispl.bin | | | | - | | | | +-------------+ | | | - | | | | | Load R5 | | | | - | | | | | firmware | | | | - | | | | +-------------+ | | | - | | |<--------|---| Start A72 | | | | - | | | | | and jump to | | | | - | | | | | DM fw image | | | | - | | | | +-------------+ | | | - | | | | | +-----------+ | | - | | |---------|-----------------------|---->| Reset rls | | | - | | | | | +-----------+ | | - | | TIFS | | | : | | - | |Services | | | +-------------+ | | - | | |<--------|-----------------------|---->|*TF-A/OP-TEE*| | | - | | | | | +-------------+ | | - | | | | | : | | - | | | | | +-----------+ | | - | | |<--------|-----------------------|---->| *A72 SPL* | | | - | | | | | +-----------+ | | - | | | | | | Load | | | - | | | | | | u-boot.img| | | - | | | | | +-----------+ | | - | | | | | : | | - | | | | | +-----------+ | | - | | |<--------|-----------------------|---->| *U-Boot* | | | - | | | | | +-----------+ | | - | | | | | | prompt | | | - | | | | | +-----------+ | | - | | | | | | Load R5 | | | - | | | | | | Firmware | | | - | | | | | +-----------+ | | - | | |<--------|-----------------------|-----| Start R5 | | +-----------+ | - | | |---------|-----------------------|-----+-----------+-----|----->| R5 starts | | - | | | | | | Load C7 | | +-----------+ | - | | | | | | Firmware | | | - | | | | | +-----------+ | | - | | |<--------|-----------------------|-----| Start C7 | | +-----------+ | - | | |---------|-----------------------|-----+-----------+-----|----->| C7 starts | | - | | | | | | +-----------+ | - | | | | | | | - | +---------+ | | | | - | | | | | - +------------------------------------------------------------------------+-----------------------+ +.. image:: img/boot_diagram_k3_current.svg - Here DMSC acts as master and provides all the critical services. R5/A72 requests DMSC to get these services done as shown in the above diagram. Sources: -------- -1. Trusted Firmware-A: - Tree: https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/ - Branch: master - -2. OP-TEE: - Tree: https://github.com/OP-TEE/optee_os.git - Branch: master - -3. U-Boot: - Tree: https://source.denx.de/u-boot/u-boot - Branch: master -4. TI Linux Firmware: - Tree: git://git.ti.com/processor-firmware/ti-linux-firmware.git - Branch: ti-linux-firmware +.. include:: k3.rst + :start-after: .. k3_rst_include_start_boot_sources + :end-before: .. k3_rst_include_end_boot_sources Build procedure: ---------------- -1. Trusted Firmware-A: +0. Setup the environment variables: -.. code-block:: bash +.. include:: k3.rst + :start-after: .. k3_rst_include_start_common_env_vars_desc + :end-before: .. k3_rst_include_end_common_env_vars_desc - $ make CROSS_COMPILE=aarch64-linux-gnu- ARCH=aarch64 PLAT=k3 TARGET_BOARD=generic SPD=opteed +.. include:: k3.rst + :start-after: .. k3_rst_include_start_board_env_vars_desc + :end-before: .. k3_rst_include_end_board_env_vars_desc -2. OP-TEE: +Set the variables corresponding to this platform: +.. include:: k3.rst + :start-after: .. k3_rst_include_start_common_env_vars_defn + :end-before: .. k3_rst_include_end_common_env_vars_defn .. code-block:: bash - $ make PLATFORM=k3-j7200 CFG_ARM64_core=y + $ export UBOOT_CFG_CORTEXR=j7200_evm_r5_defconfig + $ export UBOOT_CFG_CORTEXA=j7200_evm_a72_defconfig + $ export TFA_BOARD=generic + $ # we dont use any extra TFA parameters + $ unset TFA_EXTRA_ARGS + $ export OPTEE_PLATFORM=k3-j7200 + $ # we dont use any extra OP-TEE parameters + $ unset OPTEE_EXTRA_ARGS + +.. j7200_evm_rst_include_start_build_steps + +1. Trusted Firmware-A: + +.. include:: k3.rst + :start-after: .. k3_rst_include_start_build_steps_tfa + :end-before: .. k3_rst_include_end_build_steps_tfa + + +2. OP-TEE: + +.. include:: k3.rst + :start-after: .. k3_rst_include_start_build_steps_optee + :end-before: .. k3_rst_include_end_build_steps_optee 3. U-Boot: * 4.1 R5: -.. code-block:: bash - - $ make CROSS_COMPILE=arm-linux-gnueabihf- j7200_evm_r5_defconfig O=build/r5 - $ make CROSS_COMPILE=arm-linux-gnueabihf- \ - BINMAN_INDIRS=<path/to/ti-linux-firmware> +.. include:: k3.rst + :start-after: .. k3_rst_include_start_build_steps_spl_r5 + :end-before: .. k3_rst_include_end_build_steps_spl_r5 * 4.2 A72: -.. code-block:: bash - - $ make CROSS_COMPILE=aarch64-linux-gnu- j7200_evm_a72_defconfig O=build/a72 - $ make CROSS_COMPILE=aarch64-linux-gnu- \ - BL31=<path/to/trusted-firmware-a/dir>/build/k3/generic/release/bl31.bin \ - TEE=<path/to/optee_os/dir>/out/arm-plat-k3/core/tee-raw.bin \ - BINMAN_INDIRS=<path/to/ti-linux-firmware> +.. include:: k3.rst + :start-after: .. k3_rst_include_start_build_steps_uboot + :end-before: .. k3_rst_include_end_build_steps_uboot +.. j7200_evm_rst_include_end_build_steps Target Images -------------- -Copy the below images to an SD card and boot: +In order to boot we need tiboot3.bin, tispl.bin and u-boot.img. Each SoC +variant (GP, HS-FS, HS-SE) requires a different source for these files. - GP @@ -192,71 +127,14 @@ Copy the below images to an SD card and boot: Image formats: -------------- -- tiboot3.bin: - -.. code-block:: console - - +-----------------------+ - | X.509 | - | Certificate | - | +-------------------+ | - | | | | - | | R5 | | - | | u-boot-spl.bin | | - | | | | - | +-------------------+ | - | | | | - | | FIT header | | - | | +---------------+ | | - | | | | | | - | | | DTB 1...N | | | - | | +---------------+ | | - | +-------------------+ | - | | | | - | | FIT HEADER | | - | | +---------------+ | | - | | | | | | - | | | sysfw.bin | | | - | | +---------------+ | | - | | | | | | - | | | board config | | | - | | +---------------+ | | - | | | | | | - | | | PM config | | | - | | +---------------+ | | - | | | | | | - | | | RM config | | | - | | +---------------+ | | - | | | | | | - | | | Secure config | | | - | | +---------------+ | | - | +-------------------+ | - +-----------------------+ +- tiboot3.bin + +.. image:: img/j7200_tiboot3.bin.svg - tispl.bin -.. code-block:: console - - +-----------------------+ - | | - | FIT HEADER | - | +-------------------+ | - | | | | - | | A72 TF-A | | - | +-------------------+ | - | | | | - | | A72 OP-TEE | | - | +-------------------+ | - | | | | - | | R5 DM FW | | - | +-------------------+ | - | | | | - | | A72 SPL | | - | +-------------------+ | - | | | | - | | SPL DTB 1...N | | - | +-------------------+ | - +-----------------------+ +.. image:: img/dm_tispl.bin.svg + Switch Setting for Boot Mode @@ -270,18 +148,33 @@ The following table shows some common boot modes used on J7200 platform. More details can be found in the Technical Reference Manual: https://www.ti.com/lit/pdf/spruiu1 under the `Boot Mode Pins` section. +.. list-table:: Boot Modes + :widths: 16 16 16 + :header-rows: 1 -*Boot Modes* + * - Switch Label + - SW9: 12345678 + - SW8: 12345678 -============ ============= ============= -Switch Label SW9: 12345678 SW8: 12345678 -============ ============= ============= -SD 00000000 10000010 -EMMC 01000000 10000000 -OSPI 01000000 00000110 -UART 01110000 00000000 -USB DFU 00100000 10000000 -============ ============= ============= + * - SD + - 00000000 + - 10000010 + + * - EMMC + - 01000000 + - 10000000 + + * - OSPI + - 01000000 + - 00000110 + + * - UART + - 01110000 + - 00000000 + + * - USB DFU + - 00100000 + - 10000000 For SW8 and SW9, the switch state in the "ON" position = 1. @@ -297,42 +190,14 @@ Current allocated size for tiboot3 size is 1MB, tispl is 2MB. Size of u-boot.img is taken 4MB for refernece, But this is subject to change depending upon atf, optee size -.. code-block:: console - - boot0/1 partition (8 MB) user partition - 0x0+----------------------------------+ 0x0+------------------------+ - | tiboot3.bin (1 MB) | | | - 0x800+----------------------------------+ | | - | tispl.bin (2 MB) | | | - 0x1800+----------------------------------+ | | - | u-boot.img (4MB) | | | - 0x3800+----------------------------------+ | | - | | | | - 0x3900+ environment | | | - | | | | - 0x3A00+----------------------------------+ +-------------------------+ +.. image:: img/emmc_j7200_evm_boot01.svg In case of UDA FS mode booting, following is layout. All boot images tiboot3.bin, tispl and u-boot should be written to fat formatted UDA FS as file. -.. code-block:: console - - boot0/1 partition (8 MB) user partition - 0x0+---------------------------------+ 0x0+-------------------------+ - | | | tiboot3.bin* | - 0x800+----------------------------------+ | | - | | | tispl.bin | - 0x1800+----------------------------------+ | | - | | | u-boot.img | - 0x3800+----------------------------------+ | | - | | | | - 0x3900+ | | environment | - | | | | - 0x3A00+----------------------------------+ +-------------------------+ - - +.. image:: img/emmc_j7200_evm_udafs.svg In case of booting from eMMC, write above images into raw or UDA FS. and set mmc partconf accordingly. |