diff --git a/iopsys-brcm63xx-arm/config/koala/config b/iopsys-brcm63xx-arm/config/koala/config new file mode 100644 index 0000000000000000000000000000000000000000..0daa17eac97d522ec30d3ea30997ea3f8824176e --- /dev/null +++ b/iopsys-brcm63xx-arm/config/koala/config @@ -0,0 +1,13 @@ +CONFIG_TARGET_FAMILY="KOALA" +CONFIG_BCM_KERNEL_PROFILE="96856GWO_WL20D1D1" +CONFIG_BCM_CHIP_ID="6856" + +CONFIG_BCM_FIRMWARE_TYPE_NAND_SQUASHFS=y +CONFIG_BCM_VOICE=y +# CONFIG_BCM_DSL is not set +# CONFIG_PACKAGE_libdsl is not set +# CONFIG_PACKAGE_dslmngr is not set +# CONFIG_PACKAGE_mwan3 is not set +CONFIG_BCM_FLASH_LAYOUT_OPTIONS="options_6856_nand" + +CONFIG_PACKAGE_kmod-gryphon-led-kernel-module=y diff --git a/iopsys-brcm63xx-arm/config/panda/config b/iopsys-brcm63xx-arm/config/panda/config index 148b44b24b4125d6fc2917167dffe172c4c670c7..2772bf9532b0fc7ba0b6010f31e3e49392812df8 100644 --- a/iopsys-brcm63xx-arm/config/panda/config +++ b/iopsys-brcm63xx-arm/config/panda/config @@ -9,3 +9,5 @@ CONFIG_BCM_VOICE=y # CONFIG_PACKAGE_dslmngr is not set # CONFIG_PACKAGE_mwan3 is not set CONFIG_BCM_FLASH_LAYOUT_OPTIONS="options_6856_nand" + +CONFIG_PACKAGE_kmod-gryphon-led-kernel-module=y diff --git a/iopsys-brcm63xx-arm/koala/base-files/etc/data/scratchpad b/iopsys-brcm63xx-arm/koala/base-files/etc/data/scratchpad new file mode 100644 index 0000000000000000000000000000000000000000..3986f2c2a3e391bc33ab5b604d022cf8a3123ef1 Binary files /dev/null and b/iopsys-brcm63xx-arm/koala/base-files/etc/data/scratchpad differ diff --git a/iopsys-brcm63xx-arm/koala/base-files/etc/firewall.qos b/iopsys-brcm63xx-arm/koala/base-files/etc/firewall.qos new file mode 100644 index 0000000000000000000000000000000000000000..615d5bce0a1a33cffb84f2628bfbea0d23c310cf --- /dev/null +++ b/iopsys-brcm63xx-arm/koala/base-files/etc/firewall.qos @@ -0,0 +1,37 @@ +#Queue Name=Priority +q_def_queue=0 +q_normal=1 +q_medium=2 +q_highest=3 + +# Local generated DNS traffic goes to q_highest +iptables -t mangle -D OUTPUT -p udp -m udp --dport 53 -j MARK --set-xmark 0x$q_highest/0x$q_highest 2>/dev/null +iptables -t mangle -A OUTPUT -p udp -m udp --dport 53 -j MARK --set-xmark 0x$q_highest/0x$q_highest + +# Local generated IGMP traffic goes to q_highest +iptables -t mangle -D OUTPUT -p 2 -j MARK --set-xmark 0x$q_highest/0x$q_highest 2>/dev/null +iptables -t mangle -A OUTPUT -p 2 -j MARK --set-xmark 0x$q_highest/0x$q_highest + +# Local generated DHCP traffic goes to q_highest +iptables -t mangle -D OUTPUT -p udp -m udp --dport 67:68 -j MARK --set-xmark 0x$q_highest/0x$q_highest 2>/dev/null +iptables -t mangle -A OUTPUT -p udp -m udp --dport 67:68 -j MARK --set-xmark 0x$q_highest/0x$q_highest + +# Local generated ICMP traffic goes to q_highest +iptables -t mangle -D OUTPUT -p icmp -j MARK --set-xmark 0x$q_highest/0x$q_highest 2>/dev/null +iptables -t mangle -A OUTPUT -p icmp -j MARK --set-xmark 0x$q_highest/0x$q_highest + +# LAN generated ICMP traffic goes to q_normal +iptables -t mangle -D PREROUTING -p icmp -j MARK --set-xmark 0x$q_normal/0x$q_normal 2>/dev/null +iptables -t mangle -A PREROUTING -p icmp -j MARK --set-xmark 0x$q_normal/0x$q_normal + +# Prioritize all traffic from a specific port +#ebtables -t broute -D BROUTING -i eth3+ -j mark --mark-or 0x7 2>/dev/null +#ebtables -t broute -A BROUTING -i eth3+ -j mark --mark-or 0x7 + +# VLAN prio tag -> Queue prio +for i in `seq 1 7`; do + ebtables -t broute -D BROUTING --skbvlan-prio $i -j mark --mark-or 0x$i 2>/dev/null + ebtables -t broute -A BROUTING --skbvlan-prio $i -j mark --mark-or 0x$i +done + +# Rest goes to q_def_queue diff --git a/iopsys-brcm63xx-arm/koala/base-files/etc/hotplug.d/button/10-dimmingbutton b/iopsys-brcm63xx-arm/koala/base-files/etc/hotplug.d/button/10-dimmingbutton new file mode 100644 index 0000000000000000000000000000000000000000..a1a4e80ab7646e151a23a47cf201ddcfd8a3d64a --- /dev/null +++ b/iopsys-brcm63xx-arm/koala/base-files/etc/hotplug.d/button/10-dimmingbutton @@ -0,0 +1,78 @@ +#!/bin/sh + +. /lib/functions.sh +. /usr/share/libubox/jshn.sh + +need_to_sync_dimming_states() { + local current_brightness + local previous_brightness + local state_changed=0 + + json_load "$(ubus call led.status status)" + json_get_var previous_brightness brightness + + for led in $(ubus list led.*); do + json_load "$(ubus call "$led" status)" + json_get_var current_brightness brightness + + if [ "$current_brightness" != "$previous_brightness" ]; then + state_changed=1 + break + fi + + previous_brightness="$current_brightness" + done + + return $((state_changed)) +} + +dimming_button() { + local brightness + local current_brightness + local ledname + local needs_sync=0 + + [ -f /etc/config/leds ] || touch /etc/config/leds + + need_to_sync_dimming_states + needs_sync="$?" + + for led in $(ubus list led.*); do + brightness=100 + current_brightness=100 + ledname=${led:4} + + json_load "$(ubus call "$led" status)" + json_get_var current_brightness brightness + + if [ "$needs_sync" != "0" ]; then + brightness=100 + elif [ "$current_brightness" -ge 100 ]; then + brightness=75 + elif [ "$current_brightness" -ge 75 ]; then # Slightly dimmed + brightness=15 + elif [ "$current_brightness" -ge 15 ]; then # Significantly dimmed + brightness=0 + case $ledname in + status|composite) brightness=15 ;; + esac + else + brightness=100 + fi + ubus call "$led" set "{\"brightness\":$brightness}" + uci set leds.$ledname.brightness="$brightness" + done + uci commit leds + sync # ODM turns off the power after toggling during testing, save ASAP +} + +case "$ACTION" in + add|register) + [ "dimmingbutton" == "$INTERFACE" ] && { + printf "\n\nDimming button is pressed\n\n" > /dev/console + dimming_button + } + ;; + remove|unregister) + ;; +esac diff --git a/iopsys-brcm63xx-arm/koala/base-files/etc/hotplug.d/button/20-softresetbutton b/iopsys-brcm63xx-arm/koala/base-files/etc/hotplug.d/button/20-softresetbutton new file mode 100644 index 0000000000000000000000000000000000000000..3aa70b276921fb45d23ce09b50147b93c5d519b0 --- /dev/null +++ b/iopsys-brcm63xx-arm/koala/base-files/etc/hotplug.d/button/20-softresetbutton @@ -0,0 +1,12 @@ +#!/bin/sh + +case "$ACTION" in + add|register) + [ "softresetbutton" == "$INTERFACE" ] && { + printf "\n\nSoft reset button is pressed\n\n" > /dev/console + reboot + } + ;; + remove|unregister) + ;; +esac diff --git a/iopsys-brcm63xx-arm/koala/base-files/etc/hotplug.d/usb/00-led b/iopsys-brcm63xx-arm/koala/base-files/etc/hotplug.d/usb/00-led new file mode 100644 index 0000000000000000000000000000000000000000..f083122e4643da47b19f5e2c921f83616a2fefb1 --- /dev/null +++ b/iopsys-brcm63xx-arm/koala/base-files/etc/hotplug.d/usb/00-led @@ -0,0 +1,17 @@ +#!/bin/sh + +readonly BASENAME="$(basename "$DEVPATH")" +[ "${BASENAME:0:3}" = "usb" -a "$ACTION" = "add" ] && exit 0 +[ "${BASENAME:0:3}" = "usb" ] && ACTION="notice" # A root-hub disappeared, this SHOULD NOT happen! + +case "$ACTION" in + add|bind) + ubus call led.usb set '{ "state": "ok" }' + ;; + notice) + ubus call led.usb set '{ "state": "notice" }' + ;; + *) + ubus call led.usb set '{ "state": "off" }' + ;; +esac diff --git a/iopsys-brcm63xx-arm/koala/base-files/etc/init.d/scratchpad b/iopsys-brcm63xx-arm/koala/base-files/etc/init.d/scratchpad new file mode 100755 index 0000000000000000000000000000000000000000..aeea3ae87473dea0013532448fe7cf3e751e19ad --- /dev/null +++ b/iopsys-brcm63xx-arm/koala/base-files/etc/init.d/scratchpad @@ -0,0 +1,12 @@ +#!/bin/sh /etc/rc.common +# +# Initialize scratchpad + +START=05 + +boot() { + if [ -f "/etc/data/scratchpad" -a ! -f "/data/scratchpad" ]; then + cp "/etc/data/scratchpad" "/data/scratchpad" + sync + fi +} diff --git a/iopsys-brcm63xx-arm/koala/base-files/etc/init.d/udevtrigger b/iopsys-brcm63xx-arm/koala/base-files/etc/init.d/udevtrigger new file mode 100755 index 0000000000000000000000000000000000000000..3057dbc2b572a860d525afdf89a255a2c0a24b3f --- /dev/null +++ b/iopsys-brcm63xx-arm/koala/base-files/etc/init.d/udevtrigger @@ -0,0 +1,9 @@ +#!/bin/sh /etc/rc.common + +START=8 + + +boot() { + # Cold plug trigger - USB LED etc.. + udevtrigger +} diff --git a/iopsys-brcm63xx-arm/koala/base-files/etc/init.d/voice_monitor b/iopsys-brcm63xx-arm/koala/base-files/etc/init.d/voice_monitor new file mode 100755 index 0000000000000000000000000000000000000000..afe3ca95a5f4457027f1fd7ca557e64648d3f3be --- /dev/null +++ b/iopsys-brcm63xx-arm/koala/base-files/etc/init.d/voice_monitor @@ -0,0 +1,29 @@ +#!/bin/sh /etc/rc.common + +START=21 +STOP=90 +USE_PROCD=1 + +VOICE_MONITOR=$(which voice_monitor) + +start_service() { + [ -n "$VOICE_MONITOR" ] && { + procd_open_instance + procd_set_param command "$VOICE_MONITOR" + procd_set_param respawn + procd_close_instance + } +} + +stop_service() { + [ -n "$VOICE_MONITOR" ] && service_stop "$VOICE_MONITOR" +} + +boot() { + start +} + +reload_service() { + stop + start +} diff --git a/iopsys-brcm63xx-arm/koala/base-files/etc/init.d/wan_management b/iopsys-brcm63xx-arm/koala/base-files/etc/init.d/wan_management new file mode 100755 index 0000000000000000000000000000000000000000..38d9d558553db1450441aa10b7be238fe76cf39b --- /dev/null +++ b/iopsys-brcm63xx-arm/koala/base-files/etc/init.d/wan_management @@ -0,0 +1,60 @@ +#!/bin/sh /etc/rc.common + +START=1 +USE_PROCD=1 + +. /lib/functions.sh +include /lib/network + +configure_ports(){ + local cfg=$1 + local ifname enabled speed duplex autoneg + local ethwan="$(db -q get hw.board.ethernetWanPort)" + + config_get ifname $cfg ifname + [ -d /sys/class/net/$ifname ] || return + + if [ "$ifname" == "$ethwan" ]; then + config_get enabled $cfg enabled 1 + config_get speed $cfg speed 1000 + config_get duplex $cfg duplex "full" + config_get autoneg $cfg autoneg 1 + config_get autosense $cfg autosense 0 + + if [ "$speed" -ge 10000 ]; then + echo 10 > /proc/aemode/switch + sleep 1 + ifconfig "$ifname" mtu 9000 + else + echo 1 > /proc/aemode/switch + sleep 1 + ifconfig "$ifname" mtu 1998 + fi + + if [ "$autosense" -eq 1 ]; then + /etc/init.d/fiber_autospeed restart + return + fi + + sleep 1 + + [ "$duplex" == "full" ] && duplex=1 || duplex=0 + ethswctl -c phymode -n 0 -p 8 -y $speed -z $duplex 2>&1 >/dev/null + + [ $autoneg -eq 1 ] && autoneg="on" || autoneg="off" + if [ "$autoneg" == "on" ]; then + ethswctl -c phymode -n 0 -p 8 -y 0 2>&1 >/dev/null + fi + fi +} + +start_service() { + [ -f /lib/network/port.sh ] || return + + config_load ports + config_foreach configure_ports ethport +} + +service_triggers() { + procd_add_reload_trigger ports +} diff --git a/iopsys-brcm63xx-arm/koala/base-files/etc/init.d/wanconf b/iopsys-brcm63xx-arm/koala/base-files/etc/init.d/wanconf new file mode 100755 index 0000000000000000000000000000000000000000..00d8bef496e769ce67a77a15a715262eb82c9905 --- /dev/null +++ b/iopsys-brcm63xx-arm/koala/base-files/etc/init.d/wanconf @@ -0,0 +1,8 @@ +#!/bin/sh /etc/rc.common + +START=15 + +boot() { + wanconf +} + diff --git a/iopsys-brcm63xx-arm/koala/base-files/etc/wifi.json b/iopsys-brcm63xx-arm/koala/base-files/etc/wifi.json new file mode 100644 index 0000000000000000000000000000000000000000..132e768166da278b371aa179f82da8621a9ae2b1 --- /dev/null +++ b/iopsys-brcm63xx-arm/koala/base-files/etc/wifi.json @@ -0,0 +1,40 @@ +{ + "events" : [ + { + "type": "wifi-event", + "name": "broadcom", + "ifname" : "wl0*", + "family": "bcmwl", + "group": [ + "notify" + ] + }, + { + "type": "wifi-event", + "name": "broadcom", + "ifname" : "wl1*", + "family": "bcmwl", + "group": [ + "notify" + ] + }, + { + "type": "wifi-event", + "name": "cfg", + "ifname": "wl0", + "family": "nl80211", + "group": [ + "scan" + ] + }, + { + "type": "wifi-event", + "name": "cfg", + "ifname": "wl1", + "family": "nl80211", + "group": [ + "scan" + ] + } + ] +} diff --git a/iopsys-brcm63xx-arm/koala/base-files/etc/wlan/kernel_nvram.fallback b/iopsys-brcm63xx-arm/koala/base-files/etc/wlan/kernel_nvram.fallback new file mode 100644 index 0000000000000000000000000000000000000000..9f5884efd84fbe70abf552f1e8351c39bf7f0ffb --- /dev/null +++ b/iopsys-brcm63xx-arm/koala/base-files/etc/wlan/kernel_nvram.fallback @@ -0,0 +1,613 @@ +hapd_enable=1 +acs_version=2 +#following four entries is for cevent +ceventd_enable=1 +ceventd_out=/tmp/ce0.log +wl_cevent=1 +ceventd_eventmask=0x1000000000010000000000000000000000410002831fff +mbo_enable=1 +#crash_log_backup_dir=/data/crash_log +1:devpath1=sb/1/ +2:devpath2=sb/1/ +devpath1=pcie/0/1/ +1:sromrev=18 +1:boardrev=0x1303 +1:boardflags=0x10001000 +1:boardflags2=0x4 +1:boardtype=0x84e +1:subvid=0x14e4 +1:devid=0x442b +1:boardflags3=0x0 +1:boardnum=61555 +1:macaddr=00:90:4c:2b:f0:73 +1:ccode= +1:regrev=0 +1:aa2g=15 +1:aa5g=15 +1:agbg0=0 +1:agbg1=0 +1:agbg2=0 +1:aga0=0 +1:aga1=0 +1:aga2=0 +1:txchain=15 +1:rxchain=15 +1:antswitch=0 +1:tssiposslope2g=1 +1:epagain2g=0 +1:pdgain2g=0 +1:tworangetssi2g=0 +1:papdcap2g=0 +1:femctrl=2 +1:tssiposslope5g=1 +1:epagain5g=0 +1:pdgain5g=1 +1:tworangetssi5g=0 +1:papdcap5g=0 +1:gainctrlsph=0 +1:tempthresh=110 +1:tempoffset=255 +1:rawtempsense=0x1ff +1:measpower=0x0 +1:tempsense_slope=0xff +1:tempcorrx=0x3f +1:tempsense_option=0x3 +1:xtalfreq=54000 +1:pa5gbw4080a1=0x0,0x739c,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +1:phycal_tempdelta=40 +1:temps_period=10 +1:temps_hysteresis=5 +1:measpower1=0x0 +1:measpower2=0x0 +1:tssifloor2g=0x1c +1:tssifloor5g=0x0,0x300,0x35a,0x35a +1:pdoffset2g40ma0=0 +1:pdoffset2g40ma1=0 +1:pdoffset2g40ma2=0 +1:pdoffset2g40mvalid=0 +1:pdoffset40ma0=0 +1:pdoffset40ma1=0 +1:pdoffset40ma2=0 +1:pdoffset80ma0=65535 +1:pdoffset80ma1=0 +1:pdoffset80ma2=0 +1:subband5gver=0x5 +1:paparambwver=0 +1:rx5ggainwar=0 +1:pa5gbw4080a0=0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x14a5 +1:pa5gbw40a0=0x0,0x0,0x0,0x101,0x3e00,0x901,0x3e00,0x0,0x0,0x0,0x0,0x0 +1:pa5gbw80a0=0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x14a5 +1:pa2gccka0=0x0,0x0,0x0 +1:cckbw202gpo=0 +1:cckbw20ul2gpo=0 +1:mcsbw202gpo=3430368290 +1:mcsbw402gpo=3430368273 +1:dot11agofdmhrbw202gpo=51575 +1:ofdmlrbw202gpo=119 +1:mcsbw205glpo=2825274401 +1:mcsbw405glpo=2825274401 +1:mcsbw805glpo=2825274401 +1:mcsbw205gmpo=2825274401 +1:mcsbw405gmpo=2825274401 +1:mcsbw805gmpo=2825274401 +1:mcsbw205ghpo=2825274401 +1:mcsbw405ghpo=2825274401 +1:mcsbw805ghpo=2825274401 +1:mcslr5glpo=0 +1:mcslr5gmpo=0 +1:mcslr5ghpo=0 +1:sb20in40hrpo=0 +1:sb20in80and160hr5glpo=0 +1:sb40and80hr5glpo=0 +1:sb20in80and160hr5gmpo=0 +1:sb40and80hr5gmpo=0 +1:sb20in80and160hr5ghpo=0 +1:sb40and80hr5ghpo=0 +1:sb20in40lrpo=0 +1:sb20in80and160lr5glpo=0 +1:sb40and80lr5glpo=0 +1:sb20in80and160lr5gmpo=0 +1:sb40and80lr5gmpo=0 +1:sb20in80and160lr5ghpo=0 +1:sb40and80lr5ghpo=0 +1:dot11agduphrpo=0 +1:dot11agduplrpo=0 +1:sar2g=18 +1:sar5g=15 +1:noiselvl2ga0=31 +1:noiselvl2ga1=31 +1:noiselvl2ga2=31 +1:noiselvl5ga0=31,31,31,31 +1:noiselvl5ga1=31,31,31,31 +1:noiselvl5ga2=31,31,31,31 +1:rxgainerr2ga0=63 +1:rxgainerr2ga1=31 +1:rxgainerr2ga2=31 +1:rxgainerr5ga0=63,63,63,63 +1:rxgainerr5ga1=31,31,31,31 +1:rxgainerr5ga2=31,31,31,31 +1:rpcal2g=0 +1:rpcal5gb0=0 +1:rpcal5gb1=0 +1:rpcal5gb2=0 +1:rpcal5gb3=0 +1:txidxcap2g=0 +1:txidxcap5g=0 +1:pdoffsetcckma0=0 +1:pdoffsetcckma1=0 +1:pdoffsetcckma2=0 +1:boardflags4=0x8 +1:pdoffsetcck=7431 +1:pdoffset20in40m5gb0=27482 +1:pdoffset20in40m5gb1=27482 +1:pdoffset20in40m5gb2=27482 +1:pdoffset20in40m5gb3=27482 +1:pdoffset20in40m5gb4=27482 +1:pdoffset40in80m5gb0=0 +1:pdoffset40in80m5gb1=0 +1:pdoffset40in80m5gb2=0 +1:pdoffset40in80m5gb3=0 +1:pdoffset40in80m5gb4=0 +1:pdoffset20in80m5gb0=27482 +1:pdoffset20in80m5gb1=27482 +1:pdoffset20in80m5gb2=27482 +1:pdoffset20in80m5gb3=27482 +1:pdoffset20in80m5gb4=29530 +1:mcsbw205gx1po=2825274401 +1:mcsbw405gx1po=2825274401 +1:mcsbw805gx1po=2825274401 +1:mcsbw205gx2po=2825274401 +1:mcsbw405gx2po=2825274401 +1:mcsbw805gx2po=2825274401 +1:sb20in80and160hr5gx1po=0 +1:sb20in80and160lr5gx1po=0 +1:sb40and80hr5gx1po=0 +1:sb20in80and160hr5gx2po=0 +1:sb20in80and160lr5gx2po=0 +1:sb40and80hr5gx2po=0 +1:rxgains5gmelnagaina0=0 +1:rxgains5gmelnagaina1=0 +1:rxgains5gmelnagaina2=0 +1:rxgains5gmtrisoa0=0 +1:rxgains5gmtrisoa1=0 +1:rxgains5gmtrisoa2=0 +1:rxgains5gmtrelnabypa0=0 +1:rxgains5gmtrelnabypa1=0 +1:rxgains5gmtrelnabypa2=0 +1:rxgains5ghelnagaina0=7 +1:rxgains5ghelnagaina1=7 +1:rxgains5ghelnagaina2=7 +1:rxgains5ghtrisoa0=15 +1:rxgains5ghtrisoa1=15 +1:rxgains5ghtrisoa2=15 +1:rxgains5ghtrelnabypa0=1 +1:rxgains5ghtrelnabypa1=1 +1:rxgains5ghtrelnabypa2=1 +1:gpdn=0x0 +1:rpcal2gcore3=0 +1:rpcal5gb0core3=0 +1:rpcal5gb1core3=0 +1:rpcal5gb2core3=0 +1:rpcal5gb3core3=0 +1:sw_txchain_mask=15 +1:sw_rxchain_mask=15 +1:agbg3=0 +1:aga3=0 +1:noiselvl2ga3=31 +1:noiselvl5ga3=31,31,31,31 +1:rxgainerr2ga3=31 +1:rxgainerr5ga3=31,31,31,31 +1:rxgains5gmelnagaina3=0 +1:rxgains5gmtrisoa3=0 +1:rxgains5gmtrelnabypa3=0 +1:rxgains5ghelnagaina3=7 +1:rxgains5ghtrisoa3=15 +1:rxgains5ghtrelnabypa3=1 +1:pdoffset20in40m5gcore3=27482 +1:pdoffset20in40m5gcore3_1=858 +1:pdoffset20in80m5gcore3=27485 +1:pdoffset20in80m5gcore3_1=922 +1:pdoffset40in80m5gcore3=0 +1:pdoffset40in80m5gcore3_1=0 +1:pdoffset20in40m2g=29596 +1:pdoffset20in40m2gcore3=28 +1:pdoffsetcck20m=5285 +1:mcs1024qam2gpo=52428 +1:mcs1024qam5glpo=2863311530 +1:mcs1024qam5gmpo=2863311530 +1:mcs1024qam5ghpo=2863311530 +1:mcs1024qam5gx1po=2863311530 +1:mcs1024qam5gx2po=2863311530 +1:mcsbw1605glpo=2826388513 +1:mcsbw1605gmpo=2826388513 +1:mcsbw1605ghpo=2826388513 +1:mcsbw1605gx1po=2826388513 +1:mcsbw1605gx2po=2826388513 +1:ulbpproffs2g=0 +1:mcs8poexp=0 +1:mcs9poexp=0 +1:mcs10poexp=0 +1:mcs11poexp=0 +1:ulbpdoffs5gb0a0=0 +1:ulbpdoffs5gb0a1=0 +1:ulbpdoffs5gb0a2=0 +1:ulbpdoffs5gb0a3=0 +1:ulbpdoffs5gb1a0=0 +1:ulbpdoffs5gb1a1=0 +1:ulbpdoffs5gb1a2=0 +1:ulbpdoffs5gb1a3=0 +1:ulbpdoffs5gb2a0=0 +1:ulbpdoffs5gb2a1=0 +1:ulbpdoffs5gb2a2=0 +1:ulbpdoffs5gb2a3=0 +1:ulbpdoffs5gb3a0=0 +1:ulbpdoffs5gb3a1=0 +1:ulbpdoffs5gb3a2=0 +1:ulbpdoffs5gb3a3=0 +1:ulbpdoffs5gb4a0=0 +1:ulbpdoffs5gb4a1=0 +1:ulbpdoffs5gb4a2=0 +1:ulbpdoffs5gb4a3=0 +1:ulbpdoffs2ga0=0 +1:ulbpdoffs2ga1=0 +1:ulbpdoffs2ga2=0 +1:ulbpdoffs2ga3=0 +1:rpcal5gb4=0 +1:sb20in40hrlrpox=0 +1:swctrlmap4_cfg=37 +1:swctrlmap4_TX2g_fem3to0=43690 +1:swctrlmap4_RX2g_fem3to0=17476 +1:swctrlmap4_RXByp2g_fem3to0=26214 +1:swctrlmap4_misc2g_fem3to0=0 +1:swctrlmap4_TX5g_fem3to0=13107 +1:swctrlmap4_RX5g_fem3to0=17476 +1:swctrlmap4_RXByp5g_fem3to0=26214 +1:swctrlmap4_misc5g_fem3to0=0 +1:swctrlmap4_TX2g_fem7to4=0 +1:swctrlmap4_RX2g_fem7to4=0 +1:swctrlmap4_RXByp2g_fem7to4=0 +1:swctrlmap4_misc2g_fem7to4=0 +1:swctrlmap4_TX5g_fem7to4=0 +1:swctrlmap4_RX5g_fem7to4=0 +1:swctrlmap4_RXByp5g_fem7to4=0 +1:swctrlmap4_misc5g_fem7to4=0 +1:pdoffset20in160m5gc0=31710 +1:pdoffset20in160m5gc1=31710 +1:pdoffset20in160m5gc2=29628 +1:pdoffset20in160m5gc3=29628 +1:pdoffset20in160m5gcore3=924 +1:pdoffset20in160m5gcore3_1=924 +1:pdoffset40in160m5gc0=4294 +1:pdoffset40in160m5gc1=4294 +1:pdoffset40in160m5gc2=2178 +1:pdoffset40in160m5gc3=2178 +1:pdoffset40in160m5gcore3=98 +1:pdoffset40in160m5gcore3_1=0 +1:pdoffset80in160m5gc0=30750 +1:pdoffset80in160m5gc1=30750 +1:pdoffset80in160m5gc2=30750 +1:pdoffset80in160m5gc3=30750 +1:pdoffset80in160m5gcore3=924 +1:pdoffset80in160m5gcore3_1=924 +1:low_adc_rate_en=1 +1:maxp2ga0=90 +1:maxp5gb4a0=98 +1:pa2ga0=0x1f2c,0xe08e,0xf75c,0x1841 +1:pa2g40a0=0x1e2d,0xf162,0xef11,0x1584 +1:maxp5gb0a0=98 +1:maxp5gb1a0=98 +1:maxp5gb2a0=98 +1:maxp5gb3a0=98 +1:pa5ga0=0x202f,0xc60d,0x0000,0x0e94,0x209c,0xc622,0x0000,0x1163,0x2080,0xc4b8,0xfffe,0x04fa,0x2039,0xc4f2,0x0000,0x0037,0x202a,0xc5d2,0x0000,0x0017 +1:pa5g40a0=0x2167,0xc73d,0xff07,0x260d,0x21ba,0xc7fc,0xfe31,0x1d6c,0x2225,0xc2d1,0x0000,0x1ab2,0x21cb,0xc3b6,0x0000,0x19c8,0x2193,0xc4fa,0x0000,0x200c +1:pa5g80a0=0x20e1,0xc561,0x0000,0x1c4c,0x2167,0xc523,0xfffd,0x1df9,0x21a5,0xc2ab,0x0000,0x0e98,0x20e4,0xc4fd,0x0000,0x19e9,0x2100,0xc591,0x0000,0x1b45 +1:rxgains2gelnagaina0=5 +1:rxgains2gtrisoa0=8 +1:rxgains2gtrelnabypa0=1 +1:rxgains5gelnagaina0=3 +1:rxgains5gtrisoa0=6 +1:rxgains5gtrelnabypa0=1 +1:pa2g20ccka0=0xffff,0xffff,0xffff,0xffff +1:pa5g160a0=0x2093,0xcd62,0xfcd1,0x27ec,0x2093,0xcd62,0xfcd1,0x27ec,0x21c2,0xc446,0xffff,0x1e6d,0x21c2,0xc446,0xffff,0x1e6d +1:maxp2ga1=90 +1:maxp5gb4a1=98 +1:pa2ga1=0x1f28,0xe4e0,0xf517,0x177f +1:pa2g40a1=0x1e6f,0xf294,0xee6f,0x1608 +1:maxp5gb0a1=98 +1:maxp5gb1a1=98 +1:maxp5gb2a1=98 +1:maxp5gb3a1=98 +1:pa5ga1=0x1f69,0xc87e,0x0000,0x12a0,0x1fa6,0xc870,0x0000,0x145d,0x1f0f,0xc731,0xfff2,0x05dd,0x1ed7,0xc781,0x0000,0x0000,0x1e9f,0xca41,0x0000,0x1377 +1:pa5g40a1=0x20e5,0xc8a6,0xff16,0x2579,0x216b,0xc618,0x0000,0x23a3,0x20c3,0xc4bf,0x0000,0x158c,0x2064,0xc69f,0x0000,0x1d67,0x2027,0xc8c2,0x0000,0x281f +1:pa5g80a1=0x2082,0xc6e3,0x0000,0x1da1,0x20c4,0xc6a2,0x0000,0x1e31,0x204d,0xc4a4,0x0000,0x0982,0x1f81,0xc825,0xfffa,0x19c7,0x1fa6,0xc969,0x0000,0x244e +1:rxgains2gelnagaina1=5 +1:rxgains2gtrisoa1=8 +1:rxgains2gtrelnabypa1=1 +1:rxgains5gelnagaina1=3 +1:rxgains5gtrisoa1=6 +1:rxgains5gtrelnabypa1=1 +1:pa2g20ccka1=0xffff,0xffff,0xffff,0xffff +1:pa5g160a1=0x2089,0xcaa7,0xfec5,0x2ab0,0x2089,0xcaa7,0xfec5,0x2ab0,0x2088,0xc601,0x0000,0x1a02,0x2088,0xc601,0x0000,0x1a02 +1:maxp2ga2=90 +1:maxp5gb4a2=98 +1:pa2ga2=0x1f36,0xe23c,0xf674,0x19ef +1:pa2g40a2=0x1e96,0xf08d,0xef30,0x173e +1:maxp5gb0a2=98 +1:maxp5gb1a2=98 +1:maxp5gb2a2=98 +1:maxp5gb3a2=98 +1:pa5ga2=0x1f45,0xc750,0x0000,0x0642,0x1f10,0xc788,0x0000,0x08e4,0x1e69,0xca08,0x0000,0x13d4,0x1e64,0xcade,0x0000,0x17f6,0x1e73,0xcaf4,0x0000,0x182f +1:pa5g40a2=0x2118,0xc51b,0x0000,0x1e0b,0x20d2,0xc58c,0x0000,0x201c,0x1f93,0xcc03,0xfda9,0x1b3d,0x1f27,0xcfdd,0xfc2d,0x193b,0x1f63,0xcddd,0xfd0a,0x1a4d +1:pa5g80a2=0x2032,0xc691,0xffff,0x1e5a,0x200d,0xc6a6,0xffff,0x1bfb,0x1f6b,0xc83f,0x0000,0x1cbb,0x1f0d,0xcb91,0xff36,0x254b,0x1f2e,0xcbc3,0xfe98,0x1b9e +1:rxgains2gelnagaina2=5 +1:rxgains2gtrisoa2=8 +1:rxgains2gtrelnabypa2=1 +1:rxgains5gelnagaina2=3 +1:rxgains5gtrisoa2=6 +1:rxgains5gtrelnabypa2=1 +1:pa2g20ccka2=0xffff,0xffff,0xffff,0xffff +1:pa5g160a2=0x207f,0xc736,0x0000,0x27c4,0x207f,0xc736,0x0000,0x27c4,0x1f09,0xcfe6,0xfc2f,0x1ad2,0x1f09,0xcfe6,0xfc2f,0x1ad2 +1:maxp2ga3=90 +1:maxp5gb4a3=98 +1:pa2ga3=0x1f34,0xe3da,0xf58e,0x1a61 +1:pa2g40a3=0x1e77,0xf245,0xee68,0x1758 +1:maxp5gb0a3=98 +1:maxp5gb1a3=98 +1:maxp5gb2a3=98 +1:maxp5gb3a3=98 +1:pa5ga3=0x1cfb,0xcc16,0x0000,0x175d,0x1d30,0xcd4c,0xff95,0x179c,0x1da9,0xccbc,0x0000,0x19c2,0x1d7c,0xccf5,0xffff,0x1988,0x1d75,0xcd27,0x0000,0x18a8 +1:pa5g40a3=0x1e40,0xcddb,0xfd54,0x16af,0x1e65,0xce97,0xfda7,0x2211,0x1f19,0xcb32,0xffce,0x2cfd,0x1f0e,0xcaea,0x0000,0x2ad3,0x1edb,0xcb62,0x0000,0x2c24 +1:pa5g80a3=0x1dc6,0xcb54,0xffc1,0x250d,0x1dda,0xcd9e,0xfebb,0x2275,0x1e9a,0xcb6f,0x0000,0x2979,0x1e68,0xcb8b,0x0000,0x2811,0x1e61,0xcbb7,0x0000,0x25fd +1:rxgains2gelnagaina3=5 +1:rxgains2gtrisoa3=8 +1:rxgains2gtrelnabypa3=1 +1:rxgains5gelnagaina3=3 +1:rxgains5gtrisoa3=6 +1:rxgains5gtrelnabypa3=1 +1:pa2g20ccka3=0xffff,0xffff,0xffff,0xffff +1:pa5g160a3=0x1e0b,0xcf17,0xfe03,0x2d3d,0x1e0b,0xcf17,0xfe03,0x2d3d,0x1ebb,0xccad,0x0000,0x3893,0x1ebb,0xccad,0x0000,0x3893 +devpath2=pcie/1/1/ +2:boardflags=0x00001000 +2:boardflags2=0x00000004 +2:boardflags3=0x0 +2:boardflags4=0xE +2:pdgain2g=1 +2:pdgain5g=1 +2:NVRAMRev=$Rev: 777532 $ +2:sromrev=18 +2:boardtype=0x08F3 +2:boardrev=0x1201 +2:subvid=0x14e4 +2:vendid=0x14e4 +2:boardnum=${serno} +2:devid=0x4494 +2:macaddr=00:90:4c:37:40:00 +2:ccode=US +2:regrev=791 +2:aa2g=0x7 +2:aa5g=0x7 +2:agbg0=0x43 +2:agbg1=0x43 +2:agbg2=0x43 +2:aga0=0x43 +2:aga1=0x43 +2:aga2=0x43 +2:txchain=0x7 +2:rxchain=0x7 +2:tssiposslope2g=1 +2:epagain2g=0 +2:tworangetssi2g=0 +2:papdcap2g=0 +2:tssiposslope5g=1 +2:epagain5g=0 +2:femctrl=0 +2:tworangetssi5g=0 +2:papdcap5g=0 +2:tempthresh=110 +2:tempoffset=255 +2:rawtempsense=0x1ff +2:tempsense_slope=0xff +2:tempcorrx=0x3f +2:tempsense_option=0x3 +2:xtalfreq=50000 +2:phycal_tempdelta=40 +2:temps_period=10 +2:temps_hysteresis=5 +2:measpower=0 +2:measpower1=0 +2:measpower2=0 +2:ppr_backoff_2g=0x3 +2:ppr_backoff_5g=0x3 +2:low_adc_rate_en=1 +2:pa2ga0=0x1c5a,0xf1dc,0x3d37,0x2527 +2:pa2ga1=0x1c1d,0xf833,0x4ad6,0x2627 +2:pa2ga2=0x1bbf,0xf6ef,0x4251,0x2580 +2:pa2g40a0=0x1b36,0xf248,0x3477,0x2462 +2:pa2g40a1=0x1c22,0xeb1a,0x2f9f,0x2406 +2:pa2g40a2=0x19e3,0xfc05,0x3c40,0x24df +2:maxp2ga0=0x5A +2:maxp2ga1=0x59 +2:maxp2ga2=0x58 +2:cckbw202gpo=0x0000 +2:cckbw20ul2gpo=0x0000 +2:ofdmlrbw202gpo=0x0020 +2:dot11agofdmhrbw202gpo=0x8754 +2:mcsbw202gpo=0x88875420 +2:mcsbw402gpo=0x88875420 +2:pdoffsetcck=0 +2:pdoffsetcck20m=0 +2:pdoffset20in40m2g=0 +2:pdoffset20in40m2gcore3=0x0 +2:pdoffset2g40ma0=0 +2:pdoffset2g40ma1=0 +2:pdoffset2g40ma2=0 +2:pdoffset2g40mvalid=0 +2:pdoffset20in40m5gb0=0 +2:pdoffset20in40m5gb1=0 +2:pdoffset20in40m5gb2=0 +2:pdoffset20in40m5gb3=0 +2:pdoffset20in40m5gb4=0 +2:pdoffset40in80m5gb0=0 +2:pdoffset40in80m5gb1=0 +2:pdoffset40in80m5gb2=0 +2:pdoffset40in80m5gb3=0 +2:pdoffset40in80m5gb4=0 +2:pdoffset20in80m5gb0=0 +2:pdoffset20in80m5gb1=0 +2:pdoffset20in80m5gb2=0 +2:pdoffset20in80m5gb3=0 +2:pdoffset20in80m5gb4=0 +2:subband5gver=0x5 +2:mcsbw205glpo=0xFFFFFFFF +2:mcsbw405glpo=0xFFFFFFFF +2:mcsbw805glpo=0xFFFFFFFF +2:mcsbw205gmpo=0xFFFFFFFF +2:mcsbw405gmpo=0xFFFFFFFF +2:mcsbw805gmpo=0xFFFFFFFF +2:mcsbw205ghpo=0xFFFFFFFF +2:mcsbw405ghpo=0xFFFFFFFF +2:mcsbw805ghpo=0xFFFFFFFF +2:mcsbw205gx1po=0xFFFFFFFF +2:mcsbw405gx1po=0xFFFFFFFF +2:mcsbw805gx1po=0xFFFFFFFF +2:mcsbw205gx2po=0xFFFFFFFF +2:mcsbw405gx2po=0xFFFFFFFF +2:mcsbw805gx2po=0xFFFFFFFF +2:mcs1024qam2gpo=0x8888 +2:mcs1024qam5glpo=0x0 +2:mcs1024qam5gmpo=0x0 +2:mcs1024qam5ghpo=0x0 +2:mcs1024qam5gx1po=0x0 +2:mcs1024qam5gx2po=0x0 +2:mcs8poexp=0x0 +2:mcs9poexp=0x0 +2:mcs10poexp=0x0 +2:mcs11poexp=0x0 +2:mcslr5glpo=0x0 +2:mcslr5gmpo=0x0 +2:mcslr5ghpo=0x0 +2:mcslr5gx1po=0x0 +2:mcslr5gx2po=0x0 +2:dot11agduphrpo=0 +2:dot11agduplrpo=0 +2:dot11agduphrlrpox=0 +2:sb20in40hrpo=0 +2:sb20in40lrpo=0 +2:sb20in40hrlrpox=0 +2:sb40and80hr5glpo=0 +2:sb40and80hr5gmpo=0 +2:sb40and80hr5ghpo=0 +2:sb40and80hr5gx1po=0 +2:sb40and80hr5gx2po=0 +2:sb20in80and160hr5glpo=0 +2:sb20in80and160hr5gmpo=0 +2:sb20in80and160hr5ghpo=0 +2:sb20in80and160hr5gx1po=0 +2:sb20in80and160hr5gx2po=0 +2:sb40and80lr5glpo=0 +2:sb40and80lr5gmpo=0 +2:sb40and80lr5ghpo=0 +2:sb40and80lr5gx1po=0 +2:sb40and80lr5gx2po=0 +2:sb20in80and160lr5glpo=0 +2:sb20in80and160lr5gmpo=0 +2:sb20in80and160lr5ghpo=0 +2:sb20in80and160lr5gx1po=0 +2:sb20in80and160lr5gx2po=0 +2:noiselvl2ga0=31 +2:noiselvl2ga1=31 +2:noiselvl2ga2=31 +2:noiselvl5ga0=31,31,31,31 +2:noiselvl5ga1=31,31,31,31 +2:noiselvl5ga2=31,31,31,31 +2:rxgains2gelnagaina0=4 +2:rxgains2gelnagaina1=4 +2:rxgains2gelnagaina2=4 +2:rxgains2gtrelnabypa0=1 +2:rxgains2gtrelnabypa1=1 +2:rxgains2gtrelnabypa2=1 +2:rxgains2gtrisoa0=7 +2:rxgains2gtrisoa1=7 +2:rxgains2gtrisoa2=7 + +2:rxgainerr2ga0=63 +2:rxgainerr2ga1=31 +2:rxgainerr2ga2=31 +2:rxgainerr5ga0=63,63,63,63 +2:rxgainerr5ga1=31,31,31,31 +2:rxgainerr5ga2=31,31,31,31 +2:rxgains5gmelnagaina0=4 +2:rxgains5gmelnagaina1=4 +2:rxgains5gmelnagaina2=4 +2:rxgains5gmtrisoa0=7 +2:rxgains5gmtrisoa1=7 +2:rxgains5gmtrisoa2=7 +2:rxgains5gmtrelnabypa0=1 +2:rxgains5gmtrelnabypa1=1 +2:rxgains5gmtrelnabypa2=1 +2:rxgains5ghelnagaina0=4 +2:rxgains5ghelnagaina1=4 +2:rxgains5ghelnagaina2=4 +2:rxgains5ghtrisoa0=7 +2:rxgains5ghtrisoa1=7 +2:rxgains5ghtrisoa2=7 +2:rxgains5ghtrelnabypa0=1 +2:rxgains5ghtrelnabypa1=1 +2:rxgains5ghtrelnabypa2=1 +2:rxgains5gelnagaina0=4 +2:rxgains5gelnagaina1=4 +2:rxgains5gelnagaina2=4 +2:rxgains5gtrisoa0=7 +2:rxgains5gtrisoa1=7 +2:rxgains5gtrisoa2=7 +2:rxgains5gtrelnabypa0=1 +2:rxgains5gtrelnabypa1=1 +2:rxgains5gtrelnabypa2=1 +2:maxp5gb0a0=0x60 +2:maxp5gb1a0=0x60 +2:maxp5gb2a0=0x60 +2:maxp5gb3a0=0x60 +2:maxp5gb4a0=0x60 +2:maxp5gb0a1=0x60 +2:maxp5gb1a1=0x60 +2:maxp5gb2a1=0x60 +2:maxp5gb3a1=0x60 +2:maxp5gb4a1=0x60 +2:maxp5gb0a2=0x60 +2:maxp5gb1a2=0x60 +2:maxp5gb2a2=0x60 +2:maxp5gb3a2=0x60 +2:maxp5gb4a2=0x60 +2:pa5ga0=0x2499,0xCBF7,0xF24F,0x0000,0x246A,0xCB8D,0xF270,0x0000,0x20AC,0xE3D5,0xE825,0x0000,0x1BDC,0xFFFF,0xDE58,0x1272,0x1B6C,0x0000,0xDD90,0x0000 +2:pa5ga1=0x2568,0xD3D6,0xEDE7,0x0000,0x267F,0xCA8E,0xF195,0x0000,0x217F,0xE9ED,0xE499,0x0000,0x1DA0,0x0000,0xDC6A,0x0000,0x1F4D,0xF00C,0xE352,0x0000 +2:pa5ga2=0x24FE,0xD5C9,0xECD8,0x0000,0x25D4,0xCE61,0xEFA3,0x0000,0x1FE2,0xF456,0xDFBE,0x0000,0x1D1B,0x0000,0xDD16,0x0000,0x1C79,0xFFF3,0xDED2,0x2481 +2:pa5g40a0=0x20ed,0xcbb0,0xfc4c,0x15b0,0x220a,0xc67b,0xfefb,0x224c,0x2233,0xc2f1,0x0000,0x1aa4,0x21e9,0xc36b,0x0000,0x1835,0x21a8,0xc504,0x0000,0x1f1c +2:pa5g40a1=0x20e5,0xc8a6,0xff16,0x2579,0x216b,0xc618,0x0000,0x23a3,0x20c3,0xc4bf,0x0000,0x158c,0x2064,0xc69f,0x0000,0x1d67,0x2027,0xc8c2,0x0000,0x281f +2:pa5g40a2=0x2118,0xc51b,0x0000,0x1e0b,0x20d2,0xc58c,0x0000,0x201c,0x1f93,0xcc03,0xfda9,0x1b3d,0x1f27,0xcfdd,0xfc2d,0x193b,0x1f63,0xcddd,0xfd0a,0x1a4d +2:pa5g80a0=0x2090,0xc845,0xfed7,0x1e42,0x2182,0xc51d,0x0000,0x1fd1,0x2197,0xc388,0xfffe,0x16bf,0x211e,0xc403,0x0000,0x0fa5,0x213e,0xc48a,0x0000,0x107e +2:pa5g80a1=0x2582,0xD794,0xEC99,0x0000,0x23B0,0xE5E9,0xE687,0x0000,0x1F15,0xFB60,0xDF18,0x0000,0x1CCF,0x0000,0xE408,0x63E4,0x1C55,0xFFF2,0xE355,0x55B8 +2:pa5g80a2=0x2314,0xE565,0xE719,0x0000,0x2295,0xEB40,0xE450,0x0000,0x1E30,0x0000,0xDCD8,0x0000,0x1BA6,0x0000,0xEB98,0x7FFF,0x1BAB,0x0000,0xE873,0x7FFF +2:rpcal2g=0 +2:rpcal5gb0=0 +2:rpcal5gb1=0 +2:rpcal5gb2=0 +2:rpcal5gb3=0 +2:rpcal5gb4=0 +2:swctrlmap4_cfg=0x0001 +2:swctrlmap4_TX2g_fem3to0=0x0888 +2:swctrlmap4_RX2g_fem3to0=0x0444 +2:swctrlmap4_RXByp2g_fem3to0=0x0000 +2:swctrlmap4_misc2g_fem3to0=0x0 +2:swctrlmap4_TX5g_fem3to0=0x0000 +2:swctrlmap4_RX5g_fem3to0=0x0000 +2:swctrlmap4_RXByp5g_fem3to0=0x0000 +2:swctrlmap4_misc5g_fem3to0=0 +2:swctrlmap4_TX2g_fem7to4=0 +2:swctrlmap4_RX2g_fem7to4=0 +2:swctrlmap4_RXByp2g_fem7to4=0 +2:swctrlmap4_misc2g_fem7to4=0 +2:swctrlmap4_TX5g_fem7to4=0 +2:swctrlmap4_RX5g_fem7to4=0 +2:swctrlmap4_RXByp5g_fem7to4=0 +2:swctrlmap4_misc5g_fem7to4=0 +et0macaddr=02:10:18:01:00:01 diff --git a/iopsys-brcm63xx-arm/panda/base-files/etc/wlan/nvram/FT_G6416.nvm b/iopsys-brcm63xx-arm/koala/base-files/etc/wlan/nvram/FT_G6416.nvm similarity index 100% rename from iopsys-brcm63xx-arm/panda/base-files/etc/wlan/nvram/FT_G6416.nvm rename to iopsys-brcm63xx-arm/koala/base-files/etc/wlan/nvram/FT_G6416.nvm diff --git a/iopsys-brcm63xx-arm/panda/base-files/etc/wlan/nvram/FT_G6426.nvm b/iopsys-brcm63xx-arm/koala/base-files/etc/wlan/nvram/FT_G6426.nvm similarity index 100% rename from iopsys-brcm63xx-arm/panda/base-files/etc/wlan/nvram/FT_G6426.nvm rename to iopsys-brcm63xx-arm/koala/base-files/etc/wlan/nvram/FT_G6426.nvm diff --git a/iopsys-brcm63xx-arm/panda/base-files/etc/wlan/nvram/FT_G6476.nvm b/iopsys-brcm63xx-arm/koala/base-files/etc/wlan/nvram/FT_G6476.nvm similarity index 100% rename from iopsys-brcm63xx-arm/panda/base-files/etc/wlan/nvram/FT_G6476.nvm rename to iopsys-brcm63xx-arm/koala/base-files/etc/wlan/nvram/FT_G6476.nvm diff --git a/iopsys-brcm63xx-arm/koala/base-files/lib/functions/iopsys-environment.sh b/iopsys-brcm63xx-arm/koala/base-files/lib/functions/iopsys-environment.sh new file mode 100644 index 0000000000000000000000000000000000000000..5d356b09a811cebc0412f060b942d7f73c4fc25d --- /dev/null +++ b/iopsys-brcm63xx-arm/koala/base-files/lib/functions/iopsys-environment.sh @@ -0,0 +1,90 @@ +get_base_macaddr() { + local basemac="$(/usr/bin/kv_read BaseMacAddr)" + echo "$basemac" +} + +get_macaddr_maxsize() { + local maxsize="$(/usr/bin/kv_read NumMacAddrs)" + echo "$maxsize" +} + +get_board_id() { + local board_id="$(fw_printenv -n boardid)" + echo "$board_id" +} + +get_product_name() { + local prodname="$(/usr/bin/kv_read ProdName)" + echo "$prodname" +} + +get_serial_number() { + local serial_number="$(/usr/bin/kv_read SerialNumber)" + case $serial_number in + *[a-z]*|*[A-Z]*|*[0-9]*) ;; + *) serial_number="0000000000" ;; + esac + echo "$serial_number" +} + +get_psn() { + local psn="$(/usr/bin/kv_read PSN)" + case $psn in + *[a-z]*|*[A-Z]*|*[0-9]*) ;; + *) psn="0000000000" ;; + esac + echo "$psn" +} + +get_variant() { + local variant="$(/usr/bin/kv_read Variant)" + case $variant in + *[0-9]*) ;; + *) variant="0" ;; + esac + echo "$variant" +} + +get_hardware_version() { + local hardware_version="$(/usr/bin/kv_read HV)" + case $hardware_version in + .[0-9]*) hardware_version="1$hardware_version" ;; + [0-9]*) ;; + *) hardware_version="0" ;; + esac + echo "$hardware_version" +} + +get_wpa_key() { + local wpa_key="$(/usr/bin/kv_read WpaKey)" + case $wpa_key in + *[a-z]*|*[A-Z]*|*[0-9]*) wpa_key=$(echo $wpa_key | sed 's/[ \t]*$//') ;; + *) wpa_key="00000000" ;; + esac + echo "$wpa_key" +} + +get_des_key() { + local des_key="$(/usr/bin/kv_read DesKey)" + echo "$des_key" +} + +get_auth_key() { + local auth_key="$(/usr/bin/kv_read AuthKey)" + echo "$auth_key" +} + +get_user_password() { + local user_pass="$(/usr/bin/kv_read UserPassword)" + echo "$user_pass" +} + +get_acs_password() { + local acs_pass="$(/usr/bin/kv_read AcsPassword)" + echo "$acs_pass" +} + +get_production_mode() { + local production="$(/usr/bin/kv_read Production)" + echo "$production" +} diff --git a/iopsys-brcm63xx-arm/koala/base-files/usr/bin/kv_read b/iopsys-brcm63xx-arm/koala/base-files/usr/bin/kv_read new file mode 100755 index 0000000000000000000000000000000000000000..40f55044bcdfcd92ea4c49844bdf85a3aa131446 --- /dev/null +++ b/iopsys-brcm63xx-arm/koala/base-files/usr/bin/kv_read @@ -0,0 +1,15 @@ + #!/bin/sh + +DEVPARAM_FILE="/data/config/device_params" +DEVPARAM="$1" + +if [ ! -f $DEVPARAM_FILE ]; then + fw_printenv -n $DEVPARAM + exit $? +fi + +if [ -n "$DEVPARAM" ]; then + grep $DEVPARAM $DEVPARAM_FILE | awk -F'=' '{print$2}' +else + cat $DEVPARAM_FILE +fi diff --git a/iopsys-brcm63xx-arm/koala/base-files/usr/sbin/voice_monitor b/iopsys-brcm63xx-arm/koala/base-files/usr/sbin/voice_monitor new file mode 100755 index 0000000000000000000000000000000000000000..22786831482e6293072f47842658635bbd2d3587 --- /dev/null +++ b/iopsys-brcm63xx-arm/koala/base-files/usr/sbin/voice_monitor @@ -0,0 +1,32 @@ +#!/bin/sh +. /lib/voice/utils.sh + +ubus call led.voice set '{"state":"off"}' + +check_voice() { + local account_enabled=0 + local registered=0 + + while true; do + account_enabled=0 + registered=0 + + for peer in $(uci show $VOICE_UCI_CONFIG | grep sip_service_provider | awk -F[.,=] '{print$2}'); do + [ "$(uci -q get $VOICE_UCI_CONFIG.$peer.enabled)" = "1" ] && account_enabled=1 + done + + if [ "$account_enabled" = "0" ]; then + ubus call led.voice set '{"state":"off"}' + else + asterisk -x 'pjsip show registrations' | grep -q "Registered" && registered=1 + if [ "$registered" = "0" ]; then + ubus call led.voice set '{"state":"error"}' + else + ubus call led.voice set '{"state":"ok"}' + fi + fi + sleep 5 + done +} + +check_voice diff --git a/iopsys-brcm63xx-arm/koala/bsp-patches/0001-Polarity-fix-from-ODM.patch b/iopsys-brcm63xx-arm/koala/bsp-patches/0001-Polarity-fix-from-ODM.patch new file mode 100644 index 0000000000000000000000000000000000000000..7bc617514eebf7f8ef151432c6a72b9c4dea944b --- /dev/null +++ b/iopsys-brcm63xx-arm/koala/bsp-patches/0001-Polarity-fix-from-ODM.patch @@ -0,0 +1,25 @@ +From d1a8f88e82fd642747019d08e2d07e4b66171118 Mon Sep 17 00:00:00 2001 +From: Markus Gothe <markus.gothe@genexis.eu> +Date: Thu, 11 Nov 2021 15:07:09 +0100 +Subject: [PATCH] Polarity fix from ODM + +--- + .../opensource/char/opticaldet/impl2/detect_dev_trx_data.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/bcm963xx/bcmdrivers/opensource/char/opticaldet/impl2/detect_dev_trx_data.c b/bcm963xx/bcmdrivers/opensource/char/opticaldet/impl2/detect_dev_trx_data.c +index 5fd97b25e..7b7511f6d 100644 +--- a/bcm963xx/bcmdrivers/opensource/char/opticaldet/impl2/detect_dev_trx_data.c ++++ b/bcm963xx/bcmdrivers/opensource/char/opticaldet/impl2/detect_dev_trx_data.c +@@ -181,6 +181,8 @@ static void *detect(struct device *trx_dev, int is_pmd) + break; + default: + BCM_LOG_ERROR(BCM_LOG_ID_OPTICALDET, "Opticaldet: Illegal TRX type %d\n", trx_ff); ++ printk(KERN_ALERT "*****Use default******\n"); ++ trx = &default_pluggable_trx; + } + + return trx; +-- +2.33.1 + diff --git a/iopsys-brcm63xx-arm/koala/bsp-patches/series b/iopsys-brcm63xx-arm/koala/bsp-patches/series new file mode 100644 index 0000000000000000000000000000000000000000..156d378612aefa543a6b453bf3a883e403c33567 --- /dev/null +++ b/iopsys-brcm63xx-arm/koala/bsp-patches/series @@ -0,0 +1 @@ +0001-Polarity-fix-from-ODM.patch diff --git a/iopsys-brcm63xx-arm/panda/base-files/etc/data/scratchpad b/iopsys-brcm63xx-arm/panda/base-files/etc/data/scratchpad new file mode 100644 index 0000000000000000000000000000000000000000..88fb0b4af4cbe80365cdcbbd91a6b4854c980a9c Binary files /dev/null and b/iopsys-brcm63xx-arm/panda/base-files/etc/data/scratchpad differ diff --git a/iopsys-brcm63xx-arm/panda/base-files/etc/hotplug.d/button/10-dimmingbutton b/iopsys-brcm63xx-arm/panda/base-files/etc/hotplug.d/button/10-dimmingbutton index 72554cd02fe9a9246627d1c81be117245e604ddb..a1a4e80ab7646e151a23a47cf201ddcfd8a3d64a 100644 --- a/iopsys-brcm63xx-arm/panda/base-files/etc/hotplug.d/button/10-dimmingbutton +++ b/iopsys-brcm63xx-arm/panda/base-files/etc/hotplug.d/button/10-dimmingbutton @@ -37,12 +37,6 @@ dimming_button() { need_to_sync_dimming_states needs_sync="$?" - if [ "$needs_sync" != "0" ]; then - for led in $(ubus list led.*); do - ubus call "$led" set "{\"brightness\":0}" - done - fi - for led in $(ubus list led.*); do brightness=100 current_brightness=100 @@ -51,14 +45,16 @@ dimming_button() { json_load "$(ubus call "$led" status)" json_get_var current_brightness brightness - if [ "$current_brightness" -ge 100 ]; then + if [ "$needs_sync" != "0" ]; then + brightness=100 + elif [ "$current_brightness" -ge 100 ]; then brightness=75 elif [ "$current_brightness" -ge 75 ]; then # Slightly dimmed brightness=15 elif [ "$current_brightness" -ge 15 ]; then # Significantly dimmed brightness=0 case $ledname in - status) brightness=15 ;; + status|composite) brightness=15 ;; esac else brightness=100 @@ -67,6 +63,7 @@ dimming_button() { uci set leds.$ledname.brightness="$brightness" done uci commit leds + sync # ODM turns off the power after toggling during testing, save ASAP } case "$ACTION" in diff --git a/iopsys-brcm63xx-arm/panda/base-files/etc/init.d/scratchpad b/iopsys-brcm63xx-arm/panda/base-files/etc/init.d/scratchpad index cd7e35d0cd250ff096ce6c1b7bf62658a4098479..aeea3ae87473dea0013532448fe7cf3e751e19ad 100755 --- a/iopsys-brcm63xx-arm/panda/base-files/etc/init.d/scratchpad +++ b/iopsys-brcm63xx-arm/panda/base-files/etc/init.d/scratchpad @@ -1,26 +1,12 @@ #!/bin/sh /etc/rc.common # # Initialize scratchpad -START=05 -. /lib/functions.sh -. /lib/functions/iopsys-environment.sh +START=05 boot() { - local boardid="$(get_board_id)" - - if [ ! -f "/data/scratchpad" ]; then - if [ "$boardid" = "FT_P6476" -o "$boardid" = "FT_P6426" -o "$boardid" = "FT_P6414" ]; then - pspctl set GbeWanEMac NONE - pspctl set RdpaWanType GBE - pspctl set WanRate 0101 - pspctl set WanOEMac EPONMAC - pspctl set IpClassMethod FC - else - pspctl set GbeWanEMac NONE - pspctl set RdpaWanType GPON - pspctl set WanRate 1010 - fi + if [ -f "/etc/data/scratchpad" -a ! -f "/data/scratchpad" ]; then + cp "/etc/data/scratchpad" "/data/scratchpad" sync fi } diff --git a/iopsys-brcm63xx-arm/panda/base-files/etc/init.d/voice_monitor b/iopsys-brcm63xx-arm/panda/base-files/etc/init.d/voice_monitor new file mode 100755 index 0000000000000000000000000000000000000000..afe3ca95a5f4457027f1fd7ca557e64648d3f3be --- /dev/null +++ b/iopsys-brcm63xx-arm/panda/base-files/etc/init.d/voice_monitor @@ -0,0 +1,29 @@ +#!/bin/sh /etc/rc.common + +START=21 +STOP=90 +USE_PROCD=1 + +VOICE_MONITOR=$(which voice_monitor) + +start_service() { + [ -n "$VOICE_MONITOR" ] && { + procd_open_instance + procd_set_param command "$VOICE_MONITOR" + procd_set_param respawn + procd_close_instance + } +} + +stop_service() { + [ -n "$VOICE_MONITOR" ] && service_stop "$VOICE_MONITOR" +} + +boot() { + start +} + +reload_service() { + stop + start +} diff --git a/iopsys-brcm63xx-arm/panda/base-files/usr/sbin/voice_monitor b/iopsys-brcm63xx-arm/panda/base-files/usr/sbin/voice_monitor new file mode 100755 index 0000000000000000000000000000000000000000..22786831482e6293072f47842658635bbd2d3587 --- /dev/null +++ b/iopsys-brcm63xx-arm/panda/base-files/usr/sbin/voice_monitor @@ -0,0 +1,32 @@ +#!/bin/sh +. /lib/voice/utils.sh + +ubus call led.voice set '{"state":"off"}' + +check_voice() { + local account_enabled=0 + local registered=0 + + while true; do + account_enabled=0 + registered=0 + + for peer in $(uci show $VOICE_UCI_CONFIG | grep sip_service_provider | awk -F[.,=] '{print$2}'); do + [ "$(uci -q get $VOICE_UCI_CONFIG.$peer.enabled)" = "1" ] && account_enabled=1 + done + + if [ "$account_enabled" = "0" ]; then + ubus call led.voice set '{"state":"off"}' + else + asterisk -x 'pjsip show registrations' | grep -q "Registered" && registered=1 + if [ "$registered" = "0" ]; then + ubus call led.voice set '{"state":"error"}' + else + ubus call led.voice set '{"state":"ok"}' + fi + fi + sleep 5 + done +} + +check_voice diff --git a/iopsys-brcm63xx-arm/panda/bsp-patches/900-Let-NVRAM-override-SROM-OTP.patch b/iopsys-brcm63xx-arm/panda/bsp-patches/900-Let-NVRAM-override-SROM-OTP.patch deleted file mode 100644 index f28ddb0b5f43eb56c48647f60ee69b88decdbece..0000000000000000000000000000000000000000 --- a/iopsys-brcm63xx-arm/panda/bsp-patches/900-Let-NVRAM-override-SROM-OTP.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 31bb4b0035e399500bb8c6aef8ad51951b86456d Mon Sep 17 00:00:00 2001 -From: Markus Gothe <markus.gothe@genexis.eu> -Date: Thu, 12 Nov 2020 15:52:15 +0100 -Subject: [PATCH] Let NVRAM override SROM/OTP. - -If we have NVRAM then -use it in favour of SROM/OTP -for parameters. ---- - .../broadcom/net/wl/impl69/main/src/dongle/make/Makeconf | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/bcm963xx/bcmdrivers/broadcom/net/wl/impl69/main/src/dongle/make/Makeconf b/bcm963xx/bcmdrivers/broadcom/net/wl/impl69/main/src/dongle/make/Makeconf -index e198929a0..ab91a091a 100644 ---- a/bcm963xx/bcmdrivers/broadcom/net/wl/impl69/main/src/dongle/make/Makeconf -+++ b/bcm963xx/bcmdrivers/broadcom/net/wl/impl69/main/src/dongle/make/Makeconf -@@ -117,10 +117,10 @@ endif - # support host-supplied nvram variables - ifeq ($(BCMHOSTVARS),1) - EXTRA_DFLAGS += -DBCMHOSTVARS --ifneq ($(CMWIFI),) -+#ifneq ($(CMWIFI),) - # Host downloaded nvram vars will override existing SROM - EXTRA_DFLAGS += -DBCMHOSTVARS_OVERRIDE_SROM --endif -+#endif - endif - - # dongle does not need a delay before MPC starts --- -2.29.2 - diff --git a/iopsys-brcm63xx-arm/panda/bsp-patches/series b/iopsys-brcm63xx-arm/panda/bsp-patches/series deleted file mode 100644 index 702210b121f9493bea93c8d6db242bad1bd949c4..0000000000000000000000000000000000000000 --- a/iopsys-brcm63xx-arm/panda/bsp-patches/series +++ /dev/null @@ -1 +0,0 @@ -900-Let-NVRAM-override-SROM-OTP.patch diff --git a/iopsys-brcm63xx-arm/profiles/iopsys.mk b/iopsys-brcm63xx-arm/profiles/iopsys.mk index c2c363e737479c6c32dcd389d814ff75a503dd2c..21edd36edfaafcb08562c2c8f0f2ec0d93df25c8 100644 --- a/iopsys-brcm63xx-arm/profiles/iopsys.mk +++ b/iopsys-brcm63xx-arm/profiles/iopsys.mk @@ -75,6 +75,18 @@ endef $(eval $(call Profile,panda)) +#################### KOALA +define Profile/koala + NAME:=koala + PACKAGES:=i2c-tools $(VOICE_SUPPORT) +endef + +define Profile/koala/Description + koala profile +endef + +$(eval $(call Profile,koala)) + #################### EAGLE define Profile/eagle NAME:=eagle