Driver Commands
The tables below provide a summary of driver commands.
The tables list any additional libraries and binaries that are required. Default required libraries, such as libc.so and libgcc_s.so.1 aren't listed, but should be included in your buildfile.
Some of the drivers are commented out in the buildfile. To use these drivers on the target hardware, you may need to uncomment them in the buildfile, rebuild the image, and load the image onto the board.
The order that the drivers are started in the provided buildfile is one way to start them. The order that you start the drivers is completely customizable and is often specific to the requirements of your system. For example, if you need an audible sound to play immediately, you must start the audio driver earlier than other drivers. It's important to recognize that the order you choose impacts the boot time.
- For more information on best practices for building an embedded system and optimizing boot times for your system, see the Building Embedded Systems and the Boot Optimization guides in the QNX Software Development Platform 8.0 documentation.
- For more information about the drivers and commands listed here, see the QNX OS Utilities Reference. This chapter provides information about BSP-specific options for any of the commands and drivers that aren't described in the Utilities Reference.
Here's the list of drivers available for this board and the order they appear in the provided buildfile:
- Flash driver
- Graphics
- Inter-integrated Circuit (I2C)
- Network
- PCI Server
- Real-time clock (RTC)
- SD/MMC
- Serial
- Startup
- True Random Number Generator (TRNG)
- USB host controller
- Watchdog
Flash driver
Device | Flash |
Command | devf-j7-ospi |
Command with DMA support | devf-j7-ospi -I -s soc=phy=ddr:dma=1 |
Required binaries | devf-j7-ospi, devf-ram, flashctl, shmemallocator, tiipc-mgr, tisci-mgr, tiudma-mgr |
Required libraries | libsecpol.so, libti-pdk.so, libti-sciclient.so, libti-udmalld.so, libtiudma-usr.so |
Source location | src/hardware/flash/boards/j7-ospi |
devf-j7-ospisection in the
BSP-specific Drivers and Utilitieschapter of this guide.
Graphics
Device | Graphics |
Command | screen |
Required binaries | screen and several other binaries. For more
information, see the Configure the Screen Graphics Subsystemchapter in this guide. |
Required libraries | For more information, see the Configure the Screen Graphics Subsystemchapter in this guide. |
Source location | N/A |
Inter-integrated Circuit (I2C)
The Jacinto 7 J721E EVM supports I2C devices on buses 0 and 1. You need to launch an I2C driver instance for each device.
Device | I2C |
Commands | i2c-tda4 -p0x2000000 -i232 -d
i2c-tda4 -p0x2010000 -i233 -d --u1 i2c-tda4 -p0x42120000 -i928 -d --u9 |
Required binaries | i2c-tda4, isendrecv, isend, |
Required libraries | libsecpol.so |
Source location | $BSP_ROOT_DIR/src/hardware/i2c |
For more information about this driver, see the i2c-tda4
section in the BSP-specific Drivers and Utilities
chapter of this guide.
Network
Device | Ethernet |
Commands | io-sock -m phy -m pci -d em -d ix -d re -m usb -d axe -d axge -d cdce -d smsc |
Command with CPSW driver | io-sock -o config=/etc/iosock.cfg -m phy -m pci -d em -d ix -d re -m usb -d axe -d axge -d cdce -d smsc -mfdt -mphy_fdt -dcpsw-j721e |
Required binaries | io-sock, if_up, dhcpcd, dhcpcd-run-hooks, ifconfig, pfctl, random |
Required libraries | devs-em.so, devs-ix.so, devs-re.so, devs-axe.so, devs-axge.so, devs-cdce.so, devs-smsc.so, devs-cpsw-j721e.so, libsocket.so, libsecpol.so, libjail.so, mods-phy.so, mods-pci.so, mods-usb.so, mods-fdt.so, mods-phy_fdt.so, qcrypto-openssl-3.so, libtracelog.so, libqcrypto |
Source location | Prebuilt only |
For more information about the devs-axe.so driver, see the
devs-axe.so
section in the QNX OS Utilities Reference guide of the
QNX Software Development Platform 8.0 documentation.
For more information about the devs-cpsw-j721e.so driver, see the
devs-cpsw-j721e.so
section in the BSP-specific Drivers and Utilities
chapter of this guide.
PCI Server
Device | PCIe |
Commands | PCI_SLOG_MODULE=pci_slog2.so pci-server --config=/etc/system/config/pci/pci_server.cfg |
Required binaries | pci-server |
Required libraries | libpci.so, pci_server-buscfg-generic.so, pci_hw-ti-j721e-evm.so, pci_debug2.so, pci_slog2.so, pci_strings.so, pci_cap-0x10.so, pci_cap-0x11.so, pci_cap-0x05.so, pci_cap-0x01.so, pci_cap-0x11-ffffffff.so, |
Environment variables | PCI_HW_MODULE,
PCI_HW_CONFIG_FILE, PCI_DEBUG_MODULE, PCI_BASE_VERBOSITY, PCI_SLOG_MODULE For more information about the environment,
see the |
Source location | Prebuilt only |
For more information about this driver, see the
pci-server
section in the QNX OS Utilities Reference guide of the QNX SDP 8.0 documentation.
Real-time clock (RTC)
Utility | Real-time clock |
Command | rtc hw |
Required binaries | rtc |
Required libraries | N/A |
Source location | $BSP_ROOT_DIR/src/utils/r/rtc |
For more information about this driver, see the
rtc
section in the BSP-specific Drivers and Utilities
chapter of this guide.
SD/MMC
The Jacinto 7 J721E EVM BSP supports all of the following:
the eMMC memory
the SD_CARD (P14, MMC1) port on the CPU board
A single devb-sdmmc instance can manage all SD/MMC devices and create device nodes /dev/hd0 and /dev/hd1. However,the device node’s sequence number is assigned based on the relative order in which a device is initialized. This means that, for example, /dev/hd0 could randomly represents the microSD card card, or even the eMMC memory, if you start the driver without explicitly assigning a device node to a device.
Thus, when you start devb-sdmmc, you need to specify the name of the device node for each MMC/SD device. See the Command
entries in the table below.
Device | eMMC, microSD card card |
Command (microSD card) | devb-sdmmc-am65x blk cache=1m sdio addr=0x04fb0000,irq=36,bs=sscfg=0x8000:ldo=0x600000^117:pwrdev=/dev/i2c0 cam pnp disk name=sd |
Command (MMC2 for eMMC) | devb-sdmmc-am65x blk cache=1m sdio addr=0x4f80000,irq=35,timing=~hs400,emmc,bs=sscfg=0x8000 disk name=emmc |
Required binaries | devb-sdmmc-am65x, fdisk, mkdosfs |
Required libraries | libsecpol.so |
Source location | $BSP_ROOT_DIR/src/hardware/devb/sdmmc |
devb-sdmmc-*section in the Utilities Reference guide of the QNX Software Development Platform 8.0 documentation.
Serial
Device | SERIAL |
Command | devc-seromap -e -F 0x02800000,224 |
Required binaries | devc-seromap, devc-seromap_hci |
Required libraries | libsecpol.so |
Source location | $BSP_ROOT_DIR/src/hardware/devc/seromap |
devc-seromapsection in the
BSP-specific Drivers and Utilitieschapter of this guide.
SMMU Manager
Device | Memory Management |
Command | smmuman @/etc/j721e.smmu |
Required binaries | smmuman |
Required libraries | smmu-armsmmu.so, smmu-armsmmuv3.so, smmu-cfg-j721e.so |
Required Configuration file | /etc/j721e.smmu |
Source location | N/A |
It's recommended that you start SMMU Manager (SMMUMAN) before you start any drivers that use SMMU. Some drivers may not start until SMMU Manager has been started. You can enable SMMU Manager support for a driver using an option. SMMUMAN refers to providing DMA containment and memory-management support. For most drivers, you use the smmu option to enable SMMUMAN. In other cases, the smmu is specified with the -o option. To see whether your driver provides SMMU Manager support, see the documentation for the driver either in this guide or the QNX SDP 8.0 documentation.
For more information about the SMMU Manager, see the SMMUMAN User's guide in the QNX SDP 8.0 documentation.
Startup
Device | STARTUP |
Command | startup-j721e-evm -u arg -v -W -s1:1:1:2 -r0xA0000000,0x1000000,1 |
Required binaries | startup-j721e-evm |
Required libraries | N/A |
Source location | $BSP_ROOT_DIR/src/hardware/startup/boards/ti-j7/j721e |
For more about the options for this driver, see the startup-*
options described in the Utilities Reference guide of the
QNX Software Development Platform 8.0 documentation. In addition to the startup-* options described in the Utilities Reference,
you can also use the following options with this command:
-s s0[:s1[:s2[:s3]]]
- Select the protocol for each SERDES instance, where
- s0=0|1|2
- Set Protocol for SERDES 0:
- 0 — Q/SGMII
- 1 — PCIe0
- 2 — USB3_0
- s1=1
- Set Protocol for SERDES 1:
- 1 — PCIe1
- s2=1
- Set Protocol for SERDES 2:
- 1 — PCIe2
- s3=2
- Set Protocol for SERDES 3:
- 2 — USB3_0
-t seconds
- Watchdog timeout in seconds. Ensure that you start the watchdog driver after when you use this option.
-W
- Enable watchdog timer support. Ensure that you start the watchdog driver after when you use this option.
True Random Number Generator (TRNG)
Device | True Random Number Generator |
Command (High Performance Clock) | random |
Command (SA2UL Engine) | random -l devr-sa2ul.so |
Required binaries | random |
Required libraries | devr-sa2ul.so |
Source location | $BSP_ROOT_DIR/src/hardware/devr/sa2ul |
For more information about this driver, see the
devr-sa2ul
section in the BSP-specific Drivers and Utilities
chapter of this guide.
USB Host Mode
Device | USB OTG (Host mode) |
Command | io-usb-otg -d cdns3-xhci ioport=0x6010000,irq=128,iosize=65536, ioport=0x6410000,irq=136,iosize=65536,nousb3 |
Required binaries | io-usb-otg, usb, devb-umass, devb-ram |
Required libraries | devu-hcd-cdns3-xhci.so, libusbdi.so |
Source location | Prebuilt only |
For more information about the io-usb-otg, see the
io-usb-otg
section in the QNX OS Utilities Reference guide of the QNX SDP 8.0 documentation.
For more information about the devu-hcd-cdns3-xhci.so driver, see the
devu-hcd-cdns3-xhci
section in the BSP-specific Drivers and Utilities
chapter of this guide.
Watchdog
Device | Watchdog |
Commands | wdtkick-j7 -d 0
wdtkick-j7 -d 1 |
Required binaries | wdtkick-j7 |
Required libraries | N/A |
Source location | Prebuilt only |
For more information about this driver, see the
wdtkick-j7
section in the BSP-specific Drivers and Utilities
chapter of this guide.