Hi,
I have a Dlink 321B ADSL2+ modem (which is exactly the same as the DSL-320B).
This topic will going to follow my work how to put openwrt to this device.
Some info about the hardware:
------------------------------------
Both 321B and 320B incorporates the same hardware:
CPU: 240MHz Broadcom 6338 V.1 CPU (the print on the CPU tells it is a BCM6332 CPU, but it's not!)
RAM: 8388608 bytes (8MB)
Flash: Serial flash device: name S25FL016A, id 0x0114, size 2048KB (2MB)
The only difference between 321B and 320B is that 321B shipped with Annex B adsl driver, while 320B is shipped with Annex A adsl driver.
Dlink DSL-321B serial pinout:
----------------------------------
This is a 3.3V TTL serial port, needs RS232 TTL level shifter, like MAX3232.
########
# #
Pin1: TX # #
Pin2: GND # #
Pin3: Vcc # CPU #
Pin4: # Shield #
Pin5: RX # #
# #
########
Serial settings:
115200-8-N-1-N
Boot loader is CFE:
----------------------
CFE version 1.0.37-8.7 for BCM96338 (32bit,SP,BE)
Build Date: Tue Nov 20 17:29:44 CST 2007 (kevin@BS5)
Copyright (C) 2000-2006 Broadcom Corporation.
At the beginning of the boot process, there is a 1 sec. time window to press any key and get to the boot loader.
Boot loader commands:
CFE> help
Available commands:
w Write the whole image start from beginning of the flash
e Erase [n]vram or [a]ll flash except bootrom
r Run program from flash image or from host depend on [f/h] flag
p Print boot line and board parameter info
c Change booline parameters
f Write image to the flash
i Erase persistent storage data
b Change board parameters
reset Reset the board
flashimage Flashes a compressed image after the bootloader.
help Obtain help for CFE commands
For more information about a command, enter 'help command-name'
*** command status = 0
The boot loader can download and flash full dumps and only
Full boot log:
---------------
CFE version 1.0.37-8.7 for BCM96338 (32bit,SP,BE)
Build Date: Tue Nov 20 17:29:44 CST 2007 (kevin@BS5)
Copyright (C) 2000-2006 Broadcom Corporation.
Boot Address 0xbfc00000
Initializing Arena.
Initializing Devices.
Serial flash device: name S25FL016A, id 0x0114, size 2048KB
Auto-negotiation timed-out
10 MB Half-Duplex (assumed)
CPU type 0x29010: 240MHz
Total memory: 8388608 bytes (8MB)
Total memory used by CFE: 0x80401000 - 0x805279E0 (1206752)
Initialized Data: 0x8041D0E0 - 0x8041F0D0 (8176)
BSS Area: 0x8041F0D0 - 0x804259E0 (26896)
Local Heap: 0x804259E0 - 0x805259E0 (1048576)
Stack Area: 0x805259E0 - 0x805279E0 (8192)
Text (code) segment: 0x80401000 - 0x8041D0D4 (114900)
Boot area (physical): 0x00528000 - 0x00568000
Relocation Factor: I:00000000 - D:00000000
Board IP address : 192.168.1.1:ffffff00
Host IP address : 192.168.1.100
Gateway IP address :
Run from flash/host (f/h) : f
Default host run file name : vmlinux
Default host flash file name : bcm963xx_fs_kernel
Boot delay (0-9 seconds) : 1
Board Id (0-9) : 96332CG
Number of MAC Addresses (1-32) : 12
Base MAC Address : 00:1e:58:44:9b:67
PSI Size (1-64) KBytes : 24
*** Press any key to stop auto run (1 seconds) ***
Auto run second count down: 0
Code Address: 0x80010000, Entry Address: 0x8017b018
Decompression OK!
Entry at 0x8017b018
Closing network.
Starting program at 0x8017b018
Linux version 2.6.8.1 (root@mochow) (gcc version 3.4.2) #1 Tue Apr 21 16:37:16 CST 2009
Serial flash device: name S25FL016A, id 0x0114, size 2048KB
96332CG prom init
CPU revision is: 00029010
Determined physical RAM map:
memory: 007a0000 @ 00000000 (usable)
On node 0 totalpages: 1952
DMA zone: 1952 pages, LIFO batch:1
Normal zone: 0 pages, LIFO batch:1
HighMem zone: 0 pages, LIFO batch:1
Built 1 zonelists
Kernel command line: root=31:0 ro noinitrd console=ttyS0,115200
brcm mips: enabling icache and dcache...
Primary instruction cache 16kB, physically tagged, 2-way, linesize 16 bytes.
Primary data cache 8kB 2-way, linesize 16 bytes.
PID hash table entries: 32 (order 5: 256 bytes)
Using 120.000 MHz high precision timer.
Dentry cache hash table entries: 2048 (order: 1, 8192 bytes)
Inode-cache hash table entries: 1024 (order: 0, 4096 bytes)
Memory: 6048k/7808k available (1260k kernel code, 1740k reserved, 187k data, 64k init, 0k highmem)
Calibrating delay loop... 239.20 BogoMIPS
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
Checking for 'wait' instruction... unavailable.
NET: Registered protocol family 16
Total Flash size: 2048K with 32 sectors
File system address: 0xbfc10100
Can't analyze prologue code at 80149c34
PPP generic driver version 2.4.2
NET: Registered protocol family 24
Using noop io scheduler
bcm963xx_mtd driver v1.0
brcmboard: brcm_board_init entry
======= GPIO CONFIG_BCM96338 inited ========
Serial: BCM63XX driver $Revision: 3.00 $
ttyS0 at MMIO 0xfffe0300 (irq = 10) is a BCM63XX
NET: Registered protocol family 2
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 512 bind 1024)
NET: Registered protocol family 1
NET: Registered protocol family 17
Ebtables v2.0 registered
NET: Registered protocol family 8
NET: Registered protocol family 20
VFS: Mounted root (squashfs filesystem) readonly.
Freeing unused kernel memory: 64k freed
init started: BusyBox v1.00 (2009.04.21-08:41+0000) multi-call binary
Algorithmics/MIPS FPU Emulator v1.5
BusyBox v1.00 (2009.04.21-08:41+0000) Built-in shell (msh)
Enter 'help' for a list of built-in commands.
Loading drivers and kernel modules...
atmapi: module license 'Proprietary' taints kernel.
adsl: adsl_init entry
blaadd: blaa_detect entry
Broadcom BCMPROCFS v1.0 initialized
Broadcom BCM6338A2 Ethernet Network Device v0.3 Apr 21 2009 16:35:55
Config Internal PHY Through MDIO
BCM63xx_ENET: Auto-negotiation timed-out
BCM63xx_ENET: 10 MB Half-Duplex (assumed)
eth0: MAC Address: 00:1E:58:44:9B:67
app: echo 0 > /var/isdft_cfg
profileGetFromFlash ok!
app: echo 0 > /var/isdft_cfg
ZIPB............
FLAG: 1
notify kernel event successful!
app: echo "true" > /var/ZIPB_ENABLE
app: adslctl start --mod p --bitswap on --sra on --lpair i
BcmAdsl_Initialize=0xC00683C8, g_pFnNotifyCallback=0xC0081004
AnnexCParam=0x7FFF7EB8 AnnexAParam=0x00003980 adsl2=0x00000000
pSdramPHY=0xA07FFFF8, 0xD3D2E 0xDEADBEEF
AdslCoreHwReset: AdslOemDataAddr = 0xA07F9244
AnnexCParam=0x7FFF7EB8 AnnexAParam=0x00003980 adsl2=0x00000000
dgasp: kerSysRegisterDyingGaspHandler: dsl0 registered
app: adslctl connection --up
app: atmctl start --pqs 60
ATM proc init !!!
app: atmctl operate intf --state 0 enable
app: atmctl operate tdte --show > /var/tdteshow
app: rm /var/tdteshow
app: atmctl operate vcc --add 0.1.32 aal5 1 llcencaps --addq 0.1.32 80 1
app: echo "true" > /var/ZIPB_ENABLE
ZIPB............
FLAG: 1
notify kernel event successful!
app: echo "true" > /var/ZIPB_ENABLE
==> Bcm963xx Software Version: 3.10L.01beta.B2pB021h.d20h <==
app: echo "3" > /proc/sys/net/ipv4/conf/all/force_igmp_version
app: echo "1" > /proc/sys/net/ipv4/ip_forward
app: echo "1" > /proc/sys/net/ipv4/ip_dynaddr
app: echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
app: pvc2684d &
app: echo > /etc/pppmsg
app: brctl addbr br0
app: brctl stp br0 off
app: brctl setfd br0 0
app: mkdir -p /var/fyi/sys
app: echo > /var/fyi/sys/info
app: logread 1> /var/syslog
app: ifconfig eth0 up
app: ifconfig eth0 mtu 1500
app: ifconfig br0 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255 up; brctl addif br0 eth0
Device UP br0
Fib_add_ifaddr : DEV br0
Device UP: br0
Device add to fib: br0
device eth0 entered promiscuous mode
br0: port 1(eth0) entering learning state
br0: topology change detected, propagating
br0: port 1(eth0) entering forwarding state
app: sendarp -s br0 -d br0
app: sendarp -s br0 -d eth0
app: mkdir -p /var/lan/eth0
app: echo 00 > /var/lan/eth0/linkstate
app: echo 1 > /var/lan/eth0/linkstate
app: ifconfig br0:0 0.0.0.0 netmask 0.0.0.0 broadcast 255.255.255.255 up
SIOCSIFFLAGS: Cannot assign requested address
SIOCSIFNETMASK: Cannot assign requested address
SIOCSIFBRDADDR: Cannot assign requested address
SIOCSIFFLAGS: Cannot assign requested address
app: sendarp -s br0 -d br0:0
app: mkdir -p /var/lan/br0:0
app: echo 00 > /var/lan/br0:0/linkstate
app: echo 1 > /var/lan/br0:0/linkstate
app: igmp lo &
igmp: not found
app: echo 0000 > /proc/var/fyi/wan/nas_0_1_32/status
BcmRfc2684_init interface is not up nas_0_1_32!
pvc2684ctl -a -v 0.1.32 &
app: pvc2684ctl -a -v 0.1.32 &
pvc2684d: Interface "nas_0_1_32" created sucessfully
app: ifconfig nas_0_1_32 hw ether 00:1e:58:44:9b:68
pvc2684d: Communicating over ATM 0.1.32, encapsulation: LLC
app: ifconfig nas_0_1_32 up
app: brctl addif br0 nas_0_1_32
device nas_0_1_32 entered promiscuous mode
br0: port 2(nas_0_1_32) entering learning state
br0: topology change detected, propagating
br0: port 2(nas_0_1_32) entering forwarding state
app: sendarp -s br0 -d br0
app: route add default gw 192.168.1.200 2>/dev/null
app: syslogd -C -l 7 &
app: klogd &
Sat Jan 1 00:08:39 UTC 2000
app: brctl enableportsnooping 1
app: ethctl eth0 media-type auto 2> /var/ethsts
app: ifconfig eth0 up
enter AlphaBWList_init 2222222222222222
ioctl, p_name=diapd
------in gLangSup=auto---path=/www/locale---
auto ,span ,en ,ita ,ger ,fre ,
start to blink status led
*** diap wait system init 1 sec start
app: echo 1 > /proc/var/fyi/wan/nas_0_1_32/status
app: echo 0 > /var/lan/eth0/linkstate
br0: port 1(eth0) entering disabled state
Child 193 terminated
*** diap wait system init 1 sec end
@@@@@@@@Odin debug SUPPORT_WKS_TR069_2M_8M_ZIPB is 0
CONSOLED launched
Login:
The stock firmware has telnet access, to log in, type in the user name and password like at the web interface.
The stock firmware can be reflashed from the bootloader if something goes wrong, with issuing the "f" command in the bootloader. The default TFTP sever IP address is: 192.168.100.1, the filename is "bcm963xx_fs_kernel". These parameters can be changed in the boot loader by issuing the "c" command.
I'am currently compiling a RAMdisk version of openwrt, and try to start it from the boot loader. It seems it is not possible to compile a ramdisk image.
Dchard
(Last edited by dchard on 21 Jun 2010, 21:09)