TL-WR1043: switch

Stefan Bethke stb at lassitu.de
Mon Dec 12 23:48:29 UTC 2011


http://www.lassitu.de/freebsd/etherswitch-rtl8366rb.patch

Another update: I can now set media and mediaopt:
# kldload rtl8366rb
rtl8366rb0: <RTL8366RB Ethernet Switch Controller> at addr 0xa8 on iicbus0
rtl8366rb0: rev. 3
miibus0: <MII bus> on rtl8366rb0
ukphy0: <Generic IEEE 802.3u media interface> PHY 0 on miibus0
ukphy0: OUI 0x00e04c, model 0x0016, rev. 1
ukphy0:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT-FDX, 1000baseT-FDX-master, auto
miibus1: <MII bus> on rtl8366rb0
ukphy1: <Generic IEEE 802.3u media interface> PHY 1 on miibus1
ukphy1: OUI 0x00e04c, model 0x0016, rev. 1
ukphy1:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT-FDX, 1000baseT-FDX-master, auto
miibus2: <MII bus> on rtl8366rb0
ukphy2: <Generic IEEE 802.3u media interface> PHY 2 on miibus2
ukphy2: OUI 0x00e04c, model 0x0016, rev. 1
ukphy2:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT-FDX, 1000baseT-FDX-master, auto
miibus3: <MII bus> on rtl8366rb0
ukphy3: <Generic IEEE 802.3u media interface> PHY 3 on miibus3
ukphy3: OUI 0x00e04c, model 0x0016, rev. 1
ukphy3:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT-FDX, 1000baseT-FDX-master, auto
miibus4: <MII bus> on rtl8366rb0
ukphy4: <Generic IEEE 802.3u media interface> PHY 4 on miibus4
ukphy4: OUI 0x00e04c, model 0x0016, rev. 1
ukphy4:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT-FDX, 1000baseT-FDX-master, auto
etherswitch0: <Switch controller> on rtl8366rb0
rtl8366rb0port0: link state changed to DOWN
rtl8366rb0port1: link state changed to DOWN
rtl8366rb0port2: link state changed to DOWN
rtl8366rb0port3: link state changed to DOWN
rtl8366rb0port4: link state changed to DOWN
rtl8366rb0port0: link state changed to UP
rtl8366rb0port1: link state changed to UP
# etherswitchcfg 
port0:
        vlangroup: 1
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
port1:
        vlangroup: 0
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
port2:
        vlangroup: 0
        media: Ethernet autoselect (none)
        status: no carrier
port3:
        vlangroup: 0
        media: Ethernet autoselect (none)
        status: no carrier
port4:
        vlangroup: 0
        media: Ethernet autoselect (none)
        status: no carrier
port5:
        vlangroup: 0
        media: Ethernet 1000baseT <full-duplex>
        status: active
vlangroup0:
        vlan: 1
        members 1,2,3,4,5
vlangroup1:
        vlan: 2
        members 0,5t
# etherswitchcfg port0 media 100basetx mediaopt fdx
rtl8366rb0port0: link state changed to DOWN
port0:
        vlangroup: 1
        media: Ethernet 100baseTX <full-duplex>
        status: no carrier
rtl8366rb0port0: link state changed to UP


The code now reuses the if_media.c ioctl code on the kernel side, so it's fairly compact.


Stefan

-- 
Stefan Bethke <stb at lassitu.de>   Fon +49 151 14070811





More information about the freebsd-embedded mailing list