User Tools

Site Tools

This wiki is read only and for archival purposes only. >>>>>>>>>> Please use the new OpenWrt wiki at <<<<<<<<<<

BCM63xx ADSL Support on Linux kernel

Davolink DV-2020
FYI: Linux kernel was released on 2004-Aug-14; this is not old, this is ancient (see Linux_kernel#Maintenance)

I have recently begun compiling and adapting the code found at and testing it on a dv-2020 platform.

First results are promising just now managed to compile and install the drivers.

Kernel Modules

Setup Manual WAN Connection

Example script below sets up regular wan connection, just like cfm does but without the overhead.

# minimal script to start IPoEoATM
# Using binary drivers from dv20xx_DV2010_SIP_ANNEX_A.1.05_consumer.tar.gz
# adslctl version 1.0                                                             
# ADSL PHY: AnnexA version - A2pB022f.d19e   
# atmctl version 1.1                                                              
# Load responsible kernel modules
insmod /lib/modules/
insmod /lib/modules/
insmod /lib/modules/
#insmod /lib/modules/
# ADSL link up: ADSL2+ (llc encapsulation)
adslctl start --mod a --bitswap on --sra off --lpair i**
adslctl connection --up
#adslctl --version
# ATM setup
atmctl start --pqs 125
atmctl operate intf --state 0 enable
#atmctl operate tdte --show
atmctl operate vcc --add 0.8.35 aal5 1 llcencaps --addq 0.8.35 300 1
# PVC emulation
pvc2684d &
pvc2684ctl -a -v 0.8.35 &
# Bring interface up
ifconfig nas_8_35 hw ether 00:15:66:66:66:66
ifconfig nas_8_35
udhcpc -i nas_8_35 &
# Cruft for the bcm cripled version dhcpc (not needed whan using regular udhcpcd of busybox)
#bcmprocfs_ioctl creates symbolic link from /proc/var/fyi/wan/<src> -> /proc/var/fyi/wan/<dst>, see note below
#bcmprocfs_ioctl .ppp0 nas_8_35
#mkdir -p /var/fyi/sys
#dhcpc -i nas_8_35 &

Note: bcmprocfs_ioctl is defined in bcmprocfs


  1. Get ADSL working with the 2.8.1 vendor distribution (davolink dv2020) without aid of cfm DONE
    • Sanitize the build system. Kconfig support. ect
    • Already fixed some initialization and potential buffer overflows. (you see clearly the drawbacks of closed source code: horror, horror, horror…)
  2. Sanitize the driver code
    • Possibly convert the .cpp stuf to regular C.
  3. Look at userspace apps atmctl / adslctl
    • Most of the support is now in kernel space part of it can be moved to userspace.
  4. Openwrt integration, support for kernel 3.x

Feel free to add tips and tricks.

inbox/adsl_support.txt · Last modified: 2016/12/12 00:43 by vittorio88