Skip to contentSkip to conversation

ARM: Kirkwood: Synology DT files

RFC PATCH New Andrew Lunn 4 participants 16 messages Jan 6, 2014 – Jan 10, 2014

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

cover ARM: Kirkwood: Synology DT files

This patchset adds support for a few different Kirkwood based Synology NAS boxes. I've taken the board file created by Ben Peddell and converted it into DT files.

Request for Comment:

Synology hardware design uses a number of sub-designs which get repeated across boards. Hence i have a lot of .dtsi files, 25 in total. I decided to place these into a subdirectory arch/arm/boot/dts/synology. Is this a good idea, or is it preferred to keep them alongside the .dts files?

Request for Testing:

This patch adds support for around 30 different boards. Most .dts files support a couple of different models. I don't have any of this hardware. None of this is tested.

Andrew Lunn (2):
Power: Reset: Generalize qnap-poweroff to with on Synology devices.
ARM: Kirkwood: Add support for many Synology NAS devices

 arch/arm/boot/dts/Makefile                     |   15 ++++
 arch/arm/boot/dts/kirkwood-ds109.dts           |   33 +++++++
 arch/arm/boot/dts/kirkwood-ds110jv10.dts       |   33 +++++++
 arch/arm/boot/dts/kirkwood-ds111.dts           |   33 +++++++
 arch/arm/boot/dts/kirkwood-ds112.dts           |   34 +++++++
 arch/arm/boot/dts/kirkwood-ds209.dts           |   33 +++++++
 arch/arm/boot/dts/kirkwood-ds210.dts           |   35 ++++++++
 arch/arm/boot/dts/kirkwood-ds212.dts           |   37 ++++++++
 arch/arm/boot/dts/kirkwood-ds212j.dts          |   34 +++++++
 arch/arm/boot/dts/kirkwood-ds409.dts           |   34 +++++++
 arch/arm/boot/dts/kirkwood-ds409slim.dts       |   32 +++++++
 arch/arm/boot/dts/kirkwood-ds411.dts           |   35 ++++++++
 arch/arm/boot/dts/kirkwood-ds411j.dts          |   34 +++++++
 arch/arm/boot/dts/kirkwood-ds411slim.dts       |   34 +++++++
 arch/arm/boot/dts/kirkwood-rs212.dts           |   34 +++++++
 arch/arm/boot/dts/kirkwood-rs409.dts           |   33 +++++++
 arch/arm/boot/dts/kirkwood-rs411.dts           |   34 +++++++
 arch/arm/boot/dts/synology/alarm-led-12.dtsi   |   28 ++++++
 arch/arm/boot/dts/synology/common.dtsi         |  112 ++++++++++++++++++++++++
 arch/arm/boot/dts/synology/ethernet-1.dtsi     |   15 ++++
 arch/arm/boot/dts/synology/fan-alarm-18.dtsi   |   22 +++++
 arch/arm/boot/dts/synology/fan-alarm-35-1.dtsi |   22 +++++
 arch/arm/boot/dts/synology/fan-alarm-35-3.dtsi |   32 +++++++
 arch/arm/boot/dts/synology/fan-gpios-15.dtsi   |   34 +++++++
 arch/arm/boot/dts/synology/fan-gpios-32.dtsi   |   34 +++++++
 arch/arm/boot/dts/synology/fan-speed-100.dtsi  |   20 +++++
 arch/arm/boot/dts/synology/fan-speed-120.dtsi  |   20 +++++
 arch/arm/boot/dts/synology/fan-speed-150.dtsi  |   20 +++++
 arch/arm/boot/dts/synology/hdd-leds-20.dtsi    |   90 +++++++++++++++++++
 arch/arm/boot/dts/synology/hdd-leds-21-1.dtsi  |   36 ++++++++
 arch/arm/boot/dts/synology/hdd-leds-21-2.dtsi  |   52 +++++++++++
 arch/arm/boot/dts/synology/hdd-leds-36.dtsi    |  103 ++++++++++++++++++++++
 arch/arm/boot/dts/synology/hdd-leds-38.dtsi    |   52 +++++++++++
 arch/arm/boot/dts/synology/hdd-power-29.dtsi   |   56 ++++++++++++
 arch/arm/boot/dts/synology/hdd-power-30-1.dtsi |   40 +++++++++
 arch/arm/boot/dts/synology/hdd-power-30-2.dtsi |   56 ++++++++++++
 arch/arm/boot/dts/synology/hdd-power-30-4.dtsi |   89 +++++++++++++++++++
 arch/arm/boot/dts/synology/hdd-power-31.dtsi   |   40 +++++++++
 arch/arm/boot/dts/synology/hdd-power-34.dtsi   |   73 +++++++++++++++
 arch/arm/boot/dts/synology/i2c-rtc-ricoh.dtsi  |   18 ++++
 arch/arm/boot/dts/synology/i2c-rtc-seiko.dtsi  |   18 ++++
 arch/arm/boot/dts/synology/pcie-2.dtsi         |   19 ++++
 drivers/power/reset/qnap-poweroff.c            |   46 +++++++---
 43 files changed, 1694 insertions(+), 10 deletions(-)
 create mode 100644 arch/arm/boot/dts/kirkwood-ds109.dts
 create mode 100644 arch/arm/boot/dts/kirkwood-ds110jv10.dts
 create mode 100644 arch/arm/boot/dts/kirkwood-ds111.dts
 create mode 100644 arch/arm/boot/dts/kirkwood-ds112.dts
 create mode 100644 arch/arm/boot/dts/kirkwood-ds209.dts
 create mode 100644 arch/arm/boot/dts/kirkwood-ds210.dts
 create mode 100644 arch/arm/boot/dts/kirkwood-ds212.dts
 create mode 100644 arch/arm/boot/dts/kirkwood-ds212j.dts
 create mode 100644 arch/arm/boot/dts/kirkwood-ds409.dts
 create mode 100644 arch/arm/boot/dts/kirkwood-ds409slim.dts
 create mode 100644 arch/arm/boot/dts/kirkwood-ds411.dts
 create mode 100644 arch/arm/boot/dts/kirkwood-ds411j.dts
 create mode 100644 arch/arm/boot/dts/kirkwood-ds411slim.dts
 create mode 100644 arch/arm/boot/dts/kirkwood-rs212.dts
 create mode 100644 arch/arm/boot/dts/kirkwood-rs409.dts
 create mode 100644 arch/arm/boot/dts/kirkwood-rs411.dts
 create mode 100644 arch/arm/boot/dts/synology/alarm-led-12.dtsi
 create mode 100644 arch/arm/boot/dts/synology/common.dtsi
 create mode 100644 arch/arm/boot/dts/synology/ethernet-1.dtsi
 create mode 100644 arch/arm/boot/dts/synology/fan-alarm-18.dtsi
 create mode 100644 arch/arm/boot/dts/synology/fan-alarm-35-1.dtsi
 create mode 100644 arch/arm/boot/dts/synology/fan-alarm-35-3.dtsi
 create mode 100644 arch/arm/boot/dts/synology/fan-gpios-15.dtsi
 create mode 100644 arch/arm/boot/dts/synology/fan-gpios-32.dtsi
 create mode 100644 arch/arm/boot/dts/synology/fan-speed-100.dtsi
 create mode 100644 arch/arm/boot/dts/synology/fan-speed-120.dtsi
 create mode 100644 arch/arm/boot/dts/synology/fan-speed-150.dtsi
 create mode 100644 arch/arm/boot/dts/synology/hdd-leds-20.dtsi
 create mode 100644 arch/arm/boot/dts/synology/hdd-leds-21-1.dtsi
 create mode 100644 arch/arm/boot/dts/synology/hdd-leds-21-2.dtsi
 create mode 100644 arch/arm/boot/dts/synology/hdd-leds-36.dtsi
 create mode 100644 arch/arm/boot/dts/synology/hdd-leds-38.dtsi
 create mode 100644 arch/arm/boot/dts/synology/hdd-power-29.dtsi
 create mode 100644 arch/arm/boot/dts/synology/hdd-power-30-1.dtsi
 create mode 100644 arch/arm/boot/dts/synology/hdd-power-30-2.dtsi
 create mode 100644 arch/arm/boot/dts/synology/hdd-power-30-4.dtsi
 create mode 100644 arch/arm/boot/dts/synology/hdd-power-31.dtsi
 create mode 100644 arch/arm/boot/dts/synology/hdd-power-34.dtsi
 create mode 100644 arch/arm/boot/dts/synology/i2c-rtc-ricoh.dtsi
 create mode 100644 arch/arm/boot/dts/synology/i2c-rtc-seiko.dtsi
 create mode 100644 arch/arm/boot/dts/synology/pcie-2.dtsi
Signature · 1 line
1.7.10.4
#1 lore raw

RFC PATCH 1/2 Power: Reset: Generalize qnap-poweroff to with on Synology devices.

The Synology NAS devices use a very similar mechanism to QNAP NAS devices to power off. Both send a single charactor command to a PIC, over the second serial port. However the baud rate and the command differ. Generalize the driver to support this.

---
 .../bindings/power_supply/qnap-poweroff.txt        |    5 ++-
 drivers/power/reset/qnap-poweroff.c                |   46 +++++++++++++++-----
 2 files changed, 40 insertions(+), 11 deletions(-)
Documentation/devicetree/bindings/power_supply/qnap-poweroff.txt +4 -1
index 0347d8350d94..4ac3ee80dead 100644
@@ -6,8 +6,11 @@ Orion5x SoCs. Sending the character 'A', at 19200 baud, tells the
 microcontroller to turn the power off. This driver adds a handler to
 pm_power_off which is called to turn the power off.
 
+Synology NAS devices use a similar scheme, but a different baud rate,
+9660, and a different character, 1.
+
 Required Properties:
-- compatible: Should be "qnap,power-off"
+- compatible: Should be "qnap,power-off" or "synology,power-off"
 
 - reg: Address and length of the register set for UART1
 - clocks: tclk clock
drivers/power/reset/qnap-poweroff.c +36 -10

84 lines not on this page · raw message

Signature · 1 line
1.7.10.4
#2 lore raw

RFC PATCH 2/2 ARM: Kirkwood: Add support for many Synology NAS devices

In reply to Andrew Lunn

Add device tree fragments and files to support many of the kirkwood based Synology NAS devices. This is a translation of the board setup file maintained by Ben Peddell <[email protected]>

---
 arch/arm/boot/dts/Makefile                     |   15 ++++
 arch/arm/boot/dts/kirkwood-ds109.dts           |   33 +++++++
 arch/arm/boot/dts/kirkwood-ds110jv10.dts       |   33 +++++++
 arch/arm/boot/dts/kirkwood-ds111.dts           |   33 +++++++
 arch/arm/boot/dts/kirkwood-ds112.dts           |   34 +++++++
 arch/arm/boot/dts/kirkwood-ds209.dts           |   33 +++++++
 arch/arm/boot/dts/kirkwood-ds210.dts           |   35 ++++++++
 arch/arm/boot/dts/kirkwood-ds212.dts           |   37 ++++++++
 arch/arm/boot/dts/kirkwood-ds212j.dts          |   34 +++++++
 arch/arm/boot/dts/kirkwood-ds409.dts           |   34 +++++++
 arch/arm/boot/dts/kirkwood-ds409slim.dts       |   32 +++++++
 arch/arm/boot/dts/kirkwood-ds411.dts           |   35 ++++++++
 arch/arm/boot/dts/kirkwood-ds411j.dts          |   34 +++++++
 arch/arm/boot/dts/kirkwood-ds411slim.dts       |   34 +++++++
 arch/arm/boot/dts/kirkwood-rs212.dts           |   34 +++++++
 arch/arm/boot/dts/kirkwood-rs409.dts           |   33 +++++++
 arch/arm/boot/dts/kirkwood-rs411.dts           |   34 +++++++
 arch/arm/boot/dts/synology/alarm-led-12.dtsi   |   28 ++++++
 arch/arm/boot/dts/synology/common.dtsi         |  112 ++++++++++++++++++++++++
 arch/arm/boot/dts/synology/ethernet-1.dtsi     |   15 ++++
 arch/arm/boot/dts/synology/fan-alarm-18.dtsi   |   22 +++++
 arch/arm/boot/dts/synology/fan-alarm-35-1.dtsi |   22 +++++
 arch/arm/boot/dts/synology/fan-alarm-35-3.dtsi |   32 +++++++
 arch/arm/boot/dts/synology/fan-gpios-15.dtsi   |   34 +++++++
 arch/arm/boot/dts/synology/fan-gpios-32.dtsi   |   34 +++++++
 arch/arm/boot/dts/synology/fan-speed-100.dtsi  |   20 +++++
 arch/arm/boot/dts/synology/fan-speed-120.dtsi  |   20 +++++
 arch/arm/boot/dts/synology/fan-speed-150.dtsi  |   20 +++++
 arch/arm/boot/dts/synology/hdd-leds-20.dtsi    |   90 +++++++++++++++++++
 arch/arm/boot/dts/synology/hdd-leds-21-1.dtsi  |   36 ++++++++
 arch/arm/boot/dts/synology/hdd-leds-21-2.dtsi  |   52 +++++++++++
 arch/arm/boot/dts/synology/hdd-leds-36.dtsi    |  103 ++++++++++++++++++++++
 arch/arm/boot/dts/synology/hdd-leds-38.dtsi    |   52 +++++++++++
 arch/arm/boot/dts/synology/hdd-power-29.dtsi   |   56 ++++++++++++
 arch/arm/boot/dts/synology/hdd-power-30-1.dtsi |   40 +++++++++
 arch/arm/boot/dts/synology/hdd-power-30-2.dtsi |   56 ++++++++++++
 arch/arm/boot/dts/synology/hdd-power-30-4.dtsi |   89 +++++++++++++++++++
 arch/arm/boot/dts/synology/hdd-power-31.dtsi   |   40 +++++++++
 arch/arm/boot/dts/synology/hdd-power-34.dtsi   |   73 +++++++++++++++
 arch/arm/boot/dts/synology/i2c-rtc-ricoh.dtsi  |   18 ++++
 arch/arm/boot/dts/synology/i2c-rtc-seiko.dtsi  |   18 ++++
 arch/arm/boot/dts/synology/pcie-2.dtsi         |   19 ++++
 42 files changed, 1658 insertions(+)
 create mode 100644 arch/arm/boot/dts/kirkwood-ds109.dts
 create mode 100644 arch/arm/boot/dts/kirkwood-ds110jv10.dts
 create mode 100644 arch/arm/boot/dts/kirkwood-ds111.dts
 create mode 100644 arch/arm/boot/dts/kirkwood-ds112.dts
 create mode 100644 arch/arm/boot/dts/kirkwood-ds209.dts
 create mode 100644 arch/arm/boot/dts/kirkwood-ds210.dts
 create mode 100644 arch/arm/boot/dts/kirkwood-ds212.dts
 create mode 100644 arch/arm/boot/dts/kirkwood-ds212j.dts
 create mode 100644 arch/arm/boot/dts/kirkwood-ds409.dts
 create mode 100644 arch/arm/boot/dts/kirkwood-ds409slim.dts
 create mode 100644 arch/arm/boot/dts/kirkwood-ds411.dts
 create mode 100644 arch/arm/boot/dts/kirkwood-ds411j.dts
 create mode 100644 arch/arm/boot/dts/kirkwood-ds411slim.dts
 create mode 100644 arch/arm/boot/dts/kirkwood-rs212.dts
 create mode 100644 arch/arm/boot/dts/kirkwood-rs409.dts
 create mode 100644 arch/arm/boot/dts/kirkwood-rs411.dts
 create mode 100644 arch/arm/boot/dts/synology/alarm-led-12.dtsi
 create mode 100644 arch/arm/boot/dts/synology/common.dtsi
 create mode 100644 arch/arm/boot/dts/synology/ethernet-1.dtsi
 create mode 100644 arch/arm/boot/dts/synology/fan-alarm-18.dtsi
 create mode 100644 arch/arm/boot/dts/synology/fan-alarm-35-1.dtsi
 create mode 100644 arch/arm/boot/dts/synology/fan-alarm-35-3.dtsi
 create mode 100644 arch/arm/boot/dts/synology/fan-gpios-15.dtsi
 create mode 100644 arch/arm/boot/dts/synology/fan-gpios-32.dtsi
 create mode 100644 arch/arm/boot/dts/synology/fan-speed-100.dtsi
 create mode 100644 arch/arm/boot/dts/synology/fan-speed-120.dtsi
 create mode 100644 arch/arm/boot/dts/synology/fan-speed-150.dtsi
 create mode 100644 arch/arm/boot/dts/synology/hdd-leds-20.dtsi
 create mode 100644 arch/arm/boot/dts/synology/hdd-leds-21-1.dtsi
 create mode 100644 arch/arm/boot/dts/synology/hdd-leds-21-2.dtsi
 create mode 100644 arch/arm/boot/dts/synology/hdd-leds-36.dtsi
 create mode 100644 arch/arm/boot/dts/synology/hdd-leds-38.dtsi
 create mode 100644 arch/arm/boot/dts/synology/hdd-power-29.dtsi
 create mode 100644 arch/arm/boot/dts/synology/hdd-power-30-1.dtsi
 create mode 100644 arch/arm/boot/dts/synology/hdd-power-30-2.dtsi
 create mode 100644 arch/arm/boot/dts/synology/hdd-power-30-4.dtsi
 create mode 100644 arch/arm/boot/dts/synology/hdd-power-31.dtsi
 create mode 100644 arch/arm/boot/dts/synology/hdd-power-34.dtsi
 create mode 100644 arch/arm/boot/dts/synology/i2c-rtc-ricoh.dtsi
 create mode 100644 arch/arm/boot/dts/synology/i2c-rtc-seiko.dtsi
 create mode 100644 arch/arm/boot/dts/synology/pcie-2.dtsi
arch/arm/boot/dts/Makefile +15 -0
index d57c1a65b24f..dc5ec1c57b43 100644
@@ -78,6 +78,18 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-cloudbox.dtb \
 	kirkwood-dns325.dtb \
 	kirkwood-dockstar.dtb \
 	kirkwood-dreamplug.dtb \
+	kirkwood-ds109.dtb \
+	kirkwood-ds110jv10.dtb \
+	kirkwood-ds111.dtb \
+	kirkwood-ds209.dtb \
+	kirkwood-ds210.dtb \
+	kirkwood-ds212.dtb \
+	kirkwood-ds212j.dtb \
+	kirkwood-ds409.dtb \
+	kirkwood-ds409slim.dtb \
+	kirkwood-ds411.dtb \
+	kirkwood-ds411j.dtb \
+	kirkwood-ds411slim.dtb \
 	kirkwood-goflexnet.dtb \
 	kirkwood-guruplug-server-plus.dtb \
 	kirkwood-ib62x0.dtb \
@@ -98,6 +110,9 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-cloudbox.dtb \
 	kirkwood-nsa310a.dtb \
 	kirkwood-openblocks_a6.dtb \
 	kirkwood-openblocks_a7.dtb \
+	kirkwood-rs212.dtb \
+	kirkwood-rs409.dtb \
+	kirkwood-rs411.dtb \
 	kirkwood-sheevaplug.dtb \
 	kirkwood-sheevaplug-esata.dtb \
 	kirkwood-topkick.dtb \
arch/arm/boot/dts/kirkwood-ds109.dts new file +33 -0
new file mode 100644
index 000000000000..bea085ad540a
@@ -0,0 +1,33 @@
+/*
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6281.dtsi"
+#include "synology/common.dtsi"
+#include "synology/i2c-rtc-ricoh.dtsi"
+#include "synology/fan-speed-150.dtsi"
+#include "synology/fan-gpios-32.dtsi"
+#include "synology/fan-alarm-35-1.dtsi"
+#include "synology/hdd-leds-21-1.dtsi"
+
+/ {
+	model = "Synology DS109, DS110, DS110jv20";
+	compatible = "synology,ds109", "synology,ds110jv20",
+		     "synology,ds110", "marvell,kirkwood";
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x8000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8";
+	};
+};
\ No newline at end of file
arch/arm/boot/dts/kirkwood-ds110jv10.dts new file +33 -0
new file mode 100644
index 000000000000..d6b746952947
@@ -0,0 +1,33 @@
+/*
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6281.dtsi"
+#include "synology/common.dtsi"
+#include "synology/i2c-rtc-seiko.dtsi"
+#include "synology/fan-speed-150.dtsi"
+#include "synology/fan-gpios-32.dtsi"
+#include "synology/fan-alarm-35-1.dtsi"
+#include "synology/hdd-leds-21-1.dtsi"
+
+/ {
+	model = "Synology DS110j v10 and v30";
+	compatible = "synology,ds110jv10", "synology,ds110jv30",
+		     "marvell,kirkwood";
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x8000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8";
+	};
+};
\ No newline at end of file
arch/arm/boot/dts/kirkwood-ds111.dts new file +33 -0
new file mode 100644
index 000000000000..5f51e088903f
@@ -0,0 +1,33 @@
+/*
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6282.dtsi"
+#include "synology/pcie-2.dtsi"
+#include "synology/common.dtsi"
+#include "synology/i2c-rtc-seiko.dtsi"
+#include "synology/fan-speed-100.dtsi"
+#include "synology/fan-gpios-15.dtsi"
+#include "synology/fan-alarm-35-1.dtsi"
+#include "synology/hdd-leds-21-1.dtsi"
+
+/ {
+	model = "Synology DS111";
+	compatible = "synology,ds111", "marvell,kirkwood";
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x8000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8";
+	};
+};
\ No newline at end of file
arch/arm/boot/dts/kirkwood-ds112.dts new file +34 -0
new file mode 100644
index 000000000000..cda3203a0824
@@ -0,0 +1,34 @@
+/*
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6282.dtsi"
+#include "synology/pcie-2.dtsi"
+#include "synology/common.dtsi"
+#include "synology/i2c-rtc-seiko.dtsi"
+#include "synology/fan-speed-100.dtsi"
+#include "synology/fan-gpios-15.dtsi"
+#include "synology/fan-alarm-35.dtsi"
+#include "synology/hdd-leds-21-2.dtsi"
+#include "synology/hdd-power-30.dtsi"
+
+/ {
+	model = "Synology DS111";
+	compatible = "synology,ds111", "marvell,kirkwood";
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x8000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8";
+	};
+};
\ No newline at end of file
arch/arm/boot/dts/kirkwood-ds209.dts new file +33 -0
new file mode 100644
index 000000000000..b2ebb423e129
@@ -0,0 +1,33 @@
+/*
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6281.dtsi"
+#include "synology/common.dtsi"
+#include "synology/i2c-rtc-ricoh.dtsi"
+#include "synology/fan-speed-150.dtsi"
+#include "synology/fan-gpios-32.dtsi"
+#include "synology/fan-alarm-35-1.dtsi"
+#include "synology/hdd-leds-21-2.dtsi"
+#include "synology/hdd-power-31.dtsi"
+
+/ {
+	model = "Synology DS209";
+	compatible = "synology,ds209", "marvell,kirkwood";
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x8000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8";
+	};
+};
\ No newline at end of file
arch/arm/boot/dts/kirkwood-ds210.dts new file +35 -0
new file mode 100644
index 000000000000..8623dd63f44d
@@ -0,0 +1,35 @@
+/*
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6281.dtsi"
+#include "synology/common.dtsi"
+#include "synology/i2c-rtc-seiko.dtsi"
+#include "synology/fan-speed-150.dtsi"
+#include "synology/fan-gpios-32.dtsi"
+#include "synology/fan-alarm-35-1.dtsi"
+#include "synology/hdd-leds-21-2.dtsi"
+#include "synology/hdd-power-31.dtsi"
+
+/ {
+	model = "Synology DS210 v10, v20, v30, DS211j";
+	compatible = "synology,ds210jv10", "synology,ds210jv20",
+		     "synology,ds210jv30", "synology,ds211j",
+		     "marvell,kirkwood";
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x8000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8";
+	};
+};
\ No newline at end of file
arch/arm/boot/dts/kirkwood-ds212.dts new file +37 -0
new file mode 100644
index 000000000000..89e091ce2174
@@ -0,0 +1,37 @@
+/*
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6282.dtsi"
+#include "synology/pcie-2.dtsi"
+#include "synology/common.dtsi"
+#include "synology/i2c-rtc-seiko.dtsi"
+#include "synology/fan-speed-100.dtsi"
+#include "synology/fan-gpios-15.dtsi"
+#include "synology/fan-alarm-35-1.dtsi"
+#include "synology/hdd-leds-21-2.dtsi"
+#include "synology/hdd-power-30-2.dtsi"
+
+/ {
+	model = "Synology DS212, DS212p v10, v20, DS213air v10, DS213 v10";
+	compatible = "synology,ds212", "synology,ds212pv10",
+		     "synology,ds212pv10", "synology,ds212pv20",
+		     "synology,ds213airv10", "synology,ds213v10",
+		     "marvell,kirkwood";
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x8000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8";
+	};
+};
\ No newline at end of file
arch/arm/boot/dts/kirkwood-ds212j.dts new file +34 -0
new file mode 100644
index 000000000000..ed14b7bb695e
@@ -0,0 +1,34 @@
+/*
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6281.dtsi"
+#include "synology/common.dtsi"
+#include "synology/i2c-rtc-seiko.dtsi"
+#include "synology/fan-speed-100.dtsi"
+#include "synology/fan-gpios-32.dtsi"
+#include "synology/fan-alarm-35-1.dtsi"
+#include "synology/hdd-leds-21-2.dtsi"
+#include "synology/hdd-power-29.dtsi"
+
+/ {
+	model = "Synology DS212j v10, v20";
+	compatible = "synology,ds212jv10", "synology,ds212jv20",
+		     "marvell,kirkwood";
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x8000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8";
+	};
+};
\ No newline at end of file
arch/arm/boot/dts/kirkwood-ds409.dts new file +34 -0
new file mode 100644
index 000000000000..7000de1add08
@@ -0,0 +1,34 @@
+/*
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6281.dtsi"
+#include "synology/common.dtsi"
+#include "synology/i2c-rtc-ricoh.dtsi"
+#include "synology/ethernet-1.dtsi"
+#include "synology/fan-speed-120.dtsi"
+#include "synology/fan-gpios-15.dtsi"
+#include "synology/fan-alarm-18.dtsi"
+#include "synology/hdd-leds-36.dtsi"
+#include "synology/alarm-led-12.dtsi"
+
+/ {
+	model = "Synology DS409, DS410j";
+	compatible = "synology,ds409", "synology,ds410j", "marvell,kirkwood";
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x8000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8";
+	};
+};
\ No newline at end of file
arch/arm/boot/dts/kirkwood-ds409slim.dts new file +32 -0
new file mode 100644
index 000000000000..0ba525a594f7
@@ -0,0 +1,32 @@
+/*
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6281.dtsi"
+#include "synology/common.dtsi"
+#include "synology/i2c-rtc-ricoh.dtsi"
+#include "synology/fan-speed-120.dtsi"
+#include "synology/fan-gpios-32.dtsi"
+#include "synology/fan-alarm-35-1.dtsi"
+#include "synology/hdd-leds-20.dtsi"
+
+/ {
+	model = "Synology 409slim";
+	compatible = "synology,ds409slim", "marvell,kirkwood";
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x8000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8";
+	};
+};
\ No newline at end of file
arch/arm/boot/dts/kirkwood-ds411.dts new file +35 -0
new file mode 100644
index 000000000000..4c1ca8e85559
@@ -0,0 +1,35 @@
+/*
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6282.dtsi"
+#include "synology/pcie-2.dtsi"
+#include "synology/common.dtsi"
+#include "synology/i2c-rtc-seiko.dtsi"
+#include "synology/ethernet-1.dtsi"
+#include "synology/fan-speed-100.dtsi"
+#include "synology/fan-gpios-15.dtsi"
+#include "synology/fan-alarm-35-1.dtsi"
+#include "synology/hdd-leds-36.dtsi"
+#include "synology/hdd-power-34.dtsi"
+
+/ {
+	model = "Synology DS411, DS413jv10";
+	compatible = "synology,ds411", "synology,ds413jv10", "marvell,kirkwood";
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x8000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8";
+	};
+};
\ No newline at end of file
arch/arm/boot/dts/kirkwood-ds411j.dts new file +34 -0
new file mode 100644
index 000000000000..7f08a46ddabb
@@ -0,0 +1,34 @@
+/*
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6281.dtsi"
+#include "synology/common.dtsi"
+#include "synology/i2c-rtc-seiko.dtsi"
+#include "synology/ethernet-1.dtsi"
+#include "synology/fan-speed-120.dtsi"
+#include "synology/fan-gpios-15.dtsi"
+#include "synology/fan-alarm-18.dtsi"
+#include "synology/hdd-leds-36.dtsi"
+#include "synology/alarm-led-12.dtsi"
+
+/ {
+	model = "Synology DS411j";
+	compatible = "synology,ds411j", "marvell,kirkwood";
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x8000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8";
+	};
+};
\ No newline at end of file
arch/arm/boot/dts/kirkwood-ds411slim.dts new file +34 -0
new file mode 100644
index 000000000000..2e6d66f37002
@@ -0,0 +1,34 @@
+/*
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6282.dtsi"
+#include "synology/pcie-2.dtsi"
+#include "synology/common.dtsi"
+#include "synology/i2c-rtc-seiko.dtsi"
+#include "synology/ethernet-1.dtsi"
+#include "synology/fan-speed-100.dtsi"
+#include "synology/fan-gpios-15.dtsi"
+#include "synology/fan-alarm-35-1.dtsi"
+#include "synology/hdd-leds-36.dtsi"
+
+/ {
+	model = "Synology DS411slim";
+	compatible = "synology,ds411slim", "marvell,kirkwood";
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x8000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8";
+	};
+};
\ No newline at end of file
arch/arm/boot/dts/kirkwood-rs212.dts new file +34 -0
new file mode 100644
index 000000000000..edc797464983
@@ -0,0 +1,34 @@
+/*
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6282.dtsi"
+#include "synology/pcie-2.dtsi"
+#include "synology/common.dtsi"
+#include "synology/i2c-rtc-seiko.dtsi"
+#include "synology/fan-speed-100.dtsi"
+#include "synology/fan-gpios-15.dtsi"
+#include "synology/fan-alarm-35-3.dtsi"
+#include "synology/hdd-leds-38.dtsi"
+#include "synology/hdd-power-30-2.dtsi"
+
+/ {
+	model = "Synology RS212";
+	compatible = "synology,rs212", "marvell,kirkwood";
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x8000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8";
+	};
+};
\ No newline at end of file
arch/arm/boot/dts/kirkwood-rs409.dts new file +33 -0
new file mode 100644
index 000000000000..906664a99602
@@ -0,0 +1,33 @@
+/*
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6281.dtsi"
+#include "synology/common.dtsi"
+#include "synology/i2c-rtc-ricoh.dtsi"
+#include "synology/ethernet-1.dtsi"
+#include "synology/fan-speed-120.dtsi"
+#include "synology/fan-gpios-15.dtsi"
+#include "synology/fan-alarm-18.dtsi"
+#include "synology/hdd-leds-36.dtsi"
+
+/ {
+	model = "Synology RS409";
+	compatible = "synology,rs409", "marvell,kirkwood";
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x8000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8";
+	};
+};
\ No newline at end of file
arch/arm/boot/dts/kirkwood-rs411.dts new file +34 -0
new file mode 100644
index 000000000000..75c806ea0dc9
@@ -0,0 +1,34 @@
+/*
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6282.dtsi"
+#include "synology/pcie-2.dtsi"
+#include "synology/common.dtsi"
+#include "synology/i2c-rtc-seiko.dtsi"
+#include "synology/ethernet-1.dtsi"
+#include "synology/fan-speed-100.dtsi"
+#include "synology/fan-gpios-15.dtsi"
+#include "synology/fan-alarm-35-3.dtsi"
+#include "synology/hdd-leds-36.dtsi"
+
+/ {
+	model = "Synology RS411 RS812";
+	compatible = "synology,rs411", "synology,rs812", "marvell,kirkwood";
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x8000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8";
+	};
+};
\ No newline at end of file
arch/arm/boot/dts/synology/alarm-led-12.dtsi new file +28 -0
new file mode 100644
index 000000000000..e6ea8f07d1a5
@@ -0,0 +1,28 @@
+/*
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/ {
+	ocp at f1000000 {
+		pinctrl: pinctrl at 10000 {
+
+			pmx_led_12: pmx-led-12 {
+				marvell,pins = "mpp12";
+				marvell,function = "gpio";
+			};
+		};
+	};
+	gpio-leds {
+		compatible = "gpio-leds";
+		pinctrl-0 = <&pmx_led_12>;
+		pinctrl-names = "default";
+		hdd1-green {
+			label = "synology:alarm";
+			gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
+		};
+	};
+};
\ No newline at end of file
arch/arm/boot/dts/synology/common.dtsi new file +112 -0

112 lines not on this page · raw message

arch/arm/boot/dts/synology/ethernet-1.dtsi new file +15 -0
new file mode 100644
index 000000000000..bf00eff53bbc
@@ -0,0 +1,15 @@
+&mdio {
+	status = "okay";
+
+	ethphy1: ethernet-phy {
+		device_type = "ethernet-phy";
+		reg = <9>;
+	};
+};
+
+&eth0 {
+	status = "okay";
+	ethernet1-port at 0 {
+		phy-handle = <&ethphy1>;
+	};
+};
arch/arm/boot/dts/synology/fan-alarm-18.dtsi new file +22 -0
new file mode 100644
index 000000000000..af9efc076808
@@ -0,0 +1,22 @@
+/*
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/ {
+	ocp at f1000000 {
+		pinctrl: pinctrl at 10000 {
+
+			pmx_fan_18: pmx-fan-18 {
+				marvell,pins = "mpp18";
+				marvell,function = "gpio";
+			};
+		};
+	};
+	gpio_fan {
+		alarm-gpios = <&gpio0 18 GPIO_ACTIVE_HIGH>;
+	};
+};
arch/arm/boot/dts/synology/fan-alarm-35-1.dtsi new file +22 -0
new file mode 100644
index 000000000000..12e52fdae870
@@ -0,0 +1,22 @@
+/*
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/ {
+	ocp at f1000000 {
+		pinctrl: pinctrl at 10000 {
+
+			pmx_fan_35: pmx-fan-35 {
+				marvell,pins = "mpp35";
+				marvell,function = "gpio";
+			};
+		};
+	};
+	gpio_fan {
+		alarm-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
+	};
+};
arch/arm/boot/dts/synology/fan-alarm-35-3.dtsi new file +32 -0
new file mode 100644
index 000000000000..e2a44f402bf0
@@ -0,0 +1,32 @@
+/*
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/ {
+	ocp at f1000000 {
+		pinctrl: pinctrl at 10000 {
+
+			pmx_fan_35: pmx-fan-35 {
+				marvell,pins = "mpp35";
+				marvell,function = "gpio";
+			};
+			pmx_fan_44: pmx-fan-44 {
+				marvell,pins = "mpp44";
+				marvell,function = "gpio";
+			};
+			pmx_fan_45: pmx-fan-45 {
+				marvell,pins = "mpp45";
+				marvell,function = "gpio";
+			};
+		};
+	};
+	gpio_fan {
+		alarm-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH
+			       &gpio1 12 GPIO_ACTIVE_HIGH
+			       &gpio1 13 GPIO_ACTIVE_HIGH>;
+	};
+};
arch/arm/boot/dts/synology/fan-gpios-15.dtsi new file +34 -0
new file mode 100644
index 000000000000..e27cba942eed
@@ -0,0 +1,34 @@
+/*
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/ {
+	ocp at f1000000 {
+		pinctrl: pinctrl at 10000 {
+
+			pmx_fan_15: pmx-fan-15 {
+				marvell,pins = "mpp15";
+				marvell,function = "gpio";
+			};
+			pmx_fan_16: pmx-fan-16 {
+				marvell,pins = "mpp16";
+				marvell,function = "gpio";
+			};
+			pmx_fan_17: pmx-fan-17 {
+				marvell,pins = "mpp17";
+				marvell,function = "gpio";
+			};
+		};
+	};
+	gpio_fan {
+		pinctrl-0 = <&pmx_fan_15 &pmx_fan_16 &pmx_fan_17>;
+		pinctrl-names = "default";
+		gpios = <&gpio0 15 GPIO_ACTIVE_HIGH
+			 &gpio0 16 GPIO_ACTIVE_HIGH
+			 &gpio0 17 GPIO_ACTIVE_HIGH>;
+	};
+};
arch/arm/boot/dts/synology/fan-gpios-32.dtsi new file +34 -0
new file mode 100644
index 000000000000..aea1a0dce906
@@ -0,0 +1,34 @@
+/*
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/ {
+	ocp at f1000000 {
+		pinctrl: pinctrl at 10000 {
+
+			pmx_fan_32: pmx-fan-32 {
+				marvell,pins = "mpp32";
+				marvell,function = "gpio";
+			};
+			pmx_fan_33: pmx-fan-33 {
+				marvell,pins = "mpp33";
+				marvell,function = "gpio";
+			};
+			pmx_fan_34: pmx-fan-34 {
+				marvell,pins = "mpp34";
+				marvell,function = "gpio";
+			};
+		};
+	};
+	gpio_fan {
+		pinctrl-0 = <&pmx_fan_32 &pmx_fan_33 &pmx_fan_34>;
+		pinctrl-names = "default";
+		gpios = <&gpio1 0 GPIO_ACTIVE_HIGH
+			 &gpio1 1 GPIO_ACTIVE_HIGH
+			 &gpio1 2 GPIO_ACTIVE_HIGH>;
+	};
+};
arch/arm/boot/dts/synology/fan-speed-100.dtsi new file +20 -0
new file mode 100644
index 000000000000..5188ba59a9b2
@@ -0,0 +1,20 @@
+/*
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/ {
+	gpio_fan {
+		gpio-fan,speed-map = <    0 0
+				       2500 1
+				       3100 2
+				       3800 3
+				       4600 4
+				       4800 5
+				       4900 6
+				       5000 7 >;
+	};
+};
\ No newline at end of file
arch/arm/boot/dts/synology/fan-speed-120.dtsi new file +20 -0
new file mode 100644
index 000000000000..90157070492c
@@ -0,0 +1,20 @@
+/*
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/ {
+	gpio_fan {
+		gpio-fan,speed-map = <    0 0
+				       2500 1
+				       2700 2
+				       3000 4
+				       3600 3
+				       3800 5
+				       3900 6
+				       4300 7 >;
+	};
+};
\ No newline at end of file
arch/arm/boot/dts/synology/fan-speed-150.dtsi new file +20 -0
new file mode 100644
index 000000000000..6abc36915886
@@ -0,0 +1,20 @@
+/*
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/ {
+	gpio_fan {
+		gpio-fan,speed-map = <    0 0
+				       2200 1
+				       2500 2
+				       3000 4
+				       3300 3
+				       3700 5
+				       3800 6
+				       4200 7 >;
+	};
+};
\ No newline at end of file
arch/arm/boot/dts/synology/hdd-leds-20.dtsi new file +90 -0

91 lines not on this page · raw message

arch/arm/boot/dts/synology/hdd-leds-21-1.dtsi new file +36 -0
new file mode 100644
index 000000000000..034323f9ffb0
@@ -0,0 +1,36 @@
+/*
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/ {
+	ocp at f1000000 {
+		pinctrl: pinctrl at 10000 {
+
+			pmx_led_21: pmx-led-21 {
+				marvell,pins = "mpp21";
+				marvell,function = "gpio";
+			};
+			pmx_led_23: pmx-led-23 {
+				marvell,pins = "mpp23";
+				marvell,function = "gpio";
+			};
+		};
+	};
+	gpio-leds {
+		compatible = "gpio-leds";
+		pinctrl-0 = <&pmx_led_21 &pmx_led_23>;
+		pinctrl-names = "default";
+		hdd1-green {
+			label = "synology:green:hdd1";
+			gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
+		};
+		hdd1-amber {
+			label = "synology:amber:hdd1";
+			gpios = <&gpio0 23 GPIO_ACTIVE_LOW>;
+		};
+	};
+};
\ No newline at end of file
arch/arm/boot/dts/synology/hdd-leds-21-2.dtsi new file +52 -0

53 lines not on this page · raw message

arch/arm/boot/dts/synology/hdd-leds-36.dtsi new file +103 -0

104 lines not on this page · raw message

arch/arm/boot/dts/synology/hdd-leds-38.dtsi new file +52 -0

53 lines not on this page · raw message

arch/arm/boot/dts/synology/hdd-power-29.dtsi new file +56 -0

57 lines not on this page · raw message

arch/arm/boot/dts/synology/hdd-power-30-1.dtsi new file +40 -0
new file mode 100644
index 000000000000..b0998d4e231f
@@ -0,0 +1,40 @@
+/*
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/ {
+	ocp at f1000000 {
+		pinctrl: pinctrl at 10000 {
+
+			pmx_hdd1_pwr_30: pmx-hdd-pwr-30 {
+				marvell,pins = "mpp30";
+				marvell,function = "gpio";
+			};
+		};
+	};
+
+	regulators {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		pinctrl-0 = <&pmx_hdd1_pwr_30>;
+		pinctrl-names = "default";
+
+		hdd1_power: regulator at 1 {
+			compatible = "regulator-fixed";
+			reg = <1>;
+			regulator-name = "hdd1power";
+			regulator-min-microvolt = <5000000>;
+			regulator-max-microvolt = <5000000>;
+			enable-active-high;
+			regulator-always-on;
+			regulator-boot-on;
+			startup-delay-us = <5000000>;
+			gpio = <&gpio0 30 GPIO_ACTIVE_HIGH>;
+		};
+	};
+};
\ No newline at end of file
arch/arm/boot/dts/synology/hdd-power-30-2.dtsi new file +56 -0

57 lines not on this page · raw message

arch/arm/boot/dts/synology/hdd-power-30-4.dtsi new file +89 -0

90 lines not on this page · raw message

arch/arm/boot/dts/synology/hdd-power-31.dtsi new file +40 -0
new file mode 100644
index 000000000000..0774ecdcaf64
@@ -0,0 +1,40 @@
+/*
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/ {
+	ocp at f1000000 {
+		pinctrl: pinctrl at 10000 {
+
+			pmx_hdd2_pwr_31: pmx-hdd2-pwr-31 {
+				marvell,pins = "mpp31";
+				marvell,function = "gpio";
+			};
+		};
+	};
+
+	regulators {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		pinctrl-0 = <&pmx_hdd2_pwr_31>;
+		pinctrl-names = "default";
+
+		hdd2_power: regulator at 1 {
+			compatible = "regulator-fixed";
+			reg = <1>;
+			regulator-name = "hdd2power";
+			regulator-min-microvolt = <5000000>;
+			regulator-max-microvolt = <5000000>;
+			enable-active-high;
+			regulator-always-on;
+			regulator-boot-on;
+			startup-delay-us = <5000000>;
+			gpio = <&gpio0 31 GPIO_ACTIVE_HIGH>;
+		};
+	};
+};
\ No newline at end of file
arch/arm/boot/dts/synology/hdd-power-34.dtsi new file +73 -0

74 lines not on this page · raw message

arch/arm/boot/dts/synology/i2c-rtc-ricoh.dtsi new file +18 -0
new file mode 100644
index 000000000000..98a23588ee62
@@ -0,0 +1,18 @@
+/*
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/ {
+	ocp at f1000000 {
+		i2c at 11000 {
+			rs5c372: rs5c372 at 32 {
+				compatible = "rs5c372";
+				reg = <0x32>;
+			};
+		};
+	};
+};
\ No newline at end of file
arch/arm/boot/dts/synology/i2c-rtc-seiko.dtsi new file +18 -0
new file mode 100644
index 000000000000..3dd0d554ac66
@@ -0,0 +1,18 @@
+/*
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/ {
+	ocp at f1000000 {
+		i2c at 11000 {
+			s35390a: s35390a at 30 {
+				compatible = "s35390a";
+				reg = <0x30>;
+			};
+		};
+	};
+};
\ No newline at end of file
arch/arm/boot/dts/synology/pcie-2.dtsi new file +19 -0
new file mode 100644
index 000000000000..e34ebb5515c2
@@ -0,0 +1,19 @@
+/*
+ * Nodes which are common to all Synology devices
+ *
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/ {
+	mbus {
+		pcie-controller {
+			pcie at 2,0 {
+				status = "okay";
+			};
+		};
+	};
+};
\ No newline at end of file
Signature · 1 line
1.7.10.4
#3 lore raw

RFC PATCH 2/2 ARM: Kirkwood: Add support for many Synology NAS devices

Quoted 3 lines · Andrew Lunn

Add device tree fragments and files to support many of the kirkwood based Synology NAS devices. This is a translation of the board setup file maintained by Ben Peddell <[email protected]>

[snip]

Quoted 15 lines
arch/arm/boot/dts/synology/fan-gpios-32.dtsi new file +9 -0
new file mode 100644
index 000000000000..aea1a0dce906
@@ -0,0 +1,34 @@
+/*
+ * Andrew Lunn <[email protected]>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/ {

arch/arm/boot/dts/synology/fan-gpios-32.dtsi line 19

Quoted 10 lines
arch/arm/boot/dts/synology/fan-gpios-32.dtsi new file +10 -0
+	ocp at f1000000 {
+		pinctrl: pinctrl at 10000 {
+
+			pmx_fan_32: pmx-fan-32 {
+				marvell,pins = "mpp32";
+				marvell,function = "gpio";
+			};
+			pmx_fan_33: pmx-fan-33 {
+				marvell,pins = "mpp33";
+				marvell,function = "gpio";

This should be "gpo"

Quoted 15 lines
arch/arm/boot/dts/synology/fan-gpios-32.dtsi new file +15 -0
+			};
+			pmx_fan_34: pmx-fan-34 {
+				marvell,pins = "mpp34";
+				marvell,function = "gpio";
+			};
+		};
+	};
+	gpio_fan {
+		pinctrl-0 = <&pmx_fan_32 &pmx_fan_33 &pmx_fan_34>;
+		pinctrl-names = "default";
+		gpios = <&gpio1 0 GPIO_ACTIVE_HIGH
+			 &gpio1 1 GPIO_ACTIVE_HIGH
+			 &gpio1 2 GPIO_ACTIVE_HIGH>;
+	};
+};
#4 lore raw

cover ARM: Kirkwood: Synology DT files

In reply to Andrew Lunn
Quoted 5 lines · Andrew Lunn

Request for Testing:

This patch adds support for around 30 different boards. Most .dts files support a couple of different models. I don't have any of this hardware. None of this is tested.

Tested by Ben Peddell <[email protected]> (specifically kirkwood-ds210.dts on DS211j)

To get running on the stock bootloader, I needed to extend the initramfs to fill the entire rd.gz flash partition, configure the kernel to use the dtb appended to it, configure it to ignore the information passed to it by the bootloader, and add the following nodes to the dts:

/chosen {
	linux,initrd-start = <0x800040>;
	linux,initrd-end   = <0x940000>;
};
#5 lore raw

cover ARM: Kirkwood: Synology DT files

Quoted 8 lines · Ben Peddell
Quoted 5 lines · Andrew Lunn

Request for Testing:

This patch adds support for around 30 different boards. Most .dts files support a couple of different models. I don't have any of this hardware. None of this is tested.

Tested by Ben Peddell <[email protected]> (specifically kirkwood-ds210.dts on DS211j)

Hi Ben

Thanks for testing. I will fix the gpo and send a v2 sometime. I should also check if there are any more gpo's i have as gpio's.

Quoted 10 lines

To get running on the stock bootloader, I needed to extend the initramfs to fill the entire rd.gz flash partition, configure the kernel to use the dtb appended to it, configure it to ignore the information passed to it by the bootloader, and add the following nodes to the dts:

/chosen {
	linux,initrd-start = <0x800040>;
	linux,initrd-end   = <0x940000>;
};

Do you know why these initrd properties are needed? There is only one other board in mainline that requires this. I also wonder what implications this has. u-boot has the capability of reading the initrd from disc to RAM and passing its location to the kernel. By hard coding these values, are we blocking that?

Thanks
Andrew

#6 lore raw

cover ARM: Kirkwood: Synology DT files

Quoted 8 lines · Andrew Lunn
Quoted 7 lines · Ben Peddell
Quoted 5 lines · Andrew Lunn

Request for Testing:

This patch adds support for around 30 different boards. Most .dts files support a couple of different models. I don't have any of this hardware. None of this is tested.

Quoted 6 lines
Quoted 1 line

Tested by Ben Peddell <[email protected]> (specifically kirkwood-ds210.dts on DS211j)

Hi Ben

Thanks for testing. I will fix the gpo and send a v2 sometime. I should also check if there are any more gpo's i have as gpio's.

There are only a few pins that are GPOs - from
marvell,kirkwood-pinctrl.txt, they are
1, 2, 3, 5, 7, 10, 18, 19 and 33.

Quoted 12 lines
Quoted 11 lines

To get running on the stock bootloader, I needed to extend the initramfs to fill the entire rd.gz flash partition, configure the kernel to use the dtb appended to it, configure it to ignore the information passed to it by the bootloader, and add the following nodes to the dts:

/chosen {
	linux,initrd-start = <0x800040>;
	linux,initrd-end   = <0x940000>;
};
Quoted 5 lines

Do you know why these initrd properties are needed? There is only one other board in mainline that requires this. I also wonder what implications this has. u-boot has the capability of reading the initrd from disc to RAM and passing its location to the kernel. By hard coding these values, are we blocking that?

The stock Marvell bootloader is a little broken as it passes the kernel the _source_ address of the initrd rather than the _load_ address. Thus the bootloader passes the address 0xf8280040 rather than the address 0x00800040.

It appears the initrd address in the devicetree structure (which is filled in from what is passed by the bootloader when CONFIG_ARM_ATAG_DTB_COMPAT is set) is processed _after_ the address in the initrd= kernel parameter is processed.

Rather than putting the initrd address into the DTS, it would probably be better to have the person compiling the kernel configure it with e.g.:

CONFIG_CMDLINE="initrd=0x00800040,0x0013FFC0 earlyprintk panic=5" CONFIG_CMDLINE_EXTEND=y
CONFIG_ARM_APPENDED_DTB=y
CONFIG_ARM_ATAG_DTB_COMPAT=n

#7 lore raw

cover ARM: Kirkwood: Synology DT files

Quoted 4 lines · Ben Peddell

It appears the initrd address in the devicetree structure (which is filled in from what is passed by the bootloader when CONFIG_ARM_ATAG_DTB_COMPAT is set) is processed _after_ the address in the initrd= kernel parameter is processed.

That's wrong. Kernel parameters should always override what's passed by boot loaders etc.

Signature · 3 lines
FTTC broadband for 0.8mile line: 5.8Mbps down 500kbps up.  Estimation
in database were 13.1 to 19Mbit for a good line, about 7.5+ for a bad.
Estimate before purchase was "up to 13.2Mbit".
#8 lore raw

cover ARM: Kirkwood: Synology DT files

Quoted 8 lines · Russell King - ARM Linux
Quoted 4 lines · Ben Peddell

It appears the initrd address in the devicetree structure (which is filled in from what is passed by the bootloader when CONFIG_ARM_ATAG_DTB_COMPAT is set) is processed _after_ the address in the initrd= kernel parameter is processed.

That's wrong. Kernel parameters should always override what's passed by boot loaders etc.

In that case, what I saw was a bug - note that this only occurs when DeviceTree is enabled:

         __  __                      _ _
        |  \/  | __ _ _ ____   _____| | |
        | |\/| |/ _` | '__\ \ / / _ \ | |
        | |  | | (_| | |   \ V /  __/ | |
        |_|  |_|\__,_|_|    \_/ \___|_|_|
 _   _     ____              _
| | | |   | __ )  ___   ___ | |_
| | | |___|  _ \ / _ \ / _ \| __|
| |_| |___| |_) | (_) | (_) | |_
 \___/    |____/ \___/ \___/ \__|  ** LOADER **

** MARVELL BOARD: Synology Disk Station LE

U-Boot 1.1.4 (Jul 6 2010 - 19:26:08) Marvell version: 3.4.4

U-Boot code: 00600000 -> 0067FFF0 BSS: -> 0068B43C

Soc: 88F6281 A1 (DDR2)
CPU running @ 1200Mhz L2 running @ 480Mhz
SysClock = 400Mhz , TClock = 200Mhz

DRAM CAS Latency = 6 tRP = 6 tRAS = 18 tRCD=6
DRAM CS[0] base 0x00000000 size 128MB
DRAM Total size 128MB 16bit width
[4096kB at f8000000] Flash: 4 MB
Addresses 8M - 0M are saved for the U-Boot usage.
Mem malloc Initialization (8M - 7M): Done
Using default environment

CPU : Marvell Feroceon (Rev 1)

Streaming disabled
Write allocate disabled

Module 1 is AUDIO

USB 0: host mode

Synology Model: DS211j
Fan Status: Good

Net:   egiga0 [PRIME]
Hit any key to stop autoboot:  0

Marvell>> setenv ipaddr 192.168.200.62
Marvell>> setenv serverip 192.168.200.16
Marvell>> tftp 0x01000000 uImage-3.13-rc7-ds211j-git-fdt
Using egiga0 device
TFTP from server 192.168.200.16; our IP address is 192.168.200.62 Filename 'uImage-3.13-rc7-ds211j-git-fdt'.
Load address: 0x1000000
Loading: #################################################################

         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #########################################################

done
Bytes transferred = 1954736 (1dd3b0 hex)
Marvell>> setenv bootargs console=ttyS0,115200 ip=off initrd=0x00800040,0x0013FFC0 root=/dev/md0 rw syno_hw_version=DS211j ihd_num=2 netif_num=1 earlyprintk Marvell>> bootm 0x01000000 0xf8280000
## Booting image at 01000000 ...
Bad Magic Number
Marvell>> tftp 0x01000000 uImage-3.13-rc7-ds211j-git-fdt
Using egiga0 device
TFTP from server 192.168.200.16; our IP address is 192.168.200.62
Filename 'uImage-3.13-rc7-ds211j-git-fdt'.
Load address: 0x1000000
Loading: #################################################################

         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #########################################################

done
Bytes transferred = 1954800 (1dd3f0 hex)
Marvell>> bootm 0x01000000 0xf8280000
## Booting image at 01000000 ...

   Image Name:   linux-3.13-rc7-ds211j+
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1954736 Bytes =  1.9 MB

Load Address: 00008000
Entry Point: 00008000
Verifying Checksum ... OK
OK
## Loading Ramdisk Image at f8280000 ...

   Image Name:   altair-boot
   Image Type:   ARM Linux RAMDisk Image (unknown compression)
   Data Size:    1022268 Bytes = 998.3 kB

Load Address: 00800000
Entry Point: 00800000
Verifying Checksum ... OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.13.0-rc7-ds211j+ (root at lurch) (gcc version 4.8.2 (Gentoo 4.8.2 p1.3, pie-0.5.8) ) #2 Thu Jan 9 08:52:24 EST 2014
[    0.000000] CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=00053977
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] Machine model: Synology DS210 v10, v20, v30, DS211j
[    0.000000] bootconsole [earlycon0] enabled
[    0.000000] INITRD: 0xf8280040+0x000f993c is not a memory region - disabling initrd
[    0.000000] Memory policy: Data cache writeback
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
[    0.000000] Kernel command line: console=ttyS0,115200 ip=off initrd=0x00800040,0x0013FFC0 root=/dev/md0 rw syno_hw_version=DS211j ihd_num=2 netif_num=1 earlyprintk
[    0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Memory: 124716K/131072K available (3466K kernel code, 191K rwdata, 1084K rodata, 166K init, 215K bss, 6356K reserved)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     vmalloc : 0xc8800000 - 0xff000000   ( 872 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xc8000000   ( 128 MB)
[    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
[    0.000000]       .text : 0xc0008000 - 0xc0479d6c   (4552 kB)
[    0.000000]       .init : 0xc047a000 - 0xc04a380c   ( 167 kB)
[    0.000000]       .data : 0xc04a4000 - 0xc04d3e80   ( 192 kB)
[    0.000000]        .bss : 0xc04d3e80 - 0xc0509b30   ( 216 kB)
[    0.000000] NR_IRQS:114
[    0.000000] sched_clock: 32 bits at 200MHz, resolution 5ns, wraps every 21474836475ns
[    0.000000] Console: colour dummy device 80x30
[    0.004804] Calibrating delay loop... 1191.11 BogoMIPS (lpj=5955584)
[    0.092919] pid_max: default: 32768 minimum: 301
[    0.097708] Mount-cache hash table entries: 512
[    0.104591] CPU: Testing write buffer coherency: ok
[    0.109822] Setting up static identity map for 0x348060 - 0x3480b8
[    0.117170] devtmpfs: initialized
[    0.121538] xor: measuring software checksum speed
[    0.220035]    arm4regs  :  1084.400 MB/sec
[    0.320030]    8regs     :   651.200 MB/sec
[    0.420029]    32regs    :   901.200 MB/sec
[    0.424280] xor: using function: arm4regs (1084.400 MB/sec)
[    0.429916] pinctrl core: initialized pinctrl subsystem
[    0.436009] regulator-dummy: no parameters
[    0.440606] NET: Registered protocol family 16
[    0.445560] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.455243] cpuidle: using governor ladder
[    0.459410] cpuidle: using governor menu
[    0.463559] Kirkwood: MV88F6281-A1, TCLK=0.
[    0.467921] Feroceon L2: Enabling L2
[    0.471615] Feroceon L2: Cache support initialised, in WT override mode.
[    0.478793] [Firmware Info]: /ocp at f1000000/ethernet-controller at 72000/ethernet0-port at 0: local-mac-address is not set
[    0.494565] No ATAGs?
[    0.507801] bio: create slab <bio-0> at 0
[    0.680061] raid6: int32x1    100 MB/s
[    0.850266] raid6: int32x2    131 MB/s
[    1.020409] raid6: int32x4    123 MB/s
[    1.190124] raid6: int32x8    130 MB/s
[    1.193936] raid6: using algorithm int32x2 (131 MB/s)
[    1.199042] raid6: using intx1 recovery algorithm
[    1.204120] hdd2power: Failed to request enable GPIO31: -517
[    1.209988] reg-fixed-voltage 1.regulator: Failed to register regulator: -517
[    1.217197] platform 1.regulator: Driver reg-fixed-voltage requests probe deferral
[    1.225708] SCSI subsystem initialized
[    1.231520] Switched to clocksource orion_clocksource
[    1.249315] NET: Registered protocol family 2
[    1.254161] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    1.261187] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    1.267625] TCP: Hash tables configured (established 1024 bind 1024)
[    1.274087] TCP: reno registered
[    1.277385] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    1.283303] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    1.289768] NET: Registered protocol family 1
[    1.294402] RPC: Registered named UNIX socket transport module.
[    1.300373] RPC: Registered udp transport module.
[    1.305150] RPC: Registered tcp transport module.
[    1.309911] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    1.316588] Trying to unpack rootfs image as initramfs...
[    1.322063] Unable to handle kernel paging request at virtual address b8280040
[    1.329334] pgd = c0004000
[    1.332118] [b8280040] *pgd=00000000
[    1.335766] Internal error: Oops: 5 [#1] ARM
[    1.340098] Modules linked in:
[    1.343232] CPU: 0 PID: 1 Comm: swapper Not tainted 3.13.0-rc7-ds211j+ #2
[    1.350072] task: c7839bc0 ti: c783a000 task.ti: c783a000
[    1.355529] PC is at unpack_to_rootfs+0xa8/0x2b0
[    1.360206] LR is at unpack_to_rootfs+0x44/0x2b0
[    1.364883] pc : [<c047c998>]    lr : [<c047c934>]    psr: 20000053
[    1.364883] sp : c783be40  ip : 000008d8  fp : 00000000
[    1.376474] r10: 00000000  r9 : 00000068  r8 : c047d020
[    1.381755] r7 : c049d068  r6 : b8280040  r5 : 000f993c  r4 : c049d068
[    1.388329] r3 : 00000000  r2 : 00000000  r1 : 00000000  r0 : c7924000
[    1.394905] Flags: nzCv  IRQs on  FIQs off  Mode SVC_32  ISA ARM  Segment kernel
[    1.402343] Control: 0005397f  Table: 00004000  DAC: 00000017
[    1.408140] Process swapper (pid: 1, stack limit = 0xc783a1c0)
[    1.414024] Stack: (0xc783be40 to 0xc783c000)
[    1.418446] be40: 00000000 c04a34fc c04d3f00 c047d020 00000000 00000000 c04d3f4c c0343368
[    1.426671] be60: c03f85f6 c04d3f50 00000000 c04a34fc c04d3f00 c047d020 00000068 c04d3f50
[    1.434897] be80: c04d3f4c c047d074 ffffffff 00000000 c04c1b5c c04fffc4 c04c1b5c c049023c
[    1.443121] bea0: 00000068 00000000 c783a038 c0343368 c041909f c783becc 00000020 c783becc
[    1.451346] bec0: 00000000 c049031c c041909f 00000000 00000020 00000005 c049bbc8 c04a34fc
[    1.459572] bee0: c04d3f00 c047d020 00000068 00000000 c783a038 c000869c c782b6a0 c00d89c0
[    1.467797] bf00: c782b700 c782b6a0 00000000 c782b6a0 c034c50c c04f7914 00000000 c00d8c5c
[    1.476023] bf20: 00000068 c060edf7 00000000 c0031dc8 60000053 c0457d84 c0457704 00000068
[    1.484247] bf40: 00000005 00000005 00000001 00000005 c049bbc8 c04a34fc c04d3f00 c04d3f00
[    1.492473] bf60: 00000068 c049bbd8 00000000 c047ab14 00000005 00000005 c047a478 c002f124
[    1.500697] bf80: 00000000 00000000 00000000 c0340fb4 00000000 00000000 00000000 00000000
[    1.508923] bfa0: 00000000 c0340fbc 00000000 c000e050 00000000 00000000 00000000 00000000
[    1.517147] bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    1.525373] bfe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[    1.533606] [<c047c998>] (unpack_to_rootfs+0xa8/0x2b0) from [<c047d074>] (populate_rootfs+0x54/0x224)
[    1.542873] [<c047d074>] (populate_rootfs+0x54/0x224) from [<c000869c>] (do_one_initcall+0x94/0x13c)
[    1.552055] [<c000869c>] (do_one_initcall+0x94/0x13c) from [<c047ab14>] (kernel_init_freeable+0xf8/0x1b8)
[    1.561671] [<c047ab14>] (kernel_init_freeable+0xf8/0x1b8) from [<c0340fbc>] (kernel_init+0x8/0x100)
[    1.570852] [<c0340fbc>] (kernel_init+0x8/0x100) from [<c000e050>] (ret_from_fork+0x14/0x24)
[    1.579339] Code: 1a000056 e3550000 0a000054 e1c7a1d0 (e5d63000)
[    1.585525] ---[ end trace 4e31448959d8cde7 ]---
[    1.590212] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[    1.590212]
#9 lore raw

cover ARM: Kirkwood: Synology DT files

Quoted 65 lines · Ben Peddell
Quoted 8 lines · Russell King - ARM Linux
Quoted 4 lines · Ben Peddell

It appears the initrd address in the devicetree structure (which is filled in from what is passed by the bootloader when CONFIG_ARM_ATAG_DTB_COMPAT is set) is processed _after_ the address in the initrd= kernel parameter is processed.

That's wrong. Kernel parameters should always override what's passed by boot loaders etc.

In that case, what I saw was a bug - note that this only occurs when DeviceTree is enabled:

         __  __                      _ _
        |  \/  | __ _ _ ____   _____| | |
        | |\/| |/ _` | '__\ \ / / _ \ | |
        | |  | | (_| | |   \ V /  __/ | |
        |_|  |_|\__,_|_|    \_/ \___|_|_|
 _   _     ____              _
| | | |   | __ )  ___   ___ | |_
| | | |___|  _ \ / _ \ / _ \| __|
| |_| |___| |_) | (_) | (_) | |_
 \___/    |____/ \___/ \___/ \__|  ** LOADER **

** MARVELL BOARD: Synology Disk Station LE

U-Boot 1.1.4 (Jul 6 2010 - 19:26:08) Marvell version: 3.4.4

U-Boot code: 00600000 -> 0067FFF0 BSS: -> 0068B43C

Soc: 88F6281 A1 (DDR2)
CPU running @ 1200Mhz L2 running @ 480Mhz SysClock = 400Mhz , TClock = 200Mhz

DRAM CAS Latency = 6 tRP = 6 tRAS = 18 tRCD=6
DRAM CS[0] base 0x00000000 size 128MB
DRAM Total size 128MB 16bit width [4096kB at f8000000] Flash: 4 MB Addresses 8M - 0M are saved for the U-Boot usage. Mem malloc Initialization (8M - 7M): Done Using default environment

CPU : Marvell Feroceon (Rev 1)

Streaming disabled
Write allocate disabled

Module 1 is AUDIO

USB 0: host mode

Synology Model: DS211j
Fan Status: Good

Net:   egiga0 [PRIME]
Hit any key to stop autoboot:  0

Marvell>> setenv ipaddr 192.168.200.62
Marvell>> setenv serverip 192.168.200.16
Marvell>> tftp 0x01000000 uImage-3.13-rc7-ds211j-git-fdt
Using egiga0 device
TFTP from server 192.168.200.16; our IP address is 192.168.200.62 Filename 'uImage-3.13-rc7-ds211j-git-fdt'.
Load address: 0x1000000
Loading: #################################################################

Quoted 6 lines
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #########################################################

done

So here you load the kernel into RAM at 0x0100 0000.

Quoted 2 lines

Bytes transferred = 1954736 (1dd3b0 hex)
Marvell>> setenv bootargs console=ttyS0,115200 ip=off initrd=0x00800040,0x0013FFC0 root=/dev/md0 rw syno_hw_version=DS211j ihd_num=2 netif_num=1 earlyprintk

I don't see you loading the initrd into RAM at 0x0080 0000.

Quoted 1 line

Marvell>> bootm 0x01000000 0xf8280000

And here you tell it the initrd is at 0xf8280000.

Quoted 34 lines

## Booting image at 01000000 ...
Bad Magic Number
Marvell>> tftp 0x01000000 uImage-3.13-rc7-ds211j-git-fdt
Using egiga0 device
TFTP from server 192.168.200.16; our IP address is 192.168.200.62 Filename 'uImage-3.13-rc7-ds211j-git-fdt'.
Load address: 0x1000000
Loading: #################################################################

         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #########################################################

done
Bytes transferred = 1954800 (1dd3f0 hex) Marvell>> bootm 0x01000000 0xf8280000 ## Booting image at 01000000 ...

   Image Name:   linux-3.13-rc7-ds211j+
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1954736 Bytes =  1.9 MB

Load Address: 00008000
Entry Point: 00008000
Verifying Checksum ... OK
OK
## Loading Ramdisk Image at f8280000 ...

   Image Name:   altair-boot
   Image Type:   ARM Linux RAMDisk Image (unknown compression)
   Data Size:    1022268 Bytes = 998.3 kB

Load Address: 00800000
Entry Point: 00800000
Verifying Checksum ... OK

Starting kernel ...

Quoted 8 lines

Uncompressing Linux... done, booting the kernel.

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.13.0-rc7-ds211j+ (root at lurch) (gcc version 4.8.2 (Gentoo 4.8.2 p1.3, pie-0.5.8) ) #2 Thu Jan 9 08:52:24 EST 2014
[    0.000000] CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=00053977
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] Machine model: Synology DS210 v10, v20, v30, DS211j
[    0.000000] bootconsole [earlycon0] enabled
[    0.000000] INITRD: 0xf8280040+0x000f993c is not a memory region - disabling initrd

The kernel is correct. There is no RAM here. That is in the IOMEM space.

Andrew

#10 lore raw

cover ARM: Kirkwood: Synology DT files

Quoted 15 lines · Andrew Lunn
Quoted 14 lines · Ben Peddell

** MARVELL BOARD: Synology Disk Station LE

U-Boot 1.1.4 (Jul 6 2010 - 19:26:08) Marvell version: 3.4.4

U-Boot code: 00600000 -> 0067FFF0 BSS: -> 0068B43C

Soc: 88F6281 A1 (DDR2)
CPU running @ 1200Mhz L2 running @ 480Mhz SysClock = 400Mhz , TClock = 200Mhz

DRAM CAS Latency = 6 tRP = 6 tRAS = 18 tRCD=6
DRAM CS[0] base 0x00000000 size 128MB
DRAM Total size 128MB 16bit width [4096kB at f8000000] Flash: 4 MB

...

Quoted 11 lines
Quoted 8 lines

Uncompressing Linux... done, booting the kernel.

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.13.0-rc7-ds211j+ (root at lurch) (gcc version 4.8.2 (Gentoo 4.8.2 p1.3, pie-0.5.8) ) #2 Thu Jan 9 08:52:24 EST 2014
[    0.000000] CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=00053977
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] Machine model: Synology DS210 v10, v20, v30, DS211j
[    0.000000] bootconsole [earlycon0] enabled
[    0.000000] INITRD: 0xf8280040+0x000f993c is not a memory region - disabling initrd

The kernel is correct. There is no RAM here. That is in the IOMEM space.

Looks like a dirty trick to mount the initrd directly from the boot device remap which is at 0xf8000000 by default.

Copying the image from the boot device to ram in u-boot and pass the correct initrd address should help here. Or we need a mbus ranges entry for it, too.

Sebastian

#11 lore raw

cover ARM: Kirkwood: Synology DT files

In reply to Andrew Lunn
Quoted 73 lines · Andrew Lunn
Quoted 65 lines · Ben Peddell
Quoted 8 lines · Russell King - ARM Linux
Quoted 4 lines · Ben Peddell

It appears the initrd address in the devicetree structure (which is filled in from what is passed by the bootloader when CONFIG_ARM_ATAG_DTB_COMPAT is set) is processed _after_ the address in the initrd= kernel parameter is processed.

That's wrong. Kernel parameters should always override what's passed by boot loaders etc.

In that case, what I saw was a bug - note that this only occurs when DeviceTree is enabled:

         __  __                      _ _
        |  \/  | __ _ _ ____   _____| | |
        | |\/| |/ _` | '__\ \ / / _ \ | |
        | |  | | (_| | |   \ V /  __/ | |
        |_|  |_|\__,_|_|    \_/ \___|_|_|
 _   _     ____              _
| | | |   | __ )  ___   ___ | |_
| | | |___|  _ \ / _ \ / _ \| __|
| |_| |___| |_) | (_) | (_) | |_
 \___/    |____/ \___/ \___/ \__|  ** LOADER **

** MARVELL BOARD: Synology Disk Station LE

U-Boot 1.1.4 (Jul 6 2010 - 19:26:08) Marvell version: 3.4.4

U-Boot code: 00600000 -> 0067FFF0 BSS: -> 0068B43C

Soc: 88F6281 A1 (DDR2)
CPU running @ 1200Mhz L2 running @ 480Mhz SysClock = 400Mhz , TClock = 200Mhz

DRAM CAS Latency = 6 tRP = 6 tRAS = 18 tRCD=6
DRAM CS[0] base 0x00000000 size 128MB
DRAM Total size 128MB 16bit width [4096kB at f8000000] Flash: 4 MB Addresses 8M - 0M are saved for the U-Boot usage. Mem malloc Initialization (8M - 7M): Done Using default environment

CPU : Marvell Feroceon (Rev 1)

Streaming disabled
Write allocate disabled

Module 1 is AUDIO

USB 0: host mode

Synology Model: DS211j
Fan Status: Good

Net:   egiga0 [PRIME]
Hit any key to stop autoboot:  0

Marvell>> setenv ipaddr 192.168.200.62
Marvell>> setenv serverip 192.168.200.16
Marvell>> tftp 0x01000000 uImage-3.13-rc7-ds211j-git-fdt
Using egiga0 device
TFTP from server 192.168.200.16; our IP address is 192.168.200.62 Filename 'uImage-3.13-rc7-ds211j-git-fdt'.
Load address: 0x1000000
Loading: #################################################################

Quoted 6 lines
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #########################################################

done

Quoted 7 lines

So here you load the kernel into RAM at 0x0100 0000.

Quoted 2 lines

Bytes transferred = 1954736 (1dd3b0 hex)
Marvell>> setenv bootargs console=ttyS0,115200 ip=off initrd=0x00800040,0x0013FFC0 root=/dev/md0 rw syno_hw_version=DS211j ihd_num=2 netif_num=1 earlyprintk

I don't see you loading the initrd into RAM at 0x0080 0000.

See below

Quoted 4 lines
Quoted 2 lines

Marvell>> bootm 0x01000000 0xf8280000

And here you tell it the initrd is at 0xf8280000.

This is because I am using the initrd in flash.

Quoted 24 lines
Quoted 24 lines

## Booting image at 01000000 ...
Bad Magic Number
Marvell>> tftp 0x01000000 uImage-3.13-rc7-ds211j-git-fdt
Using egiga0 device
TFTP from server 192.168.200.16; our IP address is 192.168.200.62 Filename 'uImage-3.13-rc7-ds211j-git-fdt'.
Load address: 0x1000000
Loading: #################################################################

         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #########################################################

done
Bytes transferred = 1954800 (1dd3f0 hex) Marvell>> bootm 0x01000000 0xf8280000 ## Booting image at 01000000 ...

   Image Name:   linux-3.13-rc7-ds211j+
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1954736 Bytes =  1.9 MB

Load Address: 00008000
Entry Point: 00008000
Verifying Checksum ... OK

Quoted 8 lines
Quoted 8 lines

OK
## Loading Ramdisk Image at f8280000 ...

   Image Name:   altair-boot
   Image Type:   ARM Linux RAMDisk Image (unknown compression)
   Data Size:    1022268 Bytes = 998.3 kB

Load Address: 00800000
Entry Point: 00800000
Verifying Checksum ... OK

Here the bootloader copies the initrd to 0x00800040, yet passes 0xf8280040 to the kernel.

Quoted 14 lines
Quoted 11 lines

Starting kernel ...

Uncompressing Linux... done, booting the kernel.

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.13.0-rc7-ds211j+ (root at lurch) (gcc version 4.8.2 (Gentoo 4.8.2 p1.3, pie-0.5.8) ) #2 Thu Jan 9 08:52:24 EST 2014
[    0.000000] CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=00053977
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] Machine model: Synology DS210 v10, v20, v30, DS211j
[    0.000000] bootconsole [earlycon0] enabled
[    0.000000] INITRD: 0xf8280040+0x000f993c is not a memory region - disabling initrd

The kernel is correct. There is no RAM here. That is in the IOMEM space.

#12 lore raw

cover ARM: Kirkwood: Synology DT files

Quoted 124 lines · Ben Peddell
Quoted 73 lines · Andrew Lunn
Quoted 65 lines · Ben Peddell
Quoted 8 lines · Russell King - ARM Linux
Quoted 4 lines · Ben Peddell

It appears the initrd address in the devicetree structure (which is filled in from what is passed by the bootloader when CONFIG_ARM_ATAG_DTB_COMPAT is set) is processed _after_ the address in the initrd= kernel parameter is processed.

That's wrong. Kernel parameters should always override what's passed by boot loaders etc.

In that case, what I saw was a bug - note that this only occurs when DeviceTree is enabled:

         __  __                      _ _
        |  \/  | __ _ _ ____   _____| | |
        | |\/| |/ _` | '__\ \ / / _ \ | |
        | |  | | (_| | |   \ V /  __/ | |
        |_|  |_|\__,_|_|    \_/ \___|_|_|
 _   _     ____              _
| | | |   | __ )  ___   ___ | |_
| | | |___|  _ \ / _ \ / _ \| __|
| |_| |___| |_) | (_) | (_) | |_
 \___/    |____/ \___/ \___/ \__|  ** LOADER **

** MARVELL BOARD: Synology Disk Station LE

U-Boot 1.1.4 (Jul 6 2010 - 19:26:08) Marvell version: 3.4.4

U-Boot code: 00600000 -> 0067FFF0 BSS: -> 0068B43C

Soc: 88F6281 A1 (DDR2)
CPU running @ 1200Mhz L2 running @ 480Mhz SysClock = 400Mhz , TClock = 200Mhz

DRAM CAS Latency = 6 tRP = 6 tRAS = 18 tRCD=6
DRAM CS[0] base 0x00000000 size 128MB
DRAM Total size 128MB 16bit width [4096kB at f8000000] Flash: 4 MB Addresses 8M - 0M are saved for the U-Boot usage. Mem malloc Initialization (8M - 7M): Done Using default environment

CPU : Marvell Feroceon (Rev 1)

Streaming disabled
Write allocate disabled

Module 1 is AUDIO

USB 0: host mode

Synology Model: DS211j
Fan Status: Good

Net:   egiga0 [PRIME]
Hit any key to stop autoboot:  0

Marvell>> setenv ipaddr 192.168.200.62
Marvell>> setenv serverip 192.168.200.16
Marvell>> tftp 0x01000000 uImage-3.13-rc7-ds211j-git-fdt
Using egiga0 device
TFTP from server 192.168.200.16; our IP address is 192.168.200.62 Filename 'uImage-3.13-rc7-ds211j-git-fdt'.
Load address: 0x1000000
Loading: #################################################################

Quoted 6 lines
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #########################################################

done

Quoted 7 lines

So here you load the kernel into RAM at 0x0100 0000.

Quoted 2 lines

Bytes transferred = 1954736 (1dd3b0 hex)
Marvell>> setenv bootargs console=ttyS0,115200 ip=off initrd=0x00800040,0x0013FFC0 root=/dev/md0 rw syno_hw_version=DS211j ihd_num=2 netif_num=1 earlyprintk

I don't see you loading the initrd into RAM at 0x0080 0000.

See below

Quoted 4 lines
Quoted 2 lines

Marvell>> bootm 0x01000000 0xf8280000

And here you tell it the initrd is at 0xf8280000.

This is because I am using the initrd in flash.

Quoted 24 lines
Quoted 24 lines

## Booting image at 01000000 ...
Bad Magic Number
Marvell>> tftp 0x01000000 uImage-3.13-rc7-ds211j-git-fdt
Using egiga0 device
TFTP from server 192.168.200.16; our IP address is 192.168.200.62 Filename 'uImage-3.13-rc7-ds211j-git-fdt'.
Load address: 0x1000000
Loading: #################################################################

         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #########################################################

done
Bytes transferred = 1954800 (1dd3f0 hex) Marvell>> bootm 0x01000000 0xf8280000 ## Booting image at 01000000 ...

   Image Name:   linux-3.13-rc7-ds211j+
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1954736 Bytes =  1.9 MB

Load Address: 00008000
Entry Point: 00008000
Verifying Checksum ... OK

Quoted 8 lines
Quoted 8 lines

OK
## Loading Ramdisk Image at f8280000 ...

   Image Name:   altair-boot
   Image Type:   ARM Linux RAMDisk Image (unknown compression)
   Data Size:    1022268 Bytes = 998.3 kB

Load Address: 00800000
Entry Point: 00800000
Verifying Checksum ... OK

Quoted 2 lines

Here the bootloader copies the initrd to 0x00800040, yet passes 0xf8280040 to the kernel.

But does it pass 0xf8280040 because you used:

bootm 0x01000000 0xf8280000

What happens if you use

bootm 0x01000000 0x00800000

Andrew

#13 lore raw

cover ARM: Kirkwood: Synology DT files

Quoted 128 lines · Andrew Lunn
Quoted 124 lines · Ben Peddell
Quoted 73 lines · Andrew Lunn
Quoted 65 lines · Ben Peddell
Quoted 8 lines · Russell King - ARM Linux
Quoted 4 lines · Ben Peddell

It appears the initrd address in the devicetree structure (which is filled in from what is passed by the bootloader when CONFIG_ARM_ATAG_DTB_COMPAT is set) is processed _after_ the address in the initrd= kernel parameter is processed.

That's wrong. Kernel parameters should always override what's passed by boot loaders etc.

In that case, what I saw was a bug - note that this only occurs when DeviceTree is enabled:

         __  __                      _ _
        |  \/  | __ _ _ ____   _____| | |
        | |\/| |/ _` | '__\ \ / / _ \ | |
        | |  | | (_| | |   \ V /  __/ | |
        |_|  |_|\__,_|_|    \_/ \___|_|_|
 _   _     ____              _
| | | |   | __ )  ___   ___ | |_
| | | |___|  _ \ / _ \ / _ \| __|
| |_| |___| |_) | (_) | (_) | |_
 \___/    |____/ \___/ \___/ \__|  ** LOADER **

** MARVELL BOARD: Synology Disk Station LE

U-Boot 1.1.4 (Jul 6 2010 - 19:26:08) Marvell version: 3.4.4

U-Boot code: 00600000 -> 0067FFF0 BSS: -> 0068B43C

Soc: 88F6281 A1 (DDR2)
CPU running @ 1200Mhz L2 running @ 480Mhz SysClock = 400Mhz , TClock = 200Mhz

DRAM CAS Latency = 6 tRP = 6 tRAS = 18 tRCD=6
DRAM CS[0] base 0x00000000 size 128MB
DRAM Total size 128MB 16bit width [4096kB at f8000000] Flash: 4 MB Addresses 8M - 0M are saved for the U-Boot usage. Mem malloc Initialization (8M - 7M): Done Using default environment

CPU : Marvell Feroceon (Rev 1)

Streaming disabled
Write allocate disabled

Module 1 is AUDIO

USB 0: host mode

Synology Model: DS211j
Fan Status: Good

Net:   egiga0 [PRIME]
Hit any key to stop autoboot:  0

Marvell>> setenv ipaddr 192.168.200.62
Marvell>> setenv serverip 192.168.200.16
Marvell>> tftp 0x01000000 uImage-3.13-rc7-ds211j-git-fdt
Using egiga0 device
TFTP from server 192.168.200.16; our IP address is 192.168.200.62 Filename 'uImage-3.13-rc7-ds211j-git-fdt'.
Load address: 0x1000000
Loading: #################################################################

Quoted 6 lines
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #########################################################

done

Quoted 7 lines

So here you load the kernel into RAM at 0x0100 0000.

Quoted 2 lines

Bytes transferred = 1954736 (1dd3b0 hex)
Marvell>> setenv bootargs console=ttyS0,115200 ip=off initrd=0x00800040,0x0013FFC0 root=/dev/md0 rw syno_hw_version=DS211j ihd_num=2 netif_num=1 earlyprintk

I don't see you loading the initrd into RAM at 0x0080 0000.

See below

Quoted 4 lines
Quoted 2 lines

Marvell>> bootm 0x01000000 0xf8280000

And here you tell it the initrd is at 0xf8280000.

This is because I am using the initrd in flash.

Quoted 24 lines
Quoted 24 lines

## Booting image at 01000000 ...
Bad Magic Number
Marvell>> tftp 0x01000000 uImage-3.13-rc7-ds211j-git-fdt
Using egiga0 device
TFTP from server 192.168.200.16; our IP address is 192.168.200.62 Filename 'uImage-3.13-rc7-ds211j-git-fdt'.
Load address: 0x1000000
Loading: #################################################################

         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #########################################################

done
Bytes transferred = 1954800 (1dd3f0 hex) Marvell>> bootm 0x01000000 0xf8280000 ## Booting image at 01000000 ...

   Image Name:   linux-3.13-rc7-ds211j+
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1954736 Bytes =  1.9 MB

Load Address: 00008000
Entry Point: 00008000
Verifying Checksum ... OK

Quoted 8 lines
Quoted 8 lines

OK
## Loading Ramdisk Image at f8280000 ...

   Image Name:   altair-boot
   Image Type:   ARM Linux RAMDisk Image (unknown compression)
   Data Size:    1022268 Bytes = 998.3 kB

Load Address: 00800000
Entry Point: 00800000
Verifying Checksum ... OK

Quoted 2 lines

Here the bootloader copies the initrd to 0x00800040, yet passes 0xf8280040 to the kernel.

Quoted 7 lines

But does it pass 0xf8280040 because you used:

bootm 0x01000000 0xf8280000

What happens if you use

bootm 0x01000000 0x00800000

=== Boot without loading ramdisk from TFTP ===

Marvell>> setenv ipaddr 192.168.200.62
Marvell>> setenv serverip 192.168.200.16
Marvell>> tftp 0x01000000 uImage-3.13-rc7-ds211j-git-fdt
Using egiga0 device
TFTP from server 192.168.200.16; our IP address is 192.168.200.62 Filename 'uImage-3.13-rc7-ds211j-git-fdt'.
Load address: 0x1000000
Loading: #################################################################

         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #############################################################

done
Bytes transferred = 1973892 (1e1e84 hex) Marvell>> bootm 0x01000000 0x00800000 ## Booting image at 01000000 ...

   Image Name:   linux-3.13-rc7-ds211j+
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1973828 Bytes =  1.9 MB

Load Address: 00008000
Entry Point: 00008000 Verifying Checksum ... OK
OK
## Loading Ramdisk Image at 00800000 ... Bad Magic Number
Bad Header C??

=== End of boot ===

Note below that I have set the following options:

CONFIG_CMDLINE="initrd=0x00800040,0x0013FFC0 earlyprintk panic=5" CONFIG_CMDLINE_EXTEND=y
CONFIG_ARM_APPENDED_DTB=y
CONFIG_ARM_ATAG_DTB_COMPAT=n

=== Boot with loading ramdisk from TFTP with CONFIG_CMDLINE ===

Marvell>> setenv ipaddr 192.168.200.62
Marvell>> setenv serverip 192.168.200.16
Marvell>> tftp 0x01000000 uImage-3.13-rc7-ds211j-git-fdt
Using egiga0 device
TFTP from server 192.168.200.16; our IP address is 192.168.200.62 Filename 'uImage-3.13-rc7-ds211j-git-fdt'.
Load address: 0x1000000
Loading: #################################################################

         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #############################################################

done
Bytes transferred = 1973892 (1e1e84 hex)
Marvell>> tftp 0x00800000 initramfs-20140109
Using egiga0 device
TFTP from server 192.168.200.16; our IP address is 192.168.200.62 Filename 'initramfs-20140109'.
Load address: 0x800000
Loading: #################################################################

         #################################################################
         #################################################################
         ##############################################################

done
Bytes transferred = 1310720 (140000 hex) Marvell>> bootm 0x01000000 0x00800000 ## Booting image at 01000000 ...

   Image Name:   linux-3.13-rc7-ds211j+
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1973828 Bytes =  1.9 MB

Load Address: 00008000
Entry Point: 00008000 Verifying Checksum ... OK
OK
## Loading Ramdisk Image at 00800000 ...

   Image Name:   altair-boot
   Image Type:   ARM Linux RAMDisk Image (unknown compression)
   Data Size:    1310656 Bytes =  1.2 MB

Load Address: 00800000
Entry Point: 00800000 Verifying Checksum ... OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.13.0-rc7-ds211j+ (klightspeed at lurch) (gcc version 4.8.2 (Gentoo 4.8.2 p1.3, pie-0.5.8) ) #1 Fri Jan 10 14:03:45 EST 2014
[    0.000000] CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=00053977
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] Machine model: Synology DS210 v10, v20, v30, DS211j
[    0.000000] Memory policy: Data cache writeback
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
[    0.000000] Kernel command line: console=ttyS0,115200n8

...

#14 lore raw

cover ARM: Kirkwood: Synology DT files

In reply to Andrew Lunn
Quoted 5 lines · Andrew Lunn
Quoted 2 lines · Ben Peddell

Bytes transferred = 1954736 (1dd3b0 hex)
Marvell>> setenv bootargs console=ttyS0,115200 ip=off initrd=0x00800040,0x0013FFC0 root=/dev/md0 rw syno_hw_version=DS211j ihd_num=2 netif_num=1 earlyprintk

I don't see you loading the initrd into RAM at 0x0080 0000.

However, the kernel _is_ being told that the initrd is at 0x00800040.

Quoted 11 lines
Quoted 8 lines

Uncompressing Linux... done, booting the kernel.

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.13.0-rc7-ds211j+ (root at lurch) (gcc version 4.8.2 (Gentoo 4.8.2 p1.3, pie-0.5.8) ) #2 Thu Jan 9 08:52:24 EST 2014
[    0.000000] CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=00053977
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] Machine model: Synology DS210 v10, v20, v30, DS211j
[    0.000000] bootconsole [earlycon0] enabled
[    0.000000] INITRD: 0xf8280040+0x000f993c is not a memory region - disabling initrd

The kernel is correct. There is no RAM here. That is in the IOMEM space.

But here the kernel has ignored the command line parameter and instead used the one passed via DT. That is not correct - command line parameters must always override ATAGs or DT.

(That's irrespective of whether what's actually being asked of the kernel is correct or not - the principle here applies that command line parameters override, and in this case they aren't.)

Signature · 3 lines
FTTC broadband for 0.8mile line: 5.8Mbps down 500kbps up.  Estimation
in database were 13.1 to 19Mbit for a good line, about 7.5+ for a bad.
Estimate before purchase was "up to 13.2Mbit".
#15 lore raw

cover ARM: Kirkwood: Synology DT files

Quoted 21 lines · Russell King - ARM Linux
Quoted 5 lines · Andrew Lunn
Quoted 2 lines · Ben Peddell

Bytes transferred = 1954736 (1dd3b0 hex)
Marvell>> setenv bootargs console=ttyS0,115200 ip=off initrd=0x00800040,0x0013FFC0 root=/dev/md0 rw syno_hw_version=DS211j ihd_num=2 netif_num=1 earlyprintk

I don't see you loading the initrd into RAM at 0x0080 0000.

However, the kernel _is_ being told that the initrd is at 0x00800040.

Quoted 11 lines
Quoted 8 lines

Uncompressing Linux... done, booting the kernel.

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.13.0-rc7-ds211j+ (root at lurch) (gcc version 4.8.2 (Gentoo 4.8.2 p1.3, pie-0.5.8) ) #2 Thu Jan 9 08:52:24 EST 2014
[    0.000000] CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=00053977
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] Machine model: Synology DS210 v10, v20, v30, DS211j
[    0.000000] bootconsole [earlycon0] enabled
[    0.000000] INITRD: 0xf8280040+0x000f993c is not a memory region - disabling initrd

The kernel is correct. There is no RAM here. That is in the IOMEM space.

Quoted 7 lines

But here the kernel has ignored the command line parameter and instead used the one passed via DT. That is not correct - command line parameters must always override ATAGs or DT.

(That's irrespective of whether what's actually being asked of the kernel is correct or not - the principle here applies that command line parameters override, and in this case they aren't.)

Uncompressing Linux... done, booting the kernel.

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.13.0-rc7-ds211j+ (klightspeed at lurch) (gcc version 4.8.2 (Gentoo 4.8.2 p1.3, pie-0.5.8) ) #4 Sat Jan 11 01:20:05 EST 2014
[    0.000000] CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=00053977
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] FDT initrd_start=0xf8280040  initrd_end=0xf83c0000
[    0.000000] Machine model: Synology DS210 v10, v20, v30, DS211j
[    0.000000] bootconsole [earlycon0] enabled
[    0.000000] Kernel Parameter initrd=0x00800040,0x0013ffc0
[    0.000000] INITRD: 0xf8280040+0x0013ffc0 is not a memory region - disabling initrd
...
[    1.316624] Trying to unpack rootfs image as initramfs...
[    1.322097] Unable to handle kernel paging request at virtual address b8280040

First, FDT fills in initrd_start and initrd_end:

--- start drivers/of/fdt.c line 704 early_init_dt_check_for_initrd() ---

        initrd_start = (unsigned long)__va(start);
        initrd_end = (unsigned long)__va(end);
        initrd_below_start_ok = 1;

--- end ---

Then the initrd parameter is parsed into phys_initrd_start and phys_initrd_size:

--- start arch/arm/mm/init.c line 52 early_initrd() ---

                phys_initrd_start = start;
                phys_initrd_size = size;

--- end ---

phys_initrd_start and phys_initrd_size is then overwritten from initrd_start and initrd_end:

--- start arch/arm/mm/init.c line 351 arm_memblock_init() ---

        /* FDT scan will populate initrd_start */
        if (initrd_start) {
                phys_initrd_start = __virt_to_phys(initrd_start);
                phys_initrd_size = initrd_end - initrd_start;
        }

--- end ---

initrd_start and initrd_end are still set, and so unpack_to_rootfs() tries to access it.