4. PSDKQA Components

4.1. QNX BSP release

The QNX BSP package must be downloaded from QNX Software Center.

Note

Refer Release Notes software dependencies section for more information.

For the purposes of creating a consolidated build process and in turn allowing for support of scripts to create SD content, the BSP needs to be extracted to the folder within the PSDKQA build environment as show below.

# Unzip the BSP
mkdir -p ${PSDKRA_PATH}/psdkqa/qnx/bsp
cd ${PSDKRA_PATH}/psdkqa/qnx/bsp
unzip ${QNX_BASE}/bsp/BSP_ti-j721e-am752x-evm_br-700_be-700_<version>.zip

4.1.1. TI Modifications to the BSP

Memory Carveout

Memory sections with pre-defined physical addresses must be set aside in the QNX BSP IFS build file so that the memory is not given to other programs and can be used solely by the remote cores

Specify a section to be set aside by modifying the startup line to use the “-r” option. For example, to reserve 0x5C000000 bytes, at physical address 0xA0000000, on J7 QNX BSP, the build file the arguments would be (highlighted below):

+keeplinked] startup-j721e-evm -v -r0xA0000000,0x5C000000,1

R5 Display support

For R5 Display support, the Startup need to be provided with -d option to specify not to configure the DSS and eDP.

[+keeplinked] startup-j721e-evm -v -r0xA0000000,0x5C000000,1 -d

Reference TI build file

The refernce TI build file is provide in the qnx/scripts/bsp directory.

# Copy in TI specific build scripts and settings to allow building of a QNX-IFS which supports
# vision_apps demos
cp ${PSDKRA_PATH}/psdkqa/qnx/scripts/bsp/j721e-evm-ti.build ${PSDKRA_PATH}/psdkqa/qnx/bsp/images/

4.2. QNX Screen release

The QNX Screen package must be downloaded from QNX Software Center.

The QNX Screen package must be installed and running for GPU support.

The QNX Screen package can optionally control the DSS (Display) from the A72, the PSDKQA package default is R5 control of the DSS.

Note

Refer Release Notes software dependencies section for more information.

4.2.1. Enabling R5 Control Of DSS

By default the PSDKQA delivery will default to eDP display, controlled from the R5. The items that must be addressed for the system to run with R5 Controlled Display, and are set by default are:

  • The libWFDdummy.so must be used by the QNX graphics.conf file Reference ${PSDKQA_PATH}/qnx/scripts/user__dss_on_r5.sh.
  • The QNX BSP startup command line option in the QNX BSP build file, must have the “-d” option specified
  • ENABLE_DSS flag must be defined, please reference Vision Apps User Guide, see section on “Build Instructions”:
Vision Apps User Guide
  - Build And Run
      - Build Instructions

4.2.2. Enabling A72 Control of DSS

To disable the R5 control of the display, and enable A72 control of the display, the items that must be addressed are:

  • The libWFDdummy.so must be used by the QNX graphics.conf file. Reference ${PSDKQA_PATH}/qnx/scripts/user__dss_on_a72.sh
  • The QNX BSP startup command line option in the QNX BSP build file must not have the “-d” option specified
  • The ENABLE_DSS flag must be undefined, please reference Vision Apps User Guide, see section on “Build Instructions”:
Vision Apps User Guide
  - Build And Run
 . - Build Instructions

4.3. QNX USB and Networking Packages

The QNX USB and Networking packages must downloaded from QNX Software Center.

Note

Refer Release Notes software dependencies section for more information.

4.4. SCI Client Resource Manager

The SCI Client Resource Manager (tisci-mgr) provide support for multiple users to make use of the sciclient library from PSDRKA without interfering with each other requests. It provide mechanism to serialize the transactions to the DMSC.

Note

Refer PSDKRA Components for more information about each individual component.

4.5. IPC Resource Manager

The IPC resource manager (tiipc-mgr) provide a processor-agnostic API which can be used for communication between processors in a multi-processor environment.

Note

Refer PSDKRA Components for more information about each individual component.

4.6. UDMA Resource Manager

The UDMA resource manager (tiudma-mgr) provide support for multiple users to make use of the UDMA functionlity without interfering with each other requests.

Note

Refer PSDKRA Components for more information about each individual component.

4.7. Shared Memory Allocator

The Shared Memory Allocator resource manager (shmemallocator) provide support for multiple users to allocate memory from the shared memory region. This shared memory region is carvedout of the QNX memory as part of the QNX Startup parameter.

4.8. CPSW2G DEVNP driver

4.8.1. Overview

The CPSW2G DEVNP network driver can be viewed as the “glue” between the underlying cpsw2g lowlevel driver, and the software infrastructure of io-pkt, the protocol stack above it. The “bottom half” of the driver is coded specifically to interact with the PDK’s cpsw & udma low-level drivers, and the “top half” of the driver is coded specifically for io-pkt.

Note

Refer PSDKRA Components for more information about each individual component.

4.8.2. Running

Boot the board with the SDcard. At the QNX prompt, run below, to mount the SD card and then launch the executable:

tisci-mgr
tiudma-mgr
on –C 0 io-pkt-v6-hc -d cpsw2g verbose=0xff
dhclient -nw am0

For debug traces, run the below command before starting the DEVNP driver and start the driver with increased verbose parameter (ex: verbose=0x3ff) this will show all the drivers slog messages

slog2info –c
slog2info -w &

4.8.3. Additonal steps

  • Run “if_up -p am0” to check if the interface is ready
  • Run “ifconfig am0 up” to bring UP the link.
  • Run “dhclient -nw am0” for DHCP server provide the IP address
  • Run “ifconfig -v” to check the assigned IP address and status
  • Run “tcpdump -e” to look at the tcp traffic

4.8.4. Starting driver with other options

We can run the below command to get the usage of the DEVNP driver

use devnp-cpsw2g.so

To run the cpsw2g devnp driver with PHY:

on –C 0 io-pkt-v6-hc –d cpsw2g verbose=0x0

To run the cpsw2g devnp driver in mac-to-mac mode with 1Gbps:

on –C 0 io-pkt-v6-hc –d cpsw2g verbose=0x0,mac-to-mac=1,speed=1000

To run the cpsw2g devnp driver in mac-to-mac mode with 1Gbps with gPTP:

on –C 0 io-pkt-v6-hc –d cpsw2g verbose=0x0,ptp=1,mac-to-mac=1,speed=1000

To get a dynamic IP address for the cpsw2g port:

dhclient -nw am0

To get a static Ip address for the cpsw2g port:

ifconfig am0 up
ifconfig am0 <static_ip_address>

4.9. CPSW9G DEVNP driver

4.9.1. Overview

The CPSW9G DEVNP network driver implemented as “virtual” driver that communicates with the Ethernet Firware Switch firmware running on the R5 core. The control message transfer is done via IPC. The RX and TX data packets are passed to the CPSW9G port using the UDMA.

Note

Refer PSDKRA Components for more information about each individual component.

4.9.2. Running

Boot the board with the SDcard. At the QNX prompt, run below, to mount the SD card and then launch the executable:

tisci-mgr
tiipc-mgr
tiudma-mgr
on –C 0 io-pkt-v6-hc -d cpsw9g verbose=0xff
dhclient -nw an0

For debug traces, run the below command before starting the DEVNP driver and start the driver with increased verbose parameter (ex: verbose=0x3ff) this will show all the drivers slog messages

slog2info –c
slog2info -w &

4.9.3. Additonal steps

  • Run “if_up -p an0” to check if the interface is ready
  • Run “ifconfig an0 up” to bring UP the link.
  • Run “dhclient -nw an0” for DHCP server provide the IP address
  • Run “ifconfig -v” to check the assigned IP address and status
  • Run “tcpdump -e” to look at the tcp traffic