Broadcom BCM4334 Wifi Abnormally Low Throughput Problem on Freescale iMX6

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

Broadcom BCM4334 Wifi Abnormally Low Throughput Problem on Freescale iMX6

8,399 Views
johnnychiang
Contributor II

Freescale iMX6 throughput problem description:

 

Test driver version: 1.88.10(make flag: dhd-cdc-sdmmc-gpl-debug for debug driver and dhd-cdc-sdmmc-gpl for release driver)

Test firmware version: 5.90.192.26.2 for BCM4330/ 6.10.58.74 for BCM4334

Test platform: Freescale iMX6(kernel 3.0.35)/x86 PC(kernel 3.2.47)(For comparison to iMX6 with the same driver source code)

Test SDIO clock rate: 20/40MHz

Test EVB: BCM4330(For comparison to BCM4334 with the same driver source code), BCM4334

Test application: iperf

Test command: "iperf -s" for Rx and "iperf -c 192.168.0.xxx -t 30 -i2" for Tx

 

Results comment:

Comparing to BCM4330 or BCM4334 on x86 PC, BCM4334 on iMX6 throughput test results present an abnormally low performance with TCP/IP Error found from Wifi sniffer at RX mode.

 

 

Test results(in shielding room):

20MHz SDIO clock rate:

 

      

HOST

Chip/Driver type

Direction

BCM4334

Throughput

BCM4330

Throughput

/release

/debug

/release

/debug

x86 PC

BCM4330/release

Tx

24

 

20.1

 

Freescale iMX6

BCM4330/release

0.8

31.9

32.3

32.1

x86

BCM4330/release

Rx

26.5

 

27.1

 

Freescale iMX6

BCM4330/release

*TCP/IP Error

7.76

33

33

 

      

HOST

Chip/Driver type

Direction

BCM4334

Throughput

BCM4330

Throughput

/release

/debug

/release

/debug

x86 PC

BCM4330/release

Tx

24

 

20.1

 

BCM4330/release

Rx

26.5

 

27.1

 

Freescale iMX6

BCM4330/release

Tx

0.8

31.9

32.3

32.1

BCM4330/release

Rx

*TCP/IP Error

7.76

33

33

 

 

 

 

 

40MHz SDIO clock rate:

 

      

HOST

Chip/Driver type

Direction

BCM4334

Throughput

BCM4330

Throughput

/release

/debug

/release

/debug

x86 PC

BCM4330/release

Tx

43.4

 

40.2

 

Freescale iMX6

BCM4330/release

0.7

12.1

42.1

42.1

x86

BCM4330/release

Rx

45.7

 

39.8

 

Freescale iMX6

BCM4330/release

*TCP/IP Error

7.9

41.7

41.5

 

 

      

HOST

Chip/Driver type

Direction

BCM4334

Throughput

BCM4330

Throughput

/release

/debug

/release

/debug

x86 PC

BCM4330/release

Tx

43.4

 

40.2

 

BCM4330/release

Rx

45.7

 

39.8

 

Freescale iMX6

BCM4330/release

Tx

0.7

12.1

42.1

42.1

BCM4330/release

Rx

*TCP/IP Error

7.9

41.7

41.5

 

 

*TCP/IP Error: TCP/IP connection hand-shaking can't be completed by firmware.

 

 

 

MMC host driver debug message catching

 

  The MMC host driver debug messages for release and debug version on PC and iMX6 with 20MHz clock rate are catched. Please refer to attached file.

 

File name and envrionment:

 

1. x86_dmesg_rel

a.BCM4334

b.BCM release driver

c.20MHz SDIO clock rate

d.x86 PC

 

2. x86_dmesg_debug

a.BCM4334

b.BCM debug driver

c.20MHz SDIO clock rate

d.x86 PC

 

3. arm_dmesg_rel

a.BCM4334

b.BCM release driver

c.20MHz SDIO clock rate

d.Freescale iMX6

 

4. arm_dmesg_debug

a.BCM4334

b.BCM debug driver

c.20MHz SDIO clock rate

d.Freescale iMX6

Original Attachment has been moved to: arm_dmesg_rel.txt.zip

Original Attachment has been moved to: 4330_arm_dmesg_debug.zip

Original Attachment has been moved to: arm_dmesg_debug.txt.zip

Original Attachment has been moved to: x86_dmesg_rel.txt.zip

Original Attachment has been moved to: x86_dmesg_debug.txt.zip

Labels (3)
16 Replies

2,643 Views
johnnychiang
Contributor II

Hi, MaxTsai and Yising Kong,

     Thanks for your reply. These days, I tried using out-of-band irq as the SDIO_HOST_WAKE and the BCM4334 throughput become much better. Furthermore, when I use some other modules with the same driver, error message in sdio_irq.c, "

printk(KERN_DEBUG "%s: error %d reading SDIO_CCCR_INTx\n", will be triggered continuously. Do you have any suggestion or method to debug the error on SDIO irq?

0 Kudos

2,643 Views
max_tsai
NXP Employee
NXP Employee

hi Johnny,

You have a IRQ handler to handle the out-of-band irq from BCM4334, right?

If so, the SDIO IRQ should be disable without sdio_claim_irq.

The following is a reference.

http://permalink.gmane.org/gmane.linux.kernel.wireless.general/89892

Regards,

Max

2,643 Views
johnnychiang
Contributor II

Hi, MaxTsai,

     Thanks for your reply. Here I summarize the test results listed following:

1. BCM4334

Not using out-of-band irq from BCM4334 -> Abnormally low throughput.

Using out-of-band irq from BCM4334 -> Normal throughput.

2. BCM4330

Not using out-of-band irq from BCM4334 -> Normal throughput

3. BCM43241

Not using out-of-band irq from BCM4334 -> Normal throughput but keep triggering "printk(KERN_DEBUG "%s: error %d reading SDIO_CCCR_INTx\n".

Thus, I would like to check if the SDIO IRQ functionality in mmc host driver works fine or not? Do you have any suggestion or method to debug the error on SDIO IRQ in mmc host driver?

Best regards,

                       Johnny.

0 Kudos

2,643 Views
max_tsai
NXP Employee
NXP Employee

You can enable debug message of MMC. For example, add "#define DEBUG" into drivers/mmc/core/core.c or other drivers/mmc/core/*.c, and enable "CONFIG_MMC_DEBUG".

By the way, does BCM4334 & BCM43241 need SDIO clock always on, to generate SDIO interrupt?

If so, the following patch to disable SD clock gated is for refernce.

Disable SD clock gated off for i.MX6

Also, BCM4334 or BCM43241 work by SDIO2 or SDIO3? Kernel 3.0.35 didn't support SDIO3 well.

Regards,

Max

2,643 Views
Pao_portalinks
Contributor I

Dear Max,

     I got the same error message when BCM4334 detached, like "dhdsdio_dpc: failed backplane access over SDIO, halting operation". The worse is we cannot reattach BCM4334 successful after that. Problem with BCM4334 Wifi on i.MX6 Do you think diable the SDIO clock gated is a help? Of course, I will give it a try and feedback tomorrow.

Thanks

Paul

0 Kudos

2,643 Views
johnnychiang
Contributor II

Hi, MaxTsai,

     Thanks for your reply. The throughput of BCM4334 becom normal after keeping outputing SDIO clock.

Best regards,

                     Johnny.

0 Kudos

2,643 Views
max_tsai
NXP Employee
NXP Employee

hi Johnny,

I didn't get the point. Is my understanding correct below?

1. Are you using Freescale i.MX6 reference board (like i.MX6Q SabreSD)?

2. BCM4330 and BCM4334 are SDIO module, so you are testing by the SD slot of Freescale reference board?

3. For BCM4334 with Freescale reference board, there is RX TCP error and low throughput of TX.

4. For BCM4330 with Freescale reference board, the performance is good.

Regards,

Max

2,643 Views
johnnychiang
Contributor II

Hi, MaxTsai,

 

      Your four comment is what we want to express. About your question, here is my comment.

1. We are using Freescale i.MX6 reference board SDP(iMX6q with touch panel).

2. We are using mmc1 sdio port on i.MX6 reference board SDP.

Best regards,

                       Johnny.

0 Kudos

2,643 Views
max_tsai
NXP Employee
NXP Employee

Can I have arm_dmesg_debug log of BCM4330?

0 Kudos

2,643 Views
johnnychiang
Contributor II

Hi, MaxTsai,

     I have upload "arm_dmesg_debug log of BCM4330" named 4330_arm_dmesg_debug attached to main article. Please check it.

Best regards,

                      Johnny.

0 Kudos

2,643 Views
max_tsai
NXP Employee
NXP Employee

hi Johnny,

I find no error message or cues from HOST MMC driver, but I see the message from BCM4334 driver.

There is no this kind message from BCM4330 driver. Suggest you debug from BCM4334 driver.

--

max@max-desktop:~/samba/tmp/WiFi$ gr dhd 01129640088083_arm_dmesg_rel.txt

3493:<4>DHD: dongle ram size is set to 524288(orig 524288) at 0x0

6455:<4>dhd_wlfc_init(): successfully enabled bdcv2 tlv signaling, 79

8127:@<4>dhdsdio_dpc: failed backplane access over SDIO, halting operation !

max@max-desktop:~/samba/tmp/WiFi$ gr dhd 01129640088099_arm_dmesg_debug.txt

3861:<4>DHD: dongle ram size is set to 524288(orig 524288) at 0x0

3989:<4>dhd_attach(): thread:dhd_watchdog_thread:cd0 started

3990:<4>dhd_attach(): thread:dhd_dpc:cd1 started

3991:<4>dhd_attach(): thread:dhd_sysioc:cd2 started

6872:<4>dhdsdio_write_vars: Download, Upload and compare of NVRAM succeeded.

7013:<4>dhd_bus_init: enable 0x06, ready 0x06 (waited 0us)

7750:<4>dhd_wlfc_init(): successfully enabled bdcv2 tlv signaling, 79

14757:<4>dhdsdio_dpc: failed backplane access over SDIO, halting operation

14758:<4>dhd_detach(): thread:dhd_sysioc:cd2 terminated OK

14759:<4>dhd_detach(): thread:dhd_watchdog_thread:cd0 terminated OK

14760:<4>dhd_detach(): thread:dhd_dpc:cd1 terminated OK

---

Regards,

Max

2,643 Views
johnnychiang
Contributor II

Hi, MaxTsai,

     Thanks for your reply. I found the error message, "dhdsdio_dpc: failed backplane access over SDIO, halting operation" appears when Broadcom Wifi driver will be removed and this message showing no matter I use x86/PC or arm/iMX6q. Do you have any comment on this test report and debug messages? Or, any other method to analyze this problem?

Best regards,

                          Johnny.

0 Kudos

2,643 Views
YixingKong
Senior Contributor IV

Johnny

Does Max's explanation help you in resolving your issue? If yes, please click Correct Answer/Helpful Answer, otherwise please keep exchanging emails with him. We would like to close the discussion if no activity in 3 days.

Thanks,

Yixing

0 Kudos

2,643 Views
max_tsai
NXP Employee
NXP Employee

hi Johnny,

I only see "dhdsdio_dpc: failed backplane access over SDIO, halting operation" from the log files for BCM4334, and it does occur before terminating dhd driver. No cues from SDIO host driver, to debug by WiFi driver above SDIO host driver is a workable way. To check if there is resend event, or if any error/warning event from WiFi driver. That should help.

Regards,

Max

2,643 Views
max_tsai
NXP Employee
NXP Employee

BTW, according to your test result, BCM4334 debug version gets better performance than release version. Can you check if there is different configuration of driver debug mode?

2,643 Views
johnnychiang
Contributor II

Hi, MaxTsai,

      I will upload "arm_dmesg:debug" log of BCM4330 later. On the other hand, i have compare the difference between release and debug drivers and found that debug driver will read Wifichip firmware message through SDIO periodically.

Best regards,

                         Johnny.

0 Kudos