OpenWrt Forum Archive

Topic: BCM 63xx chips - ADSL State of art

The content of this topic has been archived between 6 Feb 2018 and 7 May 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

Hi all!

Now with backfire trunk, we have partial support on Broadcomm 63xx chips. I'd like to work on adsl line. Is there any tech doc I can access (googled it without luck)?

All he have at now is binary code to be reversed?

I have a lot of AG241 (linksys AR7) working, and I need a substitutive all in one router with an affordable cost. So I can make some effort on 63xx adsl supporting. But first of all I'd like to know if there's someone else working on this. I have previous experience on net drivers writing so with a tech doc it's only a "seat & code" matter. If I have to reverse BC binary it could take a longer effort.

Best Regards.

I'll add
Did someone tried to request the documentation at Broadcom?
Is the binary module linked to the kernel?, if it not using a wrapper it is infringing the  GPL license, and then they need tho disclose it.

apop wrote:

I'll add
Did someone tried to request the documentation at Broadcom?

Sure it's not public avalaible and it's not going to be. I have worked on some 3g modem drivers and all I had was a tech doc (written in chinese) that somebody "missed".

apop wrote:

Is the binary module linked to the kernel?, if it not using a wrapper it is infringing the  GPL license, and then they need tho disclose it.

yes. That's right. I think a lot of new adsl routers are broadcom based, so it would be amazing if we work a little on make it work. If I need to buy a modem for connect an adsl router to inet it's a little nonsense. I prefer making an effort on this than live buying used ag241 routers on ebay.
And I prefer develop adsl driver for OpenWRT better than OpenVPN support for stock firmware

i sent an email to belking requesting the adsl source code, i don't think they will comply, but ...

apop:

They will not comply, nor do they have to under current GPL. The build system provided by Broadcom to ODMs and other partners separates out the binary object code for chip-specific features such as 802.11, ADSL, and/or Ethernet into a separate, non-GPL or non-public, directory and are protected under IP laws. In fact, ODMs and other partners don't have access to these bits either.

Individual business units may, from time to time, open or provide a way to use closed source binary objects, as they perceive it benefits their businesses. So far, the Broadband group is not one that sees a benefit in supporting Open Source development.

I think this viewpoint will change over time, especially as projects like OpenWRT become a reasonable alternative to the SDKs provided by the various business units. Progress is pretty closely monitored.

marc.

marca56 wrote:

apop:

They will not comply, nor do they have to under current GPL. The build system provided by Broadcom to ODMs and other partners separates out the binary object code for chip-specific features such as 802.11, ADSL, and/or Ethernet into a separate, non-GPL or non-public, directory and are protected under IP laws. In fact, ODMs and other partners don't have access to these bits either.

marc.

If I do a driver based on reverse work on, for example, a d-link router, ¿could we be in trouble with broadcom lawyers? If it's so, I'll add OpenVpn support to d-link GPL toolkit

i think if it a "clean room design" implementation, there is no trouble, also adsl is a standard and i doubt broadcom hast patents over adsl.

apop wrote:

i think if it a "clean room design" implementation, there is no trouble, also adsl is a standard and i doubt broadcom hast patents over adsl.

Fine. I think so too. So I'd like to know if some one has a datasheet of any chip of 63xx type. Something like this would be 50% of job done (http://www.colognechip.com/hfc-s-pcia.pdf)

i think these datsheets aren't available, there are only products briefs.
Ida Pro has a mips decompiler, but is not free, with it you can make a document with specifications to make it work, here is a free dissassembler
http://acade.au7.de/disasmips.htm.

Apop:

I doubt that a clean room attempt would work in this case because that would depend on a clear view and understanding of the chip internals, which you don't have.

Yes; ADSL is a standard but the implementation is very complex and troublesome. That is why there are no "free" implementations.

Broadcom has many patents including some primary ones on ADSL. Henry Nicholas and Henry Samueli, the founders of Broadcom, created the first commercially d'eployable modems (remember the Nortel 1 meg modems?). Here's just one of the many primary technology patents belonging to the company: http://www.freepatentsonline.com/7305608.html. This one is for trellis encoding, which is very fundamental in DSL.

marc

i still think there is some way to make it, but it's a big project, not for one person, odicha is with better luck on the openvpn port to his dlink than whit a full functioning adsl driver

In the case of bcm63xx adsl driver is in fact acheived throught a DSP modlue. Sa a maproute will be  1°) design of an ADSL algorithm  base on RFC 2°) to be able to control DSP implementation 3°) translate the algorithm to DSP logic.
http://www.freepatentsonline.com/7388905.pdf
Good Luck

(Last edited by SGDA on 7 May 2010, 12:46)

elephant77's Attatchment does contain what seems to be complete dsl driver code.

I think drivers needed for the part are: atmapi, blaadd and adsldd. It has all three.

Only problem... it's non gpl but i will still attempt to compile and test it later.

Nice find. Netgear wont be on Broadcom's Christmas card list that's for sure, thought they usually include the blob not source heh.

Are the source dsl drivers useful for understanding without reverse engineering the binary drivers and rewrite new DSL drivers?

sblanco wrote:

Are the source dsl drivers useful for understanding without reverse engineering the binary drivers and rewrite new DSL drivers?

very but then that would be illegal, just taking the addresses from the source can be seen as copying. If my understanding/assumption of this copyright stuff is right. Dont quote me though, im not trained in law.

cleanroom engineering should be harmless according to me; even I am not a lawyer.
but according to me, things can be read and re-written which do exactly the same but don't look like copied, and NO I don't mean renaming variables/functions.

clean room is not a problem but that "clean room" becomes dirty if you have say, worked for the company that developed the *ware, seen technical documents, have inside information, etc.

To do a "clean room" reimplementation, you need two people at least: One that creates a specification based on the original drivers, who is then "tainted", and one who never touches or looks at the original drivers sources, but implements a new driver based on the specs.

KM

One that creates a specification based on the original drivers

would that be decompiled/reverse engineered binary drivers or proprietary source/specification?

We do have the code.

Does anybody developing ADSL driver now?

I think that may take some part of the work.

BTW, I have successfully compiled and using openvpn, lzo and some other tolls in DSL toolkit (DSL-2650U).
But its software (I think kernel), have problems with consistency of network connection on heavy load.
Think driver for OpenWRT will be better.

well am trying to poke my nose in DSL drivers for current backfire trunk.. checking out possibilities..
if anybody wishing to collaborate during their free time they can raise their hands.:)

Here is mine hand. smile

I have the device so think will be able to make tests on it.
Do not have deep knowledges in driver writing, but have strong C skills.

So I understand, that we should implement "clean room" here.
And I think we better to try one more thing.
Maybe this drivers are permitted to public...
Note of "copyright-broadcom" says that there should be "written permission".
Maybe Netgear has that permission?
What do you think if we ask Netgear about it.
Creating of bicycle is not always interesting thing.

Why hasn't someone yet, used a standard broadcom firmware with binary blob drivers, write a simple driver that creates a couple of char devices that we can use to dump the atm processor and adsl registers?

We dump the registers at certain stages and checck the differences between each dump.

I'd have done this already but i dont do C.