summaryrefslogtreecommitdiff
path: root/target/linux/brcm47xx/base-files/lib/preinit/05_init_interfaces_brcm
blob: 76382e5ceebaeef2b8636d81fe6d55be81e3ec8d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/bin/sh

set_preinit_iface() {
	ifname=eth0

	# hardware specific overrides
	case "$(cat /proc/diag/model)" in
		"Linksys WAP54G V1") ifname=eth1;;
		"ASUS WL-HDD") ifname=eth1;;
		"ASUS WL-300g") ifname=eth1;;
		"ASUS (unknown, BCM4702)") ifname=eth1;;
		"Sitecom WL-105b") ifname=eth1;;
	esac

	# The interface has to be up to configure the switch
	ifconfig $ifname 0.0.0.0 up
	[ -f /lib/modules/`uname -r`/switch-robo.ko ] && {
		rmmod switch-robo
		insmod switch-robo
	}
	[ -f /lib/modules/`uname -r`/switch-adm.ko ] && {
		rmmod switch-adm
		insmod switch-adm
	}
}

init_iface() {
	[ -d /proc/switch/eth0 ] && [ "$ifname" = "eth0" ] && {
		case "$(cat /proc/switch/eth0/cpuport)" in
			"5") cpu_port="5u*";;
			"8") cpu_port="8u*";;
		esac
	}
}

boot_hook_add preinit_main set_preinit_iface
boot_hook_add preinit_main init_iface