forked from mirror/openwrt
The Plasma Cloud MCX3 Media Converter is a 3 port multi-GBit switch with
2x 10/100/1000/2500BaseT Ethernet ports and 1x SFP+ module slot.
Hardware:
- RTL9302C SoC
- Macronix MX25L25645G (32MB flash)
- Winbond W632GU6rB-11 (256MB DDR3 SDRAM)
- RTL8224 4x 10m/100m/1/2.5 Gigabit PHY
- IC+ IP802AR POE+ PSE controller
The media converter is powered by 54 Volts 1.2A barrel connector. The
internal TTL serial connector can be used to access the terminal. Pins from
1: TX RX (unused) GND. Serial connection is via 115200 baud, 8N1.
A reset button is accessible through a hole next to the SFP+ module slot.
Installation
------------
* The device can be flashed by using sysupgrade command. Either from the
original vendor firmware or using an initramfs (see "Debug")
* Connect serial as per the layout above. Connection parameters: 115200 8N1
* The image must be copied using scp to /tmp of the device
scp openwrt-realtek-rtl930x-plasmacloud_mcx3-squashfs-sysupgrade.bin root@[IP address of the device]:/tmp/
* start sysupgrade without saving the original vendor configuration
sysupgrade -n /tmp/openwrt-realtek-rtl930x-plasmacloud_mcx3-squashfs-sysupgrade.bin
Installation via u-boot
-----------------------
If you have an TFTP server connected to the switch, it is possible to
directly install the device using the factory image from u-boot
# setup networking and IP of TFP server
rtk network on
setenv ipaddr 10.100.100.99
setenv serverip 10.100.100.20
# get factory image
tftp 0x84000000 factory.bin
# erase firmware partitions
sf probe 0
sf erase 0x100000 0x01f00000
# write firmware to both partitions
sf write ${fileaddr} 0x100000 ${filesize}
sf write ${fileaddr} 0x1080000 ${filesize}
# adjust the boot commands
setenv bootargs "mtdparts=spi0.0:896k(u-boot),64k(u-boot-env),64k(u-boot-env2),15872k(inactive),15872k(firmware2)"
setenv bootcmd "rtk init; bootm 0xb5080000"
# restart
reset
Debug
-----
* Connect serial as per the layout above. Connection parameters: 115200 8N1.
* A tftp server is required, tftpd-hpa works well.
* Power the device, at U-Boot start rapidly hit Esc key to stop autoboot
* Enable network:
rtk network on
* Change ip address of device:
setenv ipaddr 192.168.1.6
* Download initramfs from TFTP server:
tftpboot 0x84000000 192.168.1.111:openwrt-realtek-rtl930x-plasmacloud_mcx3-initramfs-kernel.bin
* Boot loaded file:
bootm 0x84000000
Signed-off-by: Harshal Gohel <hg@simonwunderlich.de>
Signed-off-by: Sven Eckelmann <se@simonwunderlich.de>
Link: https://github.com/openwrt/openwrt/pull/20625
Signed-off-by: Robert Marko <robimarko@gmail.com>
190 lines
5.3 KiB
Text
190 lines
5.3 KiB
Text
|
|
. /lib/functions.sh
|
|
. /lib/functions/uci-defaults.sh
|
|
. /lib/functions/system.sh
|
|
|
|
_filter_port_list_ordered() {
|
|
local ports="$1"
|
|
local excluded="$2"
|
|
local sort_opts="$3"
|
|
echo $ports $excluded | xargs -n1 basename | sort -V $sort_opts | uniq -u | xargs
|
|
}
|
|
|
|
filter_port_list() {
|
|
_filter_port_list_ordered "$1" "$2"
|
|
}
|
|
|
|
filter_port_list_reverse() {
|
|
_filter_port_list_ordered "$1" "$2" "-r"
|
|
}
|
|
|
|
realtek_setup_interfaces()
|
|
{
|
|
local board="$1"
|
|
local lan_list="$2"
|
|
|
|
ucidef_set_bridge_device switch
|
|
ucidef_set_interface_lan "$lan_list"
|
|
}
|
|
|
|
realtek_setup_macs_lan()
|
|
{
|
|
local lan_list="$1"
|
|
local lan_mac_start="$2"
|
|
local lan_mac_end="$3"
|
|
|
|
for lan in $lan_list; do
|
|
ucidef_set_network_device_mac $lan $lan_mac_start
|
|
[ -z "$lan_mac_end" ] || [ "$lan_mac_start" == "$lan_mac_end" ] && lan_mac_start=$(macaddr_setbit_la $lan_mac_start)
|
|
lan_mac_start=$(macaddr_add $lan_mac_start 1)
|
|
done
|
|
}
|
|
|
|
realtek_setup_macs()
|
|
{
|
|
local board="$1"
|
|
local lan_list="$2"
|
|
|
|
local lan_mac=""
|
|
local lan_mac_start=""
|
|
local lan_mac_end=""
|
|
local label_mac=""
|
|
|
|
case $board in
|
|
hpe,1920-8g|\
|
|
hpe,1920-8g-poe-65w|\
|
|
hpe,1920-8g-poe-180w|\
|
|
hpe,1920-16g|\
|
|
hpe,1920-24g|\
|
|
hpe,1920-24g-poe-180w|\
|
|
hpe,1920-24g-poe-370w|\
|
|
hpe,1920-48g|\
|
|
hpe,1920-48g-poe)
|
|
label_mac=$(mtd_get_mac_binary factory 0x68)
|
|
lan_mac=$label_mac
|
|
mac_count1=$(hexdump -v -n 4 -s 0x110 -e '4 "%d"' $(find_mtd_part factory) 2>/dev/null)
|
|
mac_count2=$(hexdump -v -n 4 -s 0x114 -e '4 "%d"' $(find_mtd_part factory) 2>/dev/null)
|
|
lan_mac_start=$(macaddr_add $lan_mac 2)
|
|
lan_mac_end=$(macaddr_add $lan_mac $((mac_count2-mac_count1)))
|
|
;;
|
|
plasmacloud,esx28|\
|
|
plasmacloud,mcx3|\
|
|
plasmacloud,psx8|\
|
|
plasmacloud,psx10|\
|
|
plasmacloud,psx28)
|
|
lan_mac_start=skip
|
|
lan_mac="$(get_mac_label)"
|
|
;;
|
|
tplink,sg2008p-v1|\
|
|
tplink,sg2210p-v3|\
|
|
tplink,sg2452p-v4|\
|
|
tplink,t1600g-28ts-v3)
|
|
label_mac=$(get_mac_label)
|
|
lan_mac="$label_mac"
|
|
;;
|
|
tplink,tl-st1008f-v2|\
|
|
zyxel,xgs1010-12-a1)
|
|
lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
|
|
[ -z "$lan_mac" ] || [ "$lan_mac" = "00:e0:4c:00:00:00" ] && lan_mac=$(macaddr_random)
|
|
;;
|
|
xikestor,sks8300-8x)
|
|
lan_mac=$(mtd_get_mac_binary board-info 0x1f1)
|
|
;;
|
|
xikestor,sks8310-8x)
|
|
lan_mac=$(mtd_get_mac_binary factory 0x80)
|
|
label_mac="$lan_mac"
|
|
;;
|
|
*)
|
|
lan_mac=$(mtd_get_mac_ascii u-boot-env2 mac_start)
|
|
lan_mac_end=$(mtd_get_mac_ascii u-boot-env2 mac_end)
|
|
label_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
|
|
[ -z "$lan_mac" ] && lan_mac=$label_mac
|
|
;;
|
|
esac
|
|
|
|
[ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
|
|
[ -n "$lan_mac" ] && ucidef_set_bridge_mac "$lan_mac"
|
|
[ -n "$lan_mac" ] && ucidef_set_network_device_mac eth0 $lan_mac
|
|
|
|
[ -z "$lan_mac_start" -a -n "$lan_mac" ] && lan_mac_start=$lan_mac
|
|
[ "$lan_mac_start" != "skip" ] && realtek_setup_macs_lan "$lan_list" "$lan_mac_start" "$lan_mac_end"
|
|
|
|
[ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
|
|
}
|
|
|
|
realtek_setup_poe()
|
|
{
|
|
local board="$1"
|
|
local lan_list="$2"
|
|
|
|
case $board in
|
|
d-link,dgs-1210-10mp-f)
|
|
ucidef_set_poe 130 "$(filter_port_list "$lan_list" "lan9 lan10")"
|
|
;;
|
|
d-link,dgs-1210-10p)
|
|
ucidef_set_poe 65 "$(filter_port_list "$lan_list" "lan9 lan10")"
|
|
;;
|
|
d-link,dgs-1210-28mp-f)
|
|
ucidef_set_poe 370 "lan8 lan7 lan6 lan5 lan4 lan3 lan2 lan1 lan16 lan15 lan14 lan13 lan12 lan11 lan10 lan9 lan24 lan23
|
|
lan22 lan21 lan20 lan19 lan18 lan17"
|
|
;;
|
|
d-link,dgs-1210-28p-f)
|
|
ucidef_set_poe 193 "lan8 lan7 lan6 lan5 lan4 lan3 lan2 lan1 lan16 lan15 lan14 lan13 lan12 lan11 lan10 lan9 lan24 lan23
|
|
lan22 lan21 lan20 lan19 lan18 lan17"
|
|
;;
|
|
engenius,ews2910p-v1|\
|
|
engenius,ews2910p-v3)
|
|
ucidef_set_poe 60 "$(filter_port_list "$lan_list" "lan9 lan10")"
|
|
;;
|
|
hpe,1920-8g-poe-65w)
|
|
ucidef_set_poe 65 "$(filter_port_list_reverse "$lan_list" "lan9 lan10")"
|
|
;;
|
|
hpe,1920-8g-poe-180w)
|
|
ucidef_set_poe 180 "$(filter_port_list_reverse "$lan_list" "lan9 lan10")"
|
|
;;
|
|
hpe,1920-24g-poe-180w)
|
|
ucidef_set_poe 180 "$(filter_port_list_reverse "$lan_list" "lan25 lan26 lan27 lan28")"
|
|
;;
|
|
hpe,1920-24g-poe-370w)
|
|
ucidef_set_poe 370 "$(filter_port_list_reverse "$lan_list" "lan25 lan26 lan27 lan28")"
|
|
;;
|
|
hpe,1920-48g-poe)
|
|
ucidef_set_poe 370 "lan8 lan7 lan6 lan5 lan4 lan3 lan2 lan1 lan16 lan15 lan14 lan13 lan12 lan11 lan10 lan9 lan24 lan23
|
|
lan22 lan21 lan20 lan19 lan18 lan17 lan32 lan31 lan30 lan29 lan28 lan27 lan26 lan25 lan40 lan39 lan38 lan37
|
|
lan36 lan35 lan34 lan33 lan48 lan47 lan46 lan45 lan44 lan43 lan42 lan41"
|
|
;;
|
|
netgear,gs110tpp-v1)
|
|
ucidef_set_poe 130 "$(filter_port_list "$lan_list" "lan9 lan10")"
|
|
;;
|
|
netgear,gs110tup-v1)
|
|
ucidef_set_poe 240 "$(filter_port_list "$lan_list" "lan9 lan10")"
|
|
;;
|
|
netgear,gs310tp-v1)
|
|
ucidef_set_poe 55 "$(filter_port_list "$lan_list" "lan9 lan10")"
|
|
;;
|
|
zyxel,gs1900-10hp-a1)
|
|
ucidef_set_poe 77 "$(filter_port_list "$lan_list" "lan9 lan10")"
|
|
;;
|
|
zyxel,gs1900-8hp-a1|\
|
|
zyxel,gs1900-8hp-b1)
|
|
ucidef_set_poe 70 "$lan_list"
|
|
;;
|
|
zyxel,gs1900-24ep-a1)
|
|
ucidef_set_poe 130 "lan1 lan2 lan3 lan4 lan5 lan6 lan7 lan8 lan9 lan10 lan11 lan12"
|
|
;;
|
|
zyxel,gs1900-24hp-a1|\
|
|
zyxel,gs1900-24hp-b1)
|
|
ucidef_set_poe 170 "$(filter_port_list "$lan_list" "lan25 lan26")"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
board=$(board_name)
|
|
board_config_update
|
|
lan_list=$(ls -1 -v -d /sys/class/net/lan* | xargs -n1 basename | xargs)
|
|
realtek_setup_interfaces "$board" "$lan_list"
|
|
realtek_setup_macs "$board" "$lan_list"
|
|
realtek_setup_poe "$board" "$lan_list"
|
|
board_config_flush
|
|
|
|
exit 0
|