Files
wlan-ap/feeds/ipq95xx/ipq53xx/base-files/etc/init.d/rtk_eth_fix
Tanya Singh f15e10bfdb ipq95xx: Update phy driver for EAP105 LAN port
Fixes: WIFI-14171
Signed-off-by: Tanya Singh <tanya_singh@accton.com>
2024-11-06 09:33:05 +01:00

87 lines
1.9 KiB
Bash
Executable File

#!/bin/sh /etc/rc.common
# Copyright (C) 2007 OpenWrt.org
START=94
USE_PROCD=1
. /lib/functions.sh
eap105_eth_fix() {
#ethernet reset
echo 481 > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio481/direction
echo 0 > /sys/class/gpio/gpio481/value
echo 1 > /sys/class/gpio/gpio481/value
#eth1 Fix RE Fail
sleep 1
ssdk_sh debug phy set 0x2 0x1f 0x0A43
ssdk_sh debug phy set 0x2 0x19 0x0862
ssdk_sh debug phy set 0x2 0x1f 0x0000
ssdk_sh debug phy set 0x2 0x0 0x9200
#eth1 10/100M detect led flash setup
ssdk_sh debug phy set 0x2 0x1f 0x0d04
ssdk_sh debug phy set 0x2 0x10 0x6E51
#eth0 5G detect led flash setup
ssdk_sh debug phy set 0x1 0xd 0x1f
ssdk_sh debug phy set 0x1 0xe 0xd032
ssdk_sh debug phy set 0x1 0xd 0x401f
ssdk_sh debug phy set 0x1 0xe 0x1e7
ssdk_sh debug phy set 0x1 0xd 0x1f
ssdk_sh debug phy set 0x1 0xe 0xd040
ssdk_sh debug phy set 0x1 0xd 0x401f
ssdk_sh debug phy set 0x1 0xe 0x393f
#eth0 Fix USXGMII
ssdk_sh debug phy set 0x1 0x601E7588 0x05D8
ssdk_sh debug phy set 0x1 0x601E7589 0x2100
ssdk_sh debug phy set 0x1 0x601E7587 0x0003
count=0
while [ 1 ]
do
date
if [ $(($(echo $(echo $(ssdk_sh debug phy get 0x1 0x601E7587) | cut -d':' -f2) | cut -d' ' -f1) & 1)) -eq 0 ]; then
echo > /tmp/Pre-emphasis-PASS
break
fi
count=$(($count+1))
if [ $count -eq 10 ]; then
echo > /tmp/Pre-emphasis-FAIL
break
fi
sleep 1
done
ssdk_sh debug phy set 0x1 0x601E7588 0x05D7
ssdk_sh debug phy set 0x1 0x601E7589 0x2180
ssdk_sh debug phy set 0x1 0x601E7587 0x0003
count=0
while [ 1 ]
do
date
if [ $(($(echo $(echo $(ssdk_sh debug phy get 0x1 0x601E7587) | cut -d':' -f2) | cut -d' ' -f1) & 1)) -eq 0 ]; then
echo > /tmp/Amp-PASS
break
fi
count=$(($count+1))
if [ $count -eq 10 ]; then
echo > /tmp/Amp-FAIL
break
fi
sleep 1
done
}
start_service() {
case "$(board_name)" in
"edgecore,eap105")
eap105_eth_fix
;;
esac
}