[OpenWrt-Devel] Adding support to a BCM96348 device

Roger Hardiman roger at rjh.org.uk
Sat Apr 2 08:21:59 CEST 2011


Carlos,

 

I think you will need to make two changes to OpenWRT to make your board
work.

I will explain the changes to the source code that will need to be made at
the end of the email.

 

However for now there is an easy thing you can do.

 

1) keep your board set to the board name of 96348GW-10

2) flash the firmware from CFE

3) once the firmware is booted and you have the linux shell, type in this
command

                      mtd fix

 

This re-calculates the checksum and stores it in the flash memory.

This should then mean that when you next reboot, CFE will not have a
checksum error.

 

 

 

 

To make the board supported by OpenWRT all the time, three things are needed

1) the file
target/linux/brcm63xx/base-files/etc/uci-defaults/brcm63xx_fixcrc.sh needs
to be modified.

This file runs once, when the router first boots after flashing firmware.
The script then gets erased so it only runs once.

You need to change this line

"bcm63xx/CPVA642 "* | "bcm63xx/MAGIC "*)

to say this

"bcm63xx/CPVA642 "* | "bcm63xx/MAGIC "* | "bcm63xx/CPVA502+ "* )

 

2) in the Linux kernel source is this file
arch/mips/bcm63xx/boards/board_bcm963xx.c 

For testing, you need to edit this file and add in a new board_id. Look for
how the 96348GW-10 is defined and copy and paste. The board_name needs to
become CPVA502+. Everything else can stay the same.

You can then re-compile OpenWRT and test this change.

 

3) if everything works we need to make a patch file for the change to
board_bcm963xx.c and add this to the OpenWRT target source tree so that
everyone else building openWRT will get the linux kernel patched with the
new board_id.

 

 

Let me know if you need any help.

I’ve just done all these steps for the BT Voyager 2500V (RTA1046) router
including the mtd fix

 

 

Roger

--

Roger Hardiman

Technical Consultant

Optimum Security Services Ltd

Mobile 07968 245759

Office 0870 350 2171

Email roger.hardiman at optimum.me.uk

 

-----Original Message-----
From: openwrt-devel-bounces at lists.openwrt.org
[mailto:openwrt-devel-bounces at lists.openwrt.org] On Behalf Of Carlos Baiget
Sent: 01 April 2011 20:40
To: OpenWrt Development List
Subject: Re: [OpenWrt-Devel] Adding support to a BCM96348 device

 

Hello All,


Without really knowing what I was doing, I changed the board id. in CFE from
CPVA502+ (default) to 96348GW-10 and OpenWrt booted
(openwrt-96348GW-generic-squashfs-cfe.bin from 10.03.1-rc4)


At first I had access only from serial console, but after bringing down the
br-lan device and giving a valid ip address to eth0 I could connect to LuCI,
enable wifi, etc.


Problem: After reboot, CRC for image a partition [1] is bad and CFE erases
it. (dump below)

 

So most of the hardware is supported by OpenWrt but seems like it is
neccesary to create some kind of profile for the particularities of CPVA502+
(original board id). 


Please could someone point me if i'm on a good path and how I should try to
do that?


Thank you,
Carlos


1-CFE dump after reboot:

CFE version 1.0.37-3.6 for BCM96348 (32bit,SP,BE)

Build Date: ven lug 21 09:44:42 CEST 2006

(oliale at oliale.telsey.loc)

Copyright (C) 2003,2004,2005 Telsey Telecommunications.

Boot Address 0xbfc00000

Initializing Arena.

Initializing Devices.

Parallel flash device: name MX29LV320AT, id 0x22a7, size 4096KB

100 MB Full-Duplex (auto-neg)

Check consistency for image tag [1]: 

Image CRC failed. Corrupted image at partition [1]?

Calculated 

CRC 0x5cfa39cb. TAG CRC 0x2722a5a9.

Image length 2686724.

Erasing tag at partition [1] address 0xbfc10000!

.

Check consistency for image tag [2]: No image found at partition [2]

** Image information not found. **

CPU type 0x29107: 256MHz, Bus: 128MHz, Ref: 32MHz

Total memory:

16777216 bytes (16MB)

Total memory used by CFE: 0x80401000 - 0x80526FA0 (1204128)

Initialized Data: 0x8041E610 - 0x80420480 (7792)

BSS Area: 0x80420480 - 0x80424FA0 (19232)

Local Heap: 0x80424FA0 - 0x80524FA0 (1048576)

Stack Area: 0x80524FA0 - 0x80526FA0 (8192)

Text (code) segment: 0x80401000 - 0x8041E60C (120332)

Boot area (physical): 0x00527000 - 0x00567000

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 Name : 96348GW-10 

Psi size in KB : 24

Number of MAC Addresses (1-32) : 8 

Base MAC Address : 00:30:ab:00:00:01 

Ethernet PHY Type : Internal

Memory size in MB : 16

mac server test........................

CFE>

 

 

 

CPU type 0x29107: 256MHz, Bus: 128MHz, Ref: 32MHz

Total memory: 16777216 bytes (16MB)

Total memory used by CFE: 0x80401000 - 0x80526FA0 (1204128)

Initialized Data: 0x8041E610 - 0x80420480 (7792)

BSS Area: 0x80420480 - 0x80424FA0 (19232)

Local Heap: 0x80424FA0 - 0x80524FA0 (1048576)

Stack Area: 0x80524FA0 - 0x80526FA0 (8192)

Text (code) segment: 0x80401000 - 0x8041E60C (120332)

Boot area (physical): 0x00527000 - 0x00567000

Relocation Factor: I:00000000 - D:00000000




El 31/03/11 20:29, Carlos Baiget escribió: 

Hello all,



I'm new to Open-Wrt and I'm interested in adding support to a
BCM9348 device currently seems unsupported.

The device is an
adsl-voip router called Telsey CPVA502+ which runs linux. I
don't mind giving up adsl or h323 voip when using OpenWrt, but
would like to use it as a wireless router.

I've downloaded
openwrt-96348GW-generic-squash-cfe.bin (and many others) which
the router accepts and flashes but gives kernel panic on reboot
(not syncing: unable to detect bcm963xx board,
serial dump below)



Following the steps found at
http://wiki.openwrt.org/doc/devel/hw.hacking.first.steps now I
have access to serial port but will need help on gathering
information about hardware and probably further steps.



For now I know it has:

4Mb Flash, 16Mb RAM,
CPU type 0x29107: 256MHz, Bus: 128MHz, Ref: 32MHz




Any hint that could
guide me to the point where OpenWrt works on this device would
be appreciated.



Greetings,

Carlos



*

*1- Serial dump booting from -Openwrt-

****

CFE version 1.0.37-3.6
for BCM96348 (32bit,SP,BE)

Build Date: ven lug 21
09:44:42 CEST 2006 (oliale at oliale.telsey.loc)

Copyright (C)
2003,2004,2005 Telsey Telecommunications.

Boot Address
0xbfc00000

Initializing Arena.

Initializing Devices.

Parallel flash device:
name MX29LV320AT, id 0x22a7, size 4096KB

100 MB Full-Duplex
(auto-neg)

Check consistency for
image tag [1]: 

Found good image at
partition [1]

Check consistency for
image tag [2]: No image found at partition [2]

CPU type 0x29107:
256MHz, Bus: 128MHz, Ref: 32MHz

Total memory: 16777216
bytes (16MB)

Total memory used by
CFE: 0x80401000 - 0x80526FA0 (1204128)

Initialized Data:
0x8041E610 - 0x80420480 (7792)

BSS Area: 0x80420480 -
0x80424FA0 (19232)

Local Heap: 0x80424FA0
- 0x80524FA0 (1048576)

Stack Area: 0x80524FA0
- 0x80526FA0 (8192)

Text (code) segment:
0x80401000 - 0x8041E60C (120332)

Boot area (physical):
0x00527000 - 0x00567000

Relocation Factor:
I:00000000 - D:00000000

Board IP address :
192.168.1.1 

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 Name :
CPVA502+ 

Psi size in KB : 24

Number of MAC
Addresses (1-32) : 8 

Base MAC Address :
00:30:ab:00:00:01 

Ethernet PHY Type :
Internal

Memory size in MB : 16

mac server
test........................

### 

### Find default mac
address ,try to connect to mac server to replace it

assign_MAC_addr cmd id
1 send packet retries #1 send

..
..

assign_MAC_addr cmd id
1 send packet retries #10 send

### 00 30 ab 00 00 01

*** Press any key to
stop auto run (1 seconds) ***

Auto run second count
down: 1

Code Address: 0x80010000, Entry Address: 0x80010000 

Decompression OK!

Entry at 0x80010000

Closing network.

Starting program at
0x80010000

Linux version
2.6.35.11 (buildbot at tksite.gotdns.org) (gcc version 4.5.2
(Linaro GCC 4.5-2011.02-0) ) #1 Tue Mar 29 08:41:19 CDT 2011

Detected Broadcom
0x6348 CPU revision b0

CPU frequency is 256
MHz

16MB of RAM installed

registering 37 GPIOs

board_bcm963xx: CFE
version: 1.0.37-3.6

board_bcm963xx:
unknown bcm963xx board: CPVA502+

bootconsole [early0]
enabled

CPU revision is:
00029107 (Broadcom BCM6348)

Kernel panic - not
syncing: unable to detect bcm963xx board

 



*

*2- Serial dump booting from -Original Firmware- (CFE omitted):

****

*** Press any key to stop auto run (1 seconds) ***
Auto run second count down: 0
Code Address: 0x80010000, Entry Address: 0x801a4018
Decompression OK!
Entry at 0x801a4018
Closing network.
Starting program at 0x801a4018
Linux version 2.6.8.1 (carpao at carpao) (gcc version 3.4.2) #2 Tue Feb 19
17:24:19 CET 2008
Parallel flash device: name MX29LV320AT, id 0x22a7, size 4096KB
Total Flash size: 4096K with 71 sectors
CPVA502+ prom init
CPU revision is: 00029107
Determined physical RAM map:
 memory: 00fa0000 @ 00000000 (usable)
On node 0 totalpages: 4000
  DMA zone: 4000 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
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: 64 (order 6: 512 bytes)
Using 128.000 MHz high precision timer.
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
Memory: 13992k/16000k available (1326k kernel code, 1988k reserved, 285k
data, 72k init, 0k highmem)
Calibrating delay loop... 255.59 BogoMIPS
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
Checking for 'wait' instruction...  unavailable.
NET: Registered protocol family 16
Can't analyze prologue code at 8015a264
PPP generic driver version 2.4.2
NET: Registered protocol family 24
Using noop io scheduler
bcm963xx_mtd driver v1.0
bcm963xx_mtd: rootfs_addr = 0xBFC10100, kernel_addr = 0xBFEBF100
brcmboard: brcm_board_init entry
A confirm button interrupt is not configured on this board
CPU monitor calibration
Calibration loops: 51030249
bcm963xx_serial driver v2.0
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: 72k freed
init started:  BusyBox v1.00 (2008.02.19-16:12+0000) multi-call binary
Algorithmics/MIPS FPU Emulator v1.5
BusyBox v1.00 (2008.02.19-16:12+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.
blaadd: blaa_detect entry
adsl: adsl_init entry
Broadcom BCMPROCFS v1.0 initialized
Broadcom BCM6348B0 Ethernet Network Device v0.3 Feb 19 2008 17:07:49
Config Internal PHY Through MDIO
BCM63xx_ENET: 100 MB Full-Duplex (auto-neg)
eth0: MAC Address: 00:30:AB:00:00:01
Broadcom BCM6348B0 Ethernet Network Device v0.3 Feb 19 2008 17:07:49
Config External PHY Through MDIO
mii_init: mii hardware reset
eth0 Link UP.
BCM63xx_ENET: Auto-negotiation timed-out
BCM63xx_ENET: 10 MB Half-Duplex (assumed)
eth1: MAC Address: 00:30:AB:00:00:02
Telsey BCM6348B0 USB Network Device v0.4 Feb 19 2008 17:07:52
usb0: MAC Address: 00 30 AB 00 00 03
usb0: Host MAC Address: 00 30 AB 00 00 04
Telsey CPVA502+-W, hwVer = 0xb, USB product ID set to 6310
MAGIC USB configuration
Endpoint: endpoint_init entry
BOS: Enter bosInit 
Enter bosAppInit 
Exit bosAppInit 
BOS: Exit bosInit 
Endpoint: endpoint_init COMPLETED
loading Broadcom WIFI module
PCI: Setting latency timer of device 0000:00:01.0 to 64
PCI: Enabling device 0000:00:01.0 (0004 -> 0006)
wl: srom not detected, using main memory mapped srom info (wombo board)
wl0: wlc_attach: using main board MAC address base in NVRAM (wombo board)
wl0 MAC Address: 00:30:AB:00:00:05
wl0: Broadcom BCM4318 802.11 Wireless Controller 3.131.35.0.cpe2.3
dgasp: kerSysRegisterDyingGaspHandler: wl0 registered 
wlctl: wlctl: BcmAdsl_Initialize=0xC0060228, g_pFnNotifyCallback=0xC007BFF4
pSdramPHY=0xA0FFFFF8, 0x426B2 0xDEADBEEF
AdslCoreHwReset: AdslOemDataAddr = 0xA0FF9014
dgasp: kerSysRegisterDyingGaspHandler: dsl0 registered 
ip_tables: (C) 2000-2002 Netfilter core team
ip_conntrack version 2.1 (125 buckets, 0 max) - 368 bytes per conntrack
ip_conntrack_pptp version 2.1 loaded
ip_nat_pptp version 2.0 loaded
ip_conntrack_h323: init 
ip_nat_h323: initialize the module!
insmod: cannot open module
`/lib/modules/2.6.8.1/kernel/net/ipv4/netfilter/broadcom/ip_conntrack_ipsec.
ko': No such file or directory
insmod: cannot open module
`/lib/modules/2.6.8.1/kernel/net/ipv4/netfilter/broadcom/ip_nat_ipsec.ko':
No such file or directory
insmod: cannot open module
`/lib/modules/2.6.8.1/kernel/net/ipv4/netfilter/ip_conntrack_sip.ko': No
such file or directory
==>   Bcm963xx Software Version: 3.5.8V-h323.A2pB020d.d17m   <==
device usb0 entered promiscuous mode
app: configure ethernet eth0 speed failed.
app: configure ethernet eth0 duplex type failed.
br0: port 1(usb0) entering learning state
br0: topology change detected, propagating
br0: port 1(usb0) entering forwarding state
device eth0 entered promiscuous mode
br0: port 2(eth0) entering learning state
br0: topology change detected, propagating
br0: port 2(eth0) entering forwarding state
app: configure ethernet eth1 speed failed.
app: configure ethernet eth1 duplex type failed.
device eth1 entered promiscuous mode
br0: port 3(eth1) entering learning state
br0: topology change detected, propagating
br0: port 3(eth1) entering forwarding state
Setting SSID "Telsey502plus"
Setting SSID "Guest"
pvc2684d: Interface "nas_0_44" created sucessfully
pvc2684d: Communicating over ATM 0.0.44, encapsulation: LLC
BcmNtwk_startDefDhcpSrv(990)  subnetMask = 255.255.255.0
BcmNtwk_startDefDhcpSrv(993)  DNSServers = 192.168.1.1
BcmNtwk_startDefDhcpSrv(996)  IPRouters = 192.168.1.1
DHCPSRV udhcp server (v0.9.6) started
Starting cpumond...
Starting restorebtnd...
BcmWan_startInterface: vpi = 0, vci = 33, conId = 1
pWanId status = 0
Starting the H323 application with the following parameters:
H323 Gatekeeper address: 0.0.0.0
H323 Gatekeeper ID: 
H323 Secondary Gatekeeper address: 0.0.0.0
H323 Secondary Gatekeeper ID: 
H323 Gatekeeper port: 1719
H323 Time to Live: 3600
H323 Keep Alive Interval: 75 % of Time to Live
H323 Terminal Type: terminal
H323 FastStart: Off (connect)
H323 Alias: Telsey
H323 Alias-Pwd separator: $
H323 Alias in setup msg: def
Phone Line1: 
Phone Line2: 
Dialplan Line1: .t4-
Dialplan Line2: .t4-
Supp. Services enable mask: 0x0:0x0
User defined Supp. Services codes: 
Call Waiting Timeout (in seconds): 15
Override Category: Off
Q931 T301 Timer (in seconds): 180
Q931 T303 Timer (in seconds): 4
Q931 T310 Timer (in seconds): 120
No-answer timeout (in seconds): 120
Offhook timeout (in seconds): 100
H245 Tunneling: Off
H245 Channel After Fast Start: Off
Early H245: Off
OOB DTMF: Off
Dtmf rtp payload code: 0
Alerting PI: 8
Progress PI: 8
Bearer Capability: Speech
Plug change timeout (in seconds): Off
H323 TOS: Off
H323 Debugger: mode = Off --- level = ERROR
Current global voice parameters:
Codec G711U: Packet=20(ms) ec=On ss=Off 
Codec G711A: Packet=20(ms) ec=On ss=Off 
Codec G729: Packet=20(ms) ec=On ss=Off 
Codec priority order: G711U,G711A,G729 
Country: ITALY
CLID signal type: FSK
HookFlash interval: 50-150 (ms)
On-Hook detection timeout: 250 (ms)
Squelch inband DTMF: Off
Fax feature: On
Modem feature: On
Pass through codec: Off
NLP on Modem detection: Off
NLP on Fax detection: On
RTP TOS: A0
kernel::endpoint_open
kernel::endpoint_open COMPLETED
slacLe9581Patch(): patch = 1
VodslSettings::getStrParam: Set default G729 configuration parameters (ec
and ss)
No configured numbers ==> NOT STARTING VODSL PROCESS
BcmWan_startInterface: vpi = 0, vci = 44, conId = 1
pWanId status = 0
br0: port 3(eth1) entering disabled state
process `snmp' is using obsolete setsockopt SO_BSDCOMPAT
br0: port 1(usb0) entering disabled state
main(414): pppd 2.4.1 started by admin, uid 0 

 

 
 
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openwrt.org/pipermail/openwrt-devel/attachments/20110402/9ba3fec3/attachment-0001.html>


More information about the openwrt-devel mailing list