brcm63xx: add device tree based board detection

Use the device tree model property for detecting the board instead
of board id from nvram if present.

Since we can now directly detect the DVA-G3810BN, we can remove the
extra check for it.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 44834
owl
Jonas Gorski 2015-03-16 11:52:26 +00:00
parent 844e92e188
commit 906c9ef952
1 changed files with 194 additions and 103 deletions

View File

@ -11,113 +11,208 @@ sys_mtd_part=""
brcm63xx_has_reset_button=""
ifname=""
brcm63xx_dt_detect() {
local board_name
case "$1" in
"ADB P.DG A4001N")
board_name="a4001n"
;;
"ADB P.DG A4001N1")
board_name="a4001n1"
;;
"Alcatel RG100A")
board_name="rg100a"
;;
"ASMAX AR 1004g")
board_name="ar100g"
;;
"Belkin F5D7633")
board_name="f5d7633"
;;
"Broadcom 96348R reference board")
board_name="bcm96348r"
;;
"Broadcom bcm963281TAN reference board")
board_name="bcm963281tan"
;;
"Broadcom BCM96328avng reference board")
board_name="bcm6328avng"
;;
"Broadcom BCM96345GW2 reference board")
board_name="bcm96345gw2"
;;
"Broadcom BCM96348GW-10 reference board")
board_name="bcm96348gw-10"
;;
"Broadcom BCM96348GW-11 reference board")
board_name="bcm96348gw-11"
;;
"Broadcom BCM96348GW reference board")
board_name="bcm96358gw"
;;
"Broadcom BCM96358VW reference board")
board_name="bcm96358vw"
;;
"Broadcom BCM96358VW2 reference board")
board_name="bcm96358vw2"
;;
"Broadcom BCM96368MVNgr reference board")
board_name="bcm96368mvngr"
;;
"Broadcom BCM96368MVWG reference board")
board_name="bcm96368mvwg"
;;
"BT Voyager V2500V")
board_name="v2500v"
;;
"Comtrend AR-5381u")
board_name="ar-5381u"
;;
"Comtrend AR-5387un")
board_name="ar-5387un"
;;
"Comtrend CT-5365")
board_name="ct-5365"
;;
"Comtrend CT-536+/CT-5621T")
board_name="ct-536p_5621t"
;;
"Comtrend CT-6373")
board_name="ct-6373"
;;
"Comtrend VR-3025u")
board_name="vr-3025u"
;;
"Comtrend VR-3025un")
board_name="vr-3025un"
;;
"Comtrend WAP-5813n")
board_name="wap-5813n"
;;
"Davolink DV-201AMR")
board_name="dv-201amr"
;;
"D-Link DSL-2640B rev B2")
board_name="dsl-2640b-b"
;;
"D-Link DSL-2650U")
board_name="dsl-2650u"
;;
"D-Link DSL-2740B/DSL-2741B rev C2/3")
board_name="dsl-274xb-c"
;;
"D-Link DSL-2740B/DSL-2741B rev F1")
board_name="dsl-274xb-f"
;;
"D-Link DVA-G3810BN/TL")
board_name="dva-g3810bn"
;;
"Dynalink RTA1025W")
board_name="rta1025w"
;;
"Dynalink RTA1320")
board_name="rta1320"
;;
"Huawei EchoLife HG520v")
board_name="hg520v"
;;
"Huawei EchoLife HG553")
board_name="hg553"
;;
"Huawei EchoLife HG556a (version A)")
board_name="hg556a_a"
;;
"Huawei EchoLife HG556a (version B)")
board_name="hg556a_b"
;;
"Huawei EchoLife HG556a (version C)")
board_name="hg556a_c"
;;
"Inventel Livebox 1")
board_name="livebox1"
;;
"Netgear CVG834G")
board_name="cvg834g"
;;
"Netgear DG834GT/PN")
board_name="dg834gt"
;;
"Netgear DGND3700v1/DGND3800B")
board_name="dgnd3700v1_dgnd3800b"
;;
"Pirelli A226G")
board_name="a226g"
;;
"Pirelli A226M")
board_name="a226m"
;;
"Pirelli A226M-FWB")
board_name="a226m-fwb"
;;
"Pirelli Alice Gate AGPF-S0")
board_name="agpf-s0"
;;
"Sagem F@ST2404")
board_name="fast2404"
;;
"Sagem F@ST2504n")
board_name="fast2504n"
;;
"Sagem F@ST2604")
board_name="fast2604"
;;
"Sagem F@ST2704V2")
board_name="fast2704v2"
;;
"SFR Neuf Box 4"*)
board_name="neufbox4"
;;
"SFR neufbox 6 (Sercomm)")
board_name="neufbox6"
;;
"T-Com Speedport W303 V")
board_name="spw303v"
;;
"T-Com Speedport W500 V")
board_name="spw500v"
;;
"TECOM GW6000")
board_name="g6000"
;;
"TECOM GW6200")
board_name="g6200"
;;
"Telsey CPVA642-type (CPA-ZNTE60T)")
board_name="cpva642"
;;
"TP-Link TD-W8900GB")
board_name="td-w8900gb"
;;
"USRobotics 9108")
board_name="usr9108"
;;
"Zyxel P870HW-51a v2")
board_name="p870hw-51a_v2"
;;
*)
board_name="unknown"
;;
esac
echo "$board_name"
}
brcm63xx_legacy_detect() {
local board_name
case "$1" in
963281TAN)
board_name="bcm963281tan"
;;
963281T_TEF)
board_name="a4001n1"
;;
96328avng)
board_name="bcm96328avng"
;;
96328dg2x2)
board_name="a4401n"
;;
96328A-1241N)
board_name="ar-5381u"
;;
96328A-1441N1)
board_name="ar-5387un"
;;
96348GW)
board_name="bcm96348gw"
;;
96348GW-11)
board_name="bcm96348gw-11"
;;
96358-502V)
board_name="spw303v"
;;
96368M-1341N)
board_name="vr-3025un"
;;
96368M-1541N)
board_name="vr-3025u"
;;
96369R-1231N)
board_name="wap-5813n"
;;
AR1004G)
board_name="ar1004g"
;;
AW4139 |\
AW4339U)
board_name="dsl-274xb-c"
;;
AW5200B)
board_name="dsl-275xb-d"
;;
CPVA642)
board_name="cpva642"
;;
CT536_CT5621)
board_name="ct536_ct5621"
;;
CVG834G_E15R3921)
board_name="cvg834g"
;;
D-4P-W)
board_name="dsl-2640b-b"
;;
DGND3700v1_3800B)
board_name="dgnd3700v1_dgnd3800b"
;;
"F@ST2504n")
board_name="fast2504n"
;;
'F@ST2704V2')
board_name="fast2704v2"
;;
GW6000)
board_name="gw6000"
;;
GW6200)
board_name="gw6200"
;;
HW553)
board_name="hg553"
;;
HW556_A)
board_name="hg556a_a"
;;
HW556_B)
board_name="hg556a_b"
;;
HW556_C)
board_name="hg556a_c"
;;
HW6358GW_B)
board_name="hg620"
;;
NB6)
board_name="neufbox6"
;;
P870HW-51a_v2)
board_name="p870hw-51a_v2"
;;
RTA770BW)
board_name="rta770bw"
;;
RTA770W)
board_name="rta770w"
;;
SPW500V)
board_name="spw500v"
;;
V2110)
board_name="v2110"
;;
@ -134,18 +229,14 @@ brcm63xx_detect() {
board_id=$(awk 'BEGIN{FS="[ \t:/]+"} /system type/ {print $4}' /proc/cpuinfo)
if [ "$board_id" = "96358VW" ] && [ -n "$(swconfig dev eth1 help 2>/dev/null)" ]; then
board_id="DVAG3810BN"
fi
if [ -e /proc/device-tree ]; then
model=$(cat /proc/device-tree/model)
board_name=$(brcm63xx_dt_detect "$model")
else
model="Unknown bcm63xx board"
board_name=$(brcm63xx_legacy_detect "$board_id")
fi
board_name=$(brcm63xx_legacy_detect "$board_id")
case "$board_name" in
bcm963281tan)
status_led="963281TAN::power"