i.MX6 AVB Demo Implementation

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MX6 AVB Demo Implementation

i.MX6 AVB Demo Implementation

1. User Case:

  • Demo Architecture:

Picture1.jpg

  • Demo Description:
    • A, B, C and Speaker all are i.MX6DQ SabreSD board and running Ubuntu system.
    • A is media server which send out broadcast 30Mbps h264 video and audio stream and running iperf to send out tcp packets via best efforts lane to PC.
    • B and C are clients to get video data only and play in screen. 
    • Speaker is a client to receive audio data only and play to speaker.
    • PC which install ubuntu system is used to received best efforts data from A.
  • Demo Goal:

Use Gstreamer playback 30Mbps streaming  "H264_AVC_1080p_30fps_27Mbps_mp3.avi", while running iperf TCP streaming under the following two case:

1. Running the non-CBS kernel

2. Enable the FIQ kernel

Validate the Qav (Queue and Forwarding Protocol) which is developed by SW.

2. Resource:

FIQ Patch:

0001-GIC-FIQ-EPIT-implement.patch

0002-set-EPIT-priority-to-highest.patch

0003-GIC-support-SMP-4-cores-of-FIQ.patch

CBS &Shaper Patch:

0004-Implement-credit-base-shaper-alogrithim-to-schdule-A.patch

0005-enet-avb-CBS-SIRQ-rum-mode-pass-performance-stress-t.patch

Others Patch:

0006-Fix-the-61883-sub-type-protocol-check.patch

0007-Add-hrtimer-for-the-sirq.-Talker-transmit-packets-nu.patch

0008-1.-Fix-memory-map-size-issue.patch

0009-Increase-BD-entries-to-reduce-the-full-times.patch

0010-Add-sys-interface-to-log-out-the-video-packet-number.patch

0011-Add-AVB-timestamp-support.patch

0012-GIC-support-SMP-4-cores-of-FIQ.patch

Gstreamer UDPAVB Plug-in Library and Source:

Library: udp/output/libgstudp.so

Source: udp/*

3. Setup the Patch:

      - Low level:  kernel enet driver implement CBS and traffic shaper:

             1. Apply all the patches in the patch_whole.tar.gz in the attachment

              2. Rebuild kernel 3.0.35:

Enable "CONFIG_ENET_IMX6_AVB" to support AVB.

                       Enable "CONFIG_RUN_IN_FIQ"  in kernel:            let CBS run in FIQ mode.

               3. make uImage.

               You can also use the uImage-avb-fig in the attachment directly.  Flash to the SD card use dd command, the user gudie refer to the  i.MX_6Dual6Quad SABRE_SD_Linux_User_Guide.pdf.

               Note: the uImage_org_nonavb in the attachment is the kernel image without QAV and FIQ.

- High level: use Gstreamer as the media input/output interface, encapsulation with IEEE1722 format:

        Before the below action, you should already have seutp the Ubuntu Rootfs,  copied all the Freescale *.deb files that come alone with the Release BSP demo image package and copied all the MM codec *.deb files (IMX_MMCODEC_3.0.7.tar) that from Freescale offical website, the user gudie refer to the  i.MX_6Dual6Quad SABRE_SD_Linux_User_Guide.pdf.

1. Add gstreamer setup version as following:

- gstreamer core version: 0.10.35
- gst-plugins-good version: 0.10.30
- gst-plugins-bad version: 0.10.11

2. Setup:

- tar xvzf udp.tar.gz
- cd gst-plugins-good-0.10.30
- ./configure
- make
- make install
- cp ~/udp/* gst/udp/
- cd gst/udp
- make
- cp  libgstudp.so /usr/lib/gstreamer-0.10/
- gst-inspect | grep avb         //Check whether the avb plugin is installed successfully. If the three avb plugin is printed out in the terminal, the avb plugins are proved to install properly.

4. Run the Demo:

      1.  Start the iperf server in PC linux machine by inputting " iperf -s -i 1&".

      

      2.  Power on the A board, ensure the board can get the DHCP IP address, Start the iperf client on the demo board which sends outgoing Audio-Video streaming in the background. Input "iperf -c <iperf server ip> - t 6000&". If the connection is  successful, the iperf log should be able to be seen in the linux machine terminal.

             3.  Power on the B and C board, inputting the following command to receive video data:

           Run "./startRxVideoAVB.sh"  to start gstreamer video receive process on video display board

      4.  Power on the speaker board, inputting the following command to receive audio data:

            Run "./startRxAudioAVB.sh" to start gstream audio receive process on audio  playback board

5.  Inputting the following command to send video/audio data to client at the A board terminal windowns:  

                           Run "./startTxAVB.sh" to start the 1722 streaming traffic                               

      (note: H264_AVC_1080p_30fps_27Mbps_mp3.avi located at current directory)

              6.  Change to the kernel with QAV and follow the steps 1~5 above

5. Result:

  • Without FIQ Qav,  video play at client B and C serious freeze. It takes 3 minutes to play 1min 40s h264 stream.  iperf speed over 80Mbps.

  • With FIQ Qav, video play at client B and  C is smooth and same as without iperf in background. Iperf show speed is less than 70Mbps.  FIQ Qav correctly reserve necessary bandwidth to AV stream

6. Know issues

  1. Failed to request the IP from DHCP

        [Solution]  For FIQ, after kernel up, you must run the command: echo 1 > /sys/devices/platform/imx_wfi_issue.0/enable

  2.   Kernel is halted or crashed

[Solution] In bootloader parameter, add 'nosmp' in bootargs_mmc.

Labels (3)
Attachments
Comments

Hello,

Thanks for the information.

Can you please share the enet driver patch about CBS & traffic shaper?

If server A , Client B, client C and PC all are running ubuntu so on which machine we need to run avb kernel?

Second thing: is avb support available on 3.10 kernel?

How to git clone following

ssh://sw-git01-tx30.am.freescale.net/git/sw_git/repos/linux-2.6-testbuild.git

ssh://sw-git.freescale.net/git/sw_git/repos/Ethernet_AVB.git

Thanks

Please refer to the patch_whole.tar.gz, thanks!

Ubunut is only a rootfs (file system), the kernel is Linux3.0.35_4.0.0 which embede the AVB driver.

At moment, don't support on 3.10 kernel.

Thanks!

Sorry! the git source is only for internal user, you can refer to the patch_whole.tar.gz in the attachment, it contain all the AVB patch and developed base on the linux3.0.35_4.0.0. Thanks!

Thank you Xianfeng.

Hello Xianfeng Jin,

I have built 3.0.35_4.0.0 kernel with avb patches and it successfully boot with RUN_SIRQ configuration but does not boot with RUN_FIQ conf  instead stops on requesting DHCP.

Thanks

Yes, it is reasonable.

For FIQ, after kernel up, you must run the command:

echo 1 > /sys/devices/platform/imx_wfi_issue.0/enable

On using image -- uImage-avb-fig, onto iMX6q Sabre for Automotive, the kernel hangs during boot up. So we applied patch_whole.tar.gz to linux kernel version 3.0.35_4.0.0 with RUN_FIQ conf. Ethernet is up and running, however dhcp request fails and no ip is obtained. When using RUN_SIRQ configuration ip is obtained and ethernet is working fine.

So we tried to use echo 1 > /sys/devices/platform/imx_wfi_issue.0/enable ; however there is no directory with name imx_wfi_issue.0 in our system.

Any help is appreciated!!!


I have never meet this issue, I will try the patch by myself and feedback to you later.

Hi JinXianfeng,

Thank you for the response.

Currently I'm using imx6 Sabre Auto board with ubuntu 12.04.

All the patches are applied successfully as given above, and board-mx6q_sabreauto.c is also updated as in board-mx6q_sabresd.c. And hence i'm able to get the above issue solved. And now the network connection is established successfully. However, no data is being sent to the network from the server side on using gst-launch command . The logs are copied below. Please let me know if any more updates have to be done.

I'm using the following versions:

gst-plugins-good version: 0.10.31

firmware-imx-3.5.7-1.0.0

imx-lib-3.5.7-1.0.0

fsl-alsa-plugins-3.5.7-1.0.0

libfslcodec-3.5.7-1.0.0

libfslparser-3.5.7-1.0.0

libfslvpuwrap-3.5.7-1.0.0

gst-fsl-plugins-3.5.7-1.0.0

The multimedia codecs are built as given in the site:

http://boundarydevices.com/mx6-video-acceleration-raring-debian/

Log:

===

On monitoring the network data using wireshark, no data is send from server to the client. Please provide whether any updates have to be made.

In server side for the given command i'm  getting the below log

==============

==============================================================================================

gst-launch-0.10 filesrc location=/usr/Sample.avi typefind=true ! aiurdemux name=d d. ! queue ! rtph264pay ! udpsink port=5000 host=192.168.2.255 sync=true d.! queue ! rtpmpapay ! udpsink port=5002 host=192.168.2.255 sync=true

Setting pipeline to PAUSED ...

Pipeline is PREROLLING ...

Aiur: 3.0.8

Core: AVI_PARSER_03.05.07  build on Jul  3 2013 01:47:35

  mime: video/x-msvideo

  file: /usr/lib/imx-mm/parser/lib_avi_parser_arm11_elinux.so.3.1

Content Info:

    URI:

          file:///usr/Sample.avi

    Idx File:

          /root/.aiur/.usr.Sample.avi.aidx

    Seekable  : Yes

    Size(byte): 735524864

Movie Info:

    Seekable  : Yes

    Live      : No

    Duration  : 1:30:41.097984000

    ReadMode  : File

    Track     : 2

Track 00 [video_000000] Enabled

    Duration: 1:30:41.097984000

    Language: und

    Mime:

          video/x-divx, divxversion=(int)5, width=(int)660, height=(int)352, framerate=(fr

          action)10000000/417083

Track 01 [audio_000000] Enabled

    Duration: 1:30:40.992000000

    Language: und

    Mime:

          audio/mpeg, mpegversion=(int)1, framed=(boolean)true, channels=(int)2, rate=(int

          )48000, bitrate=(int)0

^C Caught interrupt -- handling interrupt.

Interrupt: Stopping pipeline ...

ERROR: pipeline doesn't want to preroll.

Setting pipeline to NULL ...

Freeing pipeline ...

[--->FINALIZE aiurdemux

====================================================================================================

In client side for the command given the below log is obtained

==============

====================================================================================================

gst-launch-0.10 udpsrc buffer-size=202400 do-timestamp=false uri=udp://192.168.2.255:5000 caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264" ! rtph264depay ! queue ! vpudec low-latency=true ! mfw_v4lsink sync=false

MFW_GST_V4LSINK_PLUGIN 3.0.8 build on Feb 28 2014 05:45:17.

Setting pipeline to PAUSED ...

[INFO]    Product Info: i.MX6Q/D/S

vpudec versions : )

    plugin: 3.0.8

    wrapper: 1.0.38(VPUWRAPPER_ARM_LINUX Build on Feb 28 2014 05:20:01)

    vpulib: 5.4.15

    firmware: 2.3.10.40778

Pipeline is live and does not need PREROLL ...

Setting pipeline to PLAYING ...

New clock: GstSystemClock

==================================================================================================

and in dmesg: No such IOCTL, cmd is 22032

=============

Thank you

Jithin

Hi Xianfeng Jin,

Could you please provide any feedback on this. We have tried applying the above patches and could not see any difference after applying the patch.

Could you please provide the uImage for sabre AI board with AVB enabled(uImage-avb-fiq for AI board)

Regards

Jithin

The video is divx “video/x-divx, divxversion=(int)5, width=(int)660, height=(int)352, framerate=(fraction)10000000/417083”, how can it can link with rtph264pay?

You should  use h264 video for this demo.

Hi Xianfeng,

Could you please suggest any links to download suitable h264 demo videos for testing AVB or can we get the link for file H264_AVC_1080p_30fps_27Mbps_mp3.av.

As per your suggestion we downloaded

from the below site

http://www.h264info.com/clips.html

the video

http://downloads.dvdloc8.com/trailers/divxdigest/300_rise_of_an_empire-trailer.zip

We could use pipe rtph264pay. However, it seems packets are not send from the server(we are using wireshark to monitor the Ethernet packets)

Are we missing something?

We are getting the below errors, and there is no data being send to the network.

command:

==========

gst-launch-0.10 filesrc location=/home/linaro/Documents/300.mp4 typefind=true ! aiurdemux name=d d. ! queue ! rtph264pay ! udpsink port=5000 host=192.168.2.255 sync=true d. -v --gst-debug=2

Errors

====

:aiurdemux_push_pad_buffer: Pad video push error type -4

0:00:00.315885667  5049    0x28150 WARN               aiurdemux aiurdemux.c:3903

0:00:00.755606333  5252    0x28120 ERROR             rtph264pay gstrtph264pay.c:560:gst_rtp_h264_pay_setcaps:<rtph264pay0> wrong avcC version

Also i would like to know if there are any kernel/debug prints to know if AVB is ON! Because we find same behaviour with both AVB and NonAVB kernel.

Could you please provide the uImage for sabre AI board with AVB enabled(uImage-avb-fiq for AI board)!! We have only AI board with us.

Any help is highly appreciated.

Regards

Jithin

I will share a patch for this issue later.


Other customer and I have never seen such issue. But the demo image is used at MX6DQ_SabreSD board, so please refer to "i.MX_6Dual6Quad SABRE_SD_Linux_User_Guide".

I suggest you don't apply these patch and make a clean version to build, ensure that your build steps are accurate.

Thank!

Hi Xianfeng,

Thank you for your support.
Now, I'm able to play the video in the client(there seems to be some issues with sending the audio).

But I could not make out any difference in performance with and without AVB Kernel.
Could you please let me know whether I can see any kernel prints to confirm that AVB is working as expected.

Attaching the logs for both NonAVB and AVB kernel.

Is it possible to provide an image for SABRE-AI board with the patch applied, just to verify that everything is working as expected.


Best Regards
Jithin

With NON AVB Kernel
====================
iperf gives
===========
[  4] local 192.168.2.8 port 5001 connected with 192.168.2.3 port 48203
[ ID] Interval Transfer     Bandwidth
[  4]  0.0- 1.0 sec  11.2 MBytes  93.7 Mbits/sec
[  4]  1.0- 2.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4]  2.0- 3.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4]  3.0- 4.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4]  4.0- 5.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4]  5.0- 6.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4]  6.0- 7.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4]  7.0- 8.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4]  8.0- 9.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4]  9.0-10.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4] 10.0-11.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4] 11.0-12.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4] 12.0-13.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4] 13.0-14.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4] 14.0-15.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4] 15.0-16.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4] 16.0-17.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4] 17.0-18.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4] 18.0-19.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4] 19.0-20.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4] 20.0-21.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4] 21.0-22.0 sec  10.8 MBytes  90.6 Mbits/sec
[  4] 22.0-23.0 sec  10.3 MBytes  86.5 Mbits/sec
[  4] 23.0-24.0 sec  10.3 MBytes  86.3 Mbits/sec
[  4] 24.0-25.0 sec  10.5 MBytes  87.8 Mbits/sec
[  4] 25.0-26.0 sec  10.4 MBytes  87.1 Mbits/sec
[  4] 26.0-27.0 sec  10.6 MBytes  88.8 Mbits/sec
[  4] 27.0-28.0 sec  10.4 MBytes  87.2 Mbits/sec
[  4] 28.0-29.0 sec  10.4 MBytes  87.3 Mbits/sec
[  4] 29.0-30.0 sec  10.3 MBytes  86.4 Mbits/sec
[  4] 30.0-31.0 sec  10.5 MBytes  88.0 Mbits/sec


dmesg in client gives:
=======================
No such IOCTL, cmd is 22032
No such IOCTL, cmd is 22032

========================================================================

In the AVB kernel
=================
dmesg gives
===========
DVFS driver module loaded
mxc_WFI_ISSUE_probe, cpu = 2
add wake up source irq 88
WFI_ISSUE driver module loaded

No such IOCTL, cmd is 22032
No such IOCTL, cmd is 22032

iperf gives
===========

[  4] 163.0-164.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4] 164.0-165.0 sec  11.2 MBytes  94.2 Mbits/sec


[  4] 165.0-166.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4] 166.0-167.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4] 167.0-168.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4] 168.0-169.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4] 169.0-170.0 sec  10.6 MBytes  88.6 Mbits/sec
[  4] 170.0-171.0 sec  10.3 MBytes  86.3 Mbits/sec
[  4] 171.0-172.0 sec  10.3 MBytes  86.3 Mbits/sec
[  4] 172.0-173.0 sec  10.5 MBytes  87.7 Mbits/sec
[  4] 173.0-174.0 sec  10.5 MBytes  87.8 Mbits/sec
[  4] 174.0-175.0 sec  10.6 MBytes  88.8 Mbits/sec

=======================================================================

End of Log


Best Regards
Jithin

Hi Jithin,

     There have no kernel print to confirm AVB is working. I am wondering what’s video clip do you test, how much the bitstream? I suggest the bitstream of the video clip is as big as possible.  I use 27Mbps video clip to test (H264_AVC_1080p_30fps_27Mbps_mp3.av).

     I have no image for Sabre-AI board, I only have these image for Sabre-SD board for your reference. 

FYI, I have sent a mail last week to you with attach image and same content as above, didn't you get it?

Hi All
i am quite new to LINUX.
I want to create automotive use-case using Ethernert-AVB for In-Vehicle-Infotainment,
by making use of i.mx6 SABRE for Automotive.
Example:
         Two cameras 1)front-side view
                     2)Rear-side View
         are connected to Head unit (i.mx6 SABRE Board)

could you please anybody suggest me which type of cameras should be used to get the Ethernet-AVB
form of data from camera and how to test the Ethernet AVB traffic on the network, as shown in
above example they made use of PC to test the Best-effort-lane, what is that exactly? Do i need to make
use of any AVB Supported switch in between cameras and Head unit(i.mx6 SABRE Board).

Any help is highly appreciated.


Hi Kajava,

    Actually, I didn't test the AVB function using camera, I use the video clip to playback in server side and see and hear in client side. In order to demo the advantage of AVB, the server not only send audio and video stream, it also send best-effort etherent date to PC. For example, the current network bandwidth is 100Mbps, and no video to playback in server, the PC can receive the 80-90Mbps best effort data, when playback a 30Mbps stream video clip, the data throughoutput of the PC can be reduced to 60-70Mbps, the video can playback smoothly in client side at same time, it confirm the AVB function is working.

Normal switch is OK, don't need AVB support switch.

Thanks for your kind response,

Still i have some queries

1) What is meant by best effort Ethernet data, i didn't find any relevant information, Could you please elaborate something more on that?

2)  what do you mean by " no video to playback in server"? is this mean there is another form of data other than Video.

3) Could you please elaborate more on distinguishing between the Ethernet Streaming and Ethernet-AVB streaming.

4) As you mentioned above we don't require any AVB supported switch, just because we, in our application currently using bandwidth of maximum 100Mbps?

    what if we use greater bandwidth?

5) As per Ethernet AVB protocol, if we want to pass any AVB data through non-AVB switch cant be possible. do you have to say something on that?

6) how much feasible it is to Replaces the Server in Demo use-case with IP-Cameras?

Thanks

Anand

HI Anand,

Maybe my explanation confuse you, sorry, let me explain it again.  From the above graphic, The talker(server A) provides the outgoing Audio Video streaming over the Ethernet.  The listeners(Client B, Client C and Client Audio) receive Audio/Video streaming and play back/display. In the demo, all the devices are connected via a 100M TP-Link switch.  Except for the AVB streaming, we will add extra Best-Effort traffic outgoing from talker to Notebook. The AVB streaming and Best-Effort traffic will compete for 100M bandwidth. The QAV is expected to guarantee higher priority for AVB streaming in TX queue.

Hi Xianfeng Jin,

Where do i get the Source code for AVB Stack used in above mentioned demon?

if avilable,Could you please share link?

Thanks

Anand

Hi Xianfeng

I am using i.mx6 Automotive SABRE board for development using LVDS display.

Following are the observations

1) File system mounts properly

2) shows promt after booting up the system

but

Unable to show anything on display (Display is Blank)..

Any help would be highly apperciated..

Following is the log for environemt variables

MX6Q SABREAUTO U-Boot > printenv
bootdelay=3
baudrate=115200
netmask=255.255.255.0
rd_loadaddr=(0x10800000 + 0x300000)
netdev=eth0
ethprime=FEC0
uboot=u-boot.bin
kernel=uImage
ethact=FEC0
serverip=192.168.149.158
bootfile=uImage
ipaddr=192.168.149.175
loadaddr=0x10800000
bootargs_base=setenv bootargs console=ttymxc3,115200
bootcmd=run bootcmd_mmc
bootcmd_mmc=run bootargs_base bootargs_mmc;mmc dev 2;mmc read ${loadaddr} 0x800 0x2000;bootm
bootargs_mmc=setenv bootargs ${bootargs} root=/dev/mmcblk0p1 rootwait rw video=mxcfb0:dev=ldb,LDB-XGA,if=RGB666

stdin=serial
stdout=serial
stderr=serial

Environment size: 571/8188 bytes

Thanks & Regards

Anand Kajave

From the printenv, I don't see anything wrong casue the display blank. Maybe the kernel you build don't match the Auto board.

I don't know what do you want. I have share all source code for the demo. The kernel source code is L3.5.35_4.1.0 which you can get it from freescale offical website or FAE.

Hi Xianfeng Jin,

I am new to Linux And Ethernet AVB, presently we are using i.MX6 sabre AI board, our motto is to stream the video from Head unit and display it to RSE(Rear Seat Entertaiment). In this demo the procedure for shifting of Kernel with QAV and non AVB is not given. Please clarify the following doubts,

1) In BSP under which directory the patches should be placed to get U-Image?

2) In this you have given U-Image, whether this will support i.MX6 Sabre AI board?

3) If i load the kernel with the U-Image present in the SD card, how can i apply the patches?


PS: As am new to Ethernet AVB, please clarify these doubts.

Hello all,

I am using Automotive Infotainment board imx6q board. I wanted to launch camera while kernel boot. can some one suggest how can i approach it.

Thank you

Babu A

Hi,

I able to stream video alone from i.MX6 sabre sd board to client PC by following below procedure:

On i.MX6 SDP target (as an example) :

$ ifconfig eth8 192.168.1.114

$ route add default gw 192.168.1.1                 # local server

$ echo nameserver 8.8.8.8 >> /etc/resolv.conf  # if I-net is needed

$ modprobe ov5642_camera

$ modprobe mxc_v4l2_capture

$ gst-launch mfw_v4lsrc capture-mode=4 ! vpuenc codec=12 ! tcpserversink host=192.168.1.113  port=5000

(My Linux PC host IP=192.168.1.113)

On Linux PC, under VLC, configure source as tcp://192.168.1.114:5000

I need video as well as audio streaming on Real time over Ethernet from i.MX6 Sabre Sd board to client host.

please help me to solve this issue.

Thanks,

Vidya

Hello Vidya Sagar,

From what I understand you need to implement AVB on the i.MX6. The PTP (IEEE 1588) driver is included in our Linux BSP but the rest of the AVB implementation needs to be implemented separately by software (as there is no HW module dedicated for AVB on the i.MX6) and it is there where this document comes in.

Have you tried the patches and steps on this document? If so, where in particular are you having problems?

See my comments:

1) In BSP under which directory the patches should be placed to get U-Image?

You can review the patch by Text Document, the head can guide you the patch code location.

2) In this you have given U-Image, whether this will support i.MX6 Sabre AI board?

No, it only works on the imx6DQ SabreSD board.

3) If i load the kernel with the U-Image present in the SD card, how can i apply the patches?

You should apply the patch to your BSP by git apply command, and then build the Uimage for AI board according to the User guide.

JinXianfeng,

   I have applied the patch and it is successfully compiling. But when I enable the imx_wfi module using "echo 1 > /sys/devices/platform/imx_wfi_issue.0/enable" the system seems to be hung or crash. Is there any pad configurations required for EPIT to be enabled. Based on the code changes we require EPIT1_OUT to be configured which is either EIM_D19 or GPIO_0 or GPIO_7. Could you please tell whether the EPIT pads should be added in board_init ? Because in the BSP provided  these pads are configured in different modes. Also please share the sabre-sd schematics if possible as i am not able to find the schematic in the site..

Hi Mohamed,

    It is not necessary to add EPIT pad setting. FIQ just use the EPIT internal count. And you can go to freescale offical website to download the schematics.


Regards

King

Hi jithin p,

I have the same issue with you when I run the command, gst-launch filesrc location=move.mp4 typefind=true ! aiurdemux name=d d. ! queue ! rtph264pay ! udpsink port=5000 host=10.193.102.255 sync=true d. -v --gst-debug=2

The log is :

......

......

Errors

====

:aiurdemux_push_pad_buffer: Pad video push error type -4

0:00:00.315885667  5049    0x28150 WARN               aiurdemux aiurdemux.c:3903

0:00:00.755606333  5252    0x28120 ERROR             rtph264pay gstrtph264pay.c:560:gst_rtp_h264_pay_setcaps:<rtph264pay0> wrong avcC version

......


How did you fix it ?  Is it the problem of the video I play ?


Please help!Thanks.

Hi Xiafeng Jin,

    Thanks a lot for the update. But can you tell the significance of using the sabre-sd hardware . Because according to the changes the platform with freescale IMX6Q processor should handle the changes. I am using the Freescale sabrelite version using IMX6Q processor which also uses the same FEC ethernet Controller. Could you please suggest why the imx_wfi module is not working in the sabre-lite version???

Thanks and Regards,

Mohamed Zubair.

Hi Zubair,

    Do you confirm you can see the device in /sys/devices/platform/imx_wfi_issue.X,  in my platform, I can see the imx_wfi_issue.0, maybe the X is other number.


Regards

King

ask

Hi Xianfeng Jin,

We have a imx287 based customized board, Linux version using.2.6.35. To get exposure on AVB feature, We are planning to port your demo implementation on imx287 board. Currently the board has been used for automotive infotainment products.

Before that I have some basic questions Please can you clarify on the same.

1. To use your patches can i need to upgrade the linux version from 2.6.35 to 3.0.35?

2. Will I face any Hardware issues(MAC support in imx287)?

Thanks

Ashok

Hi Xianfeng

I am facing the same issue,

echo 1 > /sys/devices/platform/imx_wfi_issue.0/enable ; however there is no directory with name imx_wfi_issue.0 in our system.

do you have any patch for this issue. I am using same linux kernel version 3.0.35_4.0.0 and IMx6q sabre auto board.

Thank you

Hi Xianfeng

First of all I'm congratulating you, for your good work and patience to reply commenter's on this post. I'm also working in IMX6 family of processors.This demo is helpful for me to develop a avb-gst-plugin for my requirement. Currently I have one wand board dual and one sabre lite board.I need to send video/audio from sabrelite to wand board dual as avtp packets. I don't need to implement FIQ and AVB CBS (so I'm not applying the patches that you had attached already). I have doubts given in line.

1.The AVI video that you are sending have any specifications? Can I use my sample.avi?

2.Is this patch only for FIQ and AVB CBS? Or does it enable any hardware in your sabre-SD board?

3.Is this avb-gstreamer plugin can be usable for wandboard and sabrelite also? udpavbsrc and udpavbsink in the avb-gstreamer from your demo is only applicable for particular gst-launch commands shown in the demo? Or can I use this gst-avb-plugin with any other gst-launch command for sending mp3/wav/jpeg file as avtp and receiving this avtp packets(using udpavbsink and udpavbsrc respectively)?

This is what I did

1.Downloaded gst-plugins-good-0.10.31.tar.gz and your udp.tar.gz

2.Extracted both files and repcled udp in the gst-plugins-good-0.10.31 by udp given by you.

3.Compiled it for wand board dual and sabre lite

4.Then I run the sending command for avi file in sabre lite and receiving command for audio in wand board, but nothing find in wireshark for the AVTP packet.

Thanking You

Hello,

are there any plans to port this to gstreamer-1.0?

Best reagrds

Hello, I'm new of embedded Linux and are facing some trouble.

I'm working on iMX7D Sabre board, then

I would like know if it's possible runnig AVB demo implementation on this board.

Now, I'm trying to install a running Ubuntu distro on my iMX7D Sabre board as described in https://community.nxp.com/docs/DOC-328362 , but facing booting issues.

Any suggestions are very appreciated.

Thanks a lot

Best Regards

No ratings
Version history
Last update:
‎09-05-2013 02:11 AM
Updated by: