2011-05-17 10:40:11

by Rafał Miłecki

[permalink] [raw]
Subject: ssb: how did we get special reject bit for SSB rev 2.3?

I've just received 14e4:4312 card which is G-PHY BCM4311.

I've checked for SSB rev in MMIO dump:
read32 0xfaafcff8 -> 0x100422c5

0x100422c5 & (SSB_IDLOW_SSBREV == 0xF0000000) = 0x10000000
So this is SSB rev 2.3:
#define SSB_IDLOW_SSBREV_23 0x10000000 /* 2.3 */

Currently we are using different REJECT bit for SSB rev 2.3:
#define SSB_TMSLOW_REJECT 0x00000002 /* Reject (Standard Backplane) */
#define SSB_TMSLOW_REJECT_23 0x00000004 /* Reject (Backplane rev 2.3) */

Does anyone know where did we get this from?

wl does never use this bit:

$ grep "ssb_write32(0xf98)" wl.4312.txt | sort | uniq
ssb_write32(0xf98) <- 0x00000003
ssb_write32(0xf98) <- 0x00010000
ssb_write32(0xf98) <- 0x00010002
ssb_write32(0xf98) <- 0x00030003
ssb_write32(0xf98) <- 0x00040003
ssb_write32(0xf98) <- 0x00070000
ssb_write32(0xf98) <- 0x00070001
ssb_write32(0xf98) <- 0x00070003
ssb_write32(0xf98) <- 0x20010000
ssb_write32(0xf98) <- 0x20010002
ssb_write32(0xf98) <- 0x20040003
ssb_write32(0xf98) <- 0x20070000
ssb_write32(0xf98) <- 0x20070001
ssb_write32(0xf98) <- 0x20070003

--
Rafał


2011-05-17 11:32:34

by Jonas Gorski

[permalink] [raw]
Subject: Re: ssb: how did we get special reject bit for SSB rev 2.3?

2011/5/17 Rafał Miłecki <[email protected]>:
> Currently we are using different REJECT bit for SSB rev 2.3:
> #define  SSB_TMSLOW_REJECT      0x00000002 /* Reject (Standard Backplane) */
> #define  SSB_TMSLOW_REJECT_23   0x00000004 /* Reject (Backplane rev 2.3) */
>
> Does anyone know where did we get this from?

Broadcom public sources define it as follows:
#define SBTML_REJ_MASK 0x0006 /* reject field */
#define SBTML_REJ 0x0002 /* reject */
#define SBTML_TMPREJ 0x0004 /* temporary reject,
for error recovery */

>
> wl does never use this bit:

It seems neither do the public ssb sources:
# grep -r 'SBTML_TMPREJ' shared/ | wc -l
0
#

Jonas

2011-05-17 11:45:33

by Rafał Miłecki

[permalink] [raw]
Subject: Re: ssb: how did we get special reject bit for SSB rev 2.3?

W dniu 17 maja 2011 13:32 użytkownik Jonas Gorski
<[email protected]> napisał:
> 2011/5/17 Rafał Miłecki <[email protected]>:
>> Currently we are using different REJECT bit for SSB rev 2.3:
>> #define  SSB_TMSLOW_REJECT      0x00000002 /* Reject (Standard Backplane) */
>> #define  SSB_TMSLOW_REJECT_23   0x00000004 /* Reject (Backplane rev 2.3) */
>>
>> Does anyone know where did we get this from?
>
> Broadcom public sources define it as follows:
> #define SBTML_REJ_MASK          0x0006          /* reject field */
> #define SBTML_REJ               0x0002          /* reject */
> #define SBTML_TMPREJ            0x0004          /* temporary reject,
> for error recovery */
>
>>
>> wl does never use this bit:
>
> It seems neither do the public ssb sources:
> # grep -r 'SBTML_TMPREJ' shared/ | wc -l
> 0
> #

Where did you check this? AFAIK wl has only linux_osl.c public
available and brcmsmac does not support SSB at all. Do you find any
references to SBTML_REJ in this "shared/*"?

--
Rafał

2011-05-17 11:20:26

by Michael Büsch

[permalink] [raw]
Subject: Re: ssb: how did we get special reject bit for SSB rev 2.3?

On Tue, 2011-05-17 at 12:40 +0200, Rafał Miłecki wrote:
> Does anyone know where did we get this from?

Should be in the git history.

--
Greetings Michael.


2011-05-17 11:50:31

by Rafał Miłecki

[permalink] [raw]
Subject: Re: ssb: how did we get special reject bit for SSB rev 2.3?

W dniu 17 maja 2011 13:20 użytkownik Michael Büsch <[email protected]> napisał:
> On Tue, 2011-05-17 at 12:40 +0200, Rafał Miłecki wrote:
>> Does anyone know where did we get this from?
>
> Should be in the git history.

It's here since:
[SSB]: add Sonics Silicon Backplane bus support

Maybe bcm43xx does contain sth...

--
Rafał

2011-05-17 13:14:29

by Rafał Miłecki

[permalink] [raw]
Subject: Re: ssb: how did we get special reject bit for SSB rev 2.3?

W dniu 17 maja 2011 13:50 użytkownik Rafał Miłecki <[email protected]> napisał:
> W dniu 17 maja 2011 13:20 użytkownik Michael Büsch <[email protected]> napisał:
>> On Tue, 2011-05-17 at 12:40 +0200, Rafał Miłecki wrote:
>>> Does anyone know where did we get this from?
>>
>> Should be in the git history.
>
> It's here since:
> [SSB]: add Sonics Silicon Backplane bus support
>
> Maybe bcm43xx does contain sth...

This check was not present in bcm43xx. So I guess specs were updated
and ssb was written basing on updated specs.

--
Rafał

2011-05-17 12:18:19

by Jonas Gorski

[permalink] [raw]
Subject: Re: ssb: how did we get special reject bit for SSB rev 2.3?

2011/5/17 Rafał Miłecki <[email protected]>:
> W dniu 17 maja 2011 13:32 użytkownik Jonas Gorski
> <[email protected]> napisał:
>> 2011/5/17 Rafał Miłecki <[email protected]>:
>>> Currently we are using different REJECT bit for SSB rev 2.3:
>>> #define  SSB_TMSLOW_REJECT      0x00000002 /* Reject (Standard Backplane) */
>>> #define  SSB_TMSLOW_REJECT_23   0x00000004 /* Reject (Backplane rev 2.3) */
>>>
>>> Does anyone know where did we get this from?
>>
>> Broadcom public sources define it as follows:
>> #define SBTML_REJ_MASK          0x0006          /* reject field */
>> #define SBTML_REJ               0x0002          /* reject */
>> #define SBTML_TMPREJ            0x0004          /* temporary reject,
>> for error recovery */
>>
>>>
>>> wl does never use this bit:
>>
>> It seems neither do the public ssb sources:
>> # grep -r 'SBTML_TMPREJ' shared/ | wc -l
>> 0
>> #
>
> Where did you check this? AFAIK wl has only linux_osl.c public
> available and brcmsmac does not support SSB at all. Do you find any
> references to SBTML_REJ in this "shared/*"?

This is from a bcm47xx router GPL tarball (the asus rt-n10 to be
specific), but it's also in the brcm80211 drivers:
<http://lxr.linux.no/#linux+v2.6.38/drivers/staging/brcm80211/include/sbconfig.h#L150>

and SBTML_REJ usage:
<http://lxr.linux.no/#linux+v2.6.38/drivers/staging/brcm80211/util/sbutils.c#L459>

Jonas