X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=blobdiff_plain;f=package%2Fnetwork%2Fconfig%2Fltq-vdsl-app%2Ffiles%2Fdsl_control;h=7c423114cba9fc337dfd56c0fd6ecded99bd7b4e;hp=8f248238517476dc1ff5bffc886c2888f8022fff;hb=1f5e442f71d2e9e76e23fef1e3dfa17b88c9ebf4;hpb=d9a3176d92c94d76480f503f7e6429794b3b94b9 diff --git a/package/network/config/ltq-vdsl-app/files/dsl_control b/package/network/config/ltq-vdsl-app/files/dsl_control index 8f24823851..7c423114cb 100644 --- a/package/network/config/ltq-vdsl-app/files/dsl_control +++ b/package/network/config/ltq-vdsl-app/files/dsl_control @@ -1,7 +1,8 @@ #!/bin/sh /etc/rc.common # Copyright (C) 2012 OpenWrt.org -START=99 +# needs to start before the atm layer which starts at 50 +START=48 EXTRA_COMMANDS="status lucistat" EXTRA_HELP=" status Get DSL status information @@ -13,24 +14,172 @@ SERVICE_WRITE_PID=1 . /lib/functions/lantiq_dsl.sh XDSL_CTRL=vdsl_cpe_control +# G.992.1 Annex A +# G.992.2 Annex A +# G.992.3 Annex A +# G.992.4 Annex A +# G.992.5 Annex A +# G.993.2 Annex A/B/C +xtse_adsl_a="04 01 04 01 00 01 00 00" + +# G.992.1 Annex B +# G.992.3 Annex B +# G.992.5 Annex B +# G.993.2 Annex A/B/C +xtse_adsl_b="10 00 10 00 00 04 00 00" + +# G.992.1 Annex B +# G.992.3 Annex B +# G.992.3 Annex J +# G.992.5 Annex B +# G.992.5 Annex J +# G.993.2 Annex A/B/C +xtse_adsl_j="10 00 10 40 00 04 01 00" + +xtse_vdsl="00 00 00 00 00 00 00 07" + +xdsl_scr() { + val=`echo $2 | sed "s/ / 0x/g"` + echo "[WaitForConfiguration]={ +#G997XTUSEC_g997xtusecs 0x$val +} + +[WaitForLinkActivate]={ +} + +[WaitForRestart]={ +} + +[Common]={ +}" > /tmp/$1.scr +} + +# A43 +tone_adsl_a="0x142" +tone_vdsl_a="0x142" + +# A43 + V43 +tone_adsl_av="0x142" +tone_vdsl_av="0x146" + +# B43 +tone_adsl_b="0x1" +tone_vdsl_b="0x1" + +# B43 + V43 +tone_adsl_bv="0x1" +tone_vdsl_bv="0x5" + +lowlevel_cfg() { + echo "# VRX Low Level Configuration File +# +# Parameters must be separated by tabs or spaces. +# Empty lines and comments will be ignored. +# + +# nFilter +# +# NA = -1 +# OFF = 0 +# ISDN = 1 +# POTS = 2 +# POTS_2 = 3 +# POTS_3 = 4 +# +# (dec) + -1 + +# nHsToneGroupMode nHsToneGroup_A nHsToneGroup_V nHsToneGroup_AV +# +# NA = -1 NA = -1 see see +# AUTO = 0 VDSL2_B43 = 0x0001 nHsToneGroup_A nHsToneGroup_A +# MANUAL = 1 VDSL2_A43 = 0x0002 +# VDSL2_V43 = 0x0004 +# VDSL1_V43P = 0x0008 +# VDSL1_V43I = 0x0010 +# ADSL1_C43 = 0x0020 +# ADSL2_J43 = 0x0040 +# ADSL2_B43C = 0x0080 +# ADSL2_A43C = 0x0100 +# +# (dec) (hex) (hex) (hex) + 1 $1 $2 0x0 + +# nBaseAddr nIrqNum +# +# (hex) (dec) + 0x1e116000 63 + +# nUtopiaPhyAdr nUtopiaBusWidth nPosPhyParity +# default(16b) = 0 NA = -1 +# 8-bit = 1 ODD = 0 +# 16-bit = 2 +# +# +# (hex) (dec) (dec) + 0xFF 0 0 + +# bNtrEnable +# +# (dec) + 0" > /tmp/lowlevel.cfg +} + start() { - local firmware xtu - + local annex + local firmware + local tone + local tone_adsl + local tone_vdsl + local xtse_adsl + local mode + config_load network - - config_get firmware wan firmware - [ -z "${firmware}" ] && - firmware=vdsl.bin + config_get tone dsl tone + config_get annex dsl annex + config_get firmware dsl firmware + config_get xfer_mode dsl xfer_mode + + [ -z "${xfer_mode}" ] && xfer_mode=ptm + + case "${xfer_mode}" in + atm) + insmod ltq_atm_vr9 + mode=1 + ;; + *) + insmod ltq_ptm_vr9 + mode=2 + ;; + esac + + eval "xtse_adsl=\"\${xtse_adsl_$annex}\"" + [ -z "${xtse_adsl}" ] && xtse_adsl=$xtse_adsl_a + + eval "tone_adsl=\"\${tone_adsl_$tone}\"" + [ -z "${tone_adsl}" ] && tone_adsl=$tone_adsl_av + + eval "tone_vdsl=\"\${tone_vdsl_$tone}\"" + [ -z "${tone_vdsl}" ] && tone_vdsl=$tone_vdsl_av + + [ -z "${firmware}" ] && firmware=/lib/firmware/vdsl.bin + [ -f "${firmware}" ] || { + echo failed to find $firmware + return 1 + } - config_get xtu wan xtu - [ -z "${xtu}" ] && - xtu=10_00_10_00_00_04_01_07 + xdsl_scr adsl "${xtse_adsl}" + xdsl_scr vdsl "${xtse_vdsl}" + lowlevel_cfg "${tone_adsl}" "${tone_vdsl}" service_start /sbin/vdsl_cpe_control \ - -i${xtu} \ - -T4_0_1 - -n /sbin/dsl_notify.sh \ - -f /lib/firmware/${firmware} + -i `echo $xtse_adsl | sed "s/ /_/g"` \ + -n /sbin/dsl_notify.sh \ + -f ${firmware} \ + -a /tmp/adsl.scr \ + -A /tmp/vdsl.scr \ + -l /tmp/lowlevel.cfg \ + -M ${mode} } stop() {