Re: Capturing FCS error frames using b43 driver

2009-02-22 Thread Francesco Gringoli
On Feb 17, 2009, at 11:54 PM, Michael Buesch wrote:

 Please read the code. There are lots of sanity checks in b43 and  
 mac80211
 that make it impossible to receive completely corrupted frames.
I reconsidered this message because I too did some tests in capturing  
frames with proprietary firmware. As Bo said, we can capture corrupted  
frames with R351 but we can't with R410. The reason is that this  
firmware seems to not even check whether or not bit  
B43_MACCTL_KEEP_BAD is set so I believe no kernel patch could correct  
this problem, because it is on the firmware side.

Cheers,
-FG




 On Tuesday 17 February 2009 23:05:51 Bo Han wrote:
 Hi,

 I am interested in capturing FCS error frames using b43 driver.  My  
 hardware
 information is as follows.

 b43-phy9: Broadcom 4318 WLAN found
 b43-phy9 debug: Found PHY: Analog 3, Type 2, Revision 7
 b43-phy9 debuf: Found Radio: Manuf 0x17f, Version 0x2050, Revision 8

 I am using firmware version 410.2160 with linux kernel version  
 2.6.27.10.  I
 told the firmware to keep the bad frames by setting ctl |=
 B43_MACCTL_KEEP_BAD just before b43_write32(dev, b43_MMIO_MACCTL,  
 ctl) in
 b43_adjust_mode(...) in main.c.
 From b43_rx(...) in xmit.c, I can only see packets dropped because  
 their
 rate_idx == -1.  The length of all the dropped packets is 80 bytes  
 and they
 look like the following:

 8fae 0308  0b01 0085  1500 482c
 50b3 0b01 0085  5fa0 1500 482c 50b3
  0003 850b cdcc 1b00 1d00 b945 c0cd
 b905 630a 5e10 0101 0601 0b06 000b 07d6
 bab9 addb 35fd 33e8 cd8f 8eaa 6f77 b9e8

 However, there is still no packet received with macstat  
 B43_RX_MAC_FCSERR.
 I also tried the 351 firmware for which I saw several FCS error  
 frames in
 PIO mode.  But the sniffing tools like Wireshark cannot get any  
 packets.
 including the correct ones, when using that firmware.

 Am I missing something?

 Thanks,
 -Bo




 -- 
 Greetings, Michael.
 ___
 Bcm43xx-dev mailing list
 Bcm43xx-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/bcm43xx-dev

---

Francesco Gringoli, PhD - Assistant Professor
Dept. of Electrical Engineering for Automation
University of Brescia
via Branze, 38
25123 Brescia
ITALY

Ph:  ++39.030.3715843
FAX: ++39.030.380014
WWW: http://www.ing.unibs.it/~gringoli




___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: I need some help stabaizing b43 for a 4306

2009-02-22 Thread Michael Buesch
On Sunday 22 February 2009 21:45:44 John Mountcastle wrote:
 
 Michael, configuring a new kernel was a real blast from the past. I haven't  
 done that in several years but I think I got it done. Funny thing, when I 
 booted the debug kernel, the interface was rock solid for almost an hour, not 
 one single error, then it went sour again. I switched on br43 debugging as 
 you suggested, about half way through the capture. You can see the Tx-mit 
 power messages start. About 60% into the capture I unloaded b43 
 (rmmod/insmod) and reloaded it in order to get the interface to come back up.
 
 I hope you can tell me something about what if anything this capture tells 
 us? Or, the net step in debuggging
 


 b43-phy1 debug: Current TX power output: 14.75 dBm, Desired TX power output: 
 15.0 dBm
 b43-phy1 debug: Tuning TX-power to bbatt(5), rfatt(4), tx_control(0x30), 
 tx_bias(0x00), tx_magn(0x00)

The first thing I notice, of course, is the very low TX power output of 15dBm.
Can you check iwconfig to check which TX power was selected?
It should write something like this:
wlan0 IEEE 802.11bg  ESSID:  
  Mode:Managed  Frequency:2. GHz  Access Point: X
  Bit Rate=XX Mb/s   Tx-Power=20 dBm  
  .


So if there's a higher value than 15, please tell me so.
If the value is 15 there, too. Try manually setting the TX power:
 iwconfig wlan0 txpower 20

This might be a bug in the card's PROM or possibly the code reading it. I also 
have a card
where it incorrectly reads the TX power value (but it's 19dBm for me, so it 
doesn't matter that much for me...).


Besides that, please tell me exactly at which point in the log messages it 
starts to break.
That's essential information for me.

Also, moving to latest b43 development code might help, too. It has improved TX 
power
control code which might scale a bit better on your device.
You can do so by downloading compat-wireless: 
http://wireless.kernel.org/en/users/Download

-- 
Greetings, Michael.
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: More data on open-source firmware crash

2009-02-22 Thread Francesco Gringoli

On Feb 22, 2009, at 8:10 PM, Larry Finger wrote:

 Francesco and Lorenzo,

 I modified my driver source to dump the firmware machine state  
 whenever the
 b43_dma_handle_txstatus routine was called with an out-of-order  
 cookie. With
 proprietary firmware, the test of a flood ping in one job and  
 repeated tcpperf
 transmissions in a second ran for 10 hours without a single  
 failure. With the
 open-source firmware it failed after about 2 hours.

 Below are the saved status data. Listed for each item are the  
 cookie, the
 sequence number, and the skb length. The 0x84 length values come  
 from the ping.
 All of the out-of-order items come from tcpperf - is it significant  
 that they
 are from the longer set? Note that a number of cookie/sequence pairs  
 are
 missing, namely: 2064/9C1, 2066/9C2, 2068/9C3, 206A/9C4, 206C/9C5,  
 2072/9C7,
 2076/9C9, and 207A/9CB. Cookie 206E is missing, but the next  
 sequence (9C6) was
 attached to cookie 2070.


Larry,

do you mind testing this firmware? It's not the solution, but can help  
us understanding if we should follow this way. Download at 
http://www.ing.unibs.it/~gringoli/fwtest.tar.gz

Before using this firmware please recompile b43 changing these two  
definitions in b43.h

#define B43_MARKER_ID_REG   52
#define B43_MARKER_LINE_REG 53

I coded the firmware so that it will raise a B43_DEBUGIRQ_MARKER with  
id 10, line 100 if the condition I'm thinking to is true. You will see  
(I hope) in dmesg.

Thanks,
bye
-FG
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: I need some help stabaizing b43 for a 4306

2009-02-22 Thread John Mountcastle

Here is a little snippet of dmesg, just after I brought the link up.

b43-phy0 debug: Current TX power output: 15.0 dBm, Desired TX power output: 
15.0 dBm
SFW2-OUT-ERROR IN= OUT=wlan0 SRC=192.168.0.197 DST=146.6.54.21 LEN=52 TOS=0x00 
PREC=0x00 TTL=64 ID=16037 DF PROTO=TCP SPT=57570 DPT=80 WINDOW=227 RES=0x00 ACK 
FIN URGP=0 OPT (0101080A002B6F416FD3DC29) 
SFW2-OUT-ERROR IN= OUT=wlan0 SRC=192.168.0.197 DST=146.137.96.7 LEN=52 TOS=0x00 
PREC=0x00 TTL=64 ID=10146 DF PROTO=TCP SPT=39841 DPT=80 WINDOW=589 RES=0x00 ACK 
FIN URGP=0 OPT (0101080A002B77F70FA3EE62) 
b43-phy0 debug: Current TX power output: 15.0 dBm, Desired TX power output: 
15.0 dBm

Here is iwconfig wlan0

mtcs...@sybill:~/Desktop sudo /usr/sbin/iwconfig wlan0
wlan0 IEEE 802.11bg  ESSID:MBR-6d2  
  Mode:Managed  Frequency:2.417 GHz  Access Point: 00:30:44:02:76:D2   
  Bit Rate=1 Mb/s   Tx-Power=27 dBm   
  Retry min limit:7   RTS thr:off   Fragment thr=2352 B   
  Encryption key:7761-7465-7266-616C-6C30-3030-30   Security mode:open
  Power Management:off
  Link Quality=51/100  Signal level:-5 dBm  Noise level=-17 dBm
  Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
  Tx excessive retries:0  Invalid misc:0   Missed beacon:0

Note that while b43-phy0 debug says desired output is 15.0dBm, iwconfig says 
it's askigng for 27. 

Next I went about doing other things and when I saw the interface go down 
(NetworkManager) I shot off another dmesg. So, the very end of this message was 
within seconds of the interface going down.

I may have to reinstalll frm scratch, I seem to have screwed up my kernel 
sources, I can't compile a new 'default' kernel. Let me know what you think of 
my little problem and what i should try next.

Regards

John

Initializing cgroup subsys cpuset
Initializing cgroup subsys cpu
Linux version 2.6.27.7-9-debug (ge...@buildhost) (gcc version 4.3.2 
[gcc-4_3-branch revision 141291] (SUSE Linux) ) #2 SMP Sun Feb 22 16:55:19 EST 
2009
PAT WC disabled due to known CPU erratum.
BIOS-provided physical RAM map:
 BIOS-e820:  - 0009f800 (usable)
 BIOS-e820: 0009f800 - 000a (reserved)
 BIOS-e820: 000ce000 - 000d (reserved)
 BIOS-e820: 000dc000 - 0010 (reserved)
 BIOS-e820: 0010 - 3dee (usable)
 BIOS-e820: 3dee - 3deec000 (ACPI data)
 BIOS-e820: 3deec000 - 3df0 (ACPI NVS)
 BIOS-e820: 3df0 - 4000 (reserved)
 BIOS-e820: ff80 - ffc0 (reserved)
 BIOS-e820: fc00 - 0001 (reserved)
DMI present.
last_pfn = 0x3dee0 max_arch_pfn = 0x10
kernel direct mapping tables up to 3800 @ 7000-c000
RAMDISK: 37515000 - 37fefc04
ACPI: RSDP 000F6560, 0014 (r0 HP)
ACPI: RSDT 3DEE674D, 0030 (r1 HP 3084  604  LTP0)
ACPI: FACP 3DEEBED2, 0074 (r1 HP 3084  604 PTL50)
ACPI: DSDT 3DEE6C96, 523C (r1 HP 3084  604 MSFT  10E)
ACPI: FACS 3DEFCFC0, 0040
ACPI: BOOT 3DEEBFD8, 0028 (r1 HP 3084  604  LTP1)
ACPI: SSDT 3DEE6B84, 010A (r1 HP 30841 INTL 20030224)
ACPI: DMI detected: Hewlett-Packard
94MB HIGHMEM available.
896MB LOWMEM available.
  mapped low ram: 0 - 3800
  low ram:  - 3800
  bootmap 9000 - 0001
(9 early reservations) == bootmem [00 - 003800]
  #0 [00 - 001000]   BIOS data page == [00 - 001000]
  #1 [001000 - 002000]EX TRAMPOLINE == [001000 - 002000]
  #2 [006000 - 007000]   TRAMPOLINE == [006000 - 007000]
  #3 [10 - 6449dc]TEXT DATA BSS == [10 - 6449dc]
  #4 [0037515000 - 0037fefc04]  RAMDISK == [0037515000 - 0037fefc04]
  #5 [645000 - 648000]INIT_PG_TABLE == [645000 - 648000]
  #6 [09f800 - 10]BIOS reserved == [09f800 - 10]
  #7 [007000 - 009000]  PGTABLE == [007000 - 009000]
  #8 [009000 - 01]  BOOTMAP == [009000 - 01]
Zone PFN ranges:
  DMA  0x - 0x1000
  Normal   0x1000 - 0x00038000
  HighMem  0x00038000 - 0x0003dee0
Movable zone start PFN for each node
early_node_map[2] active PFN ranges
0: 0x - 0x009f
0: 0x0100 - 0x0003dee0
On node 0 totalpages: 253567
free_area_init_node: node 0, pgdat c0512c00, node_mem_map c100
  DMA zone: 3963 pages, LIFO batch:0
  Normal zone: 223300 pages, LIFO batch:31
  HighMem zone: 24074 pages, LIFO batch:3
Using APIC driver default
ACPI: PM-Timer IO Port: 0x1008
SMP: Allowing 1 CPUs, 0 hotplug CPUs
Local APIC disabled by BIOS -- you can enable it with lapic
mapped APIC to b000 (018bc000)
PM: Registered nosave memory: 0009f000 - 000a
PM: Registered nosave memory: 000a - 000ce000
PM: Registered nosave memory: 

Re: More data on open-source firmware crash

2009-02-22 Thread Larry Finger
Francesco Gringoli wrote:
 
 do you mind testing this firmware? It's not the solution, but can help
 us understanding if we should follow this way. Download at
 http://www.ing.unibs.it/~gringoli/fwtest.tar.gz
 
 Before using this firmware please recompile b43 changing these two
 definitions in b43.h
 
 #define B43_MARKER_ID_REG   52
 #define B43_MARKER_LINE_REG 53
 
 I coded the firmware so that it will raise a B43_DEBUGIRQ_MARKER with id
 10, line 100 if the condition I'm thinking to is true. You will see (I
 hope) in dmesg.

I ran the test firmware until there was a failure. The B43_DEBUGIRQ_MARKER was
not present in the dmesg output.

I also did as Michael suggested and preserved the depth of the tx_status queue,
as well as the maximum depth observed. The latter value is 16; therefore, it is
possible that the queue is being overrun. It is certainly full if the limit
really is 16. I still need to look at the detailed data from the last run, but
it is late here today.

Larry

___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev