2011-03-10 00:38:01     Configuring the number of end points used in musb of BF527 board.

Document created by Aaronwu Employee on Aug 26, 2013
Version 1Show Document
  • View in full screen mode

2011-03-10 00:38:01     Configuring the number of end points used in musb of BF527 board.

Rajiv Mohan (INDIA)

Message: 98811   

 

Hi,

 

We are using the inbuilt musb driver of BF527 board as the host controller for Ralink Wifi module.

 

For the Wifi 802.11N certification there are a number of WMM tests which we need to pass. For these WMM tests to pass the Ralink driver requires minimum 7 end points. When using the musb host driver we are seeing only 5 end points being used.

 

We have seen the number of end points using the following command.

 

cat /proc/bus/usb/devices.

 

I have attached the logs for the given able command

 

With_musb.log

With_renesas.log

QuoteReplyEditDelete

 

 

2011-03-10 00:44:16     Re: Configuring the number of end points used in musb of BF527 board.

Rajiv Mohan (INDIA)

Message: 98812   

 

Hi,

 

We are using the inbuilt musb driver of BF527 board as the host controller for Ralink Wifi module.

 

For the Wifi 802.11N certification there are a number of WMM tests which we need to pass. For these WMM tests to pass the Ralink driver requires minimum 7 end points. When using the musb host driver we are seeing only 5 end points being used.

 

We have seen the number of end points using the following command.

 

cat /proc/bus/usb/devices.

 

I have attached the logs for the given able command

 

I have attached the logs for 2 setups

 

1) With the musb host.

 

2) With the extrenal Renesas host .

 

In the Renesas host we are able to pass the WMM tests since it has 7 end points.

 

Please find below the response to some queries sent regarding the same to the Ralink team:

 

1)     Minimum how many end points are required for WMM tests?

 

[Ralink] Seven endpoint. One RX and Six TX.

 

2)    How is the end points related to the WMM tests?

 

[Ralink] The main factor is TX. Each TX endpoint runs independently can make sure the driver to send the different AC data to Wi-Fi chipset buffer.

 

3)    If less number of end points is there then will it affect the WMM test cases?

 

[Ralink] If the endpoint is not enough, the driver default can boot up but not even talk about WMM.

 

4)    Is there the less number of end points going to be an issue for WMM certification tests?

 

                [Ralink] Yes. If the endpoint is not enough, the driver default can boot up but not even talk about WMM.

 

 

 

It would be great if we could get some help in configuring the number of end points as we have seen that the musb driver supports 16 end points.

 

Rajiv Mohan

QuoteReplyEditDelete

 

 

2011-03-10 00:53:58     Re: Configuring the number of end points used in musb of BF527 board.

Bob Liu (CHINA)

Message: 98813   

 

Hi,

 

Are you using the same Ralink Wifi module ?

 

Because I  saw the info from With_musb.log is:

 

P:  Vendor=0471 ProdID=20dd Rev= 1.01

 

from With_renesas.log is:

 

P:  Vendor=148f ProdID=3070 Rev= 1.01

 

why the Vendor and ProdID changed?

 

Thanks

QuoteReplyEditDelete

 

 

2011-03-10 01:16:41     Re: Configuring the number of end points used in musb of BF527 board.

Rajiv Mohan (INDIA)

Message: 98816   

 

Hi Bob,

 

 

 

It is not the same module. But the same chipset RT3370/RT3070.

 

 

 

Regards,

 

Rajiv Mohan

QuoteReplyEditDelete

 

 

2011-03-10 01:33:29     Re: Configuring the number of end points used in musb of BF527 board.

Bob Liu (CHINA)

Message: 98818   

 

Hi,

 

Then why not try  the same module ?

 

In my opinion, the endpoint numbers are decided only by the device itself no matter with which usb host controller is using.

 

Regards

QuoteReplyEditDelete

 

 

2011-03-10 02:44:39     Re: Configuring the number of end points used in musb of BF527 board.

Rajiv Mohan (INDIA)

Message: 98822   

 

Hi Bob,

 

 

 

The modules are placed/mounted on the board they are not USB plugable modules.

 

Regards,

 

Rajiv Mohan

QuoteReplyEditDelete

 

 

2011-03-10 04:25:23     Re: Configuring the number of end points used in musb of BF527 board.

Bob Liu (CHINA)

Message: 98844   

 

I think that's the problem, you need to find a device with over 7 endpoints.

 

eg. devices: Vendor=148f ProdID=3070 Rev= 1.01

 

 

And you need to find out the endpoint number of the device you are using through it's hardware manual or from ralink.

 

QuoteReplyEditDelete

 

 

2011-03-21 05:20:20     Re: Configuring the number of end points used in musb of BF527 board.

Rajiv Mohan (INDIA)

Message: 99086   

 

Hi Sonic,

 

 

 

We have done some analysis of the issue we are facing. Looks like the endpoint might not be the reason for the issue. but some error status which is set in the USB stack. It would be great if you could help in identifying the error and also what could be the reason for the error to occur. Details given below.

 

The Ralink driver is getting URB->status as error status -2, This error is stalled endpoint.

 

This error comes when some header details are not identified by the USB host or some corruption has happened.

 

The Bulkout header for the error case is

 

BulkOut Header:10 6 0 44 0 0 3 0

 

The Bulkout header for the  normal packets is :

 

BulkOut Header:10 6 0 4 0 0 3 0

 

 

 

When we get too many such packets we get the following crash.

 

*****************************************************************************************************

 

------------[ cut here ]------------

 

WARNING: at drivers/usb/musb/musb_host.c:127 _musb_h_tx_flush_fifo+0x96/0xbc()

 

Could not flush host TX6 fifo: csr: 0003

 

Modules linked in: rtnet3370sta rt3370sta(P) rtutil3370sta

 

Hardware Trace:

 

   0 Target : <0x002c14dc> { _dump_stack + 0x0 }

 

     Source : <0x0018dec0> { _warn_slowpath_common + 0x40 } CALL pcrel

 

   1 Target : <0x0018dec0> { _warn_slowpath_common + 0x40 }

 

     Source : <0x001a936c> { _print_modules + 0x4c } RTS

 

   2 Target : <0x001a9366> { _print_modules + 0x46 }

 

     Source : <0x002c15d8> { _printk + 0x14 } RTS

 

   3 Target : <0x002c15d4> { _printk + 0x10 }

 

     Source : <0x0018ea32> { _vprintk + 0x162 } RTS

 

   4 Target : <0x0018ea26> { _vprintk + 0x156 }

 

     Source : <0x0018ea18> { _vprintk + 0x148 } IF CC JUMP pcrel

 

   5 Target : <0x0018ea10> { _vprintk + 0x140 }

 

     Source : <0x0018eafa> { _vprintk + 0x22a } JUMP.S

 

   6 Target : <0x0018eafa> { _vprintk + 0x22a }

 

     Source : <0x0018e656> { _release_console_sem + 0x1ba } RTS

 

   7 Target : <0x0018e630> { _release_console_sem + 0x194 }

 

     Source : <0x0018e622> { _release_console_sem + 0x186 } IF CC JUMP pcrel (BP)

 

   8 Target : <0x0018e61a> { _release_console_sem + 0x17e }

 

     Source : <0x001a170e> { _up + 0x3a } RTS

 

   9 Target : <0x001a1708> { _up + 0x34 }

 

     Source : <0x001a16fa> { _up + 0x26 } IF CC JUMP pcrel (BP)

 

  10 Target : <0x001a16d4> { _up + 0x0 }

 

     Source : <0x0018e616> { _release_console_sem + 0x17a } JUMP.L

 

  11 Target : <0x0018e602> { _release_console_sem + 0x166 }

 

     Source : <0x0018e4fa> { _release_console_sem + 0x5e } IF CC JUMP pcrel

 

  12 Target : <0x0018e4de> { _release_console_sem + 0x42 }

 

     Source : <0x0018e52c> { _release_console_sem + 0x90 } IF CC JUMP pcrel (BP)

 

  13 Target : <0x0018e522> { _release_console_sem + 0x86 }

 

     Source : <0x0018e0be> { __call_console_drivers + 0x62 } RTS

 

  14 Target : <0x0018e0b8> { __call_console_drivers + 0x5c }

 

     Source : <0x0018e092> { __call_console_drivers + 0x36 } IF CC JUMP pcrel

 

  15 Target : <0x0018e082> { __call_console_drivers + 0x26 }

 

     Source : <0x0018e072> { __call_console_drivers + 0x16 } IF !CC JUMP pcrel (BP)

 

Stack info:

 

SP: [0x02b8ddb8] <0x02b8ddb8> /* kernel dynamic memory */

 

FP: (0x02b8de74)

 

Memory from 0x02b8ddb0 to 02b8e000

 

02b8ddb0: 02b8ddb8  0034d9e0 [0018dec0] 0018dec4  02b8ddfc  0031ee74  00000001  0031ee74

 

02b8ddd0: 0000007f  0025cd56  0018df16  ffc03b84  00000000  00000003  ffc03b80  0000012c

 

02b8ddf0: 00000000  02b8de20  02b8ddfc  0031ee94  02b8de14  0025cd56  02b8de04  00000000

 

02b8de10: 80000200  00000006  00000003  02d002b0  0025d9f8  0202f258  02066c40  025d07e0

 

02b8de30: 00000000  00000000  00000000  00000000  000000f4  00000002  0000040a  025e20a0

 

02b8de50: 00000040  0025e07c  00923ba0  025d07e0  00000000  00000001  00000000  0202f000

 

02b8de70: 00000040 (00000000)<02e465a2> 00000000  002354f2  026c9c00  00000002  00250e18

 

02b8de90: 025d07e0  02d81420  02d00090  00000000  0000ffff  fffffffe  00000000  00000408

 

02b8deb0: 00000040  02d000b4  02b8df14 <02e46a10> 00251df4  025d07e0  00000002  025d07e0

 

02b8ded0: 00000000  02e46a18  00000000 <02e46a32> 00000007  00000000  00000002  000000f4

 

02b8def0: 0000040a <02e46b4e> 02d00000  00000002  00000000 <02e0e832> 02e46724  00000000

 

02b8df10: 02d8132c  00211828  02b21240 <02e0936a> 02d14f68  02d00000  00350ef0  cccccccd

 

02b8df30: 02d0012c  02b8c000  00000000  002c1714 <02e1f502> 0019df6c  02d00000  0019e260

 

02b8df50:<02e1f5ae> 02d14f68  02d00000  ffffffc0  003517a4  02b86960  025e5060  02d14f68

 

02b8df70: 02d81503  02b8c000  00000000  02b86960  0019e410  02b8df84  02b8df84  00000000

 

02b8df90:<02e1f5d8> 02d0010c  02e1f5b8  00000000  02d00000  00000000  00000000  00000000

 

02b8dfb0: 02e1f5b8  00000000  02d0010c <0019e0aa> 02b89cf4  02d0010c  00000000  0019e050

 

02b8dfd0: 001804a8  00000000  00000000  02b8dfdc  02b8dfdc <001804ae> 00000000  00000000

 

02b8dff0: 00000000  00000000  ffffffff  00000006

 

Return addresses in stack:

 

   frame  1 : <0x02e465a2> { :rt3370sta:_RTUSB_VendorRequest + 0x146 }

 

    address : <0x02e46a10> { :rt3370sta:_RTUSBSingleWrite + 0x28 }

 

    address : <0x02e46a32> { :rt3370sta:_RTUSBWriteMACRegister + 0x1a }

 

    address : <0x02e46b4e> { :rt3370sta:_RTUSBWatchDog + 0x106 }

 

    address : <0x02e0e832> { :rt3370sta:_NICUpdateRawCounters + 0x32 }

 

    address : <0x02e0936a> { :rt3370sta:_MlmePeriodicExec + 0x1ae }

 

    address : <0x02e1f502> { :rt3370sta:_RtmpTimerQHandle + 0xda }

 

    address : <0x02e1f5ae> { :rt3370sta:_RtmpTimerQHandle + 0x186 }

 

    address : <0x02e1f5d8> { :rt3370sta:_RtmpTimerQThread + 0x20 }

 

    address : <0x0019e0aa> { _kthread + 0x5a }

 

    address : <0x001804ae> { _kernel_thread_helper + 0x6 }

 

---[ end trace 621675fbf75f2bc1 ]---

 

*************************************************************************************8

 

It would be great if you can provide your inputs.

 

We have checked the same module in a different USB host stack and we are not observing this issue.

 

Rajiv

 

QuoteReplyEditDelete

 

 

2011-03-21 05:20:26     Re: Configuring the number of end points used in musb of BF527 board.

Rajiv Mohan (INDIA)

Message: 99087   

 

Hi Sonic,

 

 

 

We have done some analysis of the issue we are facing. Looks like the endpoint might not be the reason for the issue. but some error status which is set in the USB stack. It would be great if you could help in identifying the error and also what could be the reason for the error to occur. Details given below.

 

The Ralink driver is getting URB->status as error status -2, This error is stalled endpoint.

 

This error comes when some header details are not identified by the USB host or some corruption has happened.

 

The Bulkout header for the error case is

 

BulkOut Header:10 6 0 44 0 0 3 0

 

The Bulkout header for the  normal packets is :

 

BulkOut Header:10 6 0 4 0 0 3 0

 

 

 

When we get too many such packets we get the following crash.

 

*****************************************************************************************************

 

------------[ cut here ]------------

 

WARNING: at drivers/usb/musb/musb_host.c:127 _musb_h_tx_flush_fifo+0x96/0xbc()

 

Could not flush host TX6 fifo: csr: 0003

 

Modules linked in: rtnet3370sta rt3370sta(P) rtutil3370sta

 

Hardware Trace:

 

   0 Target : <0x002c14dc> { _dump_stack + 0x0 }

 

     Source : <0x0018dec0> { _warn_slowpath_common + 0x40 } CALL pcrel

 

   1 Target : <0x0018dec0> { _warn_slowpath_common + 0x40 }

 

     Source : <0x001a936c> { _print_modules + 0x4c } RTS

 

   2 Target : <0x001a9366> { _print_modules + 0x46 }

 

     Source : <0x002c15d8> { _printk + 0x14 } RTS

 

   3 Target : <0x002c15d4> { _printk + 0x10 }

 

     Source : <0x0018ea32> { _vprintk + 0x162 } RTS

 

   4 Target : <0x0018ea26> { _vprintk + 0x156 }

 

     Source : <0x0018ea18> { _vprintk + 0x148 } IF CC JUMP pcrel

 

   5 Target : <0x0018ea10> { _vprintk + 0x140 }

 

     Source : <0x0018eafa> { _vprintk + 0x22a } JUMP.S

 

   6 Target : <0x0018eafa> { _vprintk + 0x22a }

 

     Source : <0x0018e656> { _release_console_sem + 0x1ba } RTS

 

   7 Target : <0x0018e630> { _release_console_sem + 0x194 }

 

     Source : <0x0018e622> { _release_console_sem + 0x186 } IF CC JUMP pcrel (BP)

 

   8 Target : <0x0018e61a> { _release_console_sem + 0x17e }

 

     Source : <0x001a170e> { _up + 0x3a } RTS

 

   9 Target : <0x001a1708> { _up + 0x34 }

 

     Source : <0x001a16fa> { _up + 0x26 } IF CC JUMP pcrel (BP)

 

  10 Target : <0x001a16d4> { _up + 0x0 }

 

     Source : <0x0018e616> { _release_console_sem + 0x17a } JUMP.L

 

  11 Target : <0x0018e602> { _release_console_sem + 0x166 }

 

     Source : <0x0018e4fa> { _release_console_sem + 0x5e } IF CC JUMP pcrel

 

  12 Target : <0x0018e4de> { _release_console_sem + 0x42 }

 

     Source : <0x0018e52c> { _release_console_sem + 0x90 } IF CC JUMP pcrel (BP)

 

  13 Target : <0x0018e522> { _release_console_sem + 0x86 }

 

     Source : <0x0018e0be> { __call_console_drivers + 0x62 } RTS

 

  14 Target : <0x0018e0b8> { __call_console_drivers + 0x5c }

 

     Source : <0x0018e092> { __call_console_drivers + 0x36 } IF CC JUMP pcrel

 

  15 Target : <0x0018e082> { __call_console_drivers + 0x26 }

 

     Source : <0x0018e072> { __call_console_drivers + 0x16 } IF !CC JUMP pcrel (BP)

 

Stack info:

 

SP: [0x02b8ddb8] <0x02b8ddb8> /* kernel dynamic memory */

 

FP: (0x02b8de74)

 

Memory from 0x02b8ddb0 to 02b8e000

 

02b8ddb0: 02b8ddb8  0034d9e0 [0018dec0] 0018dec4  02b8ddfc  0031ee74  00000001  0031ee74

 

02b8ddd0: 0000007f  0025cd56  0018df16  ffc03b84  00000000  00000003  ffc03b80  0000012c

 

02b8ddf0: 00000000  02b8de20  02b8ddfc  0031ee94  02b8de14  0025cd56  02b8de04  00000000

 

02b8de10: 80000200  00000006  00000003  02d002b0  0025d9f8  0202f258  02066c40  025d07e0

 

02b8de30: 00000000  00000000  00000000  00000000  000000f4  00000002  0000040a  025e20a0

 

02b8de50: 00000040  0025e07c  00923ba0  025d07e0  00000000  00000001  00000000  0202f000

 

02b8de70: 00000040 (00000000)<02e465a2> 00000000  002354f2  026c9c00  00000002  00250e18

 

02b8de90: 025d07e0  02d81420  02d00090  00000000  0000ffff  fffffffe  00000000  00000408

 

02b8deb0: 00000040  02d000b4  02b8df14 <02e46a10> 00251df4  025d07e0  00000002  025d07e0

 

02b8ded0: 00000000  02e46a18  00000000 <02e46a32> 00000007  00000000  00000002  000000f4

 

02b8def0: 0000040a <02e46b4e> 02d00000  00000002  00000000 <02e0e832> 02e46724  00000000

 

02b8df10: 02d8132c  00211828  02b21240 <02e0936a> 02d14f68  02d00000  00350ef0  cccccccd

 

02b8df30: 02d0012c  02b8c000  00000000  002c1714 <02e1f502> 0019df6c  02d00000  0019e260

 

02b8df50:<02e1f5ae> 02d14f68  02d00000  ffffffc0  003517a4  02b86960  025e5060  02d14f68

 

02b8df70: 02d81503  02b8c000  00000000  02b86960  0019e410  02b8df84  02b8df84  00000000

 

02b8df90:<02e1f5d8> 02d0010c  02e1f5b8  00000000  02d00000  00000000  00000000  00000000

 

02b8dfb0: 02e1f5b8  00000000  02d0010c <0019e0aa> 02b89cf4  02d0010c  00000000  0019e050

 

02b8dfd0: 001804a8  00000000  00000000  02b8dfdc  02b8dfdc <001804ae> 00000000  00000000

 

02b8dff0: 00000000  00000000  ffffffff  00000006

 

Return addresses in stack:

 

   frame  1 : <0x02e465a2> { :rt3370sta:_RTUSB_VendorRequest + 0x146 }

 

    address : <0x02e46a10> { :rt3370sta:_RTUSBSingleWrite + 0x28 }

 

    address : <0x02e46a32> { :rt3370sta:_RTUSBWriteMACRegister + 0x1a }

 

    address : <0x02e46b4e> { :rt3370sta:_RTUSBWatchDog + 0x106 }

 

    address : <0x02e0e832> { :rt3370sta:_NICUpdateRawCounters + 0x32 }

 

    address : <0x02e0936a> { :rt3370sta:_MlmePeriodicExec + 0x1ae }

 

    address : <0x02e1f502> { :rt3370sta:_RtmpTimerQHandle + 0xda }

 

    address : <0x02e1f5ae> { :rt3370sta:_RtmpTimerQHandle + 0x186 }

 

    address : <0x02e1f5d8> { :rt3370sta:_RtmpTimerQThread + 0x20 }

 

    address : <0x0019e0aa> { _kthread + 0x5a }

 

    address : <0x001804ae> { _kernel_thread_helper + 0x6 }

 

---[ end trace 621675fbf75f2bc1 ]---

 

*************************************************************************************8

 

It would be great if you can provide your inputs.

 

We have checked the same module in a different USB host stack and we are not observing this issue.

 

Rajiv

 

QuoteReplyEditDelete

 

 

2011-03-22 02:51:35     Re: Configuring the number of end points used in musb of BF527 board.

Bob Liu (CHINA)

Message: 99114   

 

>  We have checked the same module in a different USB host stack and we are not observing this issue.

 

You mean in a different USB host stack you didn't  get " URB->status as error status -2" or "crash" or both ?

QuoteReplyEditDelete

 

 

2011-03-22 04:03:26     Re: Configuring the number of end points used in musb of BF527 board.

Rajiv Mohan (INDIA)

Message: 99134   

 

Both we are not getting with different USB stack.

 

Basically we are doing WMM tests for the 802.11N certification.

 

For this test we have to use different streams as given below:(given from high to low priority)

 

1)Video

 

2)audio

 

3)best effort

 

4)background

 

For the test we will select 2 streams one lower priority and one with higher priority. For example higher priority video stream and lower priority best effort stream.

 

Then we will see the maximum throughput obtained with any stream. In our case since we are doing the test in b-mode the max speed obtained is 6 Mbps.

 

We will fill the bandwidth with 2 streams. In our case best effort will take 3.2 Mbps and video will take 2.8 Mbps we will sent these streams for 20 sec.

 

After 10sec we will introduce one more lower priority packet. In our case 2.8Mbps of best effort again.

 

In this senario we will check the video packets throughput. This shouldnt vary beyond some limitation.

 

 

 

The problem that we are facing with musb USB stack.

 

If we go beyond the max throughput obtained then status error is seen and sometimes even crash is observed for example

 

Max throughput is 6Mbps.

 

1st stream 3.2Mbps and 2nd stream 2.8 Mbps total throughput = 6Mbps.

 

If we introduce a stream with any value now even 1 or 2 Mbps it is effecting the rest of the streams and we keep getting the status error or crash.

 

 

 

The same test when conducted using the same module, same driver, same kernel but different USB stack we are able to pass the tests and the status errors or crash is not observed.

QuoteReplyEditDelete

 

 

2011-03-30 15:43:22     Re: Configuring the number of end points used in musb of BF527 board.

Simon Brewer (AUSTRALIA)

Message: 99468   

 

Hi Rajiv,

 

we have reviewed your logs, and have discussed this internally.  From the line numbers, it looks like you are running a Kernel from about mid 2009 or so.  Can you confirm that?

 

Can you please try 2010r1 or svn-trunk to see if that is any better?

 

Simon

QuoteReplyEditDelete

 

 

2011-04-04 01:09:51     Re: Configuring the number of end points used in musb of BF527 board.

Rajiv Mohan (INDIA)

Message: 99557   

 

Hi Simon,

 

The kernel that we have used is  - blackfin-linux-dist-2010R1-RC5.tar.bz2

 

The tool chain that we have used is - blackfin-toolchain-2010R1-RC4.i386.tar.bz2

 

                                                                   blackfin-toolchain-uclibc-full-2010R1-RC4.i386.tar.bz2

 

 

 

We had tried 2009 kernel earlier in the initial stages but with that we were getting these error very often After moving to 2010 kernel we are getting these errors only with the tests given above. These tests are imported to get WIFI certification.

 

Regards,

 

Rajiv Mohan

QuoteReplyEditDelete

 

 

2011-04-04 09:17:30     Re: Configuring the number of end points used in musb of BF527 board.

Simon Brewer (AUSTRALIA)

Message: 99567   

 

Hi Rajiv,

 

you are running the latest officially released code.  Do you have an easy way to reproduce the problem, without the complication of your complete test setup?

 

Is it possible your team could try the latest Kernel from the SVN trunk?  There are a small number of improvements that have been made to musb in mainline that might be worth trying.

 

Regards,

 

Simon

QuoteReplyEditDelete

 

 

2011-04-05 00:29:19     Re: Configuring the number of end points used in musb of BF527 board.

Rajiv Mohan (INDIA)

Message: 99575   

 

Hi Simon,

 

There is no easier way to reproduce the issue. We are getting the issue only with this particular testing basically when we use multiple streams (iperf sessions) and send data more than the max throughput value. If we have only one session even if we sent more than the max data only max possible throughput will be obtained. So it has to be done with multiple sessions.

 

 

 

Regarding the 2010 kernel which we need to check. It would be great if you could guide us to which SVN code base we need to use. It would be great if you can provide the path or the link so that we can take that and check it.

 

 

 

Regards,

 

Rajiv Mohan

QuoteReplyEditDelete

 

 

2011-04-05 01:03:36     Re: Configuring the number of end points used in musb of BF527 board.

Simon Brewer (AUSTRALIA)

Message: 99576   

 

Hi Rajiv,

 

please follow the instructions here.  There is probably no need to rebuild the toolchain,

 

  docs.blackfin.uclinux.org/doku.php?id=developing:blackfin_live_sources

 

Regards,

 

Simon

QuoteReplyEditDelete

 

 

2011-04-05 23:07:13     Re: Configuring the number of end points used in musb of BF527 board.

Bob Liu (CHINA)

Message: 99614   

 

Hi, Rajiv

 

Would you please paste the detail test steps and log?

 

Then I can try to reproduce this problem.

 

Thanks

 

-Bob

QuoteReplyEditDelete

 

 

2011-04-06 03:48:20     Re: Configuring the number of end points used in musb of BF527 board.

Rajiv Mohan (INDIA)

Message: 99619   

 

We are doing WMM tests which is mandatory for 802.11N Wifi certification.

 

Basic Test Details:

This test contains 4 different types of data:

1) Video -- highest priority

2) Audio

3) Best effort

4) background - lowest priority

 

In this test we will take 2 types of packets one with higher priority and one with lower priority for example Video and best effort.

We will have to have 3 iperf sessions. 2 with lower priority and one with higher priority.

 

First we will take one lower and one higher priority stream and fill the total bandwidth for example for b-only mode the max

throughput obtained is 6Mbps. The lower priority stream will take 3.2Mpbs and the higher priority will take 2.8Mbps.

We will sent these 2 packets for 20sec.

After 10 sec of this 20sec we will introduce one more stream of the lower priority packet at rate 2.8Mbps.

 

We will have to observe the throughput obtained in the first 10 sec and the last 10 sec of the higher priority stream.

 

Expected Result:

The last 10 sec of the higher priority stream should not be less than 90% for the first 10 sec.

 

 

Test tool used:

iperf for checking the throughput and also for sending the data.

 

Commands used in client side:

./iperf -c <serverip> -p <port> -u -t <timetosend> -S <packet type> -b <bandwidth> -i <timetodisplay>

 

where,

                           <timetosend> -- 20sec

            <packet type> -- 0xa0 - video

                                                      0xE0 - audio

                                                      0x00 - best effort

                                                      0x20 - back ground

                           <bandwidth> - 3.2Mbps and 2.8Mbps since we are doing the test in b-only mode.

 

Command in the server side:

./iperf -s -u -p <port> -i <timetodisplay>

 

 

Detailed test:

 

We will take the following example to explain this:

Stream 1 - Best effort - lower priority

./iperf -c <serverip> -p 5001 -u -t 20 -S 0x00 -b 3.2M -i 2

 

Stream 2 - video - higher priority

./iperf -c <serverip> -p 5002 -u -t 20 -S 0xa0 -b 2.8M -i 2

 

Stream 3 - Best effort - lower priorty

./iperf -c <serverip> -p 5003 -u -t 10 -S 0x00 -b 2.8M -i 2

 

Once we connect to an Access point we will have to open 3 telnet session in the board where the client will be running.

We will have to open 3 corresponding server sessions in the PC where the Access point is connected to.

 

The test is conducted for 20 sec.

 

1st 10 sec stream 1 and stream 2 will be started simultanously. We will have to observe the throughput in the stream 2(video

 

data)

2nd 10 sec stream 3 will be started. At this time we will have to observe the throughput in the stream2(video data)

 

Expected result:

Stream 2 throughput in the last 10 sec should not be <90% of the first 10 sec.

 

 

Observation:

When we introduce the stream3 the data rate of the first and the second is getting effected and we start getting error -2 fro

urb->status, some times we also get crash saying fifo not flushed.

 

 

Regards,

Rajiv Mohan

 

initial_iperf_command.JPG

first10sec.JPG

Crashlog.txt

QuoteReplyEditDelete

 

 

2011-04-07 03:07:10     Re: Configuring the number of end points used in musb of BF527 board.

Bob Liu (CHINA)

Message: 99635   

 

Hi, Rajiv

 

Thanks for this information.

 

A small issue, in my PC iperf haven't -S option?

 

So how to control the stream priority?

 

-Bob

QuoteReplyEditDelete

 

 

2011-04-11 02:03:33     Re: Configuring the number of end points used in musb of BF527 board.

Rajiv Mohan (INDIA)

Message: 99742   

 

Hi Bob,

 

-S option needs to be provided only in the client side which is run in the device.

 

I am attaching the iperf exe which we are using.

 

IperfW.exe -> for windows

 

iperf2010 for the device built with 2010 tool chain.

 

 

 

Regards,

 

Rajiv Mohan

 

IperfW.exe

iperf2010

QuoteReplyEditDelete

 

 

2011-04-14 03:21:31     Re: Configuring the number of end points used in musb of BF527 board.

Sonic Zhang (CHINA)

Message: 99838   

 

Hi Rajiv,

 

Could you run iperf testing on a Linux host PC other than the windows one?

 

In addition, because we don't have the RT3370 WIFI USB dongle in Shanghai, we can't replicate your test. RT3070 works fine on bf527 MUSB as Tvb mentioned in email.

QuoteReplyEditDelete

 

 

2011-04-14 23:42:15     Re: Configuring the number of end points used in musb of BF527 board.

Rajiv Mohan (INDIA)

Message: 99858   

 

Hi Sonic,

 

We have tried the test using both windows machine and linux machine in both we were getting the same result.

 

 

 

regards,

 

Rajiv Mohan

QuoteReplyEditDelete

 

 

2011-05-05 03:35:48     Re: Configuring the number of end points used in musb of BF527 board.

Aaron Wu (CHINA)

Message: 100435   

 

Hi Rajiv,

 

Did you run it on 527ezkit + wifi dongle or on the customer HW platform? My test result looks fine, please refer to the attached screen shot.

 

iperf_527.jpg

Outcomes