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
This commit is contained in:
parent
844e92e188
commit
906c9ef952
1 changed files with 194 additions and 103 deletions
|
@ -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"
|
||||
|
|
Loading…
Reference in a new issue