I have two boards with a SL3516 SoC. Both are NAS box.
Corentin Labbe (5):
ARM: dts: gemini: add labels for USB, IDE, flash and ethernet
dt-bindings: add vendor prefix for edimax
dt-bindings: add vendor prefix for ssi
ARM: gemini: add device tree for edimax NS2502
ARM: gemini: add device tree for ssi1328
.../devicetree/bindings/vendor-prefixes.yaml | 4 +
arch/arm/boot/dts/Makefile | 2 +
arch/arm/boot/dts/gemini-ns2502.dts | 141 +++++++++++++++
arch/arm/boot/dts/gemini-ssi1328.dts | 162 ++++++++++++++++++
arch/arm/boot/dts/gemini.dtsi | 12 +-
5 files changed, 315 insertions(+), 6 deletions(-)
create mode 100644 arch/arm/boot/dts/gemini-ns2502.dts
create mode 100644 arch/arm/boot/dts/gemini-ssi1328.dts
--
2.26.3
Adding label will help simplify boards's dts.
Signed-off-by: Corentin Labbe <[email protected]>
---
arch/arm/boot/dts/gemini.dtsi | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/arch/arm/boot/dts/gemini.dtsi b/arch/arm/boot/dts/gemini.dtsi
index 065ed10a79fa..6e043869d495 100644
--- a/arch/arm/boot/dts/gemini.dtsi
+++ b/arch/arm/boot/dts/gemini.dtsi
@@ -16,7 +16,7 @@ soc {
compatible = "simple-bus";
interrupt-parent = <&intcon>;
- flash@30000000 {
+ flash: flash@30000000 {
compatible = "cortina,gemini-flash", "cfi-flash";
syscon = <&syscon>;
pinctrl-names = "default";
@@ -321,7 +321,7 @@ pci_intc: interrupt-controller {
};
};
- ethernet@60000000 {
+ ethernet: ethernet@60000000 {
compatible = "cortina,gemini-ethernet";
reg = <0x60000000 0x4000>, /* Global registers, queue */
<0x60004000 0x2000>, /* V-bit */
@@ -356,7 +356,7 @@ gmac1: ethernet-port@1 {
};
};
- ide@63000000 {
+ ide0: ide@63000000 {
compatible = "cortina,gemini-pata", "faraday,ftide010";
reg = <0x63000000 0x1000>;
interrupts = <4 IRQ_TYPE_EDGE_RISING>;
@@ -369,7 +369,7 @@ ide@63000000 {
#size-cells = <0>;
};
- ide@63400000 {
+ ide1: ide@63400000 {
compatible = "cortina,gemini-pata", "faraday,ftide010";
reg = <0x63400000 0x1000>;
interrupts = <5 IRQ_TYPE_EDGE_RISING>;
@@ -414,7 +414,7 @@ display-controller@6a000000 {
status = "disabled";
};
- usb@68000000 {
+ usb0: usb@68000000 {
compatible = "cortina,gemini-usb", "faraday,fotg210";
reg = <0x68000000 0x1000>;
interrupts = <10 IRQ_TYPE_LEVEL_HIGH>;
@@ -435,7 +435,7 @@ usb@68000000 {
status = "disabled";
};
- usb@69000000 {
+ usb1: usb@69000000 {
compatible = "cortina,gemini-usb", "faraday,fotg210";
reg = <0x69000000 0x1000>;
interrupts = <11 IRQ_TYPE_LEVEL_HIGH>;
--
2.26.3
Add vendor prefix for EDIMAX Technology Co., Ltd (https://www.edimax.com/)
Signed-off-by: Corentin Labbe <[email protected]>
---
Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
index cf69dfd3d522..003f6354db04 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
@@ -329,6 +329,8 @@ patternProperties:
description: EBV Elektronik
"^eckelmann,.*":
description: Eckelmann AG
+ "^edimax,.*":
+ description: EDIMAX Technology Co., Ltd
"^edt,.*":
description: Emerging Display Technologies
"^eeti,.*":
--
2.26.3
Add vendor prefix for SSI Computer Corp (https://www.ssi.com.tw/)
Signed-off-by: Corentin Labbe <[email protected]>
---
Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
index 003f6354db04..828ddf7fdbed 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
@@ -1084,6 +1084,8 @@ patternProperties:
description: Spansion Inc.
"^sprd,.*":
description: Spreadtrum Communications Inc.
+ "^ssi,.*":
+ description: SSI Computer Corp
"^sst,.*":
description: Silicon Storage Technology, Inc.
"^sstar,.*":
--
2.26.3
The edimax NS2502 is a NAS box running a SL3516 SoC.
Signed-off-by: Corentin Labbe <[email protected]>
---
arch/arm/boot/dts/Makefile | 1 +
arch/arm/boot/dts/gemini-ns2502.dts | 141 ++++++++++++++++++++++++++++
2 files changed, 142 insertions(+)
create mode 100644 arch/arm/boot/dts/gemini-ns2502.dts
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 1754b562e0b9..bb30d13c9c60 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -216,6 +216,7 @@ dtb-$(CONFIG_ARCH_GEMINI) += \
gemini-dlink-dir-685.dtb \
gemini-dlink-dns-313.dtb \
gemini-nas4220b.dtb \
+ gemini-ns2502.dtb \
gemini-rut1xx.dtb \
gemini-sl93512r.dtb \
gemini-sq201.dtb \
diff --git a/arch/arm/boot/dts/gemini-ns2502.dts b/arch/arm/boot/dts/gemini-ns2502.dts
new file mode 100644
index 000000000000..a23745dc20f4
--- /dev/null
+++ b/arch/arm/boot/dts/gemini-ns2502.dts
@@ -0,0 +1,141 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2021 Corentin Labbe <[email protected]>
+ * Device Tree file for Edimax NS 2502
+ */
+
+/dts-v1/;
+
+#include "gemini.dtsi"
+
+/ {
+ model = "Edimax NS-2502";
+ compatible = "edimax,ns-2502", "cortina,gemini";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ memory@0 {
+ /* 128 MB */
+ device_type = "memory";
+ reg = <0x00000000 0x8000000>;
+ };
+
+ aliases {
+ mdio-gpio0 = &mdio0;
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,19200n8";
+ stdout-path = &uart0;
+ };
+
+ mdio0: mdio {
+ compatible = "virtual,mdio-gpio";
+ gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>, /* MDC */
+ <&gpio0 21 GPIO_ACTIVE_HIGH>; /* MDIO */
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ phy0: ethernet-phy@1 {
+ reg = <1>;
+ device_type = "ethernet-phy";
+ /* We lack the knowledge of necessary GPIO to achieve
+ * Gigabit
+ */
+ max-speed = <100>;
+ };
+ };
+};
+
+ðernet {
+ status = "okay";
+ ethernet-port@0 {
+ phy-mode = "rgmii";
+ phy-handle = <&phy0>;
+ };
+};
+
+&flash {
+ status = "okay";
+ /* 8MB of flash */
+ reg = <0x30000000 0x00800000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "RedBoot";
+ reg = <0x00000000 0x00020000>;
+ read-only;
+ };
+ partition@20000 {
+ label = "kernel";
+ reg = <0x00020000 0x00700000>;
+ };
+ partition@720000 {
+ label = "VCTL";
+ reg = <0x00720000 0x00020000>;
+ read-only;
+ };
+ partition@740000 {
+ label = "CurConf";
+ reg = <0x00740000 0x000a0000>;
+ read-only;
+ };
+ partition@7e0000 {
+ label = "FIS";
+ reg = <0x007e0000 0x00010000>;
+ read-only;
+ };
+ };
+};
+
+&gpio0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&gpio0_default_pins>;
+};
+
+&ide0 {
+ status = "okay";
+};
+
+&ide1 {
+ status = "okay";
+};
+
+&sata {
+ cortina,gemini-ata-muxmode = <3>;
+ cortina,gemini-enable-sata-bridge;
+ status = "okay";
+};
+
+&syscon {
+ pinctrl {
+ /*
+ * gpio0agrp cover line 0-4
+ * gpio0bgrp cover line 5
+ */
+ gpio0_default_pins: pinctrl-gpio0 {
+ mux {
+ function = "gpio0";
+ groups = "gpio0agrp", "gpio0bgrp", "gpio0hgrp";
+ };
+ };
+ pinctrl-gmii {
+ mux {
+ function = "gmii";
+ groups = "gmii_gmac0_grp";
+ };
+ };
+ };
+};
+
+&usb0 {
+ status = "okay";
+};
+
+&usb1 {
+ status = "okay";
+};
--
2.26.3
The SSI 1328 is a NAS box running a SL3516 SoC.
Signed-off-by: Corentin Labbe <[email protected]>
---
arch/arm/boot/dts/Makefile | 1 +
arch/arm/boot/dts/gemini-ssi1328.dts | 162 +++++++++++++++++++++++++++
2 files changed, 163 insertions(+)
create mode 100644 arch/arm/boot/dts/gemini-ssi1328.dts
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index bb30d13c9c60..0a9f6001b90b 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -220,6 +220,7 @@ dtb-$(CONFIG_ARCH_GEMINI) += \
gemini-rut1xx.dtb \
gemini-sl93512r.dtb \
gemini-sq201.dtb \
+ gemini-ssi1328.dtb \
gemini-wbd111.dtb \
gemini-wbd222.dtb
dtb-$(CONFIG_ARCH_HI3xxx) += \
diff --git a/arch/arm/boot/dts/gemini-ssi1328.dts b/arch/arm/boot/dts/gemini-ssi1328.dts
new file mode 100644
index 000000000000..1112007c9d6f
--- /dev/null
+++ b/arch/arm/boot/dts/gemini-ssi1328.dts
@@ -0,0 +1,162 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2021 Corentin Labbe <[email protected]>
+ * Device Tree file for SSI 1328
+ */
+
+/dts-v1/;
+
+#include "gemini.dtsi"
+
+/ {
+ model = "SSI 1328";
+ compatible = "ssi,1328", "cortina,gemini";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ memory@0 {
+ /* 128 MB */
+ device_type = "memory";
+ reg = <0x00000000 0x8000000>;
+ };
+
+ aliases {
+ mdio-gpio0 = &mdio0;
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,19200n8 initrd=0x800000,9M";
+ stdout-path = &uart0;
+ };
+
+ mdio0: mdio {
+ compatible = "virtual,mdio-gpio";
+ gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>, /* MDC */
+ <&gpio0 21 GPIO_ACTIVE_HIGH>; /* MDIO */
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* LAN Marvell 88E1118 */
+ phy0: ethernet-phy@1 {
+ reg = <1>;
+ device_type = "ethernet-phy";
+ /* We lack the knowledge of necessary GPIO to achieve
+ * Gigabit
+ */
+ max-speed = <100>;
+ };
+ /* WAN ICPlus IP101A */
+ phy1: ethernet-phy@2 {
+ reg = <2>;
+ device_type = "ethernet-phy";
+ };
+ };
+};
+
+ðernet {
+ status = "okay";
+ ethernet-port@0 {
+ phy-mode = "rgmii";
+ phy-handle = <&phy0>;
+ };
+ ethernet-port@1 {
+ phy-mode = "rgmii";
+ phy-handle = <&phy1>;
+ };
+};
+
+&flash {
+ status = "okay";
+ /* 32MB of flash */
+ reg = <0x30000000 0x03200000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "RedBoot";
+ reg = <0x00000000 0x00020000>;
+ read-only;
+ };
+ partition@20000 {
+ label = "Kernel";
+ reg = <0x00020000 0x00300000>;
+ };
+ partition@320000 {
+ label = "Ramdisk";
+ reg = <0x00320000 0x00600000>;
+ };
+ partition@920000 {
+ label = "Application";
+ reg = <0x00920000 0x00600000>;
+ };
+ partition@f20000 {
+ label = "VCTL";
+ reg = <0x00f20000 0x00020000>;
+ read-only;
+ };
+ partition@f40000 {
+ label = "CurConf";
+ reg = <0x00f40000 0x000a0000>;
+ read-only;
+ };
+ partition@fe0000 {
+ label = "FIS directory";
+ reg = <0x00fe0000 0x00200000>;
+ read-only;
+ };
+ };
+};
+
+&gpio0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&gpio0_default_pins>;
+};
+
+&ide0 {
+ status = "okay";
+};
+
+&ide1 {
+ status = "okay";
+};
+
+&sata {
+ cortina,gemini-ata-muxmode = <0>;
+ cortina,gemini-enable-sata-bridge;
+ status = "okay";
+};
+
+&syscon {
+ pinctrl {
+ /*
+ * gpio0agrp cover line 0-4
+ * gpio0bgrp cover line 5
+ */
+ gpio0_default_pins: pinctrl-gpio0 {
+ mux {
+ function = "gpio0";
+ groups = "gpio0agrp", "gpio0bgrp";
+ };
+ };
+ pinctrl-gmii {
+ /* This platform use both the ethernet ports */
+ mux {
+ function = "gmii";
+ groups = "gmii_gmac0_grp", "gmii_gmac1_grp";
+ };
+ };
+ };
+};
+
+&usb0 {
+ status = "okay";
+};
+
+&usb1 {
+ status = "okay";
+};
--
2.26.3
Hi Corentin,
this is looking nice! Just one thing:
On Mon, May 17, 2021 at 9:32 PM Corentin Labbe <[email protected]> wrote:
> The edimax NS2502 is a NAS box running a SL3516 SoC.
>
> Signed-off-by: Corentin Labbe <[email protected]>
> +&flash {
> + status = "okay";
> + /* 8MB of flash */
> + reg = <0x30000000 0x00800000>;
No pin control setting? I guess it may work but this doesn't hurt
(I think):
pinctrl-names = "enabled", "disabled";
pinctrl-0 = <&pflash_default_pins>;
pinctrl-1 = <&pflash_disabled_pins>;
> + partitions {
> + compatible = "fixed-partitions";
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + partition@0 {
> + label = "RedBoot";
> + reg = <0x00000000 0x00020000>;
> + read-only;
> + };
> + partition@20000 {
> + label = "kernel";
> + reg = <0x00020000 0x00700000>;
> + };
> + partition@720000 {
> + label = "VCTL";
> + reg = <0x00720000 0x00020000>;
> + read-only;
> + };
> + partition@740000 {
> + label = "CurConf";
> + reg = <0x00740000 0x000a0000>;
> + read-only;
> + };
> + partition@7e0000 {
> + label = "FIS";
> + reg = <0x007e0000 0x00010000>;
> + read-only;
> + };
> + };
> +};
Is the FIS broken since you hardcode the partitions?
Doesn't this work:
partitions {
compatible = "redboot-fis";
/* Eraseblock at 0x7e0000 */
fis-index-block = <0xfc>;
};
(Needs CONFIG_MTD_REDBOOT_PARTS)
Yours,
Linus Walleij
Hi Corentin,
On Mon, May 17, 2021 at 9:32 PM Corentin Labbe <[email protected]> wrote:
>
> The SSI 1328 is a NAS box running a SL3516 SoC.
>
> Signed-off-by: Corentin Labbe <[email protected]>
Same question with redboot FIS and the pin control for the
flash here, otherwise it looks good!
Yours,
Linus Walleij
Le Tue, May 18, 2021 at 01:46:20AM +0200, Linus Walleij a ?crit :
> Hi Corentin,
>
> this is looking nice! Just one thing:
>
> On Mon, May 17, 2021 at 9:32 PM Corentin Labbe <[email protected]> wrote:
>
> > The edimax NS2502 is a NAS box running a SL3516 SoC.
> >
> > Signed-off-by: Corentin Labbe <[email protected]>
>
> > +&flash {
> > + status = "okay";
> > + /* 8MB of flash */
> > + reg = <0x30000000 0x00800000>;
>
> No pin control setting? I guess it may work but this doesn't hurt
> (I think):
>
> pinctrl-names = "enabled", "disabled";
> pinctrl-0 = <&pflash_default_pins>;
> pinctrl-1 = <&pflash_disabled_pins>;
>
I have added, without any change in behavour.
> > + partitions {
> > + compatible = "fixed-partitions";
> > + #address-cells = <1>;
> > + #size-cells = <1>;
> > +
> > + partition@0 {
> > + label = "RedBoot";
> > + reg = <0x00000000 0x00020000>;
> > + read-only;
> > + };
> > + partition@20000 {
> > + label = "kernel";
> > + reg = <0x00020000 0x00700000>;
> > + };
> > + partition@720000 {
> > + label = "VCTL";
> > + reg = <0x00720000 0x00020000>;
> > + read-only;
> > + };
> > + partition@740000 {
> > + label = "CurConf";
> > + reg = <0x00740000 0x000a0000>;
> > + read-only;
> > + };
> > + partition@7e0000 {
> > + label = "FIS";
> > + reg = <0x007e0000 0x00010000>;
> > + read-only;
> > + };
> > + };
> > +};
>
> Is the FIS broken since you hardcode the partitions?
>
> Doesn't this work:
>
> partitions {
> compatible = "redboot-fis";
> /* Eraseblock at 0x7e0000 */
> fis-index-block = <0xfc>;
> };
>
> (Needs CONFIG_MTD_REDBOOT_PARTS)
No it does not.
physmap-flash 30000000.flash: no enabled pin control state
physmap-flash 30000000.flash: no disabled pin control state
physmap-flash 30000000.flash: initialized Gemini-specific physmap control
physmap-flash 30000000.flash: physmap platform flash device: [mem 0x30000000-0x331fffff]
30000000.flash: Found 1 x16 devices at 0x0 in 16-bit bank. Manufacturer ID 0x000001 Chip ID 0x002201
number of CFI chips: 1
Searching for RedBoot partition table in 30000000.flash at offset 0x1fe0000
No RedBoot partition table detected in 30000000.flash
Searching for RedBoot partition table in 30000000.flash at offset 0x1fe0000
No RedBoot partition table detected in 30000000.flash
On Tue, May 18, 2021 at 11:55 AM LABBE Corentin <[email protected]> wrote:
> Le Tue, May 18, 2021 at 01:46:20AM +0200, Linus Walleij a écrit :
> > Is the FIS broken since you hardcode the partitions?
> >
> > Doesn't this work:
> >
> > partitions {
> > compatible = "redboot-fis";
> > /* Eraseblock at 0x7e0000 */
> > fis-index-block = <0xfc>;
> > };
> >
> > (Needs CONFIG_MTD_REDBOOT_PARTS)
>
> No it does not.
>
> physmap-flash 30000000.flash: no enabled pin control state
> physmap-flash 30000000.flash: no disabled pin control state
> physmap-flash 30000000.flash: initialized Gemini-specific physmap control
> physmap-flash 30000000.flash: physmap platform flash device: [mem 0x30000000-0x331fffff]
> 30000000.flash: Found 1 x16 devices at 0x0 in 16-bit bank. Manufacturer ID 0x000001 Chip ID 0x002201
> number of CFI chips: 1
> Searching for RedBoot partition table in 30000000.flash at offset 0x1fe0000
> No RedBoot partition table detected in 30000000.flash
> Searching for RedBoot partition table in 30000000.flash at offset 0x1fe0000
> No RedBoot partition table detected in 30000000.flash
Hm since it searches at 0x1fe0000 that's where it thinks the last
eraseblock is so the erase blocks are 0x20000 (128KB).
FIS at 0x7e0000 should be erase block
0x7e0000/0x20000 = 0x3f
Can you test fis-index-block = <0x3f> and see what happens?
Yours,
Linus Walleij
On Mon, 17 May 2021 19:32:02 +0000, Corentin Labbe wrote:
> Add vendor prefix for EDIMAX Technology Co., Ltd (https://www.edimax.com/)
>
> Signed-off-by: Corentin Labbe <[email protected]>
> ---
> Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
> 1 file changed, 2 insertions(+)
>
Acked-by: Rob Herring <[email protected]>
On Mon, 17 May 2021 19:32:03 +0000, Corentin Labbe wrote:
> Add vendor prefix for SSI Computer Corp (https://www.ssi.com.tw/)
>
> Signed-off-by: Corentin Labbe <[email protected]>
> ---
> Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
> 1 file changed, 2 insertions(+)
>
Acked-by: Rob Herring <[email protected]>
Le Wed, May 19, 2021 at 01:17:59AM +0200, Linus Walleij a ?crit :
> On Tue, May 18, 2021 at 11:55 AM LABBE Corentin <[email protected]> wrote:
> > Le Tue, May 18, 2021 at 01:46:20AM +0200, Linus Walleij a ?crit :
>
> > > Is the FIS broken since you hardcode the partitions?
> > >
> > > Doesn't this work:
> > >
> > > partitions {
> > > compatible = "redboot-fis";
> > > /* Eraseblock at 0x7e0000 */
> > > fis-index-block = <0xfc>;
> > > };
> > >
> > > (Needs CONFIG_MTD_REDBOOT_PARTS)
> >
> > No it does not.
> >
> > physmap-flash 30000000.flash: no enabled pin control state
> > physmap-flash 30000000.flash: no disabled pin control state
> > physmap-flash 30000000.flash: initialized Gemini-specific physmap control
> > physmap-flash 30000000.flash: physmap platform flash device: [mem 0x30000000-0x331fffff]
> > 30000000.flash: Found 1 x16 devices at 0x0 in 16-bit bank. Manufacturer ID 0x000001 Chip ID 0x002201
> > number of CFI chips: 1
> > Searching for RedBoot partition table in 30000000.flash at offset 0x1fe0000
> > No RedBoot partition table detected in 30000000.flash
> > Searching for RedBoot partition table in 30000000.flash at offset 0x1fe0000
> > No RedBoot partition table detected in 30000000.flash
>
> Hm since it searches at 0x1fe0000 that's where it thinks the last
> eraseblock is so the erase blocks are 0x20000 (128KB).
>
> FIS at 0x7e0000 should be erase block
> 0x7e0000/0x20000 = 0x3f
>
> Can you test fis-index-block = <0x3f> and see what happens?
>
With 0x7F it works.
When testing, I found that fis-index-block was ignored. I just sent a patch fixing this.
Regards