Re: [PATCH] RFC: ARM: dts: Proposed Goramo MultiLink device tree
On Thu, Jul 29, 2021 at 2:16 PM Geert Uytterhoeven wrote: > Hi Linus, (...) > Can't the existing drivers/gpio/gpio-74x164.c be used? > See also Documentation/devicetree/bindings/gpio/fairchild,74hc595.yaml Sadly no. The way this device is used for GPIO is very different. The former used a version of SPI and this has to hammer GPIO lines directly, and has to use a special strobe signal to propagate values out to pins. Yours, Linus Walleij ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Re: [PATCH] RFC: ARM: dts: Proposed Goramo MultiLink device tree
The sender domain has a DMARC Reject/Quarantine policy which disallows sending mailing list messages using the original "From" header. To mitigate this problem, the original message has been wrapped automatically by the mailing list software.--- Begin Message --- Linus Walleij writes: > Let's say I write the DT bindings as well so that the device tree file > is valid, and then we can work on the implementation when there > is time. Does this work for you? I think the device tree will boot the > device fine, just that the HSS will not work until we implement the > GPIO and control code in the HSS driver. Sure it's fine for me. Thanks for your work, again. -- Krzysztof "Chris" Hałasa Sieć Badawcza Łukasiewicz Przemysłowy Instytut Automatyki i Pomiarów PIAP Al. Jerozolimskie 202, 02-486 Warszawa --- End Message --- ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Re: [PATCH] RFC: ARM: dts: Proposed Goramo MultiLink device tree
Hi Linus, On Thu, Jul 29, 2021 at 1:54 AM Linus Walleij wrote: > This is an example of how I think the Goramo MultiLink device can > be supported in the device tree. > > It requires writing a new 74hc4094 GPIO driver and moving a bunch > of the boardfile code into the HSS driver as it is anyways the only > user of this facility. If there are other boards supporting HSS they > can be added too. Can't the existing drivers/gpio/gpio-74x164.c be used? See also Documentation/devicetree/bindings/gpio/fairchild,74hc595.yaml Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Re: [PATCH] RFC: ARM: dts: Proposed Goramo MultiLink device tree
On Thu, Jul 29, 2021 at 7:25 AM Krzysztof Hałasa wrote: > OTOH I don't know if it's worth the effort. But, since you already wrote > the DTS file, perhaps it's better to just leave it in place (knowing > that certain functionality of certain versions will be unavailable). If > I can test and possibly fix something here, I will try to. > > The following is: > Acked-by: Krzysztof Hałasa Let's say I write the DT bindings as well so that the device tree file is valid, and then we can work on the implementation when there is time. Does this work for you? I think the device tree will boot the device fine, just that the HSS will not work until we implement the GPIO and control code in the HSS driver. Yours, Linus Walleij ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Re: [PATCH] RFC: ARM: dts: Proposed Goramo MultiLink device tree
The sender domain has a DMARC Reject/Quarantine policy which disallows sending mailing list messages using the original "From" header. To mitigate this problem, the original message has been wrapped automatically by the mailing list software.--- Begin Message --- Hi Linus, First, thanks for your continued work on those old platforms. I'm not exactly sure how to proceed. > It requires writing a new 74hc4094 GPIO driver and moving a bunch > of the boardfile code into the HSS driver as it is anyways the only > user of this facility. If there are other boards supporting HSS they > can be added too. I'm not aware of any other supported hw using HSS. The 74HC4094... I appears it's used mostly for HSS (optional signals depending on the hardware port version), but one of it's outputs drives PCI reset as well. There is also /write-protect for a couple of serial EEPROMs (one of them usually not installed). AFAIR the EEPROMs were never used for anything, but were available for some custom sw etc. Also, the EEPROM(s) should be functional without driving 74HC4094, they would only be unprotected (the protection wouldn't be needed in practically all cases anyway). > To proceed with this I need to be sure someone is willing to test > and help develop this and has interest in supporting the Goramo > MultiLink with recent kernels on e.g. OpenWrt. TBH, the last time I was running such a device it was using a kernel within something like 3.1x range. I *think* I still have some of the hardware (definitely not all types, but perhaps one of the later versions). Also, I think I should have some serial sync hardware, so in theory both the DTS conversion and the HSS operation could be tested. OTOH I don't know if it's worth the effort. But, since you already wrote the DTS file, perhaps it's better to just leave it in place (knowing that certain functionality of certain versions will be unavailable). If I can test and possibly fix something here, I will try to. The following is: Acked-by: Krzysztof Hałasa Some notes: > +++ b/arch/arm/boot/dts/intel-ixp42x-goramo-multilink.dts > @@ -0,0 +1,201 @@ > +// SPDX-License-Identifier: ISC > +/* > + * Device Tree file for the Goramo MultiLink Router > + * There are two variants: > + * - MultiLink Basic (a box) > + * - MultiLink Max (19" rack mount) The Max was usually not 19" rack version, it's the same circa 10" plastic box as the basic (base?). The 19" case was available independently of the router hw version (well, not for "micro" version). As I remember it: - there was MultiLink Micro: a small router module mounted inside a DSL-class modem. At least 2 versions, with small differences (maybe number of Ethernet ports or something like this). 32 MB of RAM, the latter were using (I think) 64 MB. HSS V.35 connector, the other HSS was used by the modem. No PCI, no USB. - Basic: it had 64 MB of RAM. Standalone plastic box. 2 10/100 Ethernets (built-in, using LXT971 phy - in newer versions (v. 2.x) 2 additional optional Intel PCI 10/100 Mbps Ethernets). 2 HSS ports (usually V.35 but could be configured, in hardware, as - I imagine - X.21, and even as T1 or E1 with additional PHY). - Max: Basic on steroids. 128 MB of RAM (optionally 256 MB), mini PCI slot (mostly for WiFi). Original version: NEC USB 2.0 host controller (2 ports). Newer versions: IDE (PATA) connector, 4 USB 2.0 ports, all provided by a CS5536 ("Geode compation chip"). I *think* Basic version lacked this CS5536 (and Basic v. 1.0 lacked NEC USB). Also 2 Intel PCI Gigabit Ethernets. All of those hw details were described in a config record in the flash. > + * This device tree supports MultiLink Basic. > + * This machine is based on IXP425. > + * This is one of the few devices supporting the IXP4xx High-Speed Serial > + * (HSS) link for a V.35 WAN interface. > + * The hardware seems to originate in Poland. s/seems to originate/originated/ :-) > + /* > + * The Goramo MultiLink Router uses different txready queues > than any other router, > + * which makes it likely that it uses non-default firmware for > the NPE units. > + */ It used standard firmware, the txready queue # was configurable in software. I guess it was different from other boards to avoid some conflict with HSS. IIRC the queue numbers changed at some point with firmware version. But all those boards (not only Goramo MultiLinks but generally all IXP4xx) were supposed to use the last firmware available. -- Krzysztof "Chris" Hałasa Sieć Badawcza Łukasiewicz Przemysłowy Instytut Automatyki i Pomiarów PIAP Al. Jerozolimskie 202, 02-486 Warszawa --- End Message --- ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
[PATCH] RFC: ARM: dts: Proposed Goramo MultiLink device tree
This is an example of how I think the Goramo MultiLink device can be supported in the device tree. It requires writing a new 74hc4094 GPIO driver and moving a bunch of the boardfile code into the HSS driver as it is anyways the only user of this facility. If there are other boards supporting HSS they can be added too. To proceed with this I need to be sure someone is willing to test and help develop this and has interest in supporting the Goramo MultiLink with recent kernels on e.g. OpenWrt. I am happy to dry-code most of the code and DT bindings but it needs to be tested and debugged on target. I am also willing to write just the device tree bindings so the device tree can be merged and the implementation be filled in later. As long as I know there is active interest I'm willing to do at least this even if it cannot be tested just to have the base in place. So is someone up for it? Krysztof? If not, the boardfile will be deleted as part of the IXP4xx migration to device tree, yet this shows how to bring it back. Cc: openwrt-devel@lists.openwrt.org Signed-off-by: Linus Walleij --- arch/arm/boot/dts/Makefile| 1 + .../dts/intel-ixp42x-goramo-multilink.dts | 201 ++ arch/arm/boot/dts/intel-ixp4xx.dtsi | 17 ++ 3 files changed, 219 insertions(+) create mode 100644 arch/arm/boot/dts/intel-ixp42x-goramo-multilink.dts diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index ac8a4a77584d..2dfb073b31a7 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -247,6 +247,7 @@ dtb-$(CONFIG_ARCH_IXP4XX) += \ intel-ixp46x-ixdp465.dtb \ intel-ixp42x-adi-coyote.dtb \ intel-ixp42x-ixdpg425.dtb \ + intel-ixp42x-goramo-multilink.dtb \ intel-ixp42x-iomega-nas100d.dtb \ intel-ixp42x-dlink-dsm-g600.dtb \ intel-ixp42x-gateworks-gw2348.dtb \ diff --git a/arch/arm/boot/dts/intel-ixp42x-goramo-multilink.dts b/arch/arm/boot/dts/intel-ixp42x-goramo-multilink.dts new file mode 100644 index ..bd9a17fb2837 --- /dev/null +++ b/arch/arm/boot/dts/intel-ixp42x-goramo-multilink.dts @@ -0,0 +1,201 @@ +// SPDX-License-Identifier: ISC +/* + * Device Tree file for the Goramo MultiLink Router + * There are two variants: + * - MultiLink Basic (a box) + * - MultiLink Max (19" rack mount) + * This device tree supports MultiLink Basic. + * This machine is based on IXP425. + * This is one of the few devices supporting the IXP4xx High-Speed Serial + * (HSS) link for a V.35 WAN interface. + * The hardware seems to originate in Poland. + */ + +/dts-v1/; + +#include "intel-ixp42x.dtsi" +#include + +/ { + model = "Goramo MultiLink Router"; + compatible = "goramo,multilink-router", "intel,ixp42x"; + #address-cells = <1>; + #size-cells = <1>; + + memory@0 { + /* +* 64 MB of RAM according to the manual. The MultiLink +* Max has 128 MB. +*/ + device_type = "memory"; + reg = <0x 0x400>; + }; + + chosen { + bootargs = "console=ttyS0,115200n8"; + stdout-path = "uart0:115200n8"; + }; + + aliases { + serial0 = + serial1 = + }; + + /* +* 74HC4094 which is used as a rudimentary GPIO expander +* FIXME: +* - Create device tree bindings for this as GPIO expander +* - Write a pure DT GPIO driver using these bindings +* - Support cascading in the style of gpio-74x164.c (cannot be reused, very different) +*/ + gpio_74: gpio-74hc4094 { + compatible = "nxp,74hc4094"; + cp-gpios = < 0 GPIO_ACTIVE_HIGH>; + d-gpios = < 1 GPIO_ACTIVE_HIGH>; + str-gpios = < 2 GPIO_ACTIVE_HIGH>; + /* oe-gpios is optional */ + gpio-controller; + #gpio-cells = <2>; + /* We are not cascaded */ + registers-number = <1>; + gpio-line-names = "CONTROL_HSS0_CLK_INT", "CONTROL_HSS1_CLK_INT", "CONTROL_HSS0_DTR_N", + "CONTROL_HSS1_DTR_N", "CONTROL_EXT", "CONTROL_AUTO_RESET", + "CONTROL_PCI_RESET_N", "CONTROL_EEPROM_WC_N"; + }; + + soc { + bus@c400 { + flash@0,0 { + compatible = "intel,ixp4xx-flash", "cfi-flash"; + bank-width = <2>; + /* Enable writes on the expansion bus */ + intel,ixp4xx-eb-write-enable = <1>; + /* 16 MB of Flash mapped in at CS0 */ + reg = <0 0x 0x100>; + + partitions { + compatible = "redboot-fis"; + /*