Re: [PATCH] realtek/rtl839x: Edgecore ECS4100-12PH support
On 4/04/2024 19:42, INAGAKI Hiroshi wrote: Hi stijn, Hi Hiroshi, I have some comments below. Thanks for reviewing! On 2024/04/04 23:28, st...@linux-ipv6.be wrote: + + reboot@0 { + compatible = "edgecore,reboot"; Isn't this a "gpio-restart"? I can't find any informations about "edgecore,reboot". Changing this to gpio-restart caused the device to reboot early during boot. After commenting out the gpio-restart node and testing with gpioset, it turns out it needs to be active-low. + + { + ext_io: ext-io@e4 { + compatible = "realtek,rtl8390-eio", "syscon"; IIRC, a driver for "realtek,rtl8390-eio" is not provided on OpenWrt. You need to mux sys-led pin as a gpio[1] and define this LED using gpio-leds. [1]: https://github.com/openwrt/openwrt/blob/c7d83d4379fb2c08f22e7a4f2852aaf9b37c3790/target/linux/realtek/dts-5.15/rtl839x.dtsi#L289-L292 Done. The diag LED now exhibits the usual OpenWrt LED behaviour. Thanks, Stijn ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Re: [PATCH] realtek/rtl839x: Edgecore ECS4100-12PH support
Hi Stijn, On Thu, 2024-04-04 at 17:28 +0300, st...@linux-ipv6.be wrote: > Add support for the Edgecore ECS4100-12PH, an 8-port PoE Gigabit > Ethernet switch with 2 combo RJ45/SFP and 2 SFP ports. > > Hardware: > * SoC: RTL8392M > * RAM: 256MiB > * Flash: 32MiB SPI-NOR > * Ethernet: > * 8x GbE RJ45 PoE (built-in RTL8218B) According to the board picture, that's not a built-in RTL8218B ;-) > * 2x GbE RJ45 / SFP combo > * 2x SFP Any idea if these go to the RTL8214FC or straight to the SoC? > * Console: RJ45 RS232 port on front panel > * PoE: Nuvoton M0516 + 2x Broadcom BCM59121 PSE > > Installation via bootloader: > * open serial console (baud rate 115200) > * interrupt boot process by pressing any key during boot > * boot the OpenWrt initramfs: > # rtk network on > # setenv bootcmd 'mtdparts default;sf probe 0;sf read 0x8100 0x0020 > 0x40;bootm' This is only 4MiB. Does it limit the total total image size or just the kernel size? I suppose this also means flashing (initramfs) images from the vendor interface does not work? > # tftpboot 0x8f00 > /tftpboot/openwrt-realtek-rtl839x-edgecore_ecs4100-12ph- > initramfs-kernel.bin > # bootm > * copy openwrt-realtek-rtl839x-edgecore_ecs4100-12ph-squashfs-sysupgrade.bin > to /tmp and use sysupgrade to install it: > # sysupgrade /tmp/openwrt-realtek-rtl839x-edgecore_ecs4100-12ph-squashfs- > sysupgrade.bin > > Signed-off-by: Stijn Tintel > --- > I took the DTS from the TIP OpenWiFi project. It was introduced in the > initial commit of their Github repo [1]. I added gpio1 and > label-mac-device, and changed rtl838x-soc in the compatible line to > rtl839x-soc. The info page and photo on svanheule's website suggest > RTL8392M, while my units use RTL8393M. My units have the exact same P/N > and revision on the PCB as in the photo. Since there appear to be units > based on RTL8392M, I'll keep the original DTS filename unless someone > tells me otherwise. The RTL8392M and RTL8393M appear very similar in specs, so perhaps they are pin- compatible. Either has a lot more switching capacity than what this device provides :-) Did you check what your bootlog reports as chip ID? > > All 4 SFP slots seem to detect SFP insertion and removal, however I > didn't manage to get a link on either of the ports. As I have very > limited experience with SFP/fiber on Linux, I'd appreciate some guidance > on how to test this properly. This could also be due to a lacking implementation of the RTL8214FC phy. The SDK the drivers are based on use register stuffing values for specific SoC/phy combinations, without any form of documentation (i.e. hard to figure out what's going on). These are provided as the "firmware" files in OpenWrt, so maybe this 8393/8214FC combination just hasn't come up yet. > > [1] > https://github.com/Telecominfraproject/wlan-ap/commit/528a778e3864064bfccd8295abd1ec23da778843 > --- > [...] > diff --git a/target/linux/realtek/dts-5.15/rtl8392_edgecore_ecs4100-12ph.dts > b/target/linux/realtek/dts-5.15/rtl8392_edgecore_ecs4100-12ph.dts > new file mode 100644 > index 00..067bf24f5a > --- /dev/null > +++ b/target/linux/realtek/dts-5.15/rtl8392_edgecore_ecs4100-12ph.dts > @@ -0,0 +1,305 @@ > +// SPDX-License-Identifier: GPL-2.0-or-later > + > +#include "rtl839x.dtsi" > + > +#include > +#include > + > +/ { > + compatible = "edgecore,ecs4100-12ph", "realtek,rtl839x-soc"; > + model = "Edgecore ECS4100-12PH Switch"; > + > + aliases { > + label-mac-device = > + led-boot = _sys; > + led-failsafe = _sys; > + led-running = _sys; > + led-upgrade = _sys; > + }; > + > + chosen { > + bootargs = "console=ttyS0,115200"; > + }; > + > + memory@0 { > + device_type = "memory"; > + reg = <0x0 0x1000>; > + }; > + > + gpio1: rtl8231-gpio { > + compatible = "realtek,rtl8231-gpio"; > + #gpio-cells = <2>; > + indirect-access-bus-id = <3>; > + gpio-controller; > + }; > + > + /* i2c of the left SFP cage: port 9 */ Only a comment for this node, but not for the others? You can leave this one out. > + i2c0: i2c-gpio-0 { > + compatible = "i2c-gpio"; > + sda-gpios = < 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > + scl-gpios = < 7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > + i2c-gpio,delay-us = <2>; > + #address-cells = <1>; > + #size-cells = <0>; > + }; > + > + sfp0: sfp-p9 { > + compatible = "sff,sfp"; > + i2c-bus = <>; > + los-gpio = < 12 GPIO_ACTIVE_HIGH>; > + mod-def0-gpio = < 8 GPIO_ACTIVE_LOW>; Interesting to see they mixed internal and external GPIOs. (I'm guessing this allows the kernel to support interrupts on the LoS line) [...] > + > + i2c4: i2c-gpio-4 { > + compatible =
Re: [PATCH] realtek/rtl839x: Edgecore ECS4100-12PH support
On 2024-04-04 17:02, Stijn Tintel wrote: > On 4/04/2024 18:00, Paul D wrote: >> On 2024-04-04 16:28, st...@linux-ipv6.be wrote: >> >>> -netgear,gs110tpp-v1) >>> - ucidef_set_poe 130 "$(filter_port_list "$lan_list" "lan9 lan10")" >>> - ;; >> If adding a device, surely these remove lines should not be there? >> >> > Try looking closer. It's called maintaining alphabetical order. > Yep. ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Re: [PATCH] realtek/rtl839x: Edgecore ECS4100-12PH support
Hi stijn, I have some comments below. On 2024/04/04 23:28, st...@linux-ipv6.be wrote: Add support for the Edgecore ECS4100-12PH, an 8-port PoE Gigabit Ethernet switch with 2 combo RJ45/SFP and 2 SFP ports. Hardware: * SoC: RTL8392M * RAM: 256MiB * Flash: 32MiB SPI-NOR * Ethernet: * 8x GbE RJ45 PoE (built-in RTL8218B) * 2x GbE RJ45 / SFP combo * 2x SFP * Console: RJ45 RS232 port on front panel * PoE: Nuvoton M0516 + 2x Broadcom BCM59121 PSE Installation via bootloader: * open serial console (baud rate 115200) * interrupt boot process by pressing any key during boot * boot the OpenWrt initramfs: # rtk network on # setenv bootcmd 'mtdparts default;sf probe 0;sf read 0x8100 0x0020 0x40;bootm' # tftpboot 0x8f00 /tftpboot/openwrt-realtek-rtl839x-edgecore_ecs4100-12ph-initramfs-kernel.bin # bootm * copy openwrt-realtek-rtl839x-edgecore_ecs4100-12ph-squashfs-sysupgrade.bin to /tmp and use sysupgrade to install it: # sysupgrade /tmp/openwrt-realtek-rtl839x-edgecore_ecs4100-12ph-squashfs-sysupgrade.bin Signed-off-by: Stijn Tintel --- I took the DTS from the TIP OpenWiFi project. It was introduced in the initial commit of their Github repo [1]. I added gpio1 and label-mac-device, and changed rtl838x-soc in the compatible line to rtl839x-soc. The info page and photo on svanheule's website suggest RTL8392M, while my units use RTL8393M. My units have the exact same P/N and revision on the PCB as in the photo. Since there appear to be units based on RTL8392M, I'll keep the original DTS filename unless someone tells me otherwise. All 4 SFP slots seem to detect SFP insertion and removal, however I didn't manage to get a link on either of the ports. As I have very limited experience with SFP/fiber on Linux, I'd appreciate some guidance on how to test this properly. [1] https://github.com/Telecominfraproject/wlan-ap/commit/528a778e3864064bfccd8295abd1ec23da778843 --- package/boot/uboot-envtools/files/realtek | 1 + .../realtek/base-files/etc/board.d/02_network | 7 +- .../rtl8392_edgecore_ecs4100-12ph.dts | 305 ++ target/linux/realtek/image/rtl839x.mk | 8 + 4 files changed, 318 insertions(+), 3 deletions(-) create mode 100644 target/linux/realtek/dts-5.15/rtl8392_edgecore_ecs4100-12ph.dts diff --git a/package/boot/uboot-envtools/files/realtek b/package/boot/uboot-envtools/files/realtek index cd2446432d..4137133061 100644 --- a/package/boot/uboot-envtools/files/realtek +++ b/package/boot/uboot-envtools/files/realtek @@ -37,6 +37,7 @@ zyxel,gs1900-24hp-v2) [ -n "$idx2" ] && \ ubootenv_add_uci_sys_config "/dev/mtd$idx2" "0x0" "0x1000" "0x1" ;; +edgecore,ecs4100-12ph|\ tplink,sg2008p-v1|\ tplink,sg2210p-v3|\ tplink,sg2452p-v4) diff --git a/target/linux/realtek/base-files/etc/board.d/02_network b/target/linux/realtek/base-files/etc/board.d/02_network index db1d99f4ec..b41eb59b2b 100644 --- a/target/linux/realtek/base-files/etc/board.d/02_network +++ b/target/linux/realtek/base-files/etc/board.d/02_network @@ -80,6 +80,10 @@ 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" ;; +edgecore,ecs4100-12ph|\ +netgear,gs110tpp-v1) + ucidef_set_poe 130 "$(filter_port_list "$lan_list" "lan9 lan10")" + ;; engenius,ews2910p) ucidef_set_poe 60 "$(filter_port_list "$lan_list" "lan9 lan10")" ;; @@ -89,9 +93,6 @@ hpe,1920-8g-poe-65w) hpe,1920-8g-poe-180w) ucidef_set_poe 180 "$(filter_port_list_reversed "$lan_list" "lan9 lan10")" ;; -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")" ;; diff --git a/target/linux/realtek/dts-5.15/rtl8392_edgecore_ecs4100-12ph.dts b/target/linux/realtek/dts-5.15/rtl8392_edgecore_ecs4100-12ph.dts new file mode 100644 index 00..067bf24f5a --- /dev/null +++ b/target/linux/realtek/dts-5.15/rtl8392_edgecore_ecs4100-12ph.dts @@ -0,0 +1,305 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "rtl839x.dtsi" + +#include +#include + +/ { + compatible = "edgecore,ecs4100-12ph", "realtek,rtl839x-soc"; + model = "Edgecore ECS4100-12PH Switch"; + + aliases { + label-mac-device = + led-boot = _sys; + led-failsafe = _sys; + led-running = _sys; + led-upgrade = _sys; + }; + + chosen { + bootargs = "console=ttyS0,115200"; + }; + + memory@0 { + device_type = "memory"; + reg = <0x0 0x1000>; + }; + +gpio1: rtl8231-gpio { +compatible = "realtek,rtl8231-gpio"; +#gpio-cells = <2>; +
Re: [PATCH] realtek/rtl839x: Edgecore ECS4100-12PH support
On 4/04/2024 17:28, st...@linux-ipv6.be wrote: Add support for the Edgecore ECS4100-12PH, an 8-port PoE Gigabit Ethernet switch with 2 combo RJ45/SFP and 2 SFP ports. FYI: this patch and WIP changes are also available in my staging tree: https://git.openwrt.org/?p=openwrt/staging/stintel.git;a=shortlog;h=refs/heads/ecs4100 ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Re: [PATCH] realtek/rtl839x: Edgecore ECS4100-12PH support
On 4/04/2024 18:00, Paul D wrote: On 2024-04-04 16:28, st...@linux-ipv6.be wrote: -netgear,gs110tpp-v1) - ucidef_set_poe 130 "$(filter_port_list "$lan_list" "lan9 lan10")" - ;; If adding a device, surely these remove lines should not be there? Try looking closer. It's called maintaining alphabetical order. ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Re: [PATCH] realtek/rtl839x: Edgecore ECS4100-12PH support
On 2024-04-04 16:28, st...@linux-ipv6.be wrote: > -netgear,gs110tpp-v1) > - ucidef_set_poe 130 "$(filter_port_list "$lan_list" "lan9 lan10")" > - ;; If adding a device, surely these remove lines should not be there? ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel