Notes on ssb specs and implementation

Rafał Miłecki zajec5 at
Mon Feb 14 17:32:05 EST 2011

W dniu 14 lutego 2011 23:01 użytkownik Michael Büsch <mb at> napisał:
> On Mon, 2011-02-14 at 20:51 +0100, Rafał Miłecki wrote:
>> W dniu 9 lutego 2011 21:17 użytkownik Michael Büsch <mb at> napisał:
>> > On Wed, 2011-02-09 at 21:00 +0100, Rafał Miłecki wrote:
>> >> Michael: was there any reasons why we didn't implement some parts of
>> >> core-disabling code?
>> >
>> > The function are complete as of latest reverse engineering efforts.
>> > Broadcom added stuff, if they do more stuff in latest code.
>> Nothing has changed in specs since 2006:
>> For some reason routines that were present even in 2006 was not implemented.
> Well, so the function was implemented prior to 2006. Which doesn't
> surprise me. It was one of the first ones.
>> I've just written missing parts,
> May I see them?

Sure. It's not for submission, so you have to expect magic values.

>> tested and it still does not work :|
>> The only advantage discovered so far is that ssb detects sth is wrong
>> with IM state:
>> [ 2661.449647] ssb: Timeout waiting for bitmask 01800000 on register
>> 0F90 to clear.
>> I can see wl experiencing the same problems after loading b43. It
>> reads 0xf90 dozen of times in a row.
> And that's the thing why I always avoid touching that function.
> There's so much magic going on, so that completely weird things happen
> all the time. :D

Hm, that looks pretty easy and not really complicated. Of course, if
you figure out how it's working.

Personally I don't like for example description at . It's really messed in "Put
PHY Into Reset".
Section "Put PHY Into Reset" is really "How to reset PHY" and it
duplicates code of takine PHY out of reset.

We also have a lot of magic in ssb_device_enable. We reset SB and PHY
at the same time. I guess it introduces some optimization but makes it
harder to understand, especially if you try to understand implemented
code and look as specs at the same time.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: ssb.initiator.patch
Type: application/octet-stream
Size: 1299 bytes
Desc: not available
URL: <>

More information about the b43-dev mailing list