...
Info |
---|
Make sure you also update your QNX SDP 7.0 installation at this time to at least 7.0.4 |
Package Type | Package Name | BuildID (minimum) | Notes |
---|---|---|---|
BSP | QNX® SDP 7.0 BSP for Xilinx Zynq UltraScale+ MPSoC ZCU106 - 7.0 | 11 | |
Graphics | QNX® SDP 7.0 Screen Base Graphics, 7.0 | 8159 | |
QNX SDP 7.0 Screen Board Support ZCU102 | 8159 | ||
Multimedia | QNX® Multimedia Suite 2.0 - Character Conversion - 2.0 | 3120 | These are in addition to the latest Multimedia Suite 2.0 packages. |
QNX® Multimedia Suite 2.0 - MP4 Muxer Support - 2.0 | 3120 | ||
QNX® Multimedia Suite 2.0 - Filesystem Input Support - 2.0 | 3120 | ||
QNX® Multimedia Suite 2.0 - Multimedia Framework API - 2.0 | 3120 | ||
QNX® Multimedia Suite 2.0 - OMX IL helper library - 2.0 | 3120 | ||
QNX® Multimedia Suite 2.0 - OpenMAX AL API - 2.0 | 3120 | ||
QNX® Multimedia Suite 2.0 - Audio Output Support - 2.0 | 3120 | ||
QNX® Multimedia Suite 2.0 - Screen Output Support - 2.0 | 3120 | ||
QNX® Multimedia Suite 2.0 - MP4 container support - 2.0 | 3120 | ||
QNX® Multimedia Suite 2.0 - Playlist Parsing API - 2.0 | 3120 | ||
QNX® Multimedia Suite 2.0 - Media Renderer API - 2.0 | 3120 | ||
QNX® Multimedia Suite 2.0 - Resource Arbiter - 2.0 | 3120 | ||
QNX® Multimedia Suite 2.0 - Xilinx zcu106 hardware codec - 2.0 | 3120 | ||
ADAS | QNX® Platform for ADAS 2.0 - Base Support - 2.0 | 2887 | Only needed for ADAS Demos |
QNX® Platform for ADAS 2.0 - Camera - 2.0 | 2887 | Only needed for ADAS Demos |
Limitations
There are a few outstanding issues related to using the 4k display while encoding/decoding with the test applications below. At this time, it is recommended that users limit the display resolution to 1080p for best overall performance.
...
Create the ZCU106 BSP Project
Launch Momentics and create a new workspace.
Create a new project based on the ZCU106 BSP
File->Import
Choose QNX->QNX Source Package and BSP. Click Next
Browse for the ZCU106 BSP
<QNX install path>\qnx700\bsp\BSP_xilinx-zynq-zcu106_br-700_be-700_SVN916472_JBN11.zip
Click Next Twice
Give the project a suitable name
Click Finish
Modify the Project
Replace the default zcu106.build file with the one of the ones provided in the boot files archive. There are two options, depending on which set of applications you want to test:
adas/zcu106.build.adas: Use this if you want to capture, display, and record live video from the FMC MIPI camera. You’ll also need to install the ADAS packages mentioned in the table above.
multimedia/zcu106.build: Use this to simply exercise the VCU encoder/decoder with the QNX multimedia and Xilinx VCU test apps
In either case, copy the .build file into the QNX BSP project and rename it zcu106.build. In the QNX project, the .build file is found under xilinx-zynq-zcu106->images in the project explorer.
Copy all of the .conf files in the graphics directory of the boot files archive to the following directory (this only needs to be done once and can be used for other projects):
<QNX install path>/qnx700/target/qnx7/aarch64le/usr/lib/graphics/zcu102Update the Makefile in the images directory. Modify the QNX-IFS target as shown below so that QNX-IFS gets updated during every build:
Code Block |
---|
QNX-IFS: ifs-xzynq-zcu106.raw cp ifs-xzynq-zcu106.raw QNX-IFS |
Build the Project
Right click on the project name and select "Clean Project”
Right click on the project name and select "Build Project"
Wait for the build to complete. This process will take several minutes.
Once complete, the QNX-IFS will be available in the images folder.
Create the Boot Image
Copy the QNX Initial Program Loader (IPL) (<qnx proj dir>/prebuilt/aarch64le/boot/sys/ipl-xzynq-ultrascale-zcu10x) to the folder that includes the provided 2019.1 VCU TRD bootfiles. Rename the file to ipl-xzynq-ultrascale-zcu10x.elf.
Open an xsct command shell, cd to the boot files directory, and use the Xilinx Bootgen tool to generate BOOT.BIN with the following command:
Code Block bootgen -image boot_vcu_trd.bif -arch zynqmp -o BOOT.BIN -w
Here is an example boot_vcu_trd.bif:
...
For this this version of the reference design, since we will only be using the MIPI camera input and DisplayPort output, the other interfaces can be left disconnected. Make sure the FMC voltage is configured correctly. Please refer to https://www.xilinx.com/support/answers/67308.html for details.
Booting up the Board
Add BOOT.BIN and QNX-IFS to the FAT partition of an SD Card. For best results, use the SD Memory Card Formatter from the SD Association to format the card.
Insert the card in ZCU106 and power on the board.
When prompted by the QNX IPL, select 'M' to boot from the SD Card.
As part of the default boot process, the boot script will attempt to mount the SD cards at /sdcard.
...
Sensor Type: IMX274 (LI-IMX274MIPI-FMC)
Sensor I2C Interface
IP | Address | Interrupt Sink |
AXI IIC | 0xA005_1000 | pl_ps_irq1[3] == GIC[139] |
Sensor Video Pipeline
Stage | IP | Address | Interrupt Parent | EMIO Reset (QNX GPIO #) | Clock |
1 | MIPI CSI-2 Rx Subsystem | 0xA00F_0000 | pl_ps_irq1[1] == GIC[137] | 12 (90) | NA |
2 | Sensor Demosaic | 0xA025_0000 | NA | 7 (85) | NA |
3 | Gamma LUT | 0xA027_0000 | NA | 8 (86) | NA |
4 | VPSS CSC | 0xA024_0000 | NA | 6 (84) | NA |
5 | VPSS Scaler | 0xA020_0000 | NA | 4 (82) | NA |
6 | Video Frame Buffer Write | 0xA026_0000 | pl_ps_irq1[2] == GIC[138] | 2 (80) | NA |
Note: This EMIO for MIPI RX is an active low SPI ChipSelect
Video Codec Unit IP Parameters
IP | Address | Interrupt Sink | EMIO Reset (QNX GPIO #) | Clock |
Video Codec Unit | 0xA010_0000 | pl_ps_irq0[7] == GIC[ | 41 (119) |
|
AXI Interrupt Controllers (PL Based)
IP | Base address | Interrupt Parent | Output Type |
|
|
AXI_INTC0 | 0xA005_2000 | pl_ps_irq1[4] == GIC[ | Level High |
|
|
2019.1 VCU TRD Design Module #3
Image Sensor Configuration
Sensor Type: IMX274 (LI-IMX274MIPI-FMC)
Sensor I2C Interface
IP | Address | Interrupt Sink |
AXI IIC | 0xA005_4000 | AXI_INTC0[2] |
Sensor Video Pipeline
Stage | IP | Address | Interrupt Parent | EMIO Reset (QNX GPIO #) | Clock |
1 | MIPI CSI-2 Rx Subsystem | 0xA00F_0000 | AXI_INTC0[0] | 12 (90) | NA |
2 | Sensor Demosaic | 0xA025_0000 | NA | 7 (85) | NA |
3 | Gamma LUT | 0xA027_0000 | NA | 8 (86) | NA |
4 | VPSS CSC | 0xA024_0000 | NA | 6 (84) | NA |
5 | VPSS Scaler | 0xA020_0000 | NA | 4 (82) | NA |
6 | Video Frame Buffer Write | 0xA026_0000 | AXI_INTC0[1] | 2 (80) | NA |
Note: This EMIO for MIPI RX is an active low SPI ChipSelect
Video Codec Unit IP Parameters
IP | Address | Interrupt Sink | EMIO Reset (QNX GPIO #) | Clock |
Video Codec Unit | 0xA010_0000 | pl_ps_irq0[6] == GIC[ | 41 (119) |
|
AXI Interrupt Controllers (PL Based)
IP | Base address | Interrupt Parent | Output Type |
|
|
AXI_INTC0 | 0xA005_5000 | pl_ps_irq1[6] == GIC[ | Level High |
|
|
|
|
|
|
|
|
Common Platform Notes
For QNX, MIO is mapped to GPIO 0-77, EMIO is mapped to GPIO 78-173
pl_ps_irq0 = GIC 121:128, pl_ps_irq1 = GIC 136:143 . QNX uses actual GIC number.
For Interrupts connected through AXI_INTC, the logical interrupt numbers used by QNX are as follows:
...