844e92e188
Take full board name from devicetree, if present. Provide a method for retrieving the board name. Signed-off-by: Jonas Gorski <jogo@openwrt.org> SVN-Revision: 44833
327 lines
5.6 KiB
Bash
Executable file
327 lines
5.6 KiB
Bash
Executable file
#!/bin/sh
|
|
#
|
|
# Copyright (C) 2007 OpenWrt.org
|
|
#
|
|
#
|
|
|
|
board_id=""
|
|
status_led=""
|
|
status_led2=""
|
|
sys_mtd_part=""
|
|
brcm63xx_has_reset_button=""
|
|
ifname=""
|
|
|
|
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"
|
|
;;
|
|
*)
|
|
board_name="unknown"
|
|
;;
|
|
esac
|
|
|
|
echo "$board_name"
|
|
}
|
|
|
|
brcm63xx_detect() {
|
|
local board_name model
|
|
|
|
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)
|
|
else
|
|
model="Unknown bcm63xx board"
|
|
fi
|
|
|
|
board_name=$(brcm63xx_legacy_detect "$board_id")
|
|
|
|
case "$board_name" in
|
|
bcm963281tan)
|
|
status_led="963281TAN::power"
|
|
ifname=eth0
|
|
;;
|
|
a4001n1)
|
|
brcm63xx_has_reset_button="true"
|
|
status_led="A4001N1:green:power"
|
|
ifname=eth0
|
|
;;
|
|
bcm96328avng)
|
|
status_led="96328avng::power"
|
|
ifname=eth0
|
|
;;
|
|
a4001n)
|
|
brcm63xx_has_reset_button="true"
|
|
status_led="A4001N:green:power"
|
|
ifname="eth0"
|
|
;;
|
|
ar-5381u)
|
|
brcm63xx_has_reset_button="true"
|
|
status_led="AR-5381u:green:power"
|
|
ifname=eth0
|
|
;;
|
|
ar-5387un)
|
|
brcm63xx_has_reset_button="true"
|
|
status_led="AR-5387un:green:power"
|
|
ifname=eth0
|
|
;;
|
|
bcm96348gw)
|
|
status_led="96348GW:green:power"
|
|
brcm63xx_has_reset_button="true"
|
|
ifname=eth1
|
|
;;
|
|
bcm96348gw-11)
|
|
status_led="96348GW-11:green:power"
|
|
brcm63xx_has_reset_button="true"
|
|
ifname=eth1
|
|
;;
|
|
spw303v)
|
|
status_led="spw303v:green:power+adsl"
|
|
brcm63xx_has_reset_button="true"
|
|
ifname=eth0
|
|
;;
|
|
vr-3025un)
|
|
brcm63xx_has_reset_button="true"
|
|
status_led="VR-3025un:green:power"
|
|
ifname="eth0"
|
|
;;
|
|
vr-3025u)
|
|
brcm63xx_has_reset_button="true"
|
|
status_led="VR-3025u:green:power"
|
|
ifname="eth0"
|
|
;;
|
|
wap-5813n)
|
|
brcm63xx_has_reset_button="true"
|
|
status_led="WAP-5813n:green:power"
|
|
ifname="eth0"
|
|
;;
|
|
ar1004g)
|
|
status_led="AR1004G:green:power"
|
|
brcm63xx_has_reset_button="true"
|
|
;;
|
|
dsl-274xb-c)
|
|
status_led="dsl-274xb:green:power"
|
|
brcm63xx_has_reset_button="true"
|
|
ifname=eth0
|
|
;;
|
|
dsl-275xb-d)
|
|
status_led="dsl-275xb:green:power"
|
|
brcm63xx_has_reset_button="true"
|
|
ifname=eth0
|
|
;;
|
|
cpva642)
|
|
status_led="CPVA642:green:power:"
|
|
brcm63xx_has_reset_button="true"
|
|
ifname=eth0
|
|
;;
|
|
ct536_ct5621)
|
|
status_led="CT536_CT5621:green:power"
|
|
brcm63xx_has_reset_button="true"
|
|
ifname=eth0
|
|
;;
|
|
cvg834g)
|
|
status_led="CVG834G:green:power"
|
|
ifname=eth0
|
|
;;
|
|
dsl-2640b-b)
|
|
status_led="D-4P-W:green:power"
|
|
brcm63xx_has_reset_button="true"
|
|
ifname=eth0
|
|
;;
|
|
dgnd3700v1_dgnd3800b)
|
|
status_led="DGND3700v1_3800B:green:power"
|
|
brcm63xx_has_reset_button="true"
|
|
ifname="eth0"
|
|
;;
|
|
fast2504n)
|
|
status_led="fast2504n:green:ok"
|
|
brcm63xx_has_reset_button="true"
|
|
ifname=eth0
|
|
;;
|
|
fast2704v2)
|
|
status_led="F@ST2704V2:green:power"
|
|
brcm63xx_has_reset_button="true"
|
|
ifname=eth0
|
|
;;
|
|
gw6000)
|
|
brcm63xx_has_reset_button="true"
|
|
ifname=eth1
|
|
;;
|
|
gw6200)
|
|
status_led="GW6200:green:line1"
|
|
status_led2="GW6200:green:tel"
|
|
brcm63xx_has_reset_button="true"
|
|
ifname=eth1
|
|
;;
|
|
hg553)
|
|
status_led="HW553:blue:power"
|
|
brcm63xx_has_reset_button="true"
|
|
ifname=eth0
|
|
;;
|
|
hg556a_*)
|
|
status_led="HW556:red:power"
|
|
brcm63xx_has_reset_button="true"
|
|
ifname=eth0
|
|
;;
|
|
hg520)
|
|
status_led="HW520:green:net"
|
|
brcm63xx_has_reset_button="true"
|
|
ifname="eth0"
|
|
;;
|
|
neufbox6)
|
|
brcm63xx_has_reset_button="true"
|
|
ifname=eth0
|
|
;;
|
|
p870hw-51a_v2)
|
|
brcm63xx_has_reset_button="true"
|
|
status_led="P870HW-51a:green:power"
|
|
ifname="eth0"
|
|
;;
|
|
rta770bw)
|
|
brcm63xx_has_reset_button="true"
|
|
status_led="RTA770BW:green:diag"
|
|
ifname=eth0
|
|
;;
|
|
rta770w)
|
|
brcm63xx_has_reset_button="true"
|
|
status_led="RTA770W:green:diag"
|
|
ifname=eth0
|
|
;;
|
|
spw500v)
|
|
status_led="SPW500V:green:power"
|
|
brcm63xx_has_reset_button="true"
|
|
ifname=eth0
|
|
;;
|
|
v2110)
|
|
status_led="V2110:power:green"
|
|
brcm63xx_has_reset_button="true"
|
|
ifname=eth0
|
|
;;
|
|
esac
|
|
|
|
[ -e "/tmp/sysinfo" ] || mkdir -p "/tmp/sysinfo"
|
|
|
|
echo "$board_name" > /tmp/sysinfo/board_name
|
|
echo "$model" > /tmp/sysinfo/model
|
|
}
|
|
|
|
brcm63xx_board_name() {
|
|
local name
|
|
|
|
[ -f /tmp/sysinfo/board_name ] && name=$(cat /tmp/sysinfo/board_name)
|
|
[ -n "$name" ] || name="unknown"
|
|
|
|
echo $name
|
|
}
|
|
|
|
brcm63xx_detect
|