2010-12-01 19:15:37

by Larry Finger

[permalink] [raw]
Subject: RFC - removal of SPROM fallback

At one time, we thought that we had found BCM43xx devices with no SPROM. In the
one case that I remember, it was because the SPROM had been relocated.

I now have the data from John's device that needs the revision fixup and I know
what is wrong - it is rev 2 with corrupted CRC. The defaulting to rev 1 is
getting almost everything wrong, including MAC address and vendor. My plan is to
write a better fixup routine.

At the moment, we have some SPROM fallback code that has not been fully
implemented, and is probably not needed. Are there any objections to stripping
this code out of drivers/ssb/pci.c and drivers/ssb/sprom.c?

Larry


2010-12-01 22:20:39

by Florian Fainelli

[permalink] [raw]
Subject: Re: RFC - removal of SPROM fallback

Hello,

Le 01/12/2010 22:56, Michael Büsch a écrit :
> On Wed, 2010-12-01 at 13:15 -0600, Larry Finger wrote:
>> At one time, we thought that we had found BCM43xx devices with no SPROM. In the
>> one case that I remember, it was because the SPROM had been relocated.
>>
>> I now have the data from John's device that needs the revision fixup and I know
>> what is wrong - it is rev 2 with corrupted CRC. The defaulting to rev 1 is
>> getting almost everything wrong, including MAC address and vendor. My plan is to
>> write a better fixup routine.
>>
>> At the moment, we have some SPROM fallback code that has not been fully
>> implemented, and is probably not needed. Are there any objections to stripping
>> this code out of drivers/ssb/pci.c and drivers/ssb/sprom.c?
>
> Yes. The code is needed for bcm63xx embedded devices. The code that uses
> it currently is not in mainline, though. It can be found in the OpenWRT
> repositories.

It actually is mainline and used.

>
> But I still think that the SPROM fallback mechanism should be replaced
> by a "platform data" based mechanism, or similar. Just removing it
> without replacement is not an option, because bcm63xx embedded really
> does not have an SPROM.

Correct. The rationale behind this is that if you have a big flash for
your system, you do not want to afford the cost for another flash chip
storing the SPROM. Whichever mechanism works for your, I will do the
required changes in the bcm63xx architecture code.

>
> The bcm63xx was the reason the fallback mechanism was implemented in
> the first place. See git logs for more details.
>


2010-12-01 23:08:33

by Larry Finger

[permalink] [raw]
Subject: Re: RFC - removal of SPROM fallback

On 12/01/2010 04:20 PM, Florian Fainelli wrote:
> Hello,
>
> Le 01/12/2010 22:56, Michael Büsch a écrit :
>> On Wed, 2010-12-01 at 13:15 -0600, Larry Finger wrote:
>>> At one time, we thought that we had found BCM43xx devices with no
>>> SPROM. In the
>>> one case that I remember, it was because the SPROM had been relocated.
>>>
>>> I now have the data from John's device that needs the revision fixup
>>> and I know
>>> what is wrong - it is rev 2 with corrupted CRC. The defaulting to rev
>>> 1 is
>>> getting almost everything wrong, including MAC address and vendor. My
>>> plan is to
>>> write a better fixup routine.
>>>
>>> At the moment, we have some SPROM fallback code that has not been fully
>>> implemented, and is probably not needed. Are there any objections to
>>> stripping
>>> this code out of drivers/ssb/pci.c and drivers/ssb/sprom.c?
>>
>> Yes. The code is needed for bcm63xx embedded devices. The code that uses
>> it currently is not in mainline, though. It can be found in the OpenWRT
>> repositories.
>
> It actually is mainline and used.
>
>>
>> But I still think that the SPROM fallback mechanism should be replaced
>> by a "platform data" based mechanism, or similar. Just removing it
>> without replacement is not an option, because bcm63xx embedded really
>> does not have an SPROM.
>
> Correct. The rationale behind this is that if you have a big flash for
> your system, you do not want to afford the cost for another flash chip
> storing the SPROM. Whichever mechanism works for your, I will do the
> required changes in the bcm63xx architecture code.

There is no need for that. I'll start my changes after the check for a fallback
SPROM returns NULL. My only reason for removing anything is that I thought it
was not used.

Larry


2010-12-01 19:55:01

by Rafał Miłecki

[permalink] [raw]
Subject: Re: RFC - removal of SPROM fallback

2010/12/1 Larry Finger <[email protected]>:
> At one time, we thought that we had found BCM43xx devices with no SPROM. In the
> one case that I remember, it was because the SPROM had been relocated.

That's right.


> I now have the data from John's device that needs the revision fixup and I know
> what is wrong - it is rev 2 with corrupted CRC. The defaulting to rev 1 is
> getting almost everything wrong, including MAC address and vendor. My plan is to
> write a better fixup routine.

That's interesting... so is that SPROM rev2 with CRC counted like for
rev1? Are you sure about this case? AFAIR:
1) John got CRC error when we dropped hack and treated SPROM as
revision it reports
2) John got success CRC check when we hacked his SPROM to "be" rev 1


> At the moment, we have some SPROM fallback code that has not been fully
> implemented, and is probably not needed. Are there any objections to stripping
> this code out of drivers/ssb/pci.c and drivers/ssb/sprom.c?

I don't believe we will find out SSBs without SPROMs and implementing
support for new Broadcom cards should not depend on SSB code... so I
do not any problems about that.


--
Rafał

2010-12-01 21:57:17

by Michael Büsch

[permalink] [raw]
Subject: Re: RFC - removal of SPROM fallback

On Wed, 2010-12-01 at 13:15 -0600, Larry Finger wrote:
> At one time, we thought that we had found BCM43xx devices with no SPROM. In the
> one case that I remember, it was because the SPROM had been relocated.
>
> I now have the data from John's device that needs the revision fixup and I know
> what is wrong - it is rev 2 with corrupted CRC. The defaulting to rev 1 is
> getting almost everything wrong, including MAC address and vendor. My plan is to
> write a better fixup routine.
>
> At the moment, we have some SPROM fallback code that has not been fully
> implemented, and is probably not needed. Are there any objections to stripping
> this code out of drivers/ssb/pci.c and drivers/ssb/sprom.c?

Yes. The code is needed for bcm63xx embedded devices. The code that uses
it currently is not in mainline, though. It can be found in the OpenWRT
repositories.

But I still think that the SPROM fallback mechanism should be replaced
by a "platform data" based mechanism, or similar. Just removing it
without replacement is not an option, because bcm63xx embedded really
does not have an SPROM.

The bcm63xx was the reason the fallback mechanism was implemented in
the first place. See git logs for more details.

--
Greetings Michael.