mirror of
git://git.openwrt.org/openwrt/openwrt.git
synced 2025-02-09 08:08:27 +00:00
Takimata reported on the OpenWrt forum in thread [0], that his MyBook Live Duo wasn't booting OpenWrt 21.02 after upgrading from the previous OpenWrt 19.07. The last logged entries on his console |[ 0.531599] sata1-regulator GPIO handle specifies active low - ignored |[ 0.538391] sata0-regulator GPIO handle specifies active low - ignored |[ 0.759791] ata2: SATA link down (SStatus 0 SControl 300) |[ 0.765251] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300) |[ 5.909555] ata1.00: qc timeout (cmd 0xec) |[ 5.913656] ata1.00: failed to IDENTIFY (I/O error, err_mask=0x4) |[ 6.231757] ata1: SATA link down (SStatus 0 SControl 300) This extract clearly showed that the HDD on which OpenWrt is installed, simply disappeared after the SATA power regulators had been initialized. The reason why this worked with OpenWrt 19.07 was because the kernel config symbol CONFIG_REGULATOR=y was not set in the target's config-4.14. (This shows that the MBL Single does differ from the DUO in that it does not have programmable power regulators for the HDDs.) [0] <https://forum.openwrt.org/t/21-02-0-and-snapshot-fail-to-boot-on-my-book-live-duo/106585> Reported-by: Takimata (forum) Tested-by: Takimata (forum) Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
209 lines
3.9 KiB
Plaintext
209 lines
3.9 KiB
Plaintext
// SPDX-License-Identifier: GPL-2.0-only
|
|
/*
|
|
* Copyright 2008 DENX Software Engineering, Stefan Roese <sr@denx.de>
|
|
* (c) Copyright 2010 Western Digital Technologies, Inc. All Rights Reserved.
|
|
*/
|
|
|
|
/dts-v1/;
|
|
|
|
#include "apm82181.dtsi"
|
|
|
|
/ {
|
|
compatible = "wd,mybooklive", "amcc,apollo3g";
|
|
model = "MyBook Live";
|
|
|
|
aliases {
|
|
serial0 = &UART0;
|
|
led-boot = &status;
|
|
led-failsafe = &status;
|
|
led-running = &status;
|
|
led-upgrade = &status;
|
|
};
|
|
};
|
|
|
|
&POB0 {
|
|
ebc {
|
|
nor_flash@0,0 {
|
|
status = "okay";
|
|
compatible = "amd,s29gl512n", "jedec-probe", "cfi-flash", "mtd-rom";
|
|
bank-width = <1>;
|
|
reg = <0x00000000 0x00000000 0x00080000>;
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
partition@0 {
|
|
/* Part of bootrom - Don't use it without a jump */
|
|
label = "free";
|
|
reg = <0x00000000 0x0001e000>;
|
|
};
|
|
|
|
partition@1e000 {
|
|
label = "env";
|
|
reg = <0x0001e000 0x00002000>;
|
|
};
|
|
|
|
partition@20000 {
|
|
label = "uboot";
|
|
reg = <0x00020000 0x00050000>;
|
|
};
|
|
};
|
|
};
|
|
|
|
GPIO1: gpio@e0000000 {
|
|
compatible = "wd,mbl-gpio", "ti,74273";
|
|
reg-names = "dat";
|
|
reg = <0xe0000000 0x1>;
|
|
#gpio-cells = <2>;
|
|
gpio-controller;
|
|
|
|
enable-button {
|
|
/* Defined in u-boot as: NOT_NOR
|
|
* "enables features other than NOR
|
|
* specifically, the buffer at CS2"
|
|
* (button).
|
|
*
|
|
* Note: This option is disabled as
|
|
* it prevents the system from being
|
|
* rebooted successfully.
|
|
*/
|
|
|
|
gpio-hog;
|
|
line-name = "Enable Reset Button, disable NOR";
|
|
gpios = <1 GPIO_ACTIVE_HIGH>;
|
|
output-low;
|
|
};
|
|
};
|
|
|
|
GPIO2: gpio@e0100000 {
|
|
compatible = "wd,mbl-gpio", "ti,74244";
|
|
reg-names = "dat";
|
|
reg = <0xe0100000 0x1>;
|
|
#gpio-cells = <2>;
|
|
gpio-controller;
|
|
no-output;
|
|
};
|
|
|
|
leds {
|
|
compatible = "gpio-leds";
|
|
|
|
failsafe: power-red {
|
|
label = "mbl:red:power";
|
|
gpios = <&GPIO1 4 GPIO_ACTIVE_HIGH>;
|
|
linux,default-trigger = "panic";
|
|
};
|
|
|
|
status: power-green {
|
|
label = "mbl:green:power";
|
|
gpios = <&GPIO1 5 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
power-blue {
|
|
label = "mbl:blue:power";
|
|
gpios = <&GPIO1 6 GPIO_ACTIVE_HIGH>;
|
|
linux,default-trigger = "disk-activity";
|
|
};
|
|
};
|
|
|
|
keys {
|
|
compatible = "gpio-keys-polled";
|
|
poll-interval = <60>; /* 3 * 20 = 60ms */
|
|
autorepeat;
|
|
|
|
reset-button {
|
|
label = "Reset button";
|
|
linux,code = <KEY_RESTART>;
|
|
gpios = <&GPIO2 2 GPIO_ACTIVE_LOW>;
|
|
};
|
|
};
|
|
|
|
usbpwr: usb-regulator {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "Power USB Core";
|
|
gpios = <&GPIO1 2 GPIO_ACTIVE_LOW>;
|
|
regulator-min-microvolt = <5000000>;
|
|
regulator-max-microvolt = <5000000>;
|
|
};
|
|
|
|
sata1pwr: sata1-regulator {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "Power Drive Port 1";
|
|
gpios = <&GPIO1 3 GPIO_ACTIVE_HIGH>;
|
|
regulator-min-microvolt = <12000000>;
|
|
regulator-max-microvolt = <12000000>;
|
|
regulator-boot-on; /* uboot sets this */
|
|
regulator-always-on; /* needed to read OS from HDD */
|
|
enable-active-high;
|
|
};
|
|
|
|
sata0pwr: sata0-regulator {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "Power Drive Port 0";
|
|
gpios = <&GPIO1 7 GPIO_ACTIVE_HIGH>;
|
|
regulator-min-microvolt = <12000000>;
|
|
regulator-max-microvolt = <12000000>;
|
|
regulator-boot-on; /* uboot sets this */
|
|
regulator-always-on; /* needed to read OS from HDD */
|
|
enable-active-high;
|
|
};
|
|
};
|
|
|
|
&EMAC0 {
|
|
status = "okay";
|
|
|
|
phy-map = <0x2>;
|
|
phy-address = <0x1>;
|
|
phy-handle = <&phy>;
|
|
phy-mode = "rgmii-id";
|
|
|
|
mdio {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
reset-gpios = <&GPIO1 0 GPIO_ACTIVE_LOW>;
|
|
|
|
phy: phy@1 {
|
|
compatible = "ethernet-phy-ieee802.3-c22";
|
|
reg = <1>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&CRYPTO {
|
|
status = "okay";
|
|
};
|
|
|
|
&PKA {
|
|
status = "okay";
|
|
};
|
|
|
|
&TRNG {
|
|
status = "okay";
|
|
};
|
|
|
|
&SATA0 {
|
|
status = "okay";
|
|
|
|
drive0: sata-port@0 {
|
|
reg = <0>;
|
|
#thermal-sensor-cells = <0>;
|
|
};
|
|
};
|
|
|
|
&SATA1 {
|
|
status = "okay";
|
|
|
|
drive1: sata-port@0 {
|
|
reg = <0>;
|
|
#thermal-sensor-cells = <0>;
|
|
};
|
|
};
|
|
|
|
&UART0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&USBOTG0 {
|
|
status = "okay";
|
|
dr_mode = "host";
|
|
vbus-supply = <&usbpwr>;
|
|
};
|