MX6 QNX Sections: Difference between revisions

From embeddedTS Manuals
No edit summary
No edit summary
Line 1: Line 1:
QNX is an RTOS that supports the i.MX6 CPU.  We provide a BSP for the TS-4900 and TS-7970 quad core or solo based on [http://www.qnx.com/products/neutrino-rtos/neutrino-rtos.html QNX Neutrino] 6.6.0. The supporting files are available here:
QNX is an RTOS that supports the i.MX6 CPU.  We provide a BSP for the TS-4900 and TS-7970 quad core or solo based on [http://www.qnx.com/products/neutrino-rtos/neutrino-rtos.html QNX Neutrino] 6.6.0. The supporting files are available here:
* Disk Image: [ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7970-qnx/images/ts7970-qnx-6.6.0-latest.dd.bz2 ts7970-qnx-6.6.0-latest.dd.bz2] [ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7970-qnx/images/ts7970-qnx-6.6.0-latest.dd.bz2.md5 (md5)]
* Disk Image: [ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7970-qnx/images/ts7970-qnx-6.6.0-latest.dd.bz2 ts7970-qnx-6.6.0-latest.dd.bz2] [ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7970-qnx/images/ts7970-qnx-6.6.0-latest.dd.bz2.md5 (md5)]
* Quad core source [ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7970-qnx/source/BSP_freescale-imx6q-ts7970-latest.tar.gz BSP_freescale-imx6q-ts7970-latest.tar.gz] [ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7970-qnx/source/BSP_freescale-imx6q-ts7970-latest.tar.gz.md5 BSP_freescale-imx6q-ts7970-latest.tar.gz.md5 (md5)]
* Quad core source [ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7970-qnx/source/BSP_freescale-imx6q-ts7970-latest.tar.gz BSP_freescale-imx6q-ts7970-latest.tar.gz] [ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7970-qnx/source/BSP_freescale-imx6q-ts7970-latest.tar.gz.md5 (md5)]
* Solo core source [ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7970-qnx/source/BSP_freescale-imx6dl-ts7970-latest.tar.gz BSP_freescale-imx6dl-ts7970-latest.tar.gz] [ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7970-qnx/source/BSP_freescale-imx6dl-ts7970-latest.tar.gz.md5 BSP_freescale-imx6dl-ts7970-latest.tar.gz.md5 (md5)]
* Solo core source [ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7970-qnx/source/BSP_freescale-imx6dl-ts7970-latest.tar.gz BSP_freescale-imx6dl-ts7970-latest.tar.gz] [ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7970-qnx/source/BSP_freescale-imx6dl-ts7970-latest.tar.gz.md5 (md5)]


We provide support for booting QNX on our platforms, but further support is provided by QNX
We provide support for booting QNX on our platforms, but further support is provided by QNX

Revision as of 11:14, 6 October 2016

QNX is an RTOS that supports the i.MX6 CPU. We provide a BSP for the TS-4900 and TS-7970 quad core or solo based on QNX Neutrino 6.6.0. The supporting files are available here:

We provide support for booting QNX on our platforms, but further support is provided by QNX

Known Working:

  • UARTs 1-5
  • Ethernet
  • I2C 1, I2C 2
  • SD (/dev/hd0)
  • eMMC (/dev/emmc0)
  • USB Host
  • SPI NOR (/dev/fs0)
  • HDMI (TS-7970 only)
  • LCD Interface (TS-TPC-8390 with TS-4900 only)
  • RS485

Known not working:

  • WIFI
  • FPGA based UARTs

Not yet tested:

  • I210 (Second gig eth)

QNX BSP

Before compiling QNX be sure to edit the file: src/hardware/startup/boards/imx6x/ts7970/board.h Specify either BOARD_TS7970 or BOARD_TS4900 depending on which system this build is being used.

We have also included a port of tshwctl which is used to access the FPGA. This allows you to read/write FPGA registers and to modify the crossbar. For example, to set up auto TXEN on the TS-7970 RS-485 port (/dev/ser4):

export MB_TXD=TTYSER4_TXD
export TTYMAX1_RXD=GPIO
export TTYSER4_RXD=MB_RXD_485
export TXD_232_COM=GPIO
export MB_TX_EN_485=TTYSER4_TXEN
tshwctl -b 0x7970 -s

tshwctl -b 0x7970 -c

This will print out the modified state of the crossbar. The relevant pins are now:

  TTYSER4_RXD ( in) (  0) MB_RXD_485  
       MB_TXD ( in) (  0) TTYSER4_TXD
 MB_TX_EN_485 ( in) (  0) TTYSER4_TXEN                                          
  TTYMAX1_RXD ( in) (  0) GPIO                                                  
  TXD_232_COM ( in) (  0) GPIO   

You need to also use tshwctl to specify the baud rate and mode of the uart so the TX enable pin will be automatically toggled.

tshwctl -b 0x7970 -a 4 -x 115200 -i 8n1

/dev/ser4 is now configured for RS485 traffic.

QNX Booting

Write the example image to a disk.

bzip2 -d ts7970-qnx-6.6.0-20150707.dd.bz2

#Replace sdx with your device.  Try lsblk to find your SD card.
sudo dd if=ts7970-qnx-6.6.0-20150707.dd bs=4M of=/dev/sdx
sync

Reinsert or partprobe the disk, and there will be a single partition present. The partition includes the QNX IFS, and a u-boot script. On startup the imx6 is configured to launch the hush script, if present, at /boot/boot.ub on either the SD or eMMC depending on if the SD boot jumper is present. The script loads the FPGA, then copies the QNX ifs into memory and jumps into it to begin execution.