No DMA RX on some BCM4321, on BCM43224 and BCM43225

Rafał Miłecki zajec5 at gmail.com
Tue Jul 19 02:56:24 EDT 2011


W dniu 19 lipca 2011 01:32 użytkownik Rafał Miłecki <zajec5 at gmail.com> napisał:
> W dniu 18 lipca 2011 22:29 użytkownik Larry Finger
> <Larry.Finger at lwfinger.net> napisał:
>> On 07/18/2011 03:14 PM, Rafał Miłecki wrote:
>>>
>>> When using DMA on one of my BCM4321s and BCM43224 or BCM43225 I don't
>>> get a single RX IRQ.
>>>
>>> Doing scanning requests sends TX packets to the hardware, and the
>>> ucode generates IRQs for confirming transmitted packets. RX does not
>>> seem to work however. I expected to see "native" beacons, or response
>>> to the scanning request.
>>>
>>> Do you have idea what may be wrong, where should I look at? So far
>>> I've discovered (from looking at MMIO dumps) that:
>>> 1) wl uses 38 as B43_DMA0_RX_FRAMEOFFSET (instead of our 30)
>>> 2) wl enables channel with 0x801, not just 0x1 (specs say 0x800 is
>>> Parity Disable - Not on all units)
>>>
>>> I've implemented both changes in b43, it didn't help.
>>
>> Does your MMIO dump from wl show the setup of the RX ring and the RX
>> descriptors? There might be something special there.
>>
>> What are the differences between the BCM4321 that works, and the one that
>> doesn't? That might provide a clue for me to check in the reference driver.
>
> Larry, for now, can you check:
>
> 1) When wl does set parity (0x800) bit
> 2) Does newer wl always use 38 offset for RX header?

After adding routing (translation) address, using parity bit (0x800)
and cold booting, DMA seems to work =)

-- 
Rafał



More information about the b43-dev mailing list