No DMA RX on some BCM4321, on BCM43224 and BCM43225

Rafał Miłecki zajec5 at gmail.com
Mon Jul 18 18:39:10 EDT 2011


W dniu 18 lipca 2011 22:41 użytkownik Michael Büsch <m at bues.ch> napisał:
> On Mon, 18 Jul 2011 22:14:50 +0200
> Rafał Miłecki <zajec5 at gmail.com> 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?
>
> Is wl still using the same dma engine for
> RX as older versions did? (what was it? the first?)

Yes. That's what wl does:

1) Disabling DMA engines (RX part)
write32 0xfaafc220 <- 0x00000000
 read32 0xfaafc230 -> 0x00000000

2) Enabling DMA engines (RX part)
 read32 0xfaafc220 -> 0x00000040
write32 0xfaafc220 <- 0x0000084d CTL: [38 << 1 (OFFSET) | 0x1 (EN) |
0x800 (PARITY)]
write32 0xfaafc228 <- 0x18948000 LO: [lo addr & ~routing_bits]
write32 0xfaafc22c <- 0x80000000 HI: [routing & ~ROUT_MASK | routing]

(improved) b43 does:

write32 0xfaafc220 <- 0x0000084d CTL
write32 0xfaafc228 <- 0x17b70000 LO
write32 0xfaafc22c <- 0x80000000 HI
write32 0xfaafc224 <- 0x00000400 STOP IDX

-- 
Rafał



More information about the b43-dev mailing list