realtek: add support for TP-Link T1600G-28TS v3
authorAndreas Böhler <dev@aboehler.at>
Wed, 5 Apr 2023 19:10:34 +0000 (21:10 +0200)
committerChristian Lamparter <chunkeey@gmail.com>
Fri, 20 Oct 2023 16:13:57 +0000 (18:13 +0200)
commitfd0aaf93d162f4f0c83252f91f074bd069c220f6
tree8f70abd1b7578a253900337d55ec7022ee57180b
parent2657e8cab7f3d621b66cfdd4e228da3b912af32a
realtek: add support for TP-Link T1600G-28TS v3

This is an RTL8382-based switch with 24 copper ports + 4 SFP ports

Specifications:
---------------
 * SoC:       Realtek RTL8382M
 * Flash:     32 MiB SPI flash
 * RAM:       256 MiB
 * Ethernet:  24x 10/100/1000 Mbps
 * Buttons:   1x "Reset" button
 * UART:      1x serial header, unpopulated
 * SFP:       4 SFP ports

Works:
------
  - (24) RJ-45 ethernet ports
  - Switch functions
  - Buttons
  - Sys LED on front panel (no port LEDs)

Not yet enabled:
----------------
  - Port LEDs (no driver for RTL8231 in this mode)
  - SFP cages (no driver for PHY)

Install via web interface:
-------------------------

Not supported at this time.

Install via serial console/tftp:
--------------------------------

The U-Boot firmware drops to a TP-Link specific "BOOTUTIL" shell at
38400 baud. There is no known way to exit out of this shell, and no
way to do anything useful.

Ideally, one would trick the bootloader into flashing the sysupgrade
image first. However, if the image exceeds 6MiB in size, it will not
work. To install OpenWRT:

Prepare a tftp server with:
 1. server address: 192.168.0.146
 2. the image as: "uImage.img"

Power on device, and stop boot by pressing any key.
Once the shell is active:
 1. Ground out the CLK (pin 16) of the ROM (U6)
 2. Select option "3. Start"
 3. Bootloader notes that "The kernel has been damaged!"
 4. Release CLK as soon as bootloader thinks image is corrupted.
 5. Bootloader enters automatic recovery -- details printed on console
 6. Watch as the bootloader flashes and boots OpenWRT.

Blind install via tftp:
-----------------------

This method works when it's not feasible to install a serial header.

Prepare a tftp server with:
 1. server address: 192.168.0.146
 2. the image as: "uImage.img"
 3. Watch network traffic (tcpdump or wireshark works)
 4. Power on the device.
 5. Wait 1-2 seconds then ground out the CLK (pin 16) of the ROM (U6)
 6. When 192.168.0.30 makes tftp requests, release pin 16
 7. Wait 2-3 minutes for device to auto-flash and boot OpenWRT

Signed-off-by: Andreas Böhler <dev@aboehler.at>
target/linux/realtek/base-files/etc/board.d/02_network
target/linux/realtek/dts-5.15/rtl8382_tplink_t1600g-28ts-v3.dts [new file with mode: 0644]
target/linux/realtek/image/rtl838x.mk