#!/bin/sh /etc/rc.common
START=50
ad100base_ctrl() { # <dev> <port> <0|1>
local val=0
swconfig dev $1 set phy $2
# Auto-Negotiation Advertisement
# 4.7 100BASE-TX
# 4.8 100BASE-TX full duplex
swconfig dev $1 set reg 4
val=$(swconfig dev $1 get val)
swconfig dev $1 set val $((val^(-$3^val)&0x180))
# 0.9 Restart Auto-Negotiation
swconfig dev $1 set reg 0
val=$(swconfig dev $1 get val)
swconfig dev $1 set val $((val^(-1^val)&0x200))
}
start() {
local port=0
for port in $(seq 0 3)
do ad100base_ctrl eth0 $port 0
logger -t switch disabled Auto-Negotiation Advertisement for 100BASE-TX on port $port
done
}
stop() {
local port=0
for port in $(seq 0 3)
do ad100base_ctrl eth0 $port 1
logger -t switch enabled Auto-Negotiation Advertisement for 100BASE-TX on port $port
done
}