ARM: Kirkwood: Synology DT files
Subsystems (3)
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
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
@@ -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
RFC PATCH 2/2 ARM: Kirkwood: Add support for many Synology NAS devices
In reply to Andrew LunnAdd 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
@@ -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
@@ -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"; + }; +};
arch/arm/boot/dts/kirkwood-ds110jv10.dts new file +33 -0
@@ -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"; + }; +};
arch/arm/boot/dts/kirkwood-ds111.dts new file +33 -0
@@ -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"; + }; +};
arch/arm/boot/dts/kirkwood-ds112.dts new file +34 -0
@@ -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"; + }; +};
arch/arm/boot/dts/kirkwood-ds209.dts new file +33 -0
@@ -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"; + }; +};
arch/arm/boot/dts/kirkwood-ds210.dts new file +35 -0
@@ -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"; + }; +};
arch/arm/boot/dts/kirkwood-ds212.dts new file +37 -0
@@ -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"; + }; +};
arch/arm/boot/dts/kirkwood-ds212j.dts new file +34 -0
@@ -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"; + }; +};
arch/arm/boot/dts/kirkwood-ds409.dts new file +34 -0
@@ -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"; + }; +};
arch/arm/boot/dts/kirkwood-ds409slim.dts new file +32 -0
@@ -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"; + }; +};
arch/arm/boot/dts/kirkwood-ds411.dts new file +35 -0
@@ -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"; + }; +};
arch/arm/boot/dts/kirkwood-ds411j.dts new file +34 -0
@@ -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"; + }; +};
arch/arm/boot/dts/kirkwood-ds411slim.dts new file +34 -0
@@ -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"; + }; +};
arch/arm/boot/dts/kirkwood-rs212.dts new file +34 -0
@@ -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"; + }; +};
arch/arm/boot/dts/kirkwood-rs409.dts new file +33 -0
@@ -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"; + }; +};
arch/arm/boot/dts/kirkwood-rs411.dts new file +34 -0
@@ -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"; + }; +};
arch/arm/boot/dts/synology/alarm-led-12.dtsi new file +28 -0
@@ -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>; + }; + }; +};
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
@@ -0,0 +1,15 @@ +&mdio { + status = "okay"; + + ethphy1: ethernet-phy { + device_type = "ethernet-phy"; + reg = <9>; + }; +}; + +ð0 { + status = "okay"; + ethernet1-port at 0 { + phy-handle = <ðphy1>; + }; +};
arch/arm/boot/dts/synology/fan-alarm-18.dtsi new file +22 -0
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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 >; + }; +};
arch/arm/boot/dts/synology/fan-speed-120.dtsi new file +20 -0
@@ -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 >; + }; +};
arch/arm/boot/dts/synology/fan-speed-150.dtsi new file +20 -0
@@ -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 >; + }; +};
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
@@ -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>; + }; + }; +};
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
@@ -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>; + }; + }; +};
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
@@ -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>; + }; + }; +};
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
@@ -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>; + }; + }; + }; +};
arch/arm/boot/dts/synology/i2c-rtc-seiko.dtsi new file +18 -0
@@ -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>; + }; + }; + }; +};
arch/arm/boot/dts/synology/pcie-2.dtsi new file +19 -0
@@ -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"; + }; + }; + }; +};
Signature · 1 line
1.7.10.4
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@@ -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>; + }; +};
cover ARM: Kirkwood: Synology DT files
In reply to Andrew LunnQuoted 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>;
};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.dtson 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
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.dtson 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=yCONFIG_ARM_APPENDED_DTB=yCONFIG_ARM_ATAG_DTB_COMPAT=n
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_COMPATis 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".
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_COMPATis 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]
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_COMPATis 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 = 200MhzDRAM CAS Latency = 6 tRP = 6 tRAS = 18 tRCD=6
DRAM CS[0] base0x00000000size 128MB
DRAM Total size 128MB 16bit width [4096kB atf8000000] Flash: 4 MB Addresses 8M - 0M are saved for the U-Boot usage. Mem malloc Initialization (8M - 7M): Done Using default environmentCPU : Marvell Feroceon (Rev 1)
Streaming disabled
Write allocate disabledModule 1 is AUDIO
USB 0: host mode
Synology Model: DS211j
Fan Status: GoodNet: egiga0 [PRIME] Hit any key to stop autoboot: 0Marvell>> setenv ipaddr 192.168.200.62
Marvell>> setenv serverip 192.168.200.16
Marvell>> tftp0x01000000uImage-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
0x010000000xf8280000
And here you tell it the initrd is at 0xf8280000.
Quoted 34 lines
## Booting image at 01000000 ...
Bad Magic Number
Marvell>> tftp0x01000000uImage-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>> bootm0x010000000xf8280000## Booting image at 01000000 ...Image Name: linux-3.13-rc7-ds211j+ Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 1954736 Bytes = 1.9 MBLoad Address: 00008000
Entry Point: 00008000
Verifying Checksum ... OK
OK
## Loading Ramdisk Image atf8280000...Image Name: altair-boot Image Type: ARM Linux RAMDisk Image (unknown compression) Data Size: 1022268 Bytes = 998.3 kBLoad Address: 00800000
Entry Point: 00800000
Verifying Checksum ... OKStarting 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
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 = 200MhzDRAM CAS Latency = 6 tRP = 6 tRAS = 18 tRCD=6
DRAM CS[0] base0x00000000size 128MB
DRAM Total size 128MB 16bit width [4096kB atf8000000] 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 initrdThe 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
cover ARM: Kirkwood: Synology DT files
In reply to Andrew LunnQuoted 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_COMPATis 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 = 200MhzDRAM CAS Latency = 6 tRP = 6 tRAS = 18 tRCD=6
DRAM CS[0] base0x00000000size 128MB
DRAM Total size 128MB 16bit width [4096kB atf8000000] Flash: 4 MB Addresses 8M - 0M are saved for the U-Boot usage. Mem malloc Initialization (8M - 7M): Done Using default environmentCPU : Marvell Feroceon (Rev 1)
Streaming disabled
Write allocate disabledModule 1 is AUDIO
USB 0: host mode
Synology Model: DS211j
Fan Status: GoodNet: egiga0 [PRIME] Hit any key to stop autoboot: 0Marvell>> setenv ipaddr 192.168.200.62
Marvell>> setenv serverip 192.168.200.16
Marvell>> tftp0x01000000uImage-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
0x01000000.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 earlyprintkI don't see you loading the initrd into RAM at
0x00800000.
See below
Quoted 4 lines
Quoted 2 lines
Marvell>> bootm
0x010000000xf8280000And 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>> tftp0x01000000uImage-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>> bootm0x010000000xf8280000## Booting image at 01000000 ...Image Name: linux-3.13-rc7-ds211j+ Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 1954736 Bytes = 1.9 MBLoad Address: 00008000
Entry Point: 00008000
Verifying Checksum ... OK
Quoted 8 lines
Quoted 8 lines
OK
## Loading Ramdisk Image atf8280000...Image Name: altair-boot Image Type: ARM Linux RAMDisk Image (unknown compression) Data Size: 1022268 Bytes = 998.3 kBLoad 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 initrdThe kernel is correct. There is no RAM here. That is in the IOMEM space.
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_COMPATis 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 = 200MhzDRAM CAS Latency = 6 tRP = 6 tRAS = 18 tRCD=6
DRAM CS[0] base0x00000000size 128MB
DRAM Total size 128MB 16bit width [4096kB atf8000000] Flash: 4 MB Addresses 8M - 0M are saved for the U-Boot usage. Mem malloc Initialization (8M - 7M): Done Using default environmentCPU : Marvell Feroceon (Rev 1)
Streaming disabled
Write allocate disabledModule 1 is AUDIO
USB 0: host mode
Synology Model: DS211j
Fan Status: GoodNet: egiga0 [PRIME] Hit any key to stop autoboot: 0Marvell>> setenv ipaddr 192.168.200.62
Marvell>> setenv serverip 192.168.200.16
Marvell>> tftp0x01000000uImage-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
0x01000000.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 earlyprintkI don't see you loading the initrd into RAM at
0x00800000.See below
Quoted 4 lines
Quoted 2 lines
Marvell>> bootm
0x010000000xf8280000And 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>> tftp0x01000000uImage-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>> bootm0x010000000xf8280000## Booting image at 01000000 ...Image Name: linux-3.13-rc7-ds211j+ Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 1954736 Bytes = 1.9 MBLoad Address: 00008000
Entry Point: 00008000
Verifying Checksum ... OKQuoted 8 lines
Quoted 8 lines
OK
## Loading Ramdisk Image atf8280000...Image Name: altair-boot Image Type: ARM Linux RAMDisk Image (unknown compression) Data Size: 1022268 Bytes = 998.3 kBLoad Address: 00800000
Entry Point: 00800000
Verifying Checksum ... OK
Quoted 2 lines
Here the bootloader copies the initrd to
0x00800040, yet passes0xf8280040to the kernel.
But does it pass 0xf8280040 because you used:
bootm 0x01000000 0xf8280000
What happens if you use
bootm 0x01000000 0x00800000
Andrew
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_COMPATis 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 = 200MhzDRAM CAS Latency = 6 tRP = 6 tRAS = 18 tRCD=6
DRAM CS[0] base0x00000000size 128MB
DRAM Total size 128MB 16bit width [4096kB atf8000000] Flash: 4 MB Addresses 8M - 0M are saved for the U-Boot usage. Mem malloc Initialization (8M - 7M): Done Using default environmentCPU : Marvell Feroceon (Rev 1)
Streaming disabled
Write allocate disabledModule 1 is AUDIO
USB 0: host mode
Synology Model: DS211j
Fan Status: GoodNet: egiga0 [PRIME] Hit any key to stop autoboot: 0Marvell>> setenv ipaddr 192.168.200.62
Marvell>> setenv serverip 192.168.200.16
Marvell>> tftp0x01000000uImage-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
0x01000000.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 earlyprintkI don't see you loading the initrd into RAM at
0x00800000.See below
Quoted 4 lines
Quoted 2 lines
Marvell>> bootm
0x010000000xf8280000And 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>> tftp0x01000000uImage-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>> bootm0x010000000xf8280000## Booting image at 01000000 ...Image Name: linux-3.13-rc7-ds211j+ Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 1954736 Bytes = 1.9 MBLoad Address: 00008000
Entry Point: 00008000
Verifying Checksum ... OKQuoted 8 lines
Quoted 8 lines
OK
## Loading Ramdisk Image atf8280000...Image Name: altair-boot Image Type: ARM Linux RAMDisk Image (unknown compression) Data Size: 1022268 Bytes = 998.3 kBLoad Address: 00800000
Entry Point: 00800000
Verifying Checksum ... OKQuoted 2 lines
Here the bootloader copies the initrd to
0x00800040, yet passes0xf8280040to the kernel.
Quoted 7 lines
But does it pass
0xf8280040because you used:bootm
0x010000000xf8280000What happens if you use
bootm
0x010000000x00800000
=== 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=yCONFIG_ARM_APPENDED_DTB=yCONFIG_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
...
cover ARM: Kirkwood: Synology DT files
In reply to Andrew LunnQuoted 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 earlyprintkI don't see you loading the initrd into RAM at
0x00800000.
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 initrdThe 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".
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 earlyprintkI don't see you loading the initrd into RAM at
0x00800000.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 initrdThe 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.