diff --git a/projects/Allwinner/devices/H6/patches/u-boot/0008-orange-pi-3-ethernet.patch b/projects/Allwinner/devices/H6/patches/u-boot/0008-orange-pi-3-ethernet.patch deleted file mode 100644 index 3dcfa6d6af..0000000000 --- a/projects/Allwinner/devices/H6/patches/u-boot/0008-orange-pi-3-ethernet.patch +++ /dev/null @@ -1,74 +0,0 @@ ---- a/arch/arm/dts/sun50i-h6-orangepi-3.dts 2019-11-26 07:49:45.449465112 +0100 -+++ b/arch/arm/dts/sun50i-h6-orangepi-3.dts 2019-11-26 07:55:56.414722853 +0100 -@@ -15,6 +15,7 @@ - aliases { - serial0 = &uart0; - serial1 = &uart1; -+ ethernet0 = &emac; - }; - - chosen { -@@ -84,6 +85,27 @@ - reset-gpios = <&r_pio 1 3 GPIO_ACTIVE_LOW>; /* PM3 */ - post-power-on-delay-ms = <200>; - }; -+ -+ /* -+ * The board uses 2.5V RGMII signalling. Power sequence to enable -+ * the phy is to enable GMAC-2V5 and GMAC-3V3 (aldo2) power rails -+ * at the same time and to wait 100ms. -+ */ -+ reg_gmac_2v5: gmac-2v5 { -+ compatible = "regulator-fixed"; -+ regulator-name = "gmac-2v5"; -+ regulator-min-microvolt = <2500000>; -+ regulator-max-microvolt = <2500000>; -+ startup-delay-us = <100000>; -+ enable-active-high; -+ gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>; /* PD6 */ -+ -+ /* The real parent of gmac-2v5 is reg_vcc5v, but we need to -+ * enable two regulators to power the phy. This is one way -+ * to achieve that. -+ */ -+ vin-supply = <®_aldo2>; /* GMAC-3V3 */ -+ }; - }; - - &cpu0 { -@@ -102,6 +124,17 @@ - status = "okay"; - }; - -+&emac { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&ext_rgmii_pins>; -+ phy-mode = "rgmii"; -+ phy-handle = <&ext_rgmii_phy>; -+ phy-supply = <®_gmac_2v5>; -+ allwinner,rx-delay-ps = <1500>; -+ allwinner,tx-delay-ps = <700>; -+ status = "okay"; -+}; -+ - &hdmi { - status = "okay"; - }; -@@ -112,6 +145,17 @@ - }; - }; - -+&mdio { -+ ext_rgmii_phy: ethernet-phy@1 { -+ compatible = "ethernet-phy-ieee802.3-c22"; -+ reg = <1>; -+ -+ reset-gpios = <&pio 3 14 GPIO_ACTIVE_LOW>; /* PD14 */ -+ reset-assert-us = <15000>; -+ reset-deassert-us = <40000>; -+ }; -+}; -+ - &mmc0 { - vmmc-supply = <®_cldo1>; - cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ diff --git a/projects/Allwinner/devices/H6/patches/u-boot/0009-tanix-tx6-ethernet-hack.patch b/projects/Allwinner/devices/H6/patches/u-boot/0009-tanix-tx6-ethernet-hack.patch deleted file mode 100644 index 88b5421186..0000000000 --- a/projects/Allwinner/devices/H6/patches/u-boot/0009-tanix-tx6-ethernet-hack.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 9e077d6ebaa5a76b0c91cbe6aabb66106e95caba Mon Sep 17 00:00:00 2001 -From: Jernej Skrabec -Date: Thu, 11 Jul 2019 23:28:58 +0200 -Subject: [PATCH] ethernet hack - ---- - arch/arm/dts/sun50i-h6-tanix-tx6.dts | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - -diff --git a/arch/arm/dts/sun50i-h6-tanix-tx6.dts b/arch/arm/dts/sun50i-h6-tanix-tx6.dts -index c217955a39..5c0099f1a7 100644 ---- a/arch/arm/dts/sun50i-h6-tanix-tx6.dts -+++ b/arch/arm/dts/sun50i-h6-tanix-tx6.dts -@@ -16,6 +16,7 @@ - compatible = "eachlink,h6-mini", "allwinner,sun50i-h6"; - - aliases { -+ ethernet0 = &emac; - serial0 = &uart0; - }; - -@@ -55,6 +56,12 @@ - status = "okay"; - }; - -+&emac { -+ phy-mode = "rmii"; -+ phy-handle = <&ext_rmii_phy>; -+ status = "okay"; -+}; -+ - &hdmi { - status = "okay"; - }; -@@ -74,6 +81,13 @@ - status = "okay"; - }; - -+&mdio { -+ ext_rmii_phy: ethernet-phy@1 { -+ compatible = "ethernet-phy-ieee802.3-c22"; -+ reg = <1>; -+ }; -+}; -+ - &mmc0 { - vmmc-supply = <®_vcc3v3>; - cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; --- -2.22.0 - diff --git a/projects/Allwinner/patches/u-boot/0002-sunxi-Properly-check-for-SATAPWR-and-MACPWR.patch b/projects/Allwinner/patches/u-boot/0002-sunxi-Properly-check-for-SATAPWR-and-MACPWR.patch new file mode 100644 index 0000000000..2db4d2ff7d --- /dev/null +++ b/projects/Allwinner/patches/u-boot/0002-sunxi-Properly-check-for-SATAPWR-and-MACPWR.patch @@ -0,0 +1,65 @@ +From: Andre Przywara +Subject: [PATCH] sunxi: Properly check for SATAPWR and MACPWR +Date: Tue, 19 Jan 2021 01:05:20 +0000 + +The #ifdef CONFIG_xxxPWR conditionals were not working as expected, as +string Kconfig symbols are always "defined" from the preprocessor's +perspective. This lead to unnecessary calls to the GPIO routines, but +also always added a half a second delay to wait for a SATA disk to power +up. Many thanks to Peter for pointing this out! + +Fix this by properly comparing the Kconfig symbols against the empty +string. strcmp() would be nicer for this, but GCC does not optimise this +away, probably due to our standalone compiler switches. + +Reported-by: Peter Robinson +Signed-off-by: Andre Przywara +Tested-by: Samuel Holland # Orange Pi WinPlus +Tested-by: Peter Robinson +--- + board/sunxi/board.c | 34 ++++++++++++++++++++++------------ + 1 file changed, 22 insertions(+), 12 deletions(-) + +--- a/board/sunxi/board.c ++++ b/board/sunxi/board.c +@@ -264,18 +264,28 @@ int board_init(void) + if (ret) + return ret; + +-#ifdef CONFIG_SATAPWR +- satapwr_pin = sunxi_name_to_gpio(CONFIG_SATAPWR); +- gpio_request(satapwr_pin, "satapwr"); +- gpio_direction_output(satapwr_pin, 1); +- /* Give attached sata device time to power-up to avoid link timeouts */ +- mdelay(500); +-#endif +-#ifdef CONFIG_MACPWR +- macpwr_pin = sunxi_name_to_gpio(CONFIG_MACPWR); +- gpio_request(macpwr_pin, "macpwr"); +- gpio_direction_output(macpwr_pin, 1); +-#endif ++ /* strcmp() would look better, but doesn't get optimised away. */ ++ if (CONFIG_SATAPWR[0]) { ++ satapwr_pin = sunxi_name_to_gpio(CONFIG_SATAPWR); ++ if (satapwr_pin >= 0) { ++ gpio_request(satapwr_pin, "satapwr"); ++ gpio_direction_output(satapwr_pin, 1); ++ ++ /* ++ * Give the attached SATA device time to power-up ++ * to avoid link timeouts ++ */ ++ mdelay(500); ++ } ++ } ++ ++ if (CONFIG_MACPWR[0]) { ++ macpwr_pin = sunxi_name_to_gpio(CONFIG_MACPWR); ++ if (macpwr_pin >= 0) { ++ gpio_request(macpwr_pin, "macpwr"); ++ gpio_direction_output(macpwr_pin, 1); ++ } ++ } + + #ifdef CONFIG_DM_I2C + /*