OpenWrt Forum Archive

Topic: How to repair Broadcom BCM4329 SPROM crc?

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

Im attempt to to change Device ID from 4329 to 4329 on Broadcom BCM4329 802.11n Wireless Network Adapter Cardbus inside the Netgear WNR834B v1 running dd-wrt.v24 beta. new Device ID ok but b43_srom write crc on wrong place and can not read whole/full/complete SPROM.

Hardware List:

Netgear WNR834B v1
Internal Photos
https://gullfoss2.fcc.gov/prod/oet/form … or_pdf=pdf

Broadcom BCM4329 802.11n Wireless Network Adapter Cardbus
Internal Photos
https://gullfoss2.fcc.gov/prod/oet/form … or_pdf=pdf

CPU
Chip 1: BCM4704KPBG

LAN
Chip 1: BCM5325FKQMG

WLAN
Chip 1: BCM2055KFBG
HC0620 P20
779254 N1

Chip 2: BCM4321LKFBG
HS0621 P11
783543 N1



/tmp # ./b43_srom 14e44329
Found pci device 14e44329 at /proc/bus/pci/01/01.0@0x40004000
Enabling device...
Device memory mapped ok
SROM CRC fail <-- im 100% sure crc is right (test read only)

0000 3001 0000 046d 14e4 4329 8000 0002 0000
0008 1000 1800 0000 0000 ffff ffff ffff ffff
0010 ffff ffff ffff ffff ffff ffff ffff ffff
0018 ffff ffff ffff ffff ffff ffff ffff ffff
0020 5372 0048 0200 0000 0003 0000 0090 4c99
0028 00fd 494c 0000 ffff ffff ffff 0007 0202
0030 ff02 4c52 5b5b ffff ffff ffff ffff ffff
0038 ffff 3036 3030 ffff ffff ffff ffff ffff

/tmp # ./wlsrom eth2 <-- (test read only)
Reading srom...

0000 3001 0000 046d 14e4 4329 8000 0002 0000
0008 1000 1800 0000 0000 ffff ffff ffff ffff
0010 ffff ffff ffff ffff ffff ffff ffff ffff
0018 ffff ffff ffff ffff ffff ffff ffff ffff
0020 5372 0048 0200 0000 0003 0000 0090 4c99
0028 00fd 494c 0000 ffff ffff ffff 0007 0202
0030 ff02 4c52 5b5b ffff ffff ffff ffff ffff
0038 ffff 3036 3030 ffff ffff ffff ffff ffff

/tmp # ./wlsrom eth2 04 4328
Writing srom...
Reading srom...

0000 3001 0000 046d 14e4 4329 8000 0002 0000
0008 1000 1800 0000 0000 ffff ffff ffff ffff
0010 ffff ffff ffff ffff ffff ffff ffff ffff
0018 ffff ffff ffff ffff ffff ffff ffff ffff
0020 5372 0048 0200 0000 0003 0000 0090 4c99
0028 00fd 494c 0000 ffff ffff ffff 0007 0202
0030 ff02 4c52 5b5b ffff ffff ffff ffff ffff
0038 ffff 020f 3030 ffff ffff ffff ffff ffff

/tmp # ./reboot

/tmp # ./dmesg
eth%d: 4.80.56.0 driver failed with code 11

Now the Wireless Network Adapter not work/function

wlsrom not work

/tmp # ./b43_srom 14e44328 04 4329 y
Found pci device 14e44328 at /proc/bus/pci/01/01.0@0x40004000
Enabling device...
Device memory mapped ok
SROM CRC ok

0000 3001 0000 046d 14e4 4328 8000 0002 0000
0008 1000 1800 0000 0000 ffff ffff ffff ffff
0010 ffff ffff ffff ffff ffff ffff ffff ffff
0018 ffff ffff ffff ffff ffff ffff ffff ffff
0020 5372 0048 0200 0000 0003 0000 0090 4c99
0028 00fd 494c 0000 ffff ffff ffff 0007 0202
0030 ff02 4c52 5b5b ffff ffff ffff ffff ffff
0038 ffff 3036 3030 ffff ffff ffff ffff e2ff <-- wrong place for crc

New contents

0000 3001 0000 046d 14e4 4329 8000 0002 0000
0008 1000 1800 0000 0000 ffff ffff ffff ffff
0010 ffff ffff ffff ffff ffff ffff ffff ffff
0018 ffff ffff ffff ffff ffff ffff ffff ffff
0020 5372 0048 0200 0000 0003 0000 0090 4c99
0028 00fd 494c 0000 ffff ffff ffff 0007 0202
0030 ff02 4c52 5b5b ffff ffff ffff ffff ffff
0038 ffff 3036 3030 ffff ffff ffff ffff aeff <-- wrong place for crc

Writing SROM
/tmp #


old backup from wl srdump

srom[000]: 0x3001 0x0000 0x046d 0x14e4 0x4329 0x8000 0x0002 0x0000
srom[008]: 0x1000 0x1800 0x0000 0x0000 0xffff 0xffff 0xffff 0xffff
srom[016]: 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff
srom[024]: 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff
srom[032]: 0x5372 0x0048 0x0200 0x0000 0x0003 0x0000 0x0090 0x4c99
srom[040]: 0x00fd 0x494c 0x0000 0xffff 0xffff 0xffff 0x0007 0x0202
srom[048]: 0xff02 0x4c52 0x5b5b 0xffff 0xffff 0xffff 0xffff 0xffff
srom[056]: 0xffff 0x3036 0x3030 0xffff 0xffff 0xffff 0xffff 0xffff
srom[064]: 0x0048 0x0000 0x0000 0x0000 0x0000 0xffff 0xffff 0xffff
srom[072]: 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff
srom[080]: 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0x0048
srom[088]: 0x0000 0x0000 0x0000 0x0000 0xffff 0xffff 0xffff 0xffff
srom[096]: 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff
srom[104]: 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff
srom[112]: 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff
srom[120]: 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff
srom[128]: 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff
srom[136]: 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff
srom[144]: 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff
srom[152]: 0xffff 0xffff 0xffff 0xffff 0x0000 0x0000 0x0000 0xffff
srom[160]: 0xffff 0xffff 0xffff 0xffff 0xffff 0x0000 0x0000 0x0000
srom[168]: 0x0000 0x0000 0x0000 0x0000 0x0000 0xffff 0xffff 0xffff
srom[176]: 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff
srom[184]: 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff
srom[192]: 0xffff 0xffff 0xffff 0xffff 0xffff 0x0000 0x0000 0x0000
srom[200]: 0x0000 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff
srom[208]: 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff
srom[216]: 0xffff 0xffff 0xffff 0x2104


Any tools for linux or windows to fix SPROM or force the driver load

Im found temporary solution

Howto:
Im thinked about if sdram_init, sdram_config, boardtype, boardnum, boardrev, boardflags and .. is copy from CFE to nvram so why not test to put "srom" in nvram.
veeeeeee the worked the WLAN led light up and the WLAN works

Netgear WNR834B v2 Sources Code
WNR834Bv2_V1.0.30_1.0.30_NA_WW_src.tar.bz2 --> /WNR834B/image/bcm94705.txt (CFE Text file):

# Broadcom 4705 reference design, including a 4321mp
boardtype=0x489
boardnum=${serno}
# Board revision 1.0
boardrev=0x10
# BFL_ENETROBO, BFL_ENETVLAN
boardflags=0x110

# MIPS clock frequency in MHz
clkfreq=300,150,37

# 64 MB DDR SDRAM (16 Meg x 16 x 2)
sdram_init=0x0009
sdram_config=0x0062
sdram_refresh=0x0000
sdram_ncdl=0

# Ethernet
et0macaddr=00:90:4c:b9:${maclo}
et0phyaddr=30
et0mdcport=0

# Watchdog timer in ms
watchdog=3000

# Reset
reset_gpio=7

# SES Button on GPIO 8
gpio8=ses_button

# Variables used by CFE and run-time OS image
# which may be modified by the run-time OS image
lan_ipaddr=192.168.1.1
lan_netmask=255.255.255.0

# Ethernet switch config (vlan1:LAN, vlan2:WAN)
vlan1ports=0 1 2 3 8*
vlan1hwname=et0
vlan2ports=4 8u

# bootloader/OS glue
landevs=vlan1 wl0
wandevs=et0
lan_ipaddr=192.168.1.1
lan_netmask=255.255.255.0

# CFE variables
boot_wait=on
wait_time=5

# The following should be uncommented if the 4321mp does not have an srom.

## Variables for the 4321mp:
#pci/1/1/venid=0x14e4
#pci/1/1/devid=0x4328
#pci/1/1/sromrev=4
#pci/1/1/boardtype=0x46c
#pci/1/1/boardvendor=0x14e4
#pci/1/1/boardrev=0x34
#pci/1/1/boardflags=0x4a01
#pci/1/1/boardflags2=0
#pci/1/1/macaddr=00:90:4c:98:${maclo}
#pci/1/1/ccode=
#pci/1/1/regrev=0
#pci/1/1/ledbh0=-1
#pci/1/1/ledbh1=-1
#pci/1/1/ledbh2=-1
#pci/1/1/ledbh3=-1
#pci/1/1/aa2g=3
#pci/1/1/aa5g=3
#pci/1/1/ag0=2
#pci/1/1/ag1=2
#pci/1/1/txpid2ga0=91
#pci/1/1/txpid2ga1=91
#pci/1/1/txpid5ga0=91
#pci/1/1/txpid5ga1=91
#pci/1/1/txpid5gla0=91
#pci/1/1/txpid5gla1=91
#pci/1/1/txpid5gha0=91
#pci/1/1/txpid5gha1=91
#pci/1/1/txpt2g=0x3c
#pci/1/1/txpt5g=0x30
#pci/1/1/txpt5gl=0x30
#pci/1/1/txpt5gh=0x30
#pci/1/1/itt2ga0=0
#pci/1/1/maxp2ga0=0
#pci/1/1/pa2gw0a0=0
#pci/1/1/pa2gw1a0=0
#pci/1/1/pa2gw2a0=0
#pci/1/1/pa2gw3a0=0
#pci/1/1/itt5ga0=0
#pci/1/1/maxp5ga0=0
#pci/1/1/pa5gw0a0=0
#pci/1/1/pa5gw1a0=0
#pci/1/1/pa5gw2a0=0
#pci/1/1/pa5gw3a0=0
#pci/1/1/maxp5gla0=0
#pci/1/1/pa5glw0a0=0
#pci/1/1/pa5glw1a0=0
#pci/1/1/pa5glw2a0=0
#pci/1/1/pa5glw3a0=0
#pci/1/1/maxp5gha0=0
#pci/1/1/pa5ghw0a0=0
#pci/1/1/pa5ghw1a0=0
#pci/1/1/pa5ghw2a0=0
#pci/1/1/pa5ghw3a0=0
#pci/1/1/itt2ga1=0
#pci/1/1/maxp2ga1=0
#pci/1/1/pa2gw0a1=0
#pci/1/1/pa2gw1a1=0
#pci/1/1/pa2gw2a1=0
#pci/1/1/pa2gw3a1=0
#pci/1/1/itt5ga1=0
#pci/1/1/maxp5ga1=0
#pci/1/1/pa5gw0a1=0
#pci/1/1/pa5gw1a1=0
#pci/1/1/pa5gw2a1=0
#pci/1/1/pa5gw3a1=0
#pci/1/1/maxp5gla1=0
#pci/1/1/pa5glw0a1=0
#pci/1/1/pa5glw1a1=0
#pci/1/1/pa5glw2a1=0
#pci/1/1/pa5glw3a1=0
#pci/1/1/maxp5gha1=0
#pci/1/1/pa5ghw0a1=0
#pci/1/1/pa5ghw1a1=0
#pci/1/1/pa5ghw2a1=0
#pci/1/1/pa5ghw3a1=0
#pci/1/1/cck2gpo=0
#pci/1/1/ofdm2gpo=0
#pci/1/1/ofdm5gpo=0
#pci/1/1/ofdm5lgpo=0
#pci/1/1/ofdm5hgpo=0
#pci/1/1/mcs2gpo0=0
#pci/1/1/mcs2gpo1=0
#pci/1/1/mcs2gpo2=0
#pci/1/1/mcs2gpo3=0
#pci/1/1/mcs2gpo4=0
#pci/1/1/mcs2gpo5=0
#pci/1/1/mcs2gpo6=0
#pci/1/1/mcs2gpo7=0
#pci/1/1/mcs5gpo0=0
#pci/1/1/mcs5gpo1=0
#pci/1/1/mcs5gpo2=0
#pci/1/1/mcs5gpo3=0
#pci/1/1/mcs5gpo4=0
#pci/1/1/mcs5gpo5=0
#pci/1/1/mcs5gpo6=0
#pci/1/1/mcs5gpo7=0
#pci/1/1/mcs5glpo0=0
#pci/1/1/mcs5glpo1=0
#pci/1/1/mcs5glpo2=0
#pci/1/1/mcs5glpo3=0
#pci/1/1/mcs5glpo4=0
#pci/1/1/mcs5glpo5=0
#pci/1/1/mcs5glpo6=0
#pci/1/1/mcs5glpo7=0
#pci/1/1/mcs5ghpo0=0
#pci/1/1/mcs5ghpo1=0
#pci/1/1/mcs5ghpo2=0
#pci/1/1/mcs5ghpo3=0
#pci/1/1/mcs5ghpo4=0
#pci/1/1/mcs5ghpo5=0
#pci/1/1/mcs5ghpo6=0
#pci/1/1/mcs5ghpo7=0
#pci/1/1/ccdpo=0
#pci/1/1/stbcpo=0
#pci/1/1/bw40po=0
#pci/1/1/bwduppo=0
-------------------------------------------------------------------------------------
My Config

srom_nvram.sh:
#!/bin/sh
#
# TEST SPROM on NVRAM
#
nvram set pci/1/1/venid=0x14e4
nvram set pci/1/1/devid=0x4328
nvram set pci/1/1/sromrev=4
nvram set pci/1/1/boardtype=0x46c
nvram set pci/1/1/boardvendor=0x14e4
nvram set pci/1/1/boardrev=0x34
nvram set pci/1/1/boardflags=0x4a01
nvram set pci/1/1/boardflags2=0
nvram set pci/1/1/macaddr=00:90:4c:98:${maclo}
nvram set pci/1/1/ccode=
nvram set pci/1/1/regrev=0
nvram set pci/1/1/ledbh0=-1
nvram set pci/1/1/ledbh1=-1
nvram set pci/1/1/ledbh2=-1
nvram set pci/1/1/ledbh3=-1
nvram set pci/1/1/aa2g=3
nvram set pci/1/1/aa5g=3
nvram set pci/1/1/ag0=2
nvram set pci/1/1/ag1=2
nvram set pci/1/1/txpid2ga0=91
nvram set pci/1/1/txpid2ga1=91
nvram set pci/1/1/txpid5ga0=91
nvram set pci/1/1/txpid5ga1=91
nvram set pci/1/1/txpid5gla0=91
nvram set pci/1/1/txpid5gla1=91
nvram set pci/1/1/txpid5gha0=91
nvram set pci/1/1/txpid5gha1=91
nvram set pci/1/1/txpt2g=0x3c
nvram set pci/1/1/txpt5g=0x30
nvram set pci/1/1/txpt5gl=0x30
nvram set pci/1/1/txpt5gh=0x30
nvram set pci/1/1/itt2ga0=0
nvram set pci/1/1/maxp2ga0=0
nvram set pci/1/1/pa2gw0a0=0
nvram set pci/1/1/pa2gw1a0=0
nvram set pci/1/1/pa2gw2a0=0
nvram set pci/1/1/pa2gw3a0=0
nvram set pci/1/1/itt5ga0=0
nvram set pci/1/1/maxp5ga0=0
nvram set pci/1/1/pa5gw0a0=0
nvram set pci/1/1/pa5gw1a0=0
nvram set pci/1/1/pa5gw2a0=0
nvram set pci/1/1/pa5gw3a0=0
nvram set pci/1/1/maxp5gla0=0
nvram set pci/1/1/pa5glw0a0=0
nvram set pci/1/1/pa5glw1a0=0
nvram set pci/1/1/pa5glw2a0=0
nvram set pci/1/1/pa5glw3a0=0
nvram set pci/1/1/maxp5gha0=0
nvram set pci/1/1/pa5ghw0a0=0
nvram set pci/1/1/pa5ghw1a0=0
nvram set pci/1/1/pa5ghw2a0=0
nvram set pci/1/1/pa5ghw3a0=0
nvram set pci/1/1/itt2ga1=0
nvram set pci/1/1/maxp2ga1=0
nvram set pci/1/1/pa2gw0a1=0
nvram set pci/1/1/pa2gw1a1=0
nvram set pci/1/1/pa2gw2a1=0
nvram set pci/1/1/pa2gw3a1=0
nvram set pci/1/1/itt5ga1=0
nvram set pci/1/1/maxp5ga1=0
nvram set pci/1/1/pa5gw0a1=0
nvram set pci/1/1/pa5gw1a1=0
nvram set pci/1/1/pa5gw2a1=0
nvram set pci/1/1/pa5gw3a1=0
nvram set pci/1/1/maxp5gla1=0
nvram set pci/1/1/pa5glw0a1=0
nvram set pci/1/1/pa5glw1a1=0
nvram set pci/1/1/pa5glw2a1=0
nvram set pci/1/1/pa5glw3a1=0
nvram set pci/1/1/maxp5gha1=0
nvram set pci/1/1/pa5ghw0a1=0
nvram set pci/1/1/pa5ghw1a1=0
nvram set pci/1/1/pa5ghw2a1=0
nvram set pci/1/1/pa5ghw3a1=0
nvram set pci/1/1/cck2gpo=0
nvram set pci/1/1/ofdm2gpo=0
nvram set pci/1/1/ofdm5gpo=0
nvram set pci/1/1/ofdm5lgpo=0
nvram set pci/1/1/ofdm5hgpo=0
nvram set pci/1/1/mcs2gpo0=0
nvram set pci/1/1/mcs2gpo1=0
nvram set pci/1/1/mcs2gpo2=0
nvram set pci/1/1/mcs2gpo3=0
nvram set pci/1/1/mcs2gpo4=0
nvram set pci/1/1/mcs2gpo5=0
nvram set pci/1/1/mcs2gpo6=0
nvram set pci/1/1/mcs2gpo7=0
nvram set pci/1/1/mcs5gpo0=0
nvram set pci/1/1/mcs5gpo1=0
nvram set pci/1/1/mcs5gpo2=0
nvram set pci/1/1/mcs5gpo3=0
nvram set pci/1/1/mcs5gpo4=0
nvram set pci/1/1/mcs5gpo5=0
nvram set pci/1/1/mcs5gpo6=0
nvram set pci/1/1/mcs5gpo7=0
nvram set pci/1/1/mcs5glpo0=0
nvram set pci/1/1/mcs5glpo1=0
nvram set pci/1/1/mcs5glpo2=0
nvram set pci/1/1/mcs5glpo3=0
nvram set pci/1/1/mcs5glpo4=0
nvram set pci/1/1/mcs5glpo5=0
nvram set pci/1/1/mcs5glpo6=0
nvram set pci/1/1/mcs5glpo7=0
nvram set pci/1/1/mcs5ghpo0=0
nvram set pci/1/1/mcs5ghpo1=0
nvram set pci/1/1/mcs5ghpo2=0
nvram set pci/1/1/mcs5ghpo3=0
nvram set pci/1/1/mcs5ghpo4=0
nvram set pci/1/1/mcs5ghpo5=0
nvram set pci/1/1/mcs5ghpo6=0
nvram set pci/1/1/mcs5ghpo7=0
nvram set pci/1/1/ccdpo=0
nvram set pci/1/1/stbcpo=0
nvram set pci/1/1/bw40po=0
nvram set pci/1/1/bwduppo=0
nvram commit

(Last edited by Simri on 25 Aug 2007, 03:01)

The discussion might have continued from here.