Re: Linux Incompatibility List

Andrew Miklas
2004-08-29T21:07:27Z

[-- Attachment #1: Type: text/plain, Size: 2938 bytes --]

Hi,

On August 28, 2004 11:21 pm, Gianni Tedesco wrote:
<snip>
> OK, exactly which drivers were you using to do this? When I had the
> interface brought up in win2k-server with the bcmwl5.sys driver I was
> seeing every few hundred milliseconds a batch of say 12 2-byte reads on
> the register space to check status...

I was never able to get it going myself (If I remember correctly, there was
some issue with how the interrupts were being routed on my notebook. We were
doing some strange stuff to forward interrupts from the host kernel into
Bochs that didn't work on all configurations.)

However, Frank Cornelis was using the Windows 98 drivers running under Win98
on pcidev+Bochs. Kendall Blake was using the Windows XP drivers and a
modified ndiswrapper running under Linux also on pcidev+Bochs. Kendall told
me that he generated about 400 megs of logs just looking at the card
initialization. I think it was at this point I decided that decompiling the
thing would be easier. :)

Anyway, you could try asking Frank and Kendall for some of the data they
gathered.

kendallb () eden rutgers edu
fcorneli () pandora be

<snip>
>
> Hrm, you're sure those variations aren't trivial? Although theres lots
> of checks, I would have thought they would just be stuff like "card A
> supports X, Y and Z features"?

The differences between radio chips (ex. a vs. g) aren't going to be trivial.
That is to say, entirely different code paths are executed in the wlc_phy.o
component. The variations caused by different board configurations don't
appear to be too big (at least from the code I've looked at). Some of the
variations (probably bug fixes) caused by different revisions of the chips
are also a little large. But, I think it will be pretty difficult to
determine how the differences in the dumps relate to differences in the
hardware configuration.

>
> The approach that makes the most sense to me is get 1 card working to
> the point where it sends/receives packets, then look at the binaries to
> see what the variations are, and how they apply to what cards and just
> go fill in the blanks...

The problem is that all Broadcom's wireless hardware is supported by one big
driver. If you wanted to be able to see the differences between what code is
executed against each device, you'd pretty much have to decompile the whole
thing, or at least do some serious debugger work. Assuming you don't want to
do that, it seems you're left with doing the capture analysis on every
variation, which doesn't seem practical.

<snip>
> Also, you mention DMA and sending/receiving packets, exactly how much
> progress have you made so far?

I'm pretty sure that they were able to get packets to go back and forth. But,
the last I heard from anyone using the capture method with pcidev and Bochs
was about six months ago.

-- Andrew

[-- Attachment #2: Type: application/pgp-signature, Size: 201 bytes --]