2. Getting Started

Important

Processor SDK RTOS (PSDK RTOS) for J722S needs to be downloaded separately. However, building only QNX is not dependent on the PSDK RTOS.

2.1. Functional components

  • Bootup of the device to console using SPL+U-boot and SBL via SD/eMMC.

  • Bootup of the device to console using SBL via OSPI NOR.

  • Carveouts for remoteproc and codec components present in the ti build file provided with the SDK sources.

  • Sciclient resource manager.

  • UDMA resource manager. PKTDMA + BCDMA instance 0 tested. BCDMA for CSI not validated with QNX yet.

  • I2C driver validated.

  • Shared memory allocator validated.

  • Wave5CL Codec basic decode and encode validated.

2.2. Downloading and installing the PSDK QNX

2.2.1. Step 1: Install QNX Packages

  • In order to build for a QNX environment, there are multiple packages from QNX Software Center that must be installed. This includes the QNX SDP and related packages. Please refer to the Software Dependencies section of the Release Notes, for a list of those packages, and ensure they are installed on the host build machine.

  • Processor SDK QNX (PSDK QNX) for J722S supports & has been validated with QNX SDP 800. While installing the QNX SDP 800, the default install location is:

/home/$USER/qnx800
  • The QNX SDP 800 can be installed to any directory location, but please update the version and paths accordingly in:

    • ${PSDK_RTOS_PATH}/sdk_builder/tools_path.mak

    • ${PSDK_RTOS_PATH}/psdkqa/qnx/qnx_tools_path.mak

2.2.2. Step 2: Download & Install the PSDK RTOS

Important

In order to download and compile some components from next step, it is required that your PC network proxy is setup properly in case it is not directly connected to internet.

Note

For previous Jacinto 7 devices the main RTOS project was PDK. For J722S, the RTOS project has migrated to MCU+SDK, which is located in the folder ${PSDK_RTOS_PATH}/mcu_plus_sdk/. For more information, please refer to the MCU+SDK documentation PSDK RTOS Components, or reach out to your TI representative.

  • The PSDK RTOS release can be downloaded from ti.com. [LINK]. The version of the PSDK RTOS and PSDK QNX release must be the same. The PSDK RTOS package needs to be installed in your build machine. Here after we’ll refer to this installation directory as $PSDK_RTOS_PATH

  • The PSDK RTOS release requires certain packages which are NOT included in PSDK RTOS installer and need to be downloaded separately. Please see the section “Download, Install and Setup SDK and Tools” in the MCU+SDK documentation and the vision apps user guide [LINK] for more details.

Note

  • To run below script, ‘sudo’ permission is required for installing some components using apt-get. In case you don’t want to install packages with sudo permission pass below argument to this script: --skip_sudo

  • In case you are only using QNX SBL in your development, you can skip any SPL-related installations by passing the below flag when running the setup_psdk_rtos script: --qnx_sbl

  • Make sure to call the script from ${PSDK_RTOS_PATH} as shown above. DO NOT “cd” into sdk_builder/scripts and call the script

cd ${PSDK_RTOS_PATH}
./sdk_builder/scripts/setup_psdk_rtos.sh

2.2.3. Step 3: Download & Install the PSDK QNX

  • Download the psdk qnx package (ti-processor-sdk-qnx_j722s_xx_xx_xx.tar.gz) and extract this to the $PSDK_RTOS_PATH

cd ${PSDK_RTOS_PATH}
tar -xvf ti-processor-sdk-qnx_j722s_xx_xx_xx.tar.gz -C $PSDK_RTOS_PATH

Note

The above step would create the directory by name psdkqa. Please note that from now on $PSDK_RTOS_PATH/psdkqa will be referred at PSDK_QNX_PATH

  • Once the PSDK QNX package has been extracted, the ${PSDK_QNX_PATH}/psdk_qnx_setup.sh has to be run from the $PSDK_QNX_PATH folder to complete installation. Please check following variables is set correctly in the ${PSDK_QNX_PATH}/psdk_qnx_setup.sh for the script to function correctly.

  • Please note: if you are using a newer BSP than this release was generated for you must do this for the setup script to work correctly.

QNX_BSP_PATH=${QNX_BASE}/bsp/                                          (The location of the extracted bsp that was downloaded from QNX Software Center)
QNX_BSP_NAME=BSP_ti-j722s-evm_br-800_be-800_SVNxxxxxx_JBNyy.zip        (The QNX BSP zip file)
QNX_BSP_VERSION=800_SVNxxxxxx_JBNyy                                    (The QNX BSP version)
  • The QNX_BASE referenced is the location in which QNX SDP was installed. The script assumes the default location, if QNX SDP was installed elsewhere the path must be updated accordingly.

Note

QNX Software Center would download the BSP archive by default to /home/$USER/qnx800/bsp, however the user can modify this path.

Note

Please refer to the Software Dependencies section of the Release Notes supported QNX BSP releases.

  • The BSP archive must be downloaded using QNX Software Center prior to running the psdk_qnx_setup.sh script.

  • After modifying the ${PSDK_QNX_PATH}/psdk_qnx_setup.sh script, launch it with the following command from the PSDK_QNX_PATH directory path.

cd ${PSDK_QNX_PATH}
QNX_SDP_VERSION=800 ./psdk_qnx_setup.sh

Note

Make sure to call the script from ${PSDK_QNX_PATH} as shown above.

  • The psdk_qnx_setup.sh creates

    1. A QNX specific copy of the PDK in psdkqa/pdk

    2. A TI modified copy of the QNX BSP in psdkqa/bsp

2.3. PSDK QNX Build Options

The PSDK QNX provides a build environment to generate QNX binaries and libraries required for the J722S EVM to run in an QNX environment. The QNX binaries and libraries must be aligned with the firmware on the other cores of the J722S device. By default the PSDK QNX supports three different variants of firmware images, as described in the following sections. Each of the build options is exclusive and offers different features. The generated PSDK QNX binaries and libraries for each option will only function correctly provided that they are aligned with the firmware running on the remote cores, for that build option. When switching between the supported build options, a full scrub must be done.

2.3.1. PSDK QNX And Vision Apps Demos

  • The Vision Apps build environment is used as a centralized build location for both PSDK RTOS and PSDK QNX. To build and run the PSDK QNX and vision apps demos, detailed instructions from vision_apps user guide should be followed. Refer to the Build and Run section of vision apps user-guide. The vision apps user guide is available at the latest online documentation [LINK] or in the local installation documentation at ${PSDK_RTOS_PATH}/vision_apps/docs/user_guide/index.html

  • For details regarding setting the EVM, boot modes etc., please refer EVM Setup for J722S

  • Refer to section CCS Setup for J722S for steps to debug RTOS or QNX cores.

Note

Build Steps must not be referred when building for vision app demos. For vision apps demos you must refer to the vision apps user guide [LINK].

2.3.2. PSDK QNX And IPC Echo Test Firmware Images

This build option provides a QNX setup on the A53 with firmware images capable of support and IPC test setup.

Please refer Build Steps for the detailed build instructions.

2.4. Resource Managers

The PSDK QNX package provides A53 resource managers as described in PSDK QNX Components, for:

  • SCI

  • UDMA

  • IPC

  • Shared Memory Allocator

  • VPU Codec

These resource managers must be launched during system initialization. Examples of this can be seen in ${PSDK_QNX_PATH}/qnx/scripts/user.sh. This script file is used during initialization, and is included in the SD card image generated by following:

  • The Build and Run section of vision apps user-guide [LINK].

  • The Build Steps

2.5. PSDK QNX Boot Modes

Important

Refer to PSDK RTOS documentation for detailed information on boot modes and boot flow.

The PSDK QNX addon package supports 3 different boot modes

  • SPL+Uboot(SD Boot)

  • SBL Combined Boot(SD Boot)

  • SBL Combined Boot(OSPI NOR Boot)

The steps to get each of these boot modes running is covered in:

  • The Build and Run section of vision apps user-guide [LINK].

  • The Build Steps

Important

In QNX SDP 800, Device Tree Blobs (DTBs) are required to be loaded during the boot process in order to use io-sock based networking. For further details on loading DTBs in U-boot and SBL via the PSDK QNX build flow, please see the associated developer note: Device Tree Support.

2.5.1. SPL+Uboot Boot

For the SPL/Uboot option, the following binaries are required, which are available as part of the PSDK Linux package:

  • R5 bootloader (tiboot3.bin)

  • A53 bootloader (tispl.bin)

  • U-boot (u-boot.img)

2.5.2. SBL Boot

For the SBL boot option, we use the SBL bootloader include as part of the PSDK RTOS package. Reference PSDK RTOS J722S package documentation (LINK) for details.

Boot media: The Boot App will leave the boot media (either OSPI flash or SD card) as previously used, but with handles closed and left in a state to allow the software on the A53 to take over control:

  • MMCSD boot: SD card has been released and is ready for HLOS to take control

  • OSPI flash: Flash is closed & re-initialized in SPI mode, so that the HLOS can reset the flash as needed and re-initialize with its own OSPI