realtek: add support for Netgear GS750E
authorDavide Fioravanti <pantanastyle@gmail.com>
Tue, 3 Jan 2023 13:27:50 +0000 (14:27 +0100)
committerSander Vanheule <sander@svanheule.net>
Fri, 13 Jan 2023 21:28:36 +0000 (22:28 +0100)
commitea42a04161e3dee8fb1e67f48ccf8ce115617a9b
treeb67dfee31d4eac88b64366ab7e14726a1e3b8ace
parent79e0b503a4acfc2dcda329243409219322a19c2c
realtek: add support for Netgear GS750E

This is an RTL8393-based switch with 48 RJ-45 and 2 SFP ports.

Hardware
--------
SoC: Realtek RTL8393M
RAM: 128MB DDR3 (Nanya NT5CC64M16GP-DI)
FLASH: 8MB NOR (Macronix MX25L6433F)
ETH: 48x 10/100/1000 Mbps RJ-45 Ethernet
SFP: 2x SFP
BTN:
  - 1x Reset button
LEDS:
  - 50x Green-Amber leds: lan/sfp status
  - 1x Green led: power (Always on)
UART:
  - 115200-8-N-1 (CN3, pin-out on PCB)

Everything works correctly except for the 2 SFP ports that are not
working unless you enable it every boot in U-Boot with the command:
rtk network on

Installation
------------
You can install Openwrt using one of the following methods.

Warning: flashing OpenWrt will delete your current configuration.
Warning 2: if the -factory.bix file is not available anymore, you must
follow Method 2.

Method 1:
Check the firmware version currently running on your switch. If you are
running FW V1.0.1.10 or greater, you have to download the firmware
V1.0.1.8 from Netgear website and then flash this version. When the
switch restarts, it should be on version V1.0.1.8. Now you can get the
OpenWrt -factory.bix file and then flash it using the OEM web interface.

Method 2 (requires the UART connection):
Boot the -initramfs-kernel.bin image from U-Boot with these commands:
rtk network on;
tftpboot 0x8f000000 openwrt-realtek-rtl839x-netgear_gs750e-initramfs-kernel.bin;
bootm;
And then flash the -sysupgrade.bin file from OpenWrt.

Revert to stock
---------------
Get the stock firmware from the Netgear website and flash it using the
OpenWrt web interface. Remember to not keep the current configuration
and check the "Force upgrade" checkbox

Once reverted to stock the firmware could complain in the UART console
about mtdblock3 and/or mtdblock4 not being mounted correctly but it
seems to work anyway without any problems. Sample error:
mount: Mounting /dev/mtdblock4 on /mntlog failed: Input/output error

If you want to get rid of these error messages you can boot the
-initramfs-kernel.bin image from U-Boot with these commands:
rtk network on;
tftpboot 0x8f000000 openwrt-realtek-rtl839x-netgear_gs750e-initramfs-kernel.bin;
bootm;

And then erase the corresponding partitions using the command:
For mtdblock3:
mtd erase jffs2_cfg
For mtdblock4:
mtd erase jffs2_log

Now you can reboot the switch and the errors should be gone

Note
----
To get the SFP ports fully working, all the right GPIOs must be found.
In the GPL sources I found these:
 - GPIO_14: SFP_TX_DIS1;
 - GPIO_19: SFP_TX_DIS0;

Signed-off-by: Davide Fioravanti <pantanastyle@gmail.com>
target/linux/realtek/dts-5.10/rtl8393_netgear_gs750e.dts [new file with mode: 0644]
target/linux/realtek/dts-5.15/rtl8393_netgear_gs750e.dts [new file with mode: 0644]
target/linux/realtek/image/rtl839x.mk