Re: [PATCH] realtek/rtl839x: Edgecore ECS4100-12PH support

2024-04-15 Thread Stijn Tintel

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

2024-04-04 Thread Sander Vanheule
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

2024-04-04 Thread Paul D
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

2024-04-04 Thread INAGAKI Hiroshi

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

2024-04-04 Thread Stijn Tintel

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

2024-04-04 Thread Stijn Tintel

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

2024-04-04 Thread Paul D
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