IMX6 Nitrogen6x with Linaro hardware floating point toolchain

From RidgeRun Developer Wiki


This page shows the advances to integrate Linaro hardware floating point with the iMX6 Nitrogen6x, specially with the gstreamer freescale plugins. For this integration, we are using the boundary-imx_3.0.35_4.0.0 kernel version and gcc-linaro-arm-unknown-linux-gnueabihf-4.8.2-2013.07 Linaro toolchain version.
We are using the following freescale plugins:

  • firmware-imx-3.0.35-4.0.0
  • imx-lib-3.0.35-4.0.0
  • libfslcodec-3.0.8
  • libfslparser-3.0.8
  • libvpuwrap-3.0.35
  • gst-fsl-plugin-3.0.7


Advances

  1. We are able to compile all the sdk without errors.
  2. Bootloader and kernel boot perfectly.
  3. All the gst-fsl-plugins are working:
/ # gst-inspect | grep imx
mp3enc.imx:  mfw_mp3encoder: mp3 audio encoder
mp3dec.imx:  mfw_mp3decoder: mp3 audio decoder
beep.imx: ac3: ac3
beep.imx: 3ca: ac3
beep.imx:  beepdec: beep audio decoder
beep.imx:  beepdec.vorbis: Vorbis decoder
beep.imx:  beepdec.ac3: AC3 decoder
beep.imx:  beepdec.wma: WMA decoder
beep.imx:  beepdec.mp3: MP3 decoder
beep.imx:  beepdec.aac: AAC LC decoder
aacdec.imx:  mfw_aacdecoder: aac audio decoder
amrdec.imx:  mfw_amrdecoder: amr audio decoder
mpeg2dec.imx:  mfw_mpeg2decoder: mpeg2 video decoder
mpeg4dec.imx:  mfw_mpeg4aspdecoder: mpeg4 video decoder
ipucsc.imx:  mfw_ipucsc: IPU-based video converter
vorbisdec.imx:  mfw_vorbisdecoder: vorbis audio decoder
h264.imx:  mfw_h264decoder: h264 video decoder
isink.imx:  mfw_isink: IPU-based video sink
aiur.imx: webm: webm
aiur.imx:  aiurdemux: aiur universal demuxer
audiopeq.imx:  mfw_audio_pp: audio post equalizer
vpu.imx:  vpudec: VPU-based video decoder
vpu.imx:  vpuenc: VPU-based video encoder
v4lsrc.imx:  mfw_v4lsrc: v4l2 based camera src
aacpdec.imx:  mfw_aacplusdecoder: aac plus audio decoder
v4lsink.imx:  mfw_v4lsink: v4l2 video sink
  1. We are able to see a camera video loopback.
  2. Video and audio are working correctly.


Issues

No known issues


Software Floating Point

The iMX6 Nitrogen6x SDK is also working completely with the Linaro software floating point, all the gst-fsl-plugins are loading without errors. The Linaro toolchain version used for software floating point is:

gcc-linaro-arm-linux-gnueabi-2012.03-20120326_linux