diff --git a/0001-Fix-BeagleAI-detection.patch b/0001-Fix-BeagleAI-detection.patch new file mode 100644 index 0000000..dfd96cc --- /dev/null +++ b/0001-Fix-BeagleAI-detection.patch @@ -0,0 +1,29 @@ +From 1849ef423238aeb1732eb3b8e67eb46bc21401c7 Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Thu, 10 Sep 2020 14:24:12 +0100 +Subject: [PATCH] Fix BeagleAI detection + +Signed-off-by: Peter Robinson +--- + board/ti/am57xx/board.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/board/ti/am57xx/board.c b/board/ti/am57xx/board.c +index 7809875510..3232812a97 100644 +--- a/board/ti/am57xx/board.c ++++ b/board/ti/am57xx/board.c +@@ -527,8 +527,10 @@ void do_board_detect(void) + + rc = ti_i2c_eeprom_am_get(CONFIG_EEPROM_BUS_ADDRESS, + CONFIG_EEPROM_CHIP_ADDRESS); +- if (rc) ++ if (rc) { + printf("ti_i2c_eeprom_init failed %d\n", rc); ++ ti_i2c_eeprom_am_set("BBONE-AI", "A"); ++ } + + #ifdef CONFIG_SUPPORT_EMMC_BOOT + rc = board_bootmode_has_emmc(); +-- +2.26.2 + diff --git a/0001-Fixes-for-AllWinner-ethernet-network-interfaces.patch b/0001-Fixes-for-AllWinner-ethernet-network-interfaces.patch new file mode 100644 index 0000000..68626db --- /dev/null +++ b/0001-Fixes-for-AllWinner-ethernet-network-interfaces.patch @@ -0,0 +1,518 @@ +From 25ce28126444900b7b3efef36c6b9d15a6ab9af1 Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Wed, 28 Oct 2020 10:08:44 +0000 +Subject: [PATCH] Fixes for AllWinner ethernet network interfaces + +The upstream kernel in fixing stuff has broken stuff. + +Signed-off-by: Peter Robinson +--- + arch/arm/dts/sun50i-a64-bananapi-m64.dts | 2 +- + arch/arm/dts/sun50i-a64-nanopi-a64.dts | 2 +- + arch/arm/dts/sun50i-a64-oceanic-5205-5inmfd.dts | 2 +- + arch/arm/dts/sun50i-a64-olinuxino.dts | 2 +- + arch/arm/dts/sun50i-a64-orangepi-win.dts | 2 +- + arch/arm/dts/sun50i-a64-pine64-plus.dts | 2 +- + arch/arm/dts/sun50i-a64-sopine-baseboard.dts | 2 +- + arch/arm/dts/sun50i-h5-libretech-all-h5-cc.dts | 2 +- + arch/arm/dts/sun50i-h5-nanopi-neo-plus2.dts | 2 +- + arch/arm/dts/sun50i-h5-nanopi-neo2.dts | 2 +- + arch/arm/dts/sun50i-h5-orangepi-pc2.dts | 2 +- + arch/arm/dts/sun50i-h5-orangepi-prime.dts | 2 +- + arch/arm/dts/sun50i-h5-orangepi-zero-plus.dts | 2 +- + arch/arm/dts/sun50i-h6-beelink-gs1.dts | 2 +- + arch/arm/dts/sun50i-h6-pine-h64.dts | 2 +- + arch/arm/dts/sun7i-a20-bananapi-m1-plus.dts | 2 +- + arch/arm/dts/sun7i-a20-bananapi.dts | 2 +- + arch/arm/dts/sun7i-a20-bananapro.dts | 2 +- + arch/arm/dts/sun7i-a20-cubietruck.dts | 2 +- + arch/arm/dts/sun7i-a20-hummingbird.dts | 2 +- + arch/arm/dts/sun7i-a20-lamobo-r1.dts | 2 +- + arch/arm/dts/sun7i-a20-olimex-som-evb.dts | 2 +- + arch/arm/dts/sun7i-a20-olimex-som204-evb.dts | 2 +- + arch/arm/dts/sun7i-a20-olinuxino-lime2.dts | 2 +- + arch/arm/dts/sun7i-a20-orangepi-mini.dts | 2 +- + arch/arm/dts/sun7i-a20-orangepi.dts | 2 +- + arch/arm/dts/sun7i-a20-pcduino3-nano.dts | 2 +- + arch/arm/dts/sun7i-a20-wits-pro-a20-dkt.dts | 2 +- + arch/arm/dts/sun8i-a83t-bananapi-m3.dts | 2 +- + arch/arm/dts/sun8i-a83t-cubietruck-plus.dts | 2 +- + arch/arm/dts/sun8i-h3-nanopi-m1-plus.dts | 2 +- + arch/arm/dts/sun8i-h3-orangepi-plus.dts | 2 +- + arch/arm/dts/sun8i-h3-orangepi-plus2e.dts | 2 +- + arch/arm/dts/sun8i-r40-bananapi-m2-ultra.dts | 2 +- + arch/arm/dts/sun8i-v40-bananapi-m2-berry.dts | 2 +- + arch/arm/dts/sunxi-bananapi-m2-plus.dtsi | 2 +- + 36 files changed, 36 insertions(+), 36 deletions(-) + +diff --git a/arch/arm/dts/sun50i-a64-bananapi-m64.dts b/arch/arm/dts/sun50i-a64-bananapi-m64.dts +index ef1c90401b..e1c22aeb29 100644 +--- a/arch/arm/dts/sun50i-a64-bananapi-m64.dts ++++ b/arch/arm/dts/sun50i-a64-bananapi-m64.dts +@@ -112,7 +112,7 @@ + &emac { + pinctrl-names = "default"; + pinctrl-0 = <&rgmii_pins>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + phy-handle = <&ext_rgmii_phy>; + phy-supply = <®_dc1sw>; + status = "okay"; +diff --git a/arch/arm/dts/sun50i-a64-nanopi-a64.dts b/arch/arm/dts/sun50i-a64-nanopi-a64.dts +index 31884dbc88..03ebe3e44b 100644 +--- a/arch/arm/dts/sun50i-a64-nanopi-a64.dts ++++ b/arch/arm/dts/sun50i-a64-nanopi-a64.dts +@@ -102,7 +102,7 @@ + &emac { + pinctrl-names = "default"; + pinctrl-0 = <&rgmii_pins>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + phy-handle = <&ext_rgmii_phy>; + phy-supply = <®_dcdc1>; + status = "okay"; +diff --git a/arch/arm/dts/sun50i-a64-oceanic-5205-5inmfd.dts b/arch/arm/dts/sun50i-a64-oceanic-5205-5inmfd.dts +index 6a2154525d..94caf110ab 100644 +--- a/arch/arm/dts/sun50i-a64-oceanic-5205-5inmfd.dts ++++ b/arch/arm/dts/sun50i-a64-oceanic-5205-5inmfd.dts +@@ -30,7 +30,7 @@ + &emac { + pinctrl-names = "default"; + pinctrl-0 = <&rgmii_pins>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + phy-handle = <&ext_rgmii_phy>; + phy-supply = <®_dc1sw>; + allwinner,tx-delay-ps = <600>; +diff --git a/arch/arm/dts/sun50i-a64-olinuxino.dts b/arch/arm/dts/sun50i-a64-olinuxino.dts +index f7a4bccaa5..2396d9b797 100644 +--- a/arch/arm/dts/sun50i-a64-olinuxino.dts ++++ b/arch/arm/dts/sun50i-a64-olinuxino.dts +@@ -102,7 +102,7 @@ + &emac { + pinctrl-names = "default"; + pinctrl-0 = <&rgmii_pins>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + phy-handle = <&ext_rgmii_phy>; + phy-supply = <®_dcdc1>; + allwinner,tx-delay-ps = <600>; +diff --git a/arch/arm/dts/sun50i-a64-orangepi-win.dts b/arch/arm/dts/sun50i-a64-orangepi-win.dts +index b0c64f7579..5b5d4f31b6 100644 +--- a/arch/arm/dts/sun50i-a64-orangepi-win.dts ++++ b/arch/arm/dts/sun50i-a64-orangepi-win.dts +@@ -127,7 +127,7 @@ + &emac { + pinctrl-names = "default"; + pinctrl-0 = <&rgmii_pins>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + phy-handle = <&ext_rgmii_phy>; + phy-supply = <®_gmac_3v3>; + status = "okay"; +diff --git a/arch/arm/dts/sun50i-a64-pine64-plus.dts b/arch/arm/dts/sun50i-a64-pine64-plus.dts +index 24f1aac366..b09b4276f1 100644 +--- a/arch/arm/dts/sun50i-a64-pine64-plus.dts ++++ b/arch/arm/dts/sun50i-a64-pine64-plus.dts +@@ -52,7 +52,7 @@ + &emac { + pinctrl-names = "default"; + pinctrl-0 = <&rgmii_pins>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + phy-handle = <&ext_rgmii_phy>; + status = "okay"; + }; +diff --git a/arch/arm/dts/sun50i-a64-sopine-baseboard.dts b/arch/arm/dts/sun50i-a64-sopine-baseboard.dts +index 53fcc9098d..4a50a18128 100644 +--- a/arch/arm/dts/sun50i-a64-sopine-baseboard.dts ++++ b/arch/arm/dts/sun50i-a64-sopine-baseboard.dts +@@ -95,7 +95,7 @@ + &emac { + pinctrl-names = "default"; + pinctrl-0 = <&rgmii_pins>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + phy-handle = <&ext_rgmii_phy>; + phy-supply = <®_dc1sw>; + status = "okay"; +diff --git a/arch/arm/dts/sun50i-h5-libretech-all-h5-cc.dts b/arch/arm/dts/sun50i-h5-libretech-all-h5-cc.dts +index df1b9263ad..6e30a564c8 100644 +--- a/arch/arm/dts/sun50i-h5-libretech-all-h5-cc.dts ++++ b/arch/arm/dts/sun50i-h5-libretech-all-h5-cc.dts +@@ -36,7 +36,7 @@ + pinctrl-0 = <&emac_rgmii_pins>; + phy-supply = <®_gmac_3v3>; + phy-handle = <&ext_rgmii_phy>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + /delete-property/ allwinner,leds-active-low; + status = "okay"; + }; +diff --git a/arch/arm/dts/sun50i-h5-nanopi-neo-plus2.dts b/arch/arm/dts/sun50i-h5-nanopi-neo-plus2.dts +index 4f9ba53ffa..9d93fe1536 100644 +--- a/arch/arm/dts/sun50i-h5-nanopi-neo-plus2.dts ++++ b/arch/arm/dts/sun50i-h5-nanopi-neo-plus2.dts +@@ -96,7 +96,7 @@ + pinctrl-0 = <&emac_rgmii_pins>; + phy-supply = <®_gmac_3v3>; + phy-handle = <&ext_rgmii_phy>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + status = "okay"; + }; + +diff --git a/arch/arm/dts/sun50i-h5-nanopi-neo2.dts b/arch/arm/dts/sun50i-h5-nanopi-neo2.dts +index b059e20813..e8ab8c2df5 100644 +--- a/arch/arm/dts/sun50i-h5-nanopi-neo2.dts ++++ b/arch/arm/dts/sun50i-h5-nanopi-neo2.dts +@@ -75,7 +75,7 @@ + pinctrl-0 = <&emac_rgmii_pins>; + phy-supply = <®_gmac_3v3>; + phy-handle = <&ext_rgmii_phy>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + status = "okay"; + }; + +diff --git a/arch/arm/dts/sun50i-h5-orangepi-pc2.dts b/arch/arm/dts/sun50i-h5-orangepi-pc2.dts +index 70b5f09984..6cc567ea99 100644 +--- a/arch/arm/dts/sun50i-h5-orangepi-pc2.dts ++++ b/arch/arm/dts/sun50i-h5-orangepi-pc2.dts +@@ -118,7 +118,7 @@ + pinctrl-0 = <&emac_rgmii_pins>; + phy-supply = <®_gmac_3v3>; + phy-handle = <&ext_rgmii_phy>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + status = "okay"; + }; + +diff --git a/arch/arm/dts/sun50i-h5-orangepi-prime.dts b/arch/arm/dts/sun50i-h5-orangepi-prime.dts +index cb44bfa598..33ab44072e 100644 +--- a/arch/arm/dts/sun50i-h5-orangepi-prime.dts ++++ b/arch/arm/dts/sun50i-h5-orangepi-prime.dts +@@ -124,7 +124,7 @@ + pinctrl-0 = <&emac_rgmii_pins>; + phy-supply = <®_gmac_3v3>; + phy-handle = <&ext_rgmii_phy>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + status = "okay"; + }; + +diff --git a/arch/arm/dts/sun50i-h5-orangepi-zero-plus.dts b/arch/arm/dts/sun50i-h5-orangepi-zero-plus.dts +index ef5ca64442..de448ca51e 100644 +--- a/arch/arm/dts/sun50i-h5-orangepi-zero-plus.dts ++++ b/arch/arm/dts/sun50i-h5-orangepi-zero-plus.dts +@@ -69,7 +69,7 @@ + pinctrl-0 = <&emac_rgmii_pins>; + phy-supply = <®_gmac_3v3>; + phy-handle = <&ext_rgmii_phy>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + status = "okay"; + }; + +diff --git a/arch/arm/dts/sun50i-h6-beelink-gs1.dts b/arch/arm/dts/sun50i-h6-beelink-gs1.dts +index 0dc33c90dd..024035d36e 100644 +--- a/arch/arm/dts/sun50i-h6-beelink-gs1.dts ++++ b/arch/arm/dts/sun50i-h6-beelink-gs1.dts +@@ -64,7 +64,7 @@ + &emac { + pinctrl-names = "default"; + pinctrl-0 = <&ext_rgmii_pins>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + phy-handle = <&ext_rgmii_phy>; + phy-supply = <®_aldo2>; + status = "okay"; +diff --git a/arch/arm/dts/sun50i-h6-pine-h64.dts b/arch/arm/dts/sun50i-h6-pine-h64.dts +index 1898345183..13fbf26817 100644 +--- a/arch/arm/dts/sun50i-h6-pine-h64.dts ++++ b/arch/arm/dts/sun50i-h6-pine-h64.dts +@@ -66,7 +66,7 @@ + &emac { + pinctrl-names = "default"; + pinctrl-0 = <&ext_rgmii_pins>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + phy-handle = <&ext_rgmii_phy>; + phy-supply = <®_aldo2>; + allwinner,rx-delay-ps = <200>; +diff --git a/arch/arm/dts/sun7i-a20-bananapi-m1-plus.dts b/arch/arm/dts/sun7i-a20-bananapi-m1-plus.dts +index e2bfe00588..4dbcad1343 100644 +--- a/arch/arm/dts/sun7i-a20-bananapi-m1-plus.dts ++++ b/arch/arm/dts/sun7i-a20-bananapi-m1-plus.dts +@@ -130,7 +130,7 @@ + pinctrl-names = "default"; + pinctrl-0 = <&gmac_rgmii_pins>; + phy = <&phy1>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + phy-supply = <®_gmac_3v3>; + status = "okay"; + +diff --git a/arch/arm/dts/sun7i-a20-bananapi.dts b/arch/arm/dts/sun7i-a20-bananapi.dts +index 81bc85d398..33040c43bc 100644 +--- a/arch/arm/dts/sun7i-a20-bananapi.dts ++++ b/arch/arm/dts/sun7i-a20-bananapi.dts +@@ -132,7 +132,7 @@ + pinctrl-names = "default"; + pinctrl-0 = <&gmac_rgmii_pins>; + phy = <&phy1>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + phy-supply = <®_gmac_3v3>; + status = "okay"; + +diff --git a/arch/arm/dts/sun7i-a20-bananapro.dts b/arch/arm/dts/sun7i-a20-bananapro.dts +index 0176e9de01..8a75545e22 100644 +--- a/arch/arm/dts/sun7i-a20-bananapro.dts ++++ b/arch/arm/dts/sun7i-a20-bananapro.dts +@@ -110,7 +110,7 @@ + pinctrl-names = "default"; + pinctrl-0 = <&gmac_rgmii_pins>; + phy = <&phy1>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + phy-supply = <®_gmac_3v3>; + status = "okay"; + +diff --git a/arch/arm/dts/sun7i-a20-cubietruck.dts b/arch/arm/dts/sun7i-a20-cubietruck.dts +index 99f531b8d2..46a9f4669e 100644 +--- a/arch/arm/dts/sun7i-a20-cubietruck.dts ++++ b/arch/arm/dts/sun7i-a20-cubietruck.dts +@@ -151,7 +151,7 @@ + pinctrl-names = "default"; + pinctrl-0 = <&gmac_rgmii_pins>; + phy = <&phy1>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + status = "okay"; + + phy1: ethernet-phy@1 { +diff --git a/arch/arm/dts/sun7i-a20-hummingbird.dts b/arch/arm/dts/sun7i-a20-hummingbird.dts +index fd0153f656..5c3d107094 100644 +--- a/arch/arm/dts/sun7i-a20-hummingbird.dts ++++ b/arch/arm/dts/sun7i-a20-hummingbird.dts +@@ -101,7 +101,7 @@ + pinctrl-names = "default"; + pinctrl-0 = <&gmac_rgmii_pins>; + phy = <&phy1>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + phy-supply = <®_gmac_vdd>; + /* phy reset config */ + snps,reset-gpio = <&pio 0 17 GPIO_ACTIVE_HIGH>; /* PA17 */ +diff --git a/arch/arm/dts/sun7i-a20-lamobo-r1.dts b/arch/arm/dts/sun7i-a20-lamobo-r1.dts +index f91e1bee44..8173d77c12 100644 +--- a/arch/arm/dts/sun7i-a20-lamobo-r1.dts ++++ b/arch/arm/dts/sun7i-a20-lamobo-r1.dts +@@ -120,7 +120,7 @@ + &gmac { + pinctrl-names = "default"; + pinctrl-0 = <&gmac_rgmii_pins>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + phy-supply = <®_gmac_3v3>; + status = "okay"; + /delete-property/#address-cells; +diff --git a/arch/arm/dts/sun7i-a20-olimex-som-evb.dts b/arch/arm/dts/sun7i-a20-olimex-som-evb.dts +index f0e6a96e57..f0c5160ff8 100644 +--- a/arch/arm/dts/sun7i-a20-olimex-som-evb.dts ++++ b/arch/arm/dts/sun7i-a20-olimex-som-evb.dts +@@ -112,7 +112,7 @@ + pinctrl-names = "default"; + pinctrl-0 = <&gmac_rgmii_pins>; + phy = <&phy1>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + status = "okay"; + + phy1: ethernet-phy@1 { +diff --git a/arch/arm/dts/sun7i-a20-olimex-som204-evb.dts b/arch/arm/dts/sun7i-a20-olimex-som204-evb.dts +index 823aabce04..ff42708137 100644 +--- a/arch/arm/dts/sun7i-a20-olimex-som204-evb.dts ++++ b/arch/arm/dts/sun7i-a20-olimex-som204-evb.dts +@@ -106,7 +106,7 @@ + pinctrl-names = "default"; + pinctrl-0 = <&gmac_rgmii_pins>; + phy = <&phy3>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + phy-supply = <®_vcc3v3>; + + snps,reset-gpio = <&pio 0 17 GPIO_ACTIVE_HIGH>; +diff --git a/arch/arm/dts/sun7i-a20-olinuxino-lime2.dts b/arch/arm/dts/sun7i-a20-olinuxino-lime2.dts +index 4e1c590eb0..996201665b 100644 +--- a/arch/arm/dts/sun7i-a20-olinuxino-lime2.dts ++++ b/arch/arm/dts/sun7i-a20-olinuxino-lime2.dts +@@ -112,7 +112,7 @@ + pinctrl-names = "default"; + pinctrl-0 = <&gmac_rgmii_pins>; + phy = <&phy1>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + status = "okay"; + + phy1: ethernet-phy@1 { +diff --git a/arch/arm/dts/sun7i-a20-orangepi-mini.dts b/arch/arm/dts/sun7i-a20-orangepi-mini.dts +index 15881081ca..b80215c61c 100644 +--- a/arch/arm/dts/sun7i-a20-orangepi-mini.dts ++++ b/arch/arm/dts/sun7i-a20-orangepi-mini.dts +@@ -121,7 +121,7 @@ + pinctrl-names = "default"; + pinctrl-0 = <&gmac_rgmii_pins>; + phy = <&phy1>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + phy-supply = <®_gmac_3v3>; + status = "okay"; + +diff --git a/arch/arm/dts/sun7i-a20-orangepi.dts b/arch/arm/dts/sun7i-a20-orangepi.dts +index d64de2e73a..66efb7d1ab 100644 +--- a/arch/arm/dts/sun7i-a20-orangepi.dts ++++ b/arch/arm/dts/sun7i-a20-orangepi.dts +@@ -97,7 +97,7 @@ + pinctrl-names = "default"; + pinctrl-0 = <&gmac_rgmii_pins>; + phy = <&phy1>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + phy-supply = <®_gmac_3v3>; + status = "okay"; + +diff --git a/arch/arm/dts/sun7i-a20-pcduino3-nano.dts b/arch/arm/dts/sun7i-a20-pcduino3-nano.dts +index 538ea15fa3..205eaae44a 100644 +--- a/arch/arm/dts/sun7i-a20-pcduino3-nano.dts ++++ b/arch/arm/dts/sun7i-a20-pcduino3-nano.dts +@@ -115,7 +115,7 @@ + pinctrl-names = "default"; + pinctrl-0 = <&gmac_rgmii_pins>; + phy = <&phy1>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + status = "okay"; + + phy1: ethernet-phy@1 { +diff --git a/arch/arm/dts/sun7i-a20-wits-pro-a20-dkt.dts b/arch/arm/dts/sun7i-a20-wits-pro-a20-dkt.dts +index c27e56091f..56cc5791c4 100644 +--- a/arch/arm/dts/sun7i-a20-wits-pro-a20-dkt.dts ++++ b/arch/arm/dts/sun7i-a20-wits-pro-a20-dkt.dts +@@ -82,7 +82,7 @@ + pinctrl-names = "default"; + pinctrl-0 = <&gmac_rgmii_pins>; + phy = <&phy1>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + status = "okay"; + + phy1: ethernet-phy@1 { +diff --git a/arch/arm/dts/sun8i-a83t-bananapi-m3.dts b/arch/arm/dts/sun8i-a83t-bananapi-m3.dts +index eaff6fa401..2beafe3a31 100644 +--- a/arch/arm/dts/sun8i-a83t-bananapi-m3.dts ++++ b/arch/arm/dts/sun8i-a83t-bananapi-m3.dts +@@ -123,7 +123,7 @@ + pinctrl-0 = <&emac_rgmii_pins>; + phy-supply = <®_sw>; + phy-handle = <&rgmii_phy>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + allwinner,rx-delay-ps = <700>; + allwinner,tx-delay-ps = <700>; + status = "okay"; +diff --git a/arch/arm/dts/sun8i-a83t-cubietruck-plus.dts b/arch/arm/dts/sun8i-a83t-cubietruck-plus.dts +index 5dba4fc310..ecd9ff38a8 100644 +--- a/arch/arm/dts/sun8i-a83t-cubietruck-plus.dts ++++ b/arch/arm/dts/sun8i-a83t-cubietruck-plus.dts +@@ -160,7 +160,7 @@ + pinctrl-0 = <&emac_rgmii_pins>; + phy-supply = <®_dldo4>; + phy-handle = <&rgmii_phy>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + status = "okay"; + }; + +diff --git a/arch/arm/dts/sun8i-h3-nanopi-m1-plus.dts b/arch/arm/dts/sun8i-h3-nanopi-m1-plus.dts +index 4ba533b034..bc370d4ea1 100644 +--- a/arch/arm/dts/sun8i-h3-nanopi-m1-plus.dts ++++ b/arch/arm/dts/sun8i-h3-nanopi-m1-plus.dts +@@ -96,7 +96,7 @@ + pinctrl-0 = <&emac_rgmii_pins>; + phy-supply = <®_gmac_3v3>; + phy-handle = <&ext_rgmii_phy>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + + status = "okay"; + }; +diff --git a/arch/arm/dts/sun8i-h3-orangepi-plus.dts b/arch/arm/dts/sun8i-h3-orangepi-plus.dts +index 97f497854e..d05fa679dc 100644 +--- a/arch/arm/dts/sun8i-h3-orangepi-plus.dts ++++ b/arch/arm/dts/sun8i-h3-orangepi-plus.dts +@@ -85,7 +85,7 @@ + pinctrl-0 = <&emac_rgmii_pins>; + phy-supply = <®_gmac_3v3>; + phy-handle = <&ext_rgmii_phy>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + + status = "okay"; + }; +diff --git a/arch/arm/dts/sun8i-h3-orangepi-plus2e.dts b/arch/arm/dts/sun8i-h3-orangepi-plus2e.dts +index 6dbf7b2e0c..b6ca45d18e 100644 +--- a/arch/arm/dts/sun8i-h3-orangepi-plus2e.dts ++++ b/arch/arm/dts/sun8i-h3-orangepi-plus2e.dts +@@ -67,7 +67,7 @@ + pinctrl-0 = <&emac_rgmii_pins>; + phy-supply = <®_gmac_3v3>; + phy-handle = <&ext_rgmii_phy>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + status = "okay"; + }; + +diff --git a/arch/arm/dts/sun8i-r40-bananapi-m2-ultra.dts b/arch/arm/dts/sun8i-r40-bananapi-m2-ultra.dts +index c488aaacbd..9c20245eef 100644 +--- a/arch/arm/dts/sun8i-r40-bananapi-m2-ultra.dts ++++ b/arch/arm/dts/sun8i-r40-bananapi-m2-ultra.dts +@@ -129,7 +129,7 @@ + pinctrl-names = "default"; + pinctrl-0 = <&gmac_rgmii_pins>; + phy-handle = <&phy1>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + phy-supply = <®_dc1sw>; + status = "okay"; + }; +diff --git a/arch/arm/dts/sun8i-v40-bananapi-m2-berry.dts b/arch/arm/dts/sun8i-v40-bananapi-m2-berry.dts +index 15c22b06fc..3ab6f47cea 100644 +--- a/arch/arm/dts/sun8i-v40-bananapi-m2-berry.dts ++++ b/arch/arm/dts/sun8i-v40-bananapi-m2-berry.dts +@@ -120,7 +120,7 @@ + pinctrl-names = "default"; + pinctrl-0 = <&gmac_rgmii_pins>; + phy-handle = <&phy1>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + phy-supply = <®_dc1sw>; + status = "okay"; + }; +diff --git a/arch/arm/dts/sunxi-bananapi-m2-plus.dtsi b/arch/arm/dts/sunxi-bananapi-m2-plus.dtsi +index 39263e74fb..8e5cb3b3fd 100644 +--- a/arch/arm/dts/sunxi-bananapi-m2-plus.dtsi ++++ b/arch/arm/dts/sunxi-bananapi-m2-plus.dtsi +@@ -126,7 +126,7 @@ + pinctrl-0 = <&emac_rgmii_pins>; + phy-supply = <®_gmac_3v3>; + phy-handle = <&ext_rgmii_phy>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + + status = "okay"; + }; +-- +2.28.0 + diff --git a/10-devicetree.install b/10-devicetree.install new file mode 100755 index 0000000..3345391 --- /dev/null +++ b/10-devicetree.install @@ -0,0 +1,73 @@ +#!/bin/bash + +# set -x + +if [[ "$(uname -m)" == arm* || "$(uname -m)" == aarch64 ]] +then +COMMAND="$1" +KERNEL_VERSION="$2" +#BOOT_DIR_ABS="$3" +#KERNEL_IMAGE="$4" + +[ -f /etc/u-boot.conf ] && source /etc/u-boot.conf || true +[ -z "$FIRMWAREDT" ] || FirmwareDT=$FIRMWAREDT + +if [[ $FirmwareDT == "True" ]] +then + # if we want to use firmware DT we remove symlink to current kernel DT + if [ -h /boot/dtb ]; then + rm -f /boot/dtb + fi + exit 0 +fi + +# Setup a /boot/dtb -> /boot/dtb-$newest_kernel_version symlink so that +# u-boot can find the correct dtb to load. +# +# If invoked to 'add' a new kernel, find the newest based on `sort`ing +# the kernel versions dtb. If 'remove', then follow basically the same +# procedure but exclude the version currently being removed. +# +# The theory of operation here is that, while newer kernels may add new +# dtb nodes and fields, as upstreaming hw support for some particular +# device progresses, it should never make backward incompatible changes. +# So it should always be safe to use a newer dtb with an older kernel. + + list_dtb_versions() { + excluded_version="$1" + for dtbdir in /boot/dtb-*; do + dtbver=${dtbdir#*-} + if [ "$dtbver" != "$excluded_version" ]; then + echo $dtbver + fi + done + } + + setup_dtb_link() { + ver=`list_dtb_versions $1 | sort -r --sort=version | head -1` + if [ -h /boot/dtb ]; then + rm -f /boot/dtb + fi + ln -s dtb-$ver /boot/dtb + } + + ret=0 + case "$COMMAND" in + add) + # If we're adding a kernel we want that version + if [ -h /boot/dtb ]; then + rm -f /boot/dtb + fi + ln -s dtb-$KERNEL_VERSION /boot/dtb + ret=$? + ;; + remove) + setup_dtb_link $KERNEL_VERSION + ret=$? + ;; + esac + exit $ret +else + # Just exit on non ARM + exit 0 +fi diff --git a/AllWinner-PinePhone.patch b/AllWinner-PinePhone.patch new file mode 100644 index 0000000..baa7119 --- /dev/null +++ b/AllWinner-PinePhone.patch @@ -0,0 +1,1843 @@ +From patchwork Thu Sep 3 05:07:09 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: Samuel Holland +X-Patchwork-Id: 1356315 +Return-Path: +X-Original-To: incoming@patchwork.ozlabs.org +Delivered-To: patchwork-incoming@bilbo.ozlabs.org +Authentication-Results: ozlabs.org; + spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de + (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; + envelope-from=u-boot-bounces@lists.denx.de; receiver=) +Authentication-Results: ozlabs.org; + dmarc=none (p=none dis=none) header.from=sholland.org +Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; + unprotected) header.d=sholland.org header.i=@sholland.org header.a=rsa-sha256 + header.s=fm3 header.b=buHTSW+5; + dkim=pass (2048-bit key; + unprotected) header.d=messagingengine.com header.i=@messagingengine.com + header.a=rsa-sha256 header.s=fm3 header.b=soUNU+zi; + dkim-atps=neutral +Received: from phobos.denx.de (phobos.denx.de + [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) + (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) + key-exchange X25519 server-signature RSA-PSS (4096 bits)) + (No client certificate requested) + by ozlabs.org (Postfix) with ESMTPS id 4Bhpk04dbHz9sTR + for ; Thu, 3 Sep 2020 15:08:40 +1000 (AEST) +Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) + by phobos.denx.de (Postfix) with ESMTP id B8046822FB; + Thu, 3 Sep 2020 07:07:34 +0200 (CEST) +Authentication-Results: phobos.denx.de; + dmarc=none (p=none dis=none) header.from=sholland.org +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de +Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; + unprotected) header.d=sholland.org header.i=@sholland.org + header.b="buHTSW+5"; dkim=pass (2048-bit key; + unprotected) header.d=messagingengine.com header.i=@messagingengine.com + header.b="soUNU+zi"; dkim-atps=neutral +Received: by phobos.denx.de (Postfix, from userid 109) + id 5B11B822E1; Thu, 3 Sep 2020 07:07:27 +0200 (CEST) +X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de +X-Spam-Level: +X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, + DKIM_VALID,DKIM_VALID_AU,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, + SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no + version=3.4.2 +Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com + [66.111.4.26]) + (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) + (No client certificate requested) + by phobos.denx.de (Postfix) with ESMTPS id AF853822D8 + for ; Thu, 3 Sep 2020 07:07:19 +0200 (CEST) +Authentication-Results: phobos.denx.de; + dmarc=none (p=none dis=none) header.from=sholland.org +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=samuel@sholland.org +Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) + by mailout.nyi.internal (Postfix) with ESMTP id 6D2045C0190; + Thu, 3 Sep 2020 01:07:18 -0400 (EDT) +Received: from mailfrontend2 ([10.202.2.163]) + by compute3.internal (MEProxy); Thu, 03 Sep 2020 01:07:18 -0400 +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sholland.org; h= + from:to:cc:subject:date:message-id:in-reply-to:references + :mime-version:content-transfer-encoding; s=fm3; bh=U4jA0nvRK7Czr + dgeNIS5gDY5tElSJ2feLLbT7NYhO6s=; b=buHTSW+5/tt6GjGA2vOU6Ivto0Cdk + fngE70LZVaDreoNlTLgMANhhiJzWyBYb3mjmMUR2EHBJeYNdzuOYpRL/hBztVsqa + B+hq24fQr6OsXlroOC+9DIkrBtgkfEXrmaHqyO9jP0/BBHQUHBAjJr6RkItNOJqs + tL5255/XbQw05IUwTN+fwQs+x1qtv9dPXiYVdELfBIhuTKSyQJaKqBLEO3mPFxRz + PIISy3OQi1lzdrJdmurLcp6DfbzqB9nJfuD0CtslCI1Bu09KsMgr7sn/mxITx0Vy + qyWz9p5t9Vr2A3xct652aED771i3Ra6UK+UYoSayMMMyCG4g+rb0DzJhQ== +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= + messagingengine.com; h=cc:content-transfer-encoding:date:from + :in-reply-to:message-id:mime-version:references:subject:to + :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= + fm3; bh=U4jA0nvRK7CzrdgeNIS5gDY5tElSJ2feLLbT7NYhO6s=; b=soUNU+zi + uXuVOTwtphqr7B11oSRvrTR5EMY1G0DCfVWT5s+K/e9h3V/TodXW0tbddWCX1Qhf + 2EbJfg61h8/UFqtAFCwuDtcIaxiykHsoFtLgyvzZrBQIoWF9LF/YDvRSmyDr1lyV + hY8s0GIVyKaAXjkwwoUEaknhWhGHrbVOeWZTWUnB9W1++iN+4uXoWlMohB72yOlk + 3TZ7XBSJLe2Nd4NxPuirhOfuGpWFLHiTQ/cSUcvZW+8DPmy+hZL/KNYEgY4NjN0I + uAZwnZNHCO2j+82cPGETrg4u4iziby3clWWhVNK04wJCiBfVWlkQgL5VP4ORJUzp + E1csDeRCXdGAgw== +X-ME-Sender: + +X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduiedrudegtddgleduucetufdoteggodetrfdotf + fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen + uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne + cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefurghmuhgv + lhcujfholhhlrghnugcuoehsrghmuhgvlhesshhhohhllhgrnhgurdhorhhgqeenucggtf + frrghtthgvrhhnpeduhfejfedvhffgfeehtefghfeiiefgfeehgfdvvdevfeegjeehjedv + gfejheeuieenucfkphepjedtrddufeehrddugeekrdduhedunecuvehluhhsthgvrhfuih + iivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepshgrmhhuvghlsehshhholhhlrghn + ugdrohhrgh +X-ME-Proxy: + + + +Received: from titanium.stl.sholland.net + (70-135-148-151.lightspeed.stlsmo.sbcglobal.net [70.135.148.151]) + by mail.messagingengine.com (Postfix) with ESMTPA id B6856306005E; + Thu, 3 Sep 2020 01:07:17 -0400 (EDT) +From: Samuel Holland +To: Jagan Teki , Maxime Ripard +Cc: Andre Przywara , + Peter Robinson , u-boot@lists.denx.de, + Samuel Holland +Subject: [PATCH 1/8] sunxi: board: Use a more descriptive variable name +Date: Thu, 3 Sep 2020 00:07:09 -0500 +Message-Id: <20200903050716.48488-2-samuel@sholland.org> +X-Mailer: git-send-email 2.26.2 +In-Reply-To: <20200903050716.48488-1-samuel@sholland.org> +References: <20200903050716.48488-1-samuel@sholland.org> +MIME-Version: 1.0 +X-BeenThere: u-boot@lists.denx.de +X-Mailman-Version: 2.1.34 +Precedence: list +List-Id: U-Boot discussion +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +Errors-To: u-boot-bounces@lists.denx.de +Sender: "U-Boot" +X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de +X-Virus-Status: Clean + +The variable "cmp_str" always leaves me wondering if it is the DT name +of the current board (yes) or DT name in the FIT config entry (no). + +In preparation for expanding the functionality here, rename it to +something that obviously means "this is the DT name we are looking for". + +Signed-off-by: Samuel Holland +--- + board/sunxi/board.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/board/sunxi/board.c b/board/sunxi/board.c +index 71e2b758a3e..674e6816d2d 100644 +--- a/board/sunxi/board.c ++++ b/board/sunxi/board.c +@@ -892,14 +892,14 @@ int ft_board_setup(void *blob, struct bd_info *bd) + int board_fit_config_name_match(const char *name) + { + struct boot_file_head *spl = get_spl_header(SPL_DT_HEADER_VERSION); +- const char *cmp_str = (const char *)spl; ++ const char *best_dt_name = (const char *)spl; + + /* Check if there is a DT name stored in the SPL header and use that. */ + if (spl != INVALID_SPL_HEADER && spl->dt_name_offset) { +- cmp_str += spl->dt_name_offset; ++ best_dt_name += spl->dt_name_offset; + } else { + #ifdef CONFIG_DEFAULT_DEVICE_TREE +- cmp_str = CONFIG_DEFAULT_DEVICE_TREE; ++ best_dt_name = CONFIG_DEFAULT_DEVICE_TREE; + #else + return 0; + #endif +@@ -907,15 +907,15 @@ int board_fit_config_name_match(const char *name) + + #ifdef CONFIG_PINE64_DT_SELECTION + /* Differentiate the two Pine64 board DTs by their DRAM size. */ +- if (strstr(name, "-pine64") && strstr(cmp_str, "-pine64")) { ++ if (strstr(name, "-pine64") && strstr(best_dt_name, "-pine64")) { + if ((gd->ram_size > 512 * 1024 * 1024)) + return !strstr(name, "plus"); + else + return !!strstr(name, "plus"); + } else { +- return strcmp(name, cmp_str); ++ return strcmp(name, best_dt_name); + } + #endif +- return strcmp(name, cmp_str); ++ return strcmp(name, best_dt_name); + } + #endif + +From patchwork Thu Sep 3 05:07:10 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: Samuel Holland +X-Patchwork-Id: 1356309 +Return-Path: +X-Original-To: incoming@patchwork.ozlabs.org +Delivered-To: patchwork-incoming@bilbo.ozlabs.org +Authentication-Results: ozlabs.org; + spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de + (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; + envelope-from=u-boot-bounces@lists.denx.de; receiver=) +Authentication-Results: ozlabs.org; + dmarc=none (p=none dis=none) header.from=sholland.org +Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; + unprotected) header.d=sholland.org header.i=@sholland.org header.a=rsa-sha256 + header.s=fm3 header.b=Sj8OLfL4; + dkim=pass (2048-bit key; + unprotected) header.d=messagingengine.com header.i=@messagingengine.com + header.a=rsa-sha256 header.s=fm3 header.b=gP0Xb3h8; + dkim-atps=neutral +Received: from phobos.denx.de (phobos.denx.de + [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) + (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) + key-exchange X25519 server-signature RSA-PSS (4096 bits)) + (No client certificate requested) + by ozlabs.org (Postfix) with ESMTPS id 4Bhphf6BH6z9sTR + for ; Thu, 3 Sep 2020 15:07:30 +1000 (AEST) +Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) + by phobos.denx.de (Postfix) with ESMTP id A8413822E3; + Thu, 3 Sep 2020 07:07:25 +0200 (CEST) +Authentication-Results: phobos.denx.de; + dmarc=none (p=none dis=none) header.from=sholland.org +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de +Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; + unprotected) header.d=sholland.org header.i=@sholland.org + header.b="Sj8OLfL4"; dkim=pass (2048-bit key; + unprotected) header.d=messagingengine.com header.i=@messagingengine.com + header.b="gP0Xb3h8"; dkim-atps=neutral +Received: by phobos.denx.de (Postfix, from userid 109) + id 7B2D9822E8; Thu, 3 Sep 2020 07:07:23 +0200 (CEST) +X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de +X-Spam-Level: +X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, + DKIM_VALID,DKIM_VALID_AU,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, + SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no + version=3.4.2 +Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com + [66.111.4.26]) + (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) + (No client certificate requested) + by phobos.denx.de (Postfix) with ESMTPS id 88299822CA + for ; Thu, 3 Sep 2020 07:07:19 +0200 (CEST) +Authentication-Results: phobos.denx.de; + dmarc=none (p=none dis=none) header.from=sholland.org +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=samuel@sholland.org +Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) + by mailout.nyi.internal (Postfix) with ESMTP id 76A985C0185; + Thu, 3 Sep 2020 01:07:18 -0400 (EDT) +Received: from mailfrontend2 ([10.202.2.163]) + by compute3.internal (MEProxy); Thu, 03 Sep 2020 01:07:18 -0400 +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sholland.org; h= + from:to:cc:subject:date:message-id:in-reply-to:references + :mime-version:content-transfer-encoding; s=fm3; bh=PQN64SHY0DFbJ + Xj9YPEcwJKL0bbybvo9/xMWQLiHCkU=; b=Sj8OLfL4WM4t/eW8xPA7XiaXE7bRC + 9oDd5605MwRja78aJ+GwV1TuxapJm7IlVNnlBETATblOjQenK4B7tAuxyPitzu+K + yJP+d0AYfgltsx888/hHtABBhsY20/7onFV1xxF/nB6fWwM6UTYfzsg2QQ2QYHmb + R5QGX38IUdDGZPR/U3bd2roatbUMK+xMqPZku3+3xxbSlLdWpeXp3YBmNCZFrkef + DjNUZE0kZWZIXIEk25bliOi1Yol1RZQZBq4As373rtZSvdXJbPKxU6C5c2TH6OgZ + ZcjNRU6zogMnOHhe/nklaCLzZQPx8Wz5Nse8PYJuRlDGk5tu5tOcONmog== +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= + messagingengine.com; h=cc:content-transfer-encoding:date:from + :in-reply-to:message-id:mime-version:references:subject:to + :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= + fm3; bh=PQN64SHY0DFbJXj9YPEcwJKL0bbybvo9/xMWQLiHCkU=; b=gP0Xb3h8 + lzo0knlriZlcpqJf2dY4yeWblYiYIsakrHO3GUDeZ7G9RYeSSWZ89RjUPZIHn4tw + mTk7vKxHbWz88EaQ+iPXaHsygzVk6RGrnU+7eGtJzZmUmKAm19hTi1uqkP/nXGyY + yyL1IKzw3pieBI1wHq1JPBo+AqTyAsrhrjgdalM+f9/0WwcdAWLTWYUXdR65xW1W + oFUPZ3bjJWrhFb1KFwEiJKdkK9tpivNCGKLe9fvnTLEelYQVoKMAE5G0xVdJhIqY + mQAq41sXJ3LRSeQWUb4Nd00bQsDTsroKLXDYc1P2K57wRGNIalbkkWZmbadPn2VW + 5jUVvdCWPvDEZQ== +X-ME-Sender: + +X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduiedrudegtddgleduucetufdoteggodetrfdotf + fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen + uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne + cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefurghmuhgv + lhcujfholhhlrghnugcuoehsrghmuhgvlhesshhhohhllhgrnhgurdhorhhgqeenucggtf + frrghtthgvrhhnpeduhfejfedvhffgfeehtefghfeiiefgfeehgfdvvdevfeegjeehjedv + gfejheeuieenucfkphepjedtrddufeehrddugeekrdduhedunecuvehluhhsthgvrhfuih + iivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepshgrmhhuvghlsehshhholhhlrghn + ugdrohhrgh +X-ME-Proxy: + + + +Received: from titanium.stl.sholland.net + (70-135-148-151.lightspeed.stlsmo.sbcglobal.net [70.135.148.151]) + by mail.messagingengine.com (Postfix) with ESMTPA id 0C6DA306005B; + Thu, 3 Sep 2020 01:07:18 -0400 (EDT) +From: Samuel Holland +To: Jagan Teki , Maxime Ripard +Cc: Andre Przywara , + Peter Robinson , u-boot@lists.denx.de, + Samuel Holland +Subject: [PATCH 2/8] sunxi: board: Add a helper to get the SPL DT name +Date: Thu, 3 Sep 2020 00:07:10 -0500 +Message-Id: <20200903050716.48488-3-samuel@sholland.org> +X-Mailer: git-send-email 2.26.2 +In-Reply-To: <20200903050716.48488-1-samuel@sholland.org> +References: <20200903050716.48488-1-samuel@sholland.org> +MIME-Version: 1.0 +X-BeenThere: u-boot@lists.denx.de +X-Mailman-Version: 2.1.34 +Precedence: list +List-Id: U-Boot discussion +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +Errors-To: u-boot-bounces@lists.denx.de +Sender: "U-Boot" +X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de +X-Virus-Status: Clean + +This moves the validity checking and typecasts all to one place away +from the string comparison logic, and it detangles the compile-time +and runtime control flow. + +The new helper will also be used by U-Boot proper in a future commit. + +Signed-off-by: Samuel Holland +--- + board/sunxi/board.c | 26 +++++++++++++++++--------- + 1 file changed, 17 insertions(+), 9 deletions(-) + +diff --git a/board/sunxi/board.c b/board/sunxi/board.c +index 674e6816d2d..5c9b811f27a 100644 +--- a/board/sunxi/board.c ++++ b/board/sunxi/board.c +@@ -319,6 +319,17 @@ static struct boot_file_head * get_spl_header(uint8_t req_version) + return spl; + } + ++static const char *get_spl_dt_name(void) ++{ ++ struct boot_file_head *spl = get_spl_header(SPL_DT_HEADER_VERSION); ++ ++ /* Check if there is a DT name stored in the SPL header. */ ++ if (spl != INVALID_SPL_HEADER && spl->dt_name_offset) ++ return (char *)spl + spl->dt_name_offset; ++ ++ return NULL; ++} ++ + int dram_init(void) + { + struct boot_file_head *spl = get_spl_header(SPL_DRAM_HEADER_VERSION); +@@ -891,20 +902,17 @@ int ft_board_setup(void *blob, struct bd_info *bd) + #ifdef CONFIG_SPL_LOAD_FIT + int board_fit_config_name_match(const char *name) + { +- struct boot_file_head *spl = get_spl_header(SPL_DT_HEADER_VERSION); +- const char *best_dt_name = (const char *)spl; ++ const char *best_dt_name = get_spl_dt_name(); + +- /* Check if there is a DT name stored in the SPL header and use that. */ +- if (spl != INVALID_SPL_HEADER && spl->dt_name_offset) { +- best_dt_name += spl->dt_name_offset; +- } else { + #ifdef CONFIG_DEFAULT_DEVICE_TREE ++ if (best_dt_name == NULL) + best_dt_name = CONFIG_DEFAULT_DEVICE_TREE; +-#else +- return 0; + #endif +- }; + ++ if (best_dt_name == NULL) { ++ /* No DT name was provided, so accept the first config. */ ++ return 0; ++ } + #ifdef CONFIG_PINE64_DT_SELECTION + /* Differentiate the two Pine64 board DTs by their DRAM size. */ + if (strstr(name, "-pine64") && strstr(best_dt_name, "-pine64")) { + +From patchwork Thu Sep 3 05:07:11 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: Samuel Holland +X-Patchwork-Id: 1356311 +Return-Path: +X-Original-To: incoming@patchwork.ozlabs.org +Delivered-To: patchwork-incoming@bilbo.ozlabs.org +Authentication-Results: ozlabs.org; + spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de + (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; + envelope-from=u-boot-bounces@lists.denx.de; receiver=) +Authentication-Results: ozlabs.org; + dmarc=none (p=none dis=none) header.from=sholland.org +Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; + unprotected) header.d=sholland.org header.i=@sholland.org header.a=rsa-sha256 + header.s=fm3 header.b=YljKqDaX; + dkim=pass (2048-bit key; + unprotected) header.d=messagingengine.com header.i=@messagingengine.com + header.a=rsa-sha256 header.s=fm3 header.b=KFsvPFSQ; + dkim-atps=neutral +Received: from phobos.denx.de (phobos.denx.de + [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) + (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) + key-exchange X25519 server-signature RSA-PSS (4096 bits)) + (No client certificate requested) + by ozlabs.org (Postfix) with ESMTPS id 4Bhpj50Q5mz9sTR + for ; Thu, 3 Sep 2020 15:07:52 +1000 (AEST) +Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) + by phobos.denx.de (Postfix) with ESMTP id 921A1822EA; + Thu, 3 Sep 2020 07:07:28 +0200 (CEST) +Authentication-Results: phobos.denx.de; + dmarc=none (p=none dis=none) header.from=sholland.org +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de +Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; + unprotected) header.d=sholland.org header.i=@sholland.org + header.b="YljKqDaX"; dkim=pass (2048-bit key; + unprotected) header.d=messagingengine.com header.i=@messagingengine.com + header.b="KFsvPFSQ"; dkim-atps=neutral +Received: by phobos.denx.de (Postfix, from userid 109) + id 29DBC822EA; Thu, 3 Sep 2020 07:07:26 +0200 (CEST) +X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de +X-Spam-Level: +X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, + DKIM_VALID,DKIM_VALID_AU,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, + SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no + version=3.4.2 +Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com + [66.111.4.26]) + (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) + (No client certificate requested) + by phobos.denx.de (Postfix) with ESMTPS id AA176822D5 + for ; Thu, 3 Sep 2020 07:07:19 +0200 (CEST) +Authentication-Results: phobos.denx.de; + dmarc=none (p=none dis=none) header.from=sholland.org +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=samuel@sholland.org +Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) + by mailout.nyi.internal (Postfix) with ESMTP id C1C965C01A4; + Thu, 3 Sep 2020 01:07:18 -0400 (EDT) +Received: from mailfrontend2 ([10.202.2.163]) + by compute3.internal (MEProxy); Thu, 03 Sep 2020 01:07:18 -0400 +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sholland.org; h= + from:to:cc:subject:date:message-id:in-reply-to:references + :mime-version:content-transfer-encoding; s=fm3; bh=Qd9EKlOeDxNxU + GjePDGIEyZE9Rx9hOCoFpYSpjLblzg=; b=YljKqDaXzM+KcF2P5M1Qm4ZqIN47C + vZyob9mNeC9Ih6xzht0zmIiswyR4o06F6F75APKEHOLdF98lM16tFq5lm2c0K2C/ + FLv20iU82lyakGbT5y0fX9BUw2B1l6InAM81fN1aIyj6vKXDINvzr0Njek5zd82e + EBZJnaT7r4LgQ3tDupNPvYm+nq18jIibpUUERREvoNh6ktNeYOJbWPpuyRpW06+o + zKpzwXrrMFjcTuczM3DCSk0LchI0IGfF9STJXcWYrkwILpOIIZIn7Pcxbxg3LuPP + EF8OLTHGhbp2yvtbSVxuSyV5XrLKaiMTJNs8Z8T/AVWTfuAfwA146icVg== +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= + messagingengine.com; h=cc:content-transfer-encoding:date:from + :in-reply-to:message-id:mime-version:references:subject:to + :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= + fm3; bh=Qd9EKlOeDxNxUGjePDGIEyZE9Rx9hOCoFpYSpjLblzg=; b=KFsvPFSQ + oz3tuB0IgFDRGBPs9pm02ZFiQW6XW9io0ha6PFYr7sl2irhSUuA89cAncxDeQ99n + /SKVx+jefi15iu+rEUTEdZwFzb8FbfQ6faNIyvJ1RL4m+eH9ifIF0yuc62Qe9Pt2 + Y0+6e1tDB3SyFRABn0Vib5DrnmbMSYeSJZug7TRAxINnW/qdG6pq1ycNPbhvYy7V + L0yBLcV7gP/gwEF5OtEWV2X22kqKFir6fKCsAVDK2KUTmM3ezGifn8h6u7n8ksWC + +4UbNfjcBKfNLHFEEIb7CdNdtixI4oo/XIsA8eDHULQ0v7cF7bZ1KAR+jBSW4Bf9 + CRQNy2hCu5K+Rg== +X-ME-Sender: + +X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduiedrudegtddgleduucetufdoteggodetrfdotf + fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen + uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne + cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefurghmuhgv + lhcujfholhhlrghnugcuoehsrghmuhgvlhesshhhohhllhgrnhgurdhorhhgqeenucggtf + frrghtthgvrhhnpeduhfejfedvhffgfeehtefghfeiiefgfeehgfdvvdevfeegjeehjedv + gfejheeuieenucfkphepjedtrddufeehrddugeekrdduhedunecuvehluhhsthgvrhfuih + iivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepshgrmhhuvghlsehshhholhhlrghn + ugdrohhrgh +X-ME-Proxy: + + + +Received: from titanium.stl.sholland.net + (70-135-148-151.lightspeed.stlsmo.sbcglobal.net [70.135.148.151]) + by mail.messagingengine.com (Postfix) with ESMTPA id 56CF53060062; + Thu, 3 Sep 2020 01:07:18 -0400 (EDT) +From: Samuel Holland +To: Jagan Teki , Maxime Ripard +Cc: Andre Przywara , + Peter Robinson , u-boot@lists.denx.de, + Samuel Holland +Subject: [PATCH 3/8] sunxi: board: Simplify Pine A64 DT selection logic +Date: Thu, 3 Sep 2020 00:07:11 -0500 +Message-Id: <20200903050716.48488-4-samuel@sholland.org> +X-Mailer: git-send-email 2.26.2 +In-Reply-To: <20200903050716.48488-1-samuel@sholland.org> +References: <20200903050716.48488-1-samuel@sholland.org> +MIME-Version: 1.0 +X-BeenThere: u-boot@lists.denx.de +X-Mailman-Version: 2.1.34 +Precedence: list +List-Id: U-Boot discussion +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +Errors-To: u-boot-bounces@lists.denx.de +Sender: "U-Boot" +X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de +X-Virus-Status: Clean + +Instead of using an entirely separate matching algorithm, simply update +the name of the DT we want to match. Enabling this logic does not depend +on the FIT config name, only on the initial guess of the board name. + +Importantly, the initial guess must be "sun50i-a64-pine64-plus", because +otherwise the logic would trigger when "sun50i-a64-pine64-lts" was +written to the SPL header. + +Signed-off-by: Samuel Holland +--- + board/sunxi/board.c | 12 ++++-------- + 1 file changed, 4 insertions(+), 8 deletions(-) + +diff --git a/board/sunxi/board.c b/board/sunxi/board.c +index 5c9b811f27a..fb0d5bf4743 100644 +--- a/board/sunxi/board.c ++++ b/board/sunxi/board.c +@@ -914,14 +914,10 @@ int board_fit_config_name_match(const char *name) + return 0; + } + #ifdef CONFIG_PINE64_DT_SELECTION +-/* Differentiate the two Pine64 board DTs by their DRAM size. */ +- if (strstr(name, "-pine64") && strstr(best_dt_name, "-pine64")) { +- if ((gd->ram_size > 512 * 1024 * 1024)) +- return !strstr(name, "plus"); +- else +- return !!strstr(name, "plus"); +- } else { +- return strcmp(name, best_dt_name); ++ else if (strstr(best_dt_name, "-pine64-plus")) { ++ /* Differentiate the Pine A64 boards by their DRAM size. */ ++ if ((gd->ram_size == 512 * 1024 * 1024)) ++ best_dt_name = "sun50i-a64-pine64"; + } + #endif + return strcmp(name, best_dt_name); + +From patchwork Thu Sep 3 05:07:12 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: Samuel Holland +X-Patchwork-Id: 1356310 +Return-Path: +X-Original-To: incoming@patchwork.ozlabs.org +Delivered-To: patchwork-incoming@bilbo.ozlabs.org +Authentication-Results: ozlabs.org; + spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de + (client-ip=85.214.62.61; helo=phobos.denx.de; + envelope-from=u-boot-bounces@lists.denx.de; receiver=) +Authentication-Results: ozlabs.org; + dmarc=none (p=none dis=none) header.from=sholland.org +Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; + unprotected) header.d=sholland.org header.i=@sholland.org header.a=rsa-sha256 + header.s=fm3 header.b=WQvh0tb6; + dkim=pass (2048-bit key; + unprotected) header.d=messagingengine.com header.i=@messagingengine.com + header.a=rsa-sha256 header.s=fm3 header.b=Va8mMuMz; + dkim-atps=neutral +Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) + (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) + key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest + SHA256) (No client certificate requested) + by ozlabs.org (Postfix) with ESMTPS id 4Bhphw0Nkzz9sTR + for ; Thu, 3 Sep 2020 15:07:43 +1000 (AEST) +Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) + by phobos.denx.de (Postfix) with ESMTP id 19AFA822DF; + Thu, 3 Sep 2020 07:07:27 +0200 (CEST) +Authentication-Results: phobos.denx.de; + dmarc=none (p=none dis=none) header.from=sholland.org +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de +Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; + unprotected) header.d=sholland.org header.i=@sholland.org + header.b="WQvh0tb6"; dkim=pass (2048-bit key; + unprotected) header.d=messagingengine.com header.i=@messagingengine.com + header.b="Va8mMuMz"; dkim-atps=neutral +Received: by phobos.denx.de (Postfix, from userid 109) + id 3129B822E3; Thu, 3 Sep 2020 07:07:24 +0200 (CEST) +X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de +X-Spam-Level: +X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, + DKIM_VALID,DKIM_VALID_AU,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, + SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no + version=3.4.2 +Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com + [66.111.4.26]) + (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) + (No client certificate requested) + by phobos.denx.de (Postfix) with ESMTPS id D694E822E1 + for ; Thu, 3 Sep 2020 07:07:19 +0200 (CEST) +Authentication-Results: phobos.denx.de; + dmarc=none (p=none dis=none) header.from=sholland.org +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=samuel@sholland.org +Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) + by mailout.nyi.internal (Postfix) with ESMTP id 1C9B95C0116; + Thu, 3 Sep 2020 01:07:19 -0400 (EDT) +Received: from mailfrontend2 ([10.202.2.163]) + by compute3.internal (MEProxy); Thu, 03 Sep 2020 01:07:19 -0400 +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sholland.org; h= + from:to:cc:subject:date:message-id:in-reply-to:references + :mime-version:content-transfer-encoding; s=fm3; bh=CNkIsGtVD92kV + ynV0NXjTV4vykOq+sdspxFol5f0iNM=; b=WQvh0tb6tyqtZYusFC0NyOcSeWaQm + ikcA+euqToY6scf0d256r+20fb4HnTosS+vXbhpF5vlo1hBhc2RW2/e+dR3a3AKH + qb8j3UwBWhpnwwZMS8HqUob5Cfq1BxHU1+/2tjRXvlMxDxNd/HvUoRlLBhfK57OA + Ln6MfWcRmxHlq5Js5MGAD9hRdzkPrnDX4x/NdRttkUaH/WMSGNEO0TnKW88PYXsE + 8u0eiuJQWWLED8nBAxf89vvVUf7o+It6gx5i+r5Bjl/BE5Ykj4O4kpMX2MeiB+Zh + KjYjivDQw8wmG4CrFKPCq4Bd/RoSQd9zHYBp6QuYpvY80vw+jLX7oVwMw== +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= + messagingengine.com; h=cc:content-transfer-encoding:date:from + :in-reply-to:message-id:mime-version:references:subject:to + :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= + fm3; bh=CNkIsGtVD92kVynV0NXjTV4vykOq+sdspxFol5f0iNM=; b=Va8mMuMz + othxHX11xn91XUTb1pYRnk4BO4zhPNKy7f+RU+S4/3DaYnmV9zl4x03LblsUWZRs + bnICHr20DS5YKUcqT9ag5zm1ocAxwJQGTc/SnTpWkZsJXR8unpsmm89jDyV+w5dM + p3YUeZ3AhxjEFHJXhqUnnOIXSLXGzYsnWA+szWf0dHI7tpZJqaV5O4X8xTk2X5cp + 2siDwjLGLi7PUtB/vcNZmOOZQbROGonW6mu2iNurHnrBUk4gOOmQhmeiEkjJb9lk + +MfMZsLXllNr8/o7323d6iP90v1scxaBASDC+q2zzEmUVAmU/Y/fyH0B6frHJy3O + QTcFTnYy45X3Zw== +X-ME-Sender: + +X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduiedrudegtddgleduucetufdoteggodetrfdotf + fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen + uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne + cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefurghmuhgv + lhcujfholhhlrghnugcuoehsrghmuhgvlhesshhhohhllhgrnhgurdhorhhgqeenucggtf + frrghtthgvrhhnpeduhfejfedvhffgfeehtefghfeiiefgfeehgfdvvdevfeegjeehjedv + gfejheeuieenucfkphepjedtrddufeehrddugeekrdduhedunecuvehluhhsthgvrhfuih + iivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepshgrmhhuvghlsehshhholhhlrghn + ugdrohhrgh +X-ME-Proxy: + + + +Received: from titanium.stl.sholland.net + (70-135-148-151.lightspeed.stlsmo.sbcglobal.net [70.135.148.151]) + by mail.messagingengine.com (Postfix) with ESMTPA id A21AB306005B; + Thu, 3 Sep 2020 01:07:18 -0400 (EDT) +From: Samuel Holland +To: Jagan Teki , Maxime Ripard +Cc: Andre Przywara , + Peter Robinson , u-boot@lists.denx.de, + Samuel Holland +Subject: [PATCH 4/8] sunxi: board: Add PinePhone DT selection logic +Date: Thu, 3 Sep 2020 00:07:12 -0500 +Message-Id: <20200903050716.48488-5-samuel@sholland.org> +X-Mailer: git-send-email 2.26.2 +In-Reply-To: <20200903050716.48488-1-samuel@sholland.org> +References: <20200903050716.48488-1-samuel@sholland.org> +MIME-Version: 1.0 +X-BeenThere: u-boot@lists.denx.de +X-Mailman-Version: 2.1.34 +Precedence: list +List-Id: U-Boot discussion +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +Errors-To: u-boot-bounces@lists.denx.de +Sender: "U-Boot" +X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de +X-Virus-Status: Clean + +There are two different publicly-released revisions of the PinePhone +hardware, versions 1.1 and 1.2; and they need different device trees. +Since some GPIO pins were rerouted, we can use that to distinguish +between them. + +Signed-off-by: Samuel Holland +--- + arch/arm/mach-sunxi/Kconfig | 7 +++++++ + board/sunxi/board.c | 21 +++++++++++++++++++++ + 2 files changed, 28 insertions(+) + +diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig +index be0822bfb7d..8421f3b6854 100644 +--- a/arch/arm/mach-sunxi/Kconfig ++++ b/arch/arm/mach-sunxi/Kconfig +@@ -1010,4 +1010,11 @@ config PINE64_DT_SELECTION + option, the device tree selection code specific to Pine64 which + utilizes the DRAM size will be enabled. + ++config PINEPHONE_DT_SELECTION ++ bool "Enable PinePhone device tree selection code" ++ depends on MACH_SUN50I ++ help ++ Enable this option to automatically select the device tree for the ++ correct PinePhone hardware revision during boot. ++ + endif +diff --git a/board/sunxi/board.c b/board/sunxi/board.c +index fb0d5bf4743..3d64ed18664 100644 +--- a/board/sunxi/board.c ++++ b/board/sunxi/board.c +@@ -27,6 +27,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -920,6 +921,26 @@ int board_fit_config_name_match(const char *name) + best_dt_name = "sun50i-a64-pine64"; + } + #endif ++#ifdef CONFIG_PINEPHONE_DT_SELECTION ++ else if (strstr(best_dt_name, "-pinephone")) { ++ /* Differentiate the PinePhone revisions by GPIO inputs. */ ++ prcm_apb0_enable(PRCM_APB0_GATE_PIO); ++ sunxi_gpio_set_pull(SUNXI_GPL(6), SUNXI_GPIO_PULL_UP); ++ sunxi_gpio_set_cfgpin(SUNXI_GPL(6), SUNXI_GPIO_INPUT); ++ udelay(100); ++ ++ /* PL6 is pulled low by the modem on v1.2. */ ++ if (gpio_get_value(SUNXI_GPL(6)) == 0) ++ best_dt_name = "sun50i-a64-pinephone-1.2"; ++ else ++ best_dt_name = "sun50i-a64-pinephone-1.1"; ++ ++ sunxi_gpio_set_cfgpin(SUNXI_GPL(6), SUNXI_GPIO_DISABLE); ++ sunxi_gpio_set_pull(SUNXI_GPL(6), SUNXI_GPIO_PULL_DISABLE); ++ prcm_apb0_disable(PRCM_APB0_GATE_PIO); ++ } ++#endif ++ + return strcmp(name, best_dt_name); + } + #endif + +From patchwork Thu Sep 3 05:07:13 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: Samuel Holland +X-Patchwork-Id: 1356314 +Return-Path: +X-Original-To: incoming@patchwork.ozlabs.org +Delivered-To: patchwork-incoming@bilbo.ozlabs.org +Authentication-Results: ozlabs.org; + spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de + (client-ip=85.214.62.61; helo=phobos.denx.de; + envelope-from=u-boot-bounces@lists.denx.de; receiver=) +Authentication-Results: ozlabs.org; + dmarc=none (p=none dis=none) header.from=sholland.org +Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; + unprotected) header.d=sholland.org header.i=@sholland.org header.a=rsa-sha256 + header.s=fm3 header.b=fyCJtExp; + dkim=pass (2048-bit key; + unprotected) header.d=messagingengine.com header.i=@messagingengine.com + header.a=rsa-sha256 header.s=fm3 header.b=B5Js1Nb8; + dkim-atps=neutral +Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) + (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) + key-exchange X25519 server-signature RSA-PSS (4096 bits)) + (No client certificate requested) + by ozlabs.org (Postfix) with ESMTPS id 4Bhpjn2MLBz9sTR + for ; Thu, 3 Sep 2020 15:08:29 +1000 (AEST) +Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) + by phobos.denx.de (Postfix) with ESMTP id 774738230A; + Thu, 3 Sep 2020 07:07:33 +0200 (CEST) +Authentication-Results: phobos.denx.de; + dmarc=none (p=none dis=none) header.from=sholland.org +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de +Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; + unprotected) header.d=sholland.org header.i=@sholland.org + header.b="fyCJtExp"; dkim=pass (2048-bit key; + unprotected) header.d=messagingengine.com header.i=@messagingengine.com + header.b="B5Js1Nb8"; dkim-atps=neutral +Received: by phobos.denx.de (Postfix, from userid 109) + id 43189822ED; Thu, 3 Sep 2020 07:07:27 +0200 (CEST) +X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de +X-Spam-Level: +X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, + DKIM_VALID,DKIM_VALID_AU,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, + SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no + version=3.4.2 +Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com + [66.111.4.26]) + (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) + (No client certificate requested) + by phobos.denx.de (Postfix) with ESMTPS id 2BF26822D9 + for ; Thu, 3 Sep 2020 07:07:21 +0200 (CEST) +Authentication-Results: phobos.denx.de; + dmarc=none (p=none dis=none) header.from=sholland.org +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=samuel@sholland.org +Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) + by mailout.nyi.internal (Postfix) with ESMTP id 672025C018A; + Thu, 3 Sep 2020 01:07:19 -0400 (EDT) +Received: from mailfrontend2 ([10.202.2.163]) + by compute3.internal (MEProxy); Thu, 03 Sep 2020 01:07:19 -0400 +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sholland.org; h= + from:to:cc:subject:date:message-id:in-reply-to:references + :mime-version:content-transfer-encoding; s=fm3; bh=azt3bcG2gyjJM + Z+euNV8r3HcVvCpV+eSxdiwdmzQYjE=; b=fyCJtExpAf8Pds8sXBs5pz5z9Werb + vqBSzut0Ck+pcCvap7NpVy7HIRtLqRZZ5TVdGQrBdCyjMYPaBcpnxw/mfUNJKoX9 + WjOBrSnHpTrRp42ZQmJhQhQwBcX/s0j54ruprCfSqKSDuTOBG1N1JvKxI/PpfY6r + SsSEbwLKYq1RtK4noXm6JikphM9ME5i5XlR5n4XPsXPdM3UhM9DZXrkVwtWp+NyK + 4Xz63Is8oAxwJZAmqv049v/YeMe/Rsf9FY93zxcnQyZVoOHuW1s17AsX7jF8wDRy + xqvpvT8c3cJYXaFLGLrY+nmcGoKIjQSszLh9y5NwbGmjlEElJCcUUJW1A== +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= + messagingengine.com; h=cc:content-transfer-encoding:date:from + :in-reply-to:message-id:mime-version:references:subject:to + :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= + fm3; bh=azt3bcG2gyjJMZ+euNV8r3HcVvCpV+eSxdiwdmzQYjE=; b=B5Js1Nb8 + 5VzNH4aOuAW1FHK3OmKXRhz2sqhORkqO2K1N+kVfuPWZeATNjSIGEHwqkBJeJDNc + i+/y18eeCQg5sWkt3YCGaFv//m+LNamP1DRTkwLglswewvGqj0zfgN4MjMJvBWt3 + 0bbdP8+D9o1geSld8IyI3lyRZgu7QN+3vJs4xxyTQL6xTOg6VizhNwm6nwSSl2u8 + O6WzLWqrShbb6PD7Lqy5FrJ+BiqwRR+QrRp1JI86QDXssPJh1CtMiF2LnrkmwPxB + DSp3hr1nqudSNopltfwdUyNu3GdkGbMCE8Iv+4KIZpD8oRH12hS19aRtIqosAuXm + 1Ljrqzx4Vp/yNA== +X-ME-Sender: + +X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduiedrudegtddgleduucetufdoteggodetrfdotf + fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen + uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne + cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefurghmuhgv + lhcujfholhhlrghnugcuoehsrghmuhgvlhesshhhohhllhgrnhgurdhorhhgqeenucggtf + frrghtthgvrhhnpeduhfejfedvhffgfeehtefghfeiiefgfeehgfdvvdevfeegjeehjedv + gfejheeuieenucfkphepjedtrddufeehrddugeekrdduhedunecuvehluhhsthgvrhfuih + iivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepshgrmhhuvghlsehshhholhhlrghn + ugdrohhrgh +X-ME-Proxy: + + + +Received: from titanium.stl.sholland.net + (70-135-148-151.lightspeed.stlsmo.sbcglobal.net [70.135.148.151]) + by mail.messagingengine.com (Postfix) with ESMTPA id EE48F306005E; + Thu, 3 Sep 2020 01:07:18 -0400 (EDT) +From: Samuel Holland +To: Jagan Teki , Maxime Ripard +Cc: Andre Przywara , + Peter Robinson , u-boot@lists.denx.de, + Samuel Holland +Subject: [PATCH 5/8] sunxi: board: Save the chosen DT name in the SPL header +Date: Thu, 3 Sep 2020 00:07:13 -0500 +Message-Id: <20200903050716.48488-6-samuel@sholland.org> +X-Mailer: git-send-email 2.26.2 +In-Reply-To: <20200903050716.48488-1-samuel@sholland.org> +References: <20200903050716.48488-1-samuel@sholland.org> +MIME-Version: 1.0 +X-BeenThere: u-boot@lists.denx.de +X-Mailman-Version: 2.1.34 +Precedence: list +List-Id: U-Boot discussion +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +Errors-To: u-boot-bounces@lists.denx.de +Sender: "U-Boot" +X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de +X-Virus-Status: Clean + +This overwrites the name loaded from the SPL image. It will be different +if there was previously no name provided, or if a more accurate name was +determined by the board variant selection logic. This means that the DT +name in the SPL header now always matches the DT appended to U-Boot. + +Signed-off-by: Samuel Holland +--- + board/sunxi/board.c | 27 ++++++++++++++++++++++++++- + 1 file changed, 26 insertions(+), 1 deletion(-) + +diff --git a/board/sunxi/board.c b/board/sunxi/board.c +index 3d64ed18664..eaa40a1ea96 100644 +--- a/board/sunxi/board.c ++++ b/board/sunxi/board.c +@@ -331,6 +331,21 @@ static const char *get_spl_dt_name(void) + return NULL; + } + ++static void set_spl_dt_name(const char *name) ++{ ++ struct boot_file_head *spl = get_spl_header(SPL_ENV_HEADER_VERSION); ++ ++ if (spl == INVALID_SPL_HEADER) ++ return; ++ ++ /* Promote the header version for U-Boot proper, if needed. */ ++ if (spl->spl_signature[3] < SPL_DT_HEADER_VERSION) ++ spl->spl_signature[3] = SPL_DT_HEADER_VERSION; ++ ++ strcpy((char *)&spl->string_pool, name); ++ spl->dt_name_offset = offsetof(struct boot_file_head, string_pool); ++} ++ + int dram_init(void) + { + struct boot_file_head *spl = get_spl_header(SPL_DRAM_HEADER_VERSION); +@@ -904,6 +919,7 @@ int ft_board_setup(void *blob, struct bd_info *bd) + int board_fit_config_name_match(const char *name) + { + const char *best_dt_name = get_spl_dt_name(); ++ int ret; + + #ifdef CONFIG_DEFAULT_DEVICE_TREE + if (best_dt_name == NULL) +@@ -941,6 +957,15 @@ int board_fit_config_name_match(const char *name) + } + #endif + +- return strcmp(name, best_dt_name); ++ ret = strcmp(name, best_dt_name); ++ ++ /* ++ * If one of the FIT configurations matches the most accurate DT name, ++ * update the SPL header to provide that DT name to U-Boot proper. ++ */ ++ if (ret == 0) ++ set_spl_dt_name(best_dt_name); ++ ++ return ret; + } + #endif + +From patchwork Thu Sep 3 05:07:14 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: Samuel Holland +X-Patchwork-Id: 1356313 +Return-Path: +X-Original-To: incoming@patchwork.ozlabs.org +Delivered-To: patchwork-incoming@bilbo.ozlabs.org +Authentication-Results: ozlabs.org; + spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de + (client-ip=85.214.62.61; helo=phobos.denx.de; + envelope-from=u-boot-bounces@lists.denx.de; receiver=) +Authentication-Results: ozlabs.org; + dmarc=none (p=none dis=none) header.from=sholland.org +Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; + unprotected) header.d=sholland.org header.i=@sholland.org header.a=rsa-sha256 + header.s=fm3 header.b=Ps0W2fd7; + dkim=pass (2048-bit key; + unprotected) header.d=messagingengine.com header.i=@messagingengine.com + header.a=rsa-sha256 header.s=fm3 header.b=irLh9odg; + dkim-atps=neutral +Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) + (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) + key-exchange X25519 server-signature RSA-PSS (4096 bits)) + (No client certificate requested) + by ozlabs.org (Postfix) with ESMTPS id 4BhpjY18DVz9sTR + for ; Thu, 3 Sep 2020 15:08:17 +1000 (AEST) +Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) + by phobos.denx.de (Postfix) with ESMTP id 1375E82300; + Thu, 3 Sep 2020 07:07:32 +0200 (CEST) +Authentication-Results: phobos.denx.de; + dmarc=none (p=none dis=none) header.from=sholland.org +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de +Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; + unprotected) header.d=sholland.org header.i=@sholland.org + header.b="Ps0W2fd7"; dkim=pass (2048-bit key; + unprotected) header.d=messagingengine.com header.i=@messagingengine.com + header.b="irLh9odg"; dkim-atps=neutral +Received: by phobos.denx.de (Postfix, from userid 109) + id E9DCE822E1; Thu, 3 Sep 2020 07:07:26 +0200 (CEST) +X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de +X-Spam-Level: +X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, + DKIM_VALID,DKIM_VALID_AU,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, + SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no + version=3.4.2 +Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com + [66.111.4.26]) + (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) + (No client certificate requested) + by phobos.denx.de (Postfix) with ESMTPS id 2CC5D822DF + for ; Thu, 3 Sep 2020 07:07:21 +0200 (CEST) +Authentication-Results: phobos.denx.de; + dmarc=none (p=none dis=none) header.from=sholland.org +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=samuel@sholland.org +Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) + by mailout.nyi.internal (Postfix) with ESMTP id AAA455C0197; + Thu, 3 Sep 2020 01:07:19 -0400 (EDT) +Received: from mailfrontend2 ([10.202.2.163]) + by compute3.internal (MEProxy); Thu, 03 Sep 2020 01:07:19 -0400 +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sholland.org; h= + from:to:cc:subject:date:message-id:in-reply-to:references + :mime-version:content-transfer-encoding; s=fm3; bh=YJZBYh6lhnaT4 + or+KKTYoX0BgbruFrnszv2AxRFjCUg=; b=Ps0W2fd7vmO9tBRewK6ov5Y2vWsh9 + oAAVK6vPK0hEzUkkeBIkhSenj5xlmR2HCeP5LxQU+Vgty5CzLJnc48U8lCQwGRFR + ZZ6tAiD9/vOtdVCbU2dRH7WK3uoAEi4AB688do5c3H3KhS8ZN6N7vsakr50TbczK + beuX76xciz0QEuRhJUFbnK9EYpV8/CDS1OFv6P+kA6OSIb71gm9FeFgdHHpmdQ/U + 7sE6vbkMYhL7pFMzeBCYWSfUWF6NK3gfJApDaxFqR1KBlszLuGbIXLVYWImA3WV8 + sFDNZWGk2swSOB1ivq+Xvb2WTlPidjY0OrROgggZcyDHPRFEoZaS1ezAA== +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= + messagingengine.com; h=cc:content-transfer-encoding:date:from + :in-reply-to:message-id:mime-version:references:subject:to + :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= + fm3; bh=YJZBYh6lhnaT4or+KKTYoX0BgbruFrnszv2AxRFjCUg=; b=irLh9odg + 4mUJO3vUBGyeYD/WBs8BrulYezzsNoTAJp4uGEv0b9KyxbofUjok4+liYvAT/QZa + ED/iKo1bqgGmEwNPLoM0YORd0pXRd5jyv9W53Z96qzGsNOe0iGkJtSlOMXF3Lrfl + aIpGPRSMoRkqztR6oWBAEHeCm3NCFY4LDzzCoPFQqdcWmiDl+Wi3YfpApRGHdL3v + 4XVOruQFZlZUHZPp42VOzgbJyz+uWB3Z/RN2y0P7Lof1CrYtsWNftV4LuXDQ70VZ + P9TlSWjk75qTa1dqHdj/cvbi5WFBqa4FJKgCCV1OgCCEAc1ZGLhPBVDjt4W7FHJh + hNPlKS0liPCmGQ== +X-ME-Sender: + +X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduiedrudegtddgleduucetufdoteggodetrfdotf + fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen + uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne + cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefurghmuhgv + lhcujfholhhlrghnugcuoehsrghmuhgvlhesshhhohhllhgrnhgurdhorhhgqeenucggtf + frrghtthgvrhhnpeduhfejfedvhffgfeehtefghfeiiefgfeehgfdvvdevfeegjeehjedv + gfejheeuieenucfkphepjedtrddufeehrddugeekrdduhedunecuvehluhhsthgvrhfuih + iivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepshgrmhhuvghlsehshhholhhlrghn + ugdrohhrgh +X-ME-Proxy: + + + +Received: from titanium.stl.sholland.net + (70-135-148-151.lightspeed.stlsmo.sbcglobal.net [70.135.148.151]) + by mail.messagingengine.com (Postfix) with ESMTPA id 4678A306005B; + Thu, 3 Sep 2020 01:07:19 -0400 (EDT) +From: Samuel Holland +To: Jagan Teki , Maxime Ripard +Cc: Andre Przywara , + Peter Robinson , u-boot@lists.denx.de, + Samuel Holland +Subject: [PATCH 6/8] sunxi: board: Set fdtfile to match the DT chosen by SPL +Date: Thu, 3 Sep 2020 00:07:14 -0500 +Message-Id: <20200903050716.48488-7-samuel@sholland.org> +X-Mailer: git-send-email 2.26.2 +In-Reply-To: <20200903050716.48488-1-samuel@sholland.org> +References: <20200903050716.48488-1-samuel@sholland.org> +MIME-Version: 1.0 +X-BeenThere: u-boot@lists.denx.de +X-Mailman-Version: 2.1.34 +Precedence: list +List-Id: U-Boot discussion +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +Errors-To: u-boot-bounces@lists.denx.de +Sender: "U-Boot" +X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de +X-Virus-Status: Clean + +Previously, fdtfile was always the value in CONFIG_DEFAULT_DEVICE_TREE. +This meant that, regardless of the DT chosen by SPL (either by changing +the header in the image or by the selection code at runtime), Linux +always used the default DT. + +By using the name from the SPL header (which, because of the previous +commit, always matches the DT used by U-Boot proper), Linux also sees +the same board as U-Boot/SPL, even if the boot script later loads a DT +from disk. + +Signed-off-by: Samuel Holland +--- + board/sunxi/board.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/board/sunxi/board.c b/board/sunxi/board.c +index eaa40a1ea96..5457b28e135 100644 +--- a/board/sunxi/board.c ++++ b/board/sunxi/board.c +@@ -870,6 +870,7 @@ static void setup_environment(const void *fdt) + + int misc_init_r(void) + { ++ const char *spl_dt_name; + uint boot; + + env_set("fel_booted", NULL); +@@ -888,6 +889,16 @@ int misc_init_r(void) + env_set("mmc_bootdev", "1"); + } + ++ /* Set fdtfile to match the FIT configuration chosen in SPL. */ ++ spl_dt_name = get_spl_dt_name(); ++ if (spl_dt_name) { ++ char *prefix = IS_ENABLED(CONFIG_ARM64) ? "allwinner/" : ""; ++ char str[64]; ++ ++ snprintf(str, sizeof(str), "%s%s.dtb", prefix, spl_dt_name); ++ env_set("fdtfile", str); ++ } ++ + setup_environment(gd->fdt_blob); + + #ifdef CONFIG_USB_ETHER + +From 9e91885814f880ce13ee98cab79876338811949f Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Thu, 9 Jul 2020 12:44:55 +0100 +Subject: [PATCH 7/8] arm64: dts: allwinner: Add initial support for Pine64 + PinePhone + +At the moment PinePhone comes in three slightly incompatible variants: + +- 1.0: Early Developer Batch +- 1.1: Braveheart Batch +- 1.2: Initial Production version + +This syncs the Pinephone DTs from Linux 5.8-rc1. + +Signed-off-by: Peter Robinson +--- + arch/arm/dts/Makefile | 3 + + arch/arm/dts/sun50i-a64-pinephone-1.0.dts | 11 + + arch/arm/dts/sun50i-a64-pinephone-1.1.dts | 11 + + arch/arm/dts/sun50i-a64-pinephone-1.2.dts | 40 +++++++++++++++++++++++ + arch/arm/dts/sun50i-a64-pinephone.dtsi | 379 ++++++++++++++++++++++ + 5 files changed, 403 insertions(+) + create mode 100644 arch/arm/dts/sun50i-a64-pinephone-1.0.dts + create mode 100644 arch/arm/dts/sun50i-a64-pinephone-1.1.dts + create mode 100644 arch/arm/dts/sun50i-a64-pinephone-1.2.dts + create mode 100644 arch/arm/dts/sun50i-a64-pinephone.dtsi + +diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile +index f8f529435b..193f5c6138 100644 +--- a/arch/arm/dts/Makefile ++++ b/arch/arm/dts/Makefile +@@ -608,6 +608,9 @@ dtb-$(CONFIG_MACH_SUN50I) += \ + sun50i-a64-pine64-plus.dtb \ + sun50i-a64-pine64.dtb \ + sun50i-a64-pinebook.dtb \ ++ sun50i-a64-pinephone-1.0.dtb \ ++ sun50i-a64-pinephone-1.1.dtb \ ++ sun50i-a64-pinephone-1.2.dtb \ + sun50i-a64-sopine-baseboard.dtb \ + sun50i-a64-teres-i.dtb + dtb-$(CONFIG_MACH_SUN9I) += \ +diff --git a/arch/arm/dts/sun50i-a64-pinephone-1.0.dts b/arch/arm/dts/sun50i-a64-pinephone-1.0.dts +new file mode 100644 +index 0000000000..0c42272106 +--- /dev/null ++++ b/arch/arm/dts/sun50i-a64-pinephone-1.0.dts +@@ -0,0 +1,11 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++// Copyright (C) 2020 Ondrej Jirman ++ ++/dts-v1/; ++ ++#include "sun50i-a64-pinephone.dtsi" ++ ++/ { ++ model = "Pine64 PinePhone Developer Batch (1.0)"; ++ compatible = "pine64,pinephone-1.0", "allwinner,sun50i-a64"; ++}; +diff --git a/arch/arm/dts/sun50i-a64-pinephone-1.1.dts b/arch/arm/dts/sun50i-a64-pinephone-1.1.dts +new file mode 100644 +index 0000000000..06a775c416 +--- /dev/null ++++ b/arch/arm/dts/sun50i-a64-pinephone-1.1.dts +@@ -0,0 +1,11 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++// Copyright (C) 2020 Ondrej Jirman ++ ++/dts-v1/; ++ ++#include "sun50i-a64-pinephone.dtsi" ++ ++/ { ++ model = "Pine64 PinePhone Braveheart (1.1)"; ++ compatible = "pine64,pinephone-1.1", "allwinner,sun50i-a64"; ++}; +diff --git a/arch/arm/dts/sun50i-a64-pinephone-1.2.dts b/arch/arm/dts/sun50i-a64-pinephone-1.2.dts +new file mode 100644 +index 0000000000..a9f5b670c9 +--- /dev/null ++++ b/arch/arm/dts/sun50i-a64-pinephone-1.2.dts +@@ -0,0 +1,40 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++// Copyright (C) 2020 Ondrej Jirman ++ ++/dts-v1/; ++ ++#include "sun50i-a64-pinephone.dtsi" ++ ++/ { ++ model = "Pine64 PinePhone (1.2)"; ++ compatible = "pine64,pinephone-1.2", "allwinner,sun50i-a64"; ++}; ++ ++&backlight { ++ power-supply = <®_ldo_io0>; ++ /* ++ * PWM backlight circuit on this PinePhone revision was changed since 1.0, ++ * and the lowest PWM duty cycle that doesn't lead to backlight being off ++ * is around 10%. Duty cycle for the lowest brightness level also varries ++ * quite a bit between individual boards, so the lowest value here was ++ * chosen as a safe default. ++ */ ++ brightness-levels = < ++ 5000 5248 5506 5858 6345 ++ 6987 7805 8823 10062 11543 ++ 13287 15317 17654 20319 23336 ++ 26724 30505 34702 39335 44427 ++ 50000 ++ >; ++ num-interpolated-steps = <50>; ++ default-brightness-level = <500>; ++}; ++ ++&lis3mdl { ++ /* ++ * Board revision 1.2 fixed routing of the interrupt to DRDY pin, ++ * enable interrupts. ++ */ ++ interrupt-parent = <&pio>; ++ interrupts = <1 1 IRQ_TYPE_EDGE_RISING>; /* PB1 */ ++}; +diff --git a/arch/arm/dts/sun50i-a64-pinephone.dtsi b/arch/arm/dts/sun50i-a64-pinephone.dtsi +new file mode 100644 +index 0000000000..cefda145c3 +--- /dev/null ++++ b/arch/arm/dts/sun50i-a64-pinephone.dtsi +@@ -0,0 +1,379 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++// Copyright (C) 2019 Icenowy Zheng ++// Copyright (C) 2020 Martijn Braam ++// Copyright (C) 2020 Ondrej Jirman ++ ++#include "sun50i-a64.dtsi" ++#include "sun50i-a64-cpu-opp.dtsi" ++ ++#include ++#include ++#include ++#include ++ ++/ { ++ aliases { ++ serial0 = &uart0; ++ }; ++ ++ chosen { ++ stdout-path = "serial0:115200n8"; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ ++ blue { ++ function = LED_FUNCTION_INDICATOR; ++ color = ; ++ gpios = <&pio 3 20 GPIO_ACTIVE_HIGH>; /* PD20 */ ++ }; ++ ++ green { ++ function = LED_FUNCTION_INDICATOR; ++ color = ; ++ gpios = <&pio 3 18 GPIO_ACTIVE_HIGH>; /* PD18 */ ++ }; ++ ++ red { ++ function = LED_FUNCTION_INDICATOR; ++ color = ; ++ gpios = <&pio 3 19 GPIO_ACTIVE_HIGH>; /* PD19 */ ++ }; ++ }; ++ ++ speaker_amp: audio-amplifier { ++ compatible = "simple-audio-amplifier"; ++ enable-gpios = <&pio 2 7 GPIO_ACTIVE_HIGH>; /* PC7 */ ++ sound-name-prefix = "Speaker Amp"; ++ }; ++ ++ vibrator { ++ compatible = "gpio-vibrator"; ++ enable-gpios = <&pio 3 2 GPIO_ACTIVE_HIGH>; /* PD2 */ ++ vcc-supply = <®_dcdc1>; ++ }; ++}; ++ ++&codec { ++ status = "okay"; ++}; ++ ++&codec_analog { ++ cpvdd-supply = <®_eldo1>; ++ status = "okay"; ++}; ++ ++&cpu0 { ++ cpu-supply = <®_dcdc2>; ++}; ++ ++&cpu1 { ++ cpu-supply = <®_dcdc2>; ++}; ++ ++&cpu2 { ++ cpu-supply = <®_dcdc2>; ++}; ++ ++&cpu3 { ++ cpu-supply = <®_dcdc2>; ++}; ++ ++&dai { ++ status = "okay"; ++}; ++ ++&ehci0 { ++ status = "okay"; ++}; ++ ++&ehci1 { ++ status = "okay"; ++}; ++ ++&i2c1 { ++ status = "okay"; ++ ++ /* Magnetometer */ ++ lis3mdl@1e { ++ compatible = "st,lis3mdl-magn"; ++ reg = <0x1e>; ++ vdd-supply = <®_dldo1>; ++ vddio-supply = <®_dldo1>; ++ }; ++ ++ /* Accelerometer/gyroscope */ ++ mpu6050@68 { ++ compatible = "invensense,mpu6050"; ++ reg = <0x68>; ++ interrupt-parent = <&pio>; ++ interrupts = <7 5 IRQ_TYPE_EDGE_RISING>; /* PH5 */ ++ vdd-supply = <®_dldo1>; ++ vddio-supply = <®_dldo1>; ++ }; ++}; ++ ++/* Connected to pogo pins (external spring based pinheader for user addons) */ ++&i2c2 { ++ status = "okay"; ++}; ++ ++&lradc { ++ vref-supply = <®_aldo3>; ++ status = "okay"; ++ ++ button-200 { ++ label = "Volume Up"; ++ linux,code = ; ++ channel = <0>; ++ voltage = <200000>; ++ }; ++ ++ button-400 { ++ label = "Volume Down"; ++ linux,code = ; ++ channel = <0>; ++ voltage = <400000>; ++ }; ++}; ++ ++&mmc0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&mmc0_pins>; ++ vmmc-supply = <®_dcdc1>; ++ vqmmc-supply = <®_dcdc1>; ++ cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ ++ disable-wp; ++ bus-width = <4>; ++ status = "okay"; ++}; ++ ++&mmc2 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&mmc2_pins>; ++ vmmc-supply = <®_dcdc1>; ++ vqmmc-supply = <®_dcdc1>; ++ bus-width = <8>; ++ non-removable; ++ cap-mmc-hw-reset; ++ status = "okay"; ++}; ++ ++&ohci0 { ++ status = "okay"; ++}; ++ ++&ohci1 { ++ status = "okay"; ++}; ++ ++&pio { ++ vcc-pb-supply = <®_dcdc1>; ++ vcc-pc-supply = <®_dcdc1>; ++ vcc-pd-supply = <®_dcdc1>; ++ vcc-pe-supply = <®_aldo1>; ++ vcc-pf-supply = <®_dcdc1>; ++ vcc-pg-supply = <®_dldo4>; ++ vcc-ph-supply = <®_dcdc1>; ++}; ++ ++&r_pio { ++ /* ++ * FIXME: We can't add that supply for now since it would ++ * create a circular dependency between pinctrl, the regulator ++ * and the RSB Bus. ++ * ++ * vcc-pl-supply = <®_aldo2>; ++ */ ++}; ++ ++&r_rsb { ++ status = "okay"; ++ ++ axp803: pmic@3a3 { ++ compatible = "x-powers,axp803"; ++ reg = <0x3a3>; ++ interrupt-parent = <&r_intc>; ++ interrupts = <0 IRQ_TYPE_LEVEL_LOW>; ++ }; ++}; ++ ++#include "axp803.dtsi" ++ ++&ac_power_supply { ++ status = "okay"; ++}; ++ ++&battery_power_supply { ++ status = "okay"; ++}; ++ ++®_aldo1 { ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-name = "dovdd-csi"; ++}; ++ ++®_aldo2 { ++ regulator-always-on; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-name = "vcc-pl"; ++}; ++ ++®_aldo3 { ++ regulator-always-on; ++ regulator-min-microvolt = <2700000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-pll-avcc"; ++}; ++ ++®_dcdc1 { ++ regulator-always-on; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-3v3"; ++}; ++ ++®_dcdc2 { ++ regulator-always-on; ++ regulator-min-microvolt = <1000000>; ++ regulator-max-microvolt = <1300000>; ++ regulator-name = "vdd-cpux"; ++}; ++ ++/* DCDC3 is polyphased with DCDC2 */ ++ ++®_dcdc5 { ++ regulator-always-on; ++ regulator-min-microvolt = <1200000>; ++ regulator-max-microvolt = <1200000>; ++ regulator-name = "vcc-dram"; ++}; ++ ++®_dcdc6 { ++ regulator-always-on; ++ regulator-min-microvolt = <1100000>; ++ regulator-max-microvolt = <1100000>; ++ regulator-name = "vdd-sys"; ++}; ++ ++®_dldo1 { ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-dsi-sensor"; ++}; ++ ++®_dldo2 { ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-name = "vcc-mipi-io"; ++}; ++ ++®_dldo3 { ++ regulator-min-microvolt = <2800000>; ++ regulator-max-microvolt = <2800000>; ++ regulator-name = "avdd-csi"; ++}; ++ ++®_dldo4 { ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-wifi-io"; ++}; ++ ++®_eldo1 { ++ regulator-always-on; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-name = "vcc-lpddr"; ++}; ++ ++®_eldo3 { ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-name = "dvdd-1v8-csi"; ++}; ++ ++®_fldo1 { ++ regulator-min-microvolt = <1200000>; ++ regulator-max-microvolt = <1200000>; ++ regulator-name = "vcc-1v2-hsic"; ++}; ++ ++®_fldo2 { ++ regulator-always-on; ++ regulator-min-microvolt = <1100000>; ++ regulator-max-microvolt = <1100000>; ++ regulator-name = "vdd-cpus"; ++}; ++ ++®_ldo_io0 { ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-lcd-ctp-stk"; ++ status = "okay"; ++}; ++ ++®_ldo_io1 { ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-name = "vcc-1v8-typec"; ++ status = "okay"; ++}; ++ ++®_rtc_ldo { ++ regulator-name = "vcc-rtc"; ++}; ++ ++&sound { ++ status = "okay"; ++ simple-audio-card,aux-devs = <&codec_analog>, <&speaker_amp>; ++ simple-audio-card,widgets = "Microphone", "Headset Microphone", ++ "Microphone", "Internal Microphone", ++ "Headphone", "Headphone Jack", ++ "Speaker", "Internal Earpiece", ++ "Speaker", "Internal Speaker"; ++ simple-audio-card,routing = ++ "Headphone Jack", "HP", ++ "Internal Earpiece", "EARPIECE", ++ "Internal Speaker", "Speaker Amp OUTL", ++ "Internal Speaker", "Speaker Amp OUTR", ++ "Speaker Amp INL", "LINEOUT", ++ "Speaker Amp INR", "LINEOUT", ++ "Left DAC", "AIF1 Slot 0 Left", ++ "Right DAC", "AIF1 Slot 0 Right", ++ "AIF1 Slot 0 Left ADC", "Left ADC", ++ "AIF1 Slot 0 Right ADC", "Right ADC", ++ "Internal Microphone", "MBIAS", ++ "MIC1", "Internal Microphone", ++ "Headset Microphone", "HBIAS", ++ "MIC2", "Headset Microphone"; ++}; ++ ++&uart0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart0_pb_pins>; ++ status = "okay"; ++}; ++ ++/* Connected to the modem (hardware flow control can't be used) */ ++&uart3 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart3_pins>; ++ status = "okay"; ++}; ++ ++&usb_otg { ++ dr_mode = "peripheral"; ++ status = "okay"; ++}; ++ ++&usb_power_supply { ++ status = "okay"; ++}; ++ ++&usbphy { ++ status = "okay"; ++}; +-- +2.26.2 + +From bed9375bf6d11bdbf08839135541c44d80189384 Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Wed, 9 Sep 2020 11:19:09 +0100 +Subject: [PATCH] pinephone dts sync to 5.9-rc1 + +--- + arch/arm/dts/sun50i-a64-pinephone-1.1.dts | 19 ++++++++ + arch/arm/dts/sun50i-a64-pinephone.dtsi | 54 ++++++++++++++++++++++- + 2 files changed, 71 insertions(+), 2 deletions(-) + +diff --git a/arch/arm/dts/sun50i-a64-pinephone-1.1.dts b/arch/arm/dts/sun50i-a64-pinephone-1.1.dts +index 06a775c416..3e99a87e9c 100644 +--- a/arch/arm/dts/sun50i-a64-pinephone-1.1.dts ++++ b/arch/arm/dts/sun50i-a64-pinephone-1.1.dts +@@ -9,3 +9,22 @@ + model = "Pine64 PinePhone Braveheart (1.1)"; + compatible = "pine64,pinephone-1.1", "allwinner,sun50i-a64"; + }; ++ ++&backlight { ++ power-supply = <®_ldo_io0>; ++ /* ++ * PWM backlight circuit on this PinePhone revision was changed since ++ * 1.0, and the lowest PWM duty cycle that doesn't lead to backlight ++ * being off is around 20%. Duty cycle for the lowest brightness level ++ * also varries quite a bit between individual boards, so the lowest ++ * value here was chosen as a safe default. ++ */ ++ brightness-levels = < ++ 774 793 814 842 ++ 882 935 1003 1088 ++ 1192 1316 1462 1633 ++ 1830 2054 2309 2596 ++ 2916 3271 3664 4096>; ++ num-interpolated-steps = <50>; ++ default-brightness-level = <400>; ++}; +diff --git a/arch/arm/dts/sun50i-a64-pinephone.dtsi b/arch/arm/dts/sun50i-a64-pinephone.dtsi +index cefda145c3..25150aba74 100644 +--- a/arch/arm/dts/sun50i-a64-pinephone.dtsi ++++ b/arch/arm/dts/sun50i-a64-pinephone.dtsi +@@ -16,6 +16,13 @@ + serial0 = &uart0; + }; + ++ backlight: backlight { ++ compatible = "pwm-backlight"; ++ pwms = <&r_pwm 0 50000 PWM_POLARITY_INVERTED>; ++ enable-gpios = <&pio 7 10 GPIO_ACTIVE_HIGH>; /* PH10 */ ++ /* Backlight configuration differs per PinePhone revision. */ ++ }; ++ + chosen { + stdout-path = "serial0:115200n8"; + }; +@@ -84,6 +91,28 @@ + status = "okay"; + }; + ++&de { ++ status = "okay"; ++}; ++ ++&dphy { ++ status = "okay"; ++}; ++ ++&dsi { ++ vcc-dsi-supply = <®_dldo1>; ++ status = "okay"; ++ ++ panel@0 { ++ compatible = "xingbangda,xbd599"; ++ reg = <0>; ++ reset-gpios = <&pio 3 23 GPIO_ACTIVE_LOW>; /* PD23 */ ++ iovcc-supply = <®_dldo2>; ++ vcc-supply = <®_ldo_io0>; ++ backlight = <&backlight>; ++ }; ++}; ++ + &ehci0 { + status = "okay"; + }; +@@ -92,11 +121,28 @@ + status = "okay"; + }; + ++&i2c0 { ++ status = "okay"; ++ ++ touchscreen@5d { ++ compatible = "goodix,gt917s"; ++ reg = <0x5d>; ++ interrupt-parent = <&pio>; ++ interrupts = <7 4 IRQ_TYPE_LEVEL_HIGH>; /* PH4 */ ++ irq-gpios = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */ ++ reset-gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */ ++ AVDD28-supply = <®_ldo_io0>; ++ VDDIO-supply = <®_ldo_io0>; ++ touchscreen-size-x = <720>; ++ touchscreen-size-y = <1440>; ++ }; ++}; ++ + &i2c1 { + status = "okay"; + + /* Magnetometer */ +- lis3mdl@1e { ++ lis3mdl: lis3mdl@1e { + compatible = "st,lis3mdl-magn"; + reg = <0x1e>; + vdd-supply = <®_dldo1>; +@@ -188,6 +234,10 @@ + */ + }; + ++&r_pwm { ++ status = "okay"; ++}; ++ + &r_rsb { + status = "okay"; + +@@ -279,7 +329,7 @@ + + ®_dldo4 { + regulator-min-microvolt = <1800000>; +- regulator-max-microvolt = <3300000>; ++ regulator-max-microvolt = <1800000>; + regulator-name = "vcc-wifi-io"; + }; + +-- +2.26.2 + +From ab4bad52587be7da4262d943f19b5db02a24a045 Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Wed, 15 Jul 2020 13:14:09 +0100 +Subject: [PATCH 8/8] Initial Pine64 Pinephone support + +The Pine64 Pinephone is a smartphone based on the AllWinner A64 SoC. +It has the following features: +* 2GB LPDDR3 SDRAM +* 5.95 inch 1440x720 HD IPS capacitive touchscreen +* 16GB eMMC, mSD slot +* Quectel EG25 LTE Modem +* Realtek RTL8723CS WiFi/BT +* Front and read cameras +* Accelerometer, gyro, proximity, ambient light, compass sensors +* A USB Type-C, USB Host, DisplayPort alt mode output, 15W 5V 3A Quick Charge, follows USB PD specification + +Signed-off-by: Peter Robinson +--- + arch/arm/Kconfig | 2 +- + configs/pinephone_defconfig | 38 +++++++++++++++++++++++++++++++++++++ + 2 files changed, 39 insertions(+), 1 deletion(-) + create mode 100644 configs/pinephone_defconfig + +diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig +index e16fe03887..636ba26938 100644 +--- a/arch/arm/Kconfig ++++ b/arch/arm/Kconfig +@@ -1004,7 +1004,7 @@ config ARCH_SUNXI + bool "Support sunxi (Allwinner) SoCs" + select BINMAN + select CMD_GPIO +- select CMD_MMC if MMC ++select CMD_MMC if MMC + select CMD_USB if DISTRO_DEFAULTS + select CLK + select DM +diff --git a/configs/pinephone_defconfig b/configs/pinephone_defconfig +new file mode 100644 +index 0000000000..d5750aa954 +--- /dev/null ++++ b/configs/pinephone_defconfig +@@ -0,0 +1,39 @@ ++CONFIG_ARM=y ++CONFIG_ARCH_SUNXI=y ++CONFIG_SPL=y ++CONFIG_MACH_SUN50I=y ++CONFIG_SUNXI_DRAM_LPDDR3_STOCK=y ++CONFIG_DRAM_CLK=552 ++CONFIG_DRAM_ZQ=3881949 ++CONFIG_NR_DRAM_BANKS=1 ++CONFIG_MMC_SUNXI_SLOT_EXTRA=2 ++CONFIG_R_I2C_ENABLE=y ++# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set ++# CONFIG_SPL_SPI_SUNXI is not set ++# CONFIG_SPL_DOS_PARTITION is not set ++# CONFIG_SPL_EFI_PARTITION is not set ++CONFIG_PINEPHONE_DT_SELECTION=y ++CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-pinephone-1.2" ++CONFIG_OF_LIST=" sun50i-a64-pinephone-1.2 sun50i-a64-pinephone-1.1 sun50i-a64-pinephone-1.0" ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_DM_REGULATOR=y ++CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_PWM=y ++CONFIG_PWM_SUNXI=y ++CONFIG_CMD_GPIO=y ++CONFIG_CMD_GPT=y ++CONFIG_CMD_I2C=y ++CONFIG_CMD_MMC=y ++# CONFIG_CMD_MII is not set ++# CONFIG_CMD_NFS is not set ++# CONFIG_DM_ETH is not set ++# CONFIG_PHY is not set ++# CONFIG_PHY_GIGE is not set ++# CONFIG_SUN8I_EMAC is not set ++# CONFIG_PHY_REALTEK is not set ++# CONFIG_CMD_SF is not set ++# CONFIG_SPI is not set ++# CONFIG_DM_SPI is not set ++# CONFIG_SPI_FLASH is not set ++# CONFIG_SPI_MEM is not set ++# CONFIG_DM_SPI_FLASH is not set +-- +2.26.2 diff --git a/AllWinner-PineTab.patch b/AllWinner-PineTab.patch new file mode 100644 index 0000000..ce569e7 --- /dev/null +++ b/AllWinner-PineTab.patch @@ -0,0 +1,538 @@ +From 9b10863bc8b14ca5463a95dd2c77555cfc68f326 Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Wed, 9 Sep 2020 10:59:31 +0100 +Subject: [PATCH] Initial PineTab dts from linux 5.7-rc1 + +Signed-off-by: Peter Robinson +--- + arch/arm/dts/Makefile | 1 + + arch/arm/dts/sun50i-a64-pinetab.dts | 460 ++++++++++++++++++++++++++++ + 2 files changed, 461 insertions(+) + create mode 100644 arch/arm/dts/sun50i-a64-pinetab.dts + +diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile +index 193f5c6138..57ef94450a 100644 +--- a/arch/arm/dts/Makefile ++++ b/arch/arm/dts/Makefile +@@ -611,6 +611,7 @@ dtb-$(CONFIG_MACH_SUN50I) += \ + sun50i-a64-pinephone-1.0.dtb \ + sun50i-a64-pinephone-1.1.dtb \ + sun50i-a64-pinephone-1.2.dtb \ ++ sun50i-a64-pinetab.dtb \ + sun50i-a64-sopine-baseboard.dtb \ + sun50i-a64-teres-i.dtb + dtb-$(CONFIG_MACH_SUN9I) += \ +diff --git a/arch/arm/dts/sun50i-a64-pinetab.dts b/arch/arm/dts/sun50i-a64-pinetab.dts +new file mode 100644 +index 0000000000..316e8a4439 +--- /dev/null ++++ b/arch/arm/dts/sun50i-a64-pinetab.dts +@@ -0,0 +1,460 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++/* ++ * Copyright (C) 2019 Icenowy Zheng ++ * ++ */ ++ ++/dts-v1/; ++ ++#include "sun50i-a64.dtsi" ++#include "sun50i-a64-cpu-opp.dtsi" ++ ++#include ++#include ++#include ++ ++/ { ++ model = "PineTab"; ++ compatible = "pine64,pinetab", "allwinner,sun50i-a64"; ++ ++ aliases { ++ serial0 = &uart0; ++ ethernet0 = &rtl8723cs; ++ }; ++ ++ backlight: backlight { ++ compatible = "pwm-backlight"; ++ pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>; ++ brightness-levels = <0 16 18 20 22 24 26 29 32 35 38 42 46 51 56 62 68 75 83 91 100>; ++ default-brightness-level = <15>; ++ enable-gpios = <&pio 3 23 GPIO_ACTIVE_HIGH>; /* PD23 */ ++ power-supply = <&vdd_bl>; ++ }; ++ ++ chosen { ++ stdout-path = "serial0:115200n8"; ++ }; ++ ++ i2c-csi { ++ compatible = "i2c-gpio"; ++ sda-gpios = <&pio 4 13 GPIO_ACTIVE_HIGH>; /* PE13 */ ++ scl-gpios = <&pio 4 12 GPIO_ACTIVE_HIGH>; /* PE12 */ ++ i2c-gpio,delay-us = <5>; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ /* Rear camera */ ++ ov5640: camera@3c { ++ compatible = "ovti,ov5640"; ++ reg = <0x3c>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&csi_mclk_pin>; ++ clocks = <&ccu CLK_CSI_MCLK>; ++ clock-names = "xclk"; ++ ++ AVDD-supply = <®_dldo3>; ++ DOVDD-supply = <®_aldo1>; ++ DVDD-supply = <®_eldo3>; ++ reset-gpios = <&pio 4 14 GPIO_ACTIVE_LOW>; /* PE14 */ ++ powerdown-gpios = <&pio 4 15 GPIO_ACTIVE_HIGH>; /* PE15 */ ++ ++ port { ++ ov5640_ep: endpoint { ++ remote-endpoint = <&csi_ep>; ++ bus-width = <8>; ++ hsync-active = <1>; /* Active high */ ++ vsync-active = <0>; /* Active low */ ++ data-active = <1>; /* Active high */ ++ pclk-sample = <1>; /* Rising */ ++ }; ++ }; ++ }; ++ }; ++ ++ speaker_amp: audio-amplifier { ++ compatible = "simple-audio-amplifier"; ++ enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */ ++ sound-name-prefix = "Speaker Amp"; ++ }; ++ ++ vdd_bl: regulator@0 { ++ compatible = "regulator-fixed"; ++ regulator-name = "bl-3v3"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ gpio = <&pio 7 6 GPIO_ACTIVE_HIGH>; /* PH6 */ ++ enable-active-high; ++ }; ++ ++ wifi_pwrseq: wifi_pwrseq { ++ compatible = "mmc-pwrseq-simple"; ++ reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ ++ post-power-on-delay-ms = <200>; ++ }; ++}; ++ ++&codec { ++ status = "okay"; ++}; ++ ++&codec_analog { ++ hpvcc-supply = <®_eldo1>; ++ status = "okay"; ++}; ++ ++&cpu0 { ++ cpu-supply = <®_dcdc2>; ++}; ++ ++&cpu1 { ++ cpu-supply = <®_dcdc2>; ++}; ++ ++&cpu2 { ++ cpu-supply = <®_dcdc2>; ++}; ++ ++&cpu3 { ++ cpu-supply = <®_dcdc2>; ++}; ++ ++&csi { ++ status = "okay"; ++ ++ port { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ csi_ep: endpoint { ++ remote-endpoint = <&ov5640_ep>; ++ bus-width = <8>; ++ hsync-active = <1>; /* Active high */ ++ vsync-active = <0>; /* Active low */ ++ data-active = <1>; /* Active high */ ++ pclk-sample = <1>; /* Rising */ ++ }; ++ }; ++}; ++ ++&dai { ++ status = "okay"; ++}; ++ ++&de { ++ status = "okay"; ++}; ++ ++&dphy { ++ status = "okay"; ++}; ++ ++&dsi { ++ vcc-dsi-supply = <®_dldo1>; ++ status = "okay"; ++ ++ panel@0 { ++ compatible = "feixin,k101-im2ba02"; ++ reg = <0>; ++ avdd-supply = <®_dc1sw>; ++ dvdd-supply = <®_dc1sw>; ++ cvdd-supply = <®_ldo_io1>; ++ reset-gpios = <&pio 3 24 GPIO_ACTIVE_HIGH>; /* PD24 */ ++ backlight = <&backlight>; ++ }; ++}; ++ ++&ehci0 { ++ status = "okay"; ++}; ++ ++&ehci1 { ++ status = "okay"; ++}; ++ ++&i2c0 { ++ status = "okay"; ++ ++ touchscreen@5d { ++ compatible = "goodix,gt9271"; ++ reg = <0x5d>; ++ interrupt-parent = <&pio>; ++ interrupts = <7 4 IRQ_TYPE_LEVEL_HIGH>; /* PH4 */ ++ irq-gpios = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */ ++ reset-gpios = <&pio 7 8 GPIO_ACTIVE_HIGH>; /* PH8 */ ++ AVDD28-supply = <®_ldo_io1>; ++ }; ++}; ++ ++&i2c0_pins { ++ bias-pull-up; ++}; ++ ++&i2c1 { ++ status = "okay"; ++ ++ /* TODO: add Bochs BMA223 accelerometer here */ ++}; ++ ++&lradc { ++ vref-supply = <®_aldo3>; ++ status = "okay"; ++ ++ button-200 { ++ label = "Volume Up"; ++ linux,code = ; ++ channel = <0>; ++ voltage = <200000>; ++ }; ++ ++ button-400 { ++ label = "Volume Down"; ++ linux,code = ; ++ channel = <0>; ++ voltage = <400000>; ++ }; ++}; ++ ++&mixer1 { ++ status = "okay"; ++}; ++ ++&mmc0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&mmc0_pins>; ++ vmmc-supply = <®_dcdc1>; ++ cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; ++ disable-wp; ++ bus-width = <4>; ++ status = "okay"; ++}; ++ ++&mmc1 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&mmc1_pins>; ++ vmmc-supply = <®_dldo4>; ++ vqmmc-supply = <®_eldo1>; ++ mmc-pwrseq = <&wifi_pwrseq>; ++ bus-width = <4>; ++ non-removable; ++ status = "okay"; ++ ++ rtl8723cs: wifi@1 { ++ reg = <1>; ++ }; ++}; ++ ++&mmc2 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&mmc2_pins>; ++ vmmc-supply = <®_dcdc1>; ++ vqmmc-supply = <®_dcdc1>; ++ bus-width = <8>; ++ non-removable; ++ cap-mmc-hw-reset; ++ status = "okay"; ++}; ++ ++&ohci0 { ++ status = "okay"; ++}; ++ ++&pwm { ++ status = "okay"; ++}; ++ ++&r_rsb { ++ status = "okay"; ++ ++ axp803: pmic@3a3 { ++ compatible = "x-powers,axp803"; ++ reg = <0x3a3>; ++ interrupt-parent = <&r_intc>; ++ interrupts = <0 IRQ_TYPE_LEVEL_LOW>; ++ x-powers,drive-vbus-en; ++ }; ++}; ++ ++#include "axp803.dtsi" ++ ++&ac_power_supply { ++ status = "okay"; ++}; ++ ++&battery_power_supply { ++ status = "okay"; ++}; ++ ++®_aldo1 { ++ regulator-min-microvolt = <2800000>; ++ regulator-max-microvolt = <2800000>; ++ regulator-name = "dovdd-csi"; ++}; ++ ++®_aldo2 { ++ regulator-always-on; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-pl"; ++}; ++ ++®_aldo3 { ++ regulator-always-on; ++ regulator-min-microvolt = <2700000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-pll-avcc"; ++}; ++ ++®_dc1sw { ++ regulator-name = "vcc-lcd"; ++}; ++ ++®_dcdc1 { ++ regulator-always-on; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-3v3"; ++}; ++ ++®_dcdc2 { ++ regulator-always-on; ++ regulator-min-microvolt = <1000000>; ++ regulator-max-microvolt = <1300000>; ++ regulator-name = "vdd-cpux"; ++}; ++ ++/* DCDC3 is polyphased with DCDC2 */ ++ ++®_dcdc5 { ++ regulator-always-on; ++ regulator-min-microvolt = <1200000>; ++ regulator-max-microvolt = <1200000>; ++ regulator-name = "vcc-dram"; ++}; ++ ++®_dcdc6 { ++ regulator-always-on; ++ regulator-min-microvolt = <1100000>; ++ regulator-max-microvolt = <1100000>; ++ regulator-name = "vdd-sys"; ++}; ++ ++®_dldo1 { ++ regulator-always-on; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-hdmi-dsi-sensor"; ++}; ++ ++®_dldo3 { ++ regulator-min-microvolt = <2800000>; ++ regulator-max-microvolt = <2800000>; ++ regulator-name = "avdd-csi"; ++}; ++ ++®_dldo4 { ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-wifi"; ++}; ++ ++®_drivevbus { ++ regulator-name = "usb0-vbus"; ++ status = "okay"; ++}; ++ ++®_eldo1 { ++ regulator-always-on; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-name = "cpvdd"; ++}; ++ ++®_eldo2 { ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-name = "vcca-1v8"; ++}; ++ ++®_eldo3 { ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-name = "dvdd-1v8-csi"; ++}; ++ ++®_fldo1 { ++ regulator-min-microvolt = <1200000>; ++ regulator-max-microvolt = <1200000>; ++ regulator-name = "vcc-1v2-hsic"; ++}; ++ ++®_fldo2 { ++ regulator-always-on; ++ regulator-min-microvolt = <1100000>; ++ regulator-max-microvolt = <1100000>; ++ regulator-name = "vdd-cpus"; ++}; ++ ++®_ldo_io0 { ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-name = "vcc-usb"; ++ status = "okay"; ++}; ++ ++®_ldo_io1 { ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-enable-ramp-delay = <3500000>; ++ regulator-name = "vcc-touchscreen"; ++ status = "okay"; ++}; ++ ++®_rtc_ldo { ++ regulator-name = "vcc-rtc"; ++}; ++ ++&sound { ++ status = "okay"; ++ simple-audio-card,aux-devs = <&codec_analog>, <&speaker_amp>; ++ simple-audio-card,widgets = "Microphone", "Internal Microphone Left", ++ "Microphone", "Internal Microphone Right", ++ "Headphone", "Headphone Jack", ++ "Speaker", "Internal Speaker"; ++ simple-audio-card,routing = ++ "Left DAC", "AIF1 Slot 0 Left", ++ "Right DAC", "AIF1 Slot 0 Right", ++ "Speaker Amp INL", "LINEOUT", ++ "Speaker Amp INR", "LINEOUT", ++ "Internal Speaker", "Speaker Amp OUTL", ++ "Internal Speaker", "Speaker Amp OUTR", ++ "Headphone Jack", "HP", ++ "AIF1 Slot 0 Left ADC", "Left ADC", ++ "AIF1 Slot 0 Right ADC", "Right ADC", ++ "Internal Microphone Left", "MBIAS", ++ "MIC1", "Internal Microphone Left", ++ "Internal Microphone Right", "HBIAS", ++ "MIC2", "Internal Microphone Right"; ++}; ++ ++&uart0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart0_pb_pins>; ++ status = "okay"; ++}; ++ ++&usb_otg { ++ dr_mode = "otg"; ++ status = "okay"; ++}; ++ ++&usb_power_supply { ++ status = "okay"; ++}; ++ ++&usbphy { ++ usb0_id_det-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */ ++ usb0_vbus_power-supply = <&usb_power_supply>; ++ usb0_vbus-supply = <®_drivevbus>; ++ usb1_vbus-supply = <®_ldo_io0>; ++ status = "okay"; ++}; +-- +2.26.2 + +From 6bf15552c2b6becb48ce7732120e0ddb2078cb1a Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Tue, 14 Apr 2020 09:53:07 +0100 +Subject: [PATCH 9/9] initial pinetab support + +Signed-off-by: Peter Robinson +--- + configs/pinetab_defconfig | 26 ++++++++++++++++++++++++++ + 1 file changed, 26 insertions(+) + create mode 100644 configs/pinetab_defconfig + +diff --git a/configs/pinetab_defconfig b/configs/pinetab_defconfig +new file mode 100644 +index 0000000000..5b9620f3e5 +--- /dev/null ++++ b/configs/pinetab_defconfig +@@ -0,0 +1,26 @@ ++CONFIG_ARM=y ++CONFIG_ARCH_SUNXI=y ++CONFIG_SPL=y ++CONFIG_MACH_SUN50I=y ++CONFIG_SUNXI_DRAM_LPDDR3_STOCK=y ++CONFIG_DRAM_CLK=552 ++CONFIG_DRAM_ZQ=3881949 ++CONFIG_MMC_SUNXI_SLOT_EXTRA=2 ++CONFIG_R_I2C_ENABLE=y ++CONFIG_SPL_SPI_SUNXI=y ++# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set ++CONFIG_USE_PREBOOT=y ++# CONFIG_SPL_DOS_PARTITION is not set ++# CONFIG_SPL_EFI_PARTITION is not set ++CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-pinetab" ++CONFIG_OF_LIST="sun50i-a64-pinetab" ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_DM_REGULATOR=y ++CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_PWM=y ++CONFIG_PWM_SUNXI=y ++CONFIG_LED=y ++CONFIG_LED_GPIO=y ++CONFIG_USB_EHCI_HCD=y ++CONFIG_USB_OHCI_HCD=y ++CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y +-- +2.26.0 diff --git a/AllWinner-UpstreamSync.patch b/AllWinner-UpstreamSync.patch new file mode 100644 index 0000000..0b6bac4 --- /dev/null +++ b/AllWinner-UpstreamSync.patch @@ -0,0 +1,1297 @@ +From 6e5d771060dff5350e5940b7e457884b47a560ac Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Thu, 9 Jul 2020 12:20:53 +0100 +Subject: [PATCH 1/8] dt-bindings: clk: sync sun50i-a64-ccu.h to linux 5.8-rc1 + +Sync the clock bindings for the Allwinner A64 to Linux + +Signed-off-by: Peter Robinson +--- + include/dt-bindings/clock/sun50i-a64-ccu.h | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/include/dt-bindings/clock/sun50i-a64-ccu.h b/include/dt-bindings/clock/sun50i-a64-ccu.h +index d66432c6e6..318eb15c41 100644 +--- a/include/dt-bindings/clock/sun50i-a64-ccu.h ++++ b/include/dt-bindings/clock/sun50i-a64-ccu.h +@@ -43,8 +43,10 @@ + #ifndef _DT_BINDINGS_CLK_SUN50I_A64_H_ + #define _DT_BINDINGS_CLK_SUN50I_A64_H_ + ++#define CLK_PLL_VIDEO0 7 + #define CLK_PLL_PERIPH0 11 + ++#define CLK_CPUX 21 + #define CLK_BUS_MIPI_DSI 28 + #define CLK_BUS_CE 29 + #define CLK_BUS_DMA 30 +@@ -129,7 +131,7 @@ + #define CLK_AVS 109 + #define CLK_HDMI 110 + #define CLK_HDMI_DDC 111 +- ++#define CLK_MBUS 112 + #define CLK_DSI_DPHY 113 + #define CLK_GPU 114 + +-- +2.26.2 + +From 274dff055e80778277860f72a903c01ef33f87c7 Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Thu, 9 Jul 2020 12:29:15 +0100 +Subject: [PATCH 2/8] dt-bindings: leds: sync leds common.h to linux from + 5.8-rc1 + +Sync the leds common.h to the latest Linux version. + +Signed-off-by: Peter Robinson +--- + include/dt-bindings/leds/common.h | 36 ++++++++++++++++++++++--------- + 1 file changed, 26 insertions(+), 10 deletions(-) + +diff --git a/include/dt-bindings/leds/common.h b/include/dt-bindings/leds/common.h +index 9e1256a7c1..0ce7dfc00d 100644 +--- a/include/dt-bindings/leds/common.h ++++ b/include/dt-bindings/leds/common.h +@@ -6,6 +6,7 @@ + * Author: Jacek Anaszewski + * + * Copyright (C) 2019 Jacek Anaszewski ++ * Copyright (C) 2020 Pavel Machek + */ + + #ifndef __DT_BINDINGS_LEDS_H +@@ -32,16 +33,38 @@ + #define LED_COLOR_ID_MAX 8 + + /* Standard LED functions */ ++/* Keyboard LEDs, usually it would be input4::capslock etc. */ ++/* Obsolete equivalent: "shift-key-light" */ ++#define LED_FUNCTION_CAPSLOCK "capslock" ++#define LED_FUNCTION_SCROLLLOCK "scrolllock" ++#define LED_FUNCTION_NUMLOCK "numlock" ++/* Obsolete equivalents: "tpacpi::thinklight" (IBM/Lenovo Thinkpads), ++ "lp5523:kb{1,2,3,4,5,6}" (Nokia N900) */ ++#define LED_FUNCTION_KBD_BACKLIGHT "kbd_backlight" ++ ++/* System LEDs, usually found on system body. ++ platform::mute (etc) is sometimes seen, :mute would be better */ ++#define LED_FUNCTION_POWER "power" ++#define LED_FUNCTION_DISK "disk" ++ ++/* Obsolete: "platform:*:charging" (allwinner sun50i) */ ++#define LED_FUNCTION_CHARGING "charging" ++/* Used RGB notification LEDs common on phones. ++ Obsolete equivalents: "status-led:{red,green,blue}" (Motorola Droid 4), ++ "lp5523:{r,g,b}" (Nokia N900) */ ++#define LED_FUNCTION_STATUS "status" ++ ++#define LED_FUNCTION_MICMUTE "micmute" ++#define LED_FUNCTION_MUTE "mute" ++ ++/* Miscelleaus functions. Use functions above if you can. */ + #define LED_FUNCTION_ACTIVITY "activity" + #define LED_FUNCTION_ALARM "alarm" + #define LED_FUNCTION_BACKLIGHT "backlight" + #define LED_FUNCTION_BLUETOOTH "bluetooth" + #define LED_FUNCTION_BOOT "boot" + #define LED_FUNCTION_CPU "cpu" +-#define LED_FUNCTION_CAPSLOCK "capslock" +-#define LED_FUNCTION_CHARGING "charging" + #define LED_FUNCTION_DEBUG "debug" +-#define LED_FUNCTION_DISK "disk" + #define LED_FUNCTION_DISK_ACTIVITY "disk-activity" + #define LED_FUNCTION_DISK_ERR "disk-err" + #define LED_FUNCTION_DISK_READ "disk-read" +@@ -50,21 +73,14 @@ + #define LED_FUNCTION_FLASH "flash" + #define LED_FUNCTION_HEARTBEAT "heartbeat" + #define LED_FUNCTION_INDICATOR "indicator" +-#define LED_FUNCTION_KBD_BACKLIGHT "kbd_backlight" + #define LED_FUNCTION_LAN "lan" + #define LED_FUNCTION_MAIL "mail" + #define LED_FUNCTION_MTD "mtd" +-#define LED_FUNCTION_MICMUTE "micmute" +-#define LED_FUNCTION_MUTE "mute" +-#define LED_FUNCTION_NUMLOCK "numlock" + #define LED_FUNCTION_PANIC "panic" + #define LED_FUNCTION_PROGRAMMING "programming" +-#define LED_FUNCTION_POWER "power" + #define LED_FUNCTION_RX "rx" + #define LED_FUNCTION_SD "sd" +-#define LED_FUNCTION_SCROLLLOCK "scrolllock" + #define LED_FUNCTION_STANDBY "standby" +-#define LED_FUNCTION_STATUS "status" + #define LED_FUNCTION_TORCH "torch" + #define LED_FUNCTION_TX "tx" + #define LED_FUNCTION_USB "usb" +-- +2.26.2 + +From 7010e7d2b19d2ded674e376855d2716b7cd421b7 Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Fri, 10 Jul 2020 12:46:11 +0100 +Subject: [PATCH 3/8] dt-bindings: clk/reset: sync updated bindings for + Allwinner DE2 display engine + +Sync the clock and reset bindings for the Allwinner DE2 display engine to Linux 5.8-rc1. + +Signed-off-by: Peter Robinson +--- + include/dt-bindings/clock/sun8i-de2.h | 3 +++ + include/dt-bindings/reset/sun8i-de2.h | 1 + + 2 files changed, 4 insertions(+) + +diff --git a/include/dt-bindings/clock/sun8i-de2.h b/include/dt-bindings/clock/sun8i-de2.h +index 3bed63b524..7768f73b05 100644 +--- a/include/dt-bindings/clock/sun8i-de2.h ++++ b/include/dt-bindings/clock/sun8i-de2.h +@@ -15,4 +15,7 @@ + #define CLK_MIXER1 7 + #define CLK_WB 8 + ++#define CLK_BUS_ROT 9 ++#define CLK_ROT 10 ++ + #endif /* _DT_BINDINGS_CLOCK_SUN8I_DE2_H_ */ +diff --git a/include/dt-bindings/reset/sun8i-de2.h b/include/dt-bindings/reset/sun8i-de2.h +index 9526017432..1c36a6ac86 100644 +--- a/include/dt-bindings/reset/sun8i-de2.h ++++ b/include/dt-bindings/reset/sun8i-de2.h +@@ -10,5 +10,6 @@ + #define RST_MIXER0 0 + #define RST_MIXER1 1 + #define RST_WB 2 ++#define RST_ROT 3 + + #endif /* _DT_BINDINGS_RESET_SUN8I_DE2_H_ */ +-- +2.26.2 + +From bdbf5f21343571af989754c908299854e81f44dd Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Thu, 9 Jul 2020 12:24:41 +0100 +Subject: [PATCH 4/8] arm: dts: sync axp803.dtsi from linux 5.8-rc1 + +Sync the Allwinner axp803 device tree to the latest upstream Linux. + +Signed-off-by: Peter Robinson +--- + arch/arm/dts/axp803.dtsi | 82 ++++++++++++++++++++-------------------- + 1 file changed, 41 insertions(+), 41 deletions(-) + +diff --git a/arch/arm/dts/axp803.dtsi b/arch/arm/dts/axp803.dtsi +index e5eae8bafc..10e9186a76 100644 +--- a/arch/arm/dts/axp803.dtsi ++++ b/arch/arm/dts/axp803.dtsi +@@ -1,44 +1,5 @@ +-/* +- * Copyright 2017 Icenowy Zheng +- * +- * This file is dual-licensed: you can use it either under the terms +- * of the GPL or the X11 license, at your option. Note that this dual +- * licensing only applies to this file, and not this project as a +- * whole. +- * +- * a) This file is free software; you can redistribute it and/or +- * modify it under the terms of the GNU General Public License as +- * published by the Free Software Foundation; either version 2 of the +- * License, or (at your option) any later version. +- * +- * This file is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * Or, alternatively, +- * +- * b) Permission is hereby granted, free of charge, to any person +- * obtaining a copy of this software and associated documentation +- * files (the "Software"), to deal in the Software without +- * restriction, including without limitation the rights to use, +- * copy, modify, merge, publish, distribute, sublicense, and/or +- * sell copies of the Software, and to permit persons to whom the +- * Software is furnished to do so, subject to the following +- * conditions: +- * +- * The above copyright notice and this permission notice shall be +- * included in all copies or substantial portions of the Software. +- * +- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +- * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +- * OTHER DEALINGS IN THE SOFTWARE. +- */ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++// Copyright 2017 Icenowy Zheng + + /* + * AXP803 Integrated Power Management Chip +@@ -49,6 +10,39 @@ + interrupt-controller; + #interrupt-cells = <1>; + ++ ac_power_supply: ac-power-supply { ++ compatible = "x-powers,axp803-ac-power-supply", ++ "x-powers,axp813-ac-power-supply"; ++ status = "disabled"; ++ }; ++ ++ axp_adc: adc { ++ compatible = "x-powers,axp803-adc", "x-powers,axp813-adc"; ++ #io-channel-cells = <1>; ++ }; ++ ++ axp_gpio: gpio { ++ compatible = "x-powers,axp803-gpio", "x-powers,axp813-gpio"; ++ gpio-controller; ++ #gpio-cells = <2>; ++ ++ gpio0_ldo: gpio0-ldo { ++ pins = "GPIO0"; ++ function = "ldo"; ++ }; ++ ++ gpio1_ldo: gpio1-ldo { ++ pins = "GPIO1"; ++ function = "ldo"; ++ }; ++ }; ++ ++ battery_power_supply: battery-power-supply { ++ compatible = "x-powers,axp803-battery-power-supply", ++ "x-powers,axp813-battery-power-supply"; ++ status = "disabled"; ++ }; ++ + regulators { + /* Default work frequency for buck regulators */ + x-powers,dcdc-freq = <3000>; +@@ -152,4 +146,10 @@ + status = "disabled"; + }; + }; ++ ++ usb_power_supply: usb-power-supply { ++ compatible = "x-powers,axp803-usb-power-supply", ++ "x-powers,axp813-usb-power-supply"; ++ status = "disabled"; ++ }; + }; +-- +2.26.2 + +From e0f7e9ce1a8a889bf7a1c5842700f0cb368bc81b Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Thu, 9 Jul 2020 12:26:34 +0100 +Subject: [PATCH 5/8] arm: dts: Add new sun50i-a64-cpu-opp.dtsi from Linux + 5.8-rc1 + +Sync the Allwinner A64 CPU operating points dtsi from Linux. + +Signed-off-by: Peter Robinson +--- + arch/arm/dts/sun50i-a64-cpu-opp.dtsi | 75 ++++++++++++++++++++++++++++ + 1 file changed, 75 insertions(+) + create mode 100644 arch/arm/dts/sun50i-a64-cpu-opp.dtsi + +diff --git a/arch/arm/dts/sun50i-a64-cpu-opp.dtsi b/arch/arm/dts/sun50i-a64-cpu-opp.dtsi +new file mode 100644 +index 0000000000..578c37490d +--- /dev/null ++++ b/arch/arm/dts/sun50i-a64-cpu-opp.dtsi +@@ -0,0 +1,75 @@ ++// SPDX-License-Identifier: GPL-2.0 ++/* ++ * Copyright (C) 2020 Vasily khoruzhick ++ */ ++ ++/ { ++ cpu0_opp_table: opp_table0 { ++ compatible = "operating-points-v2"; ++ opp-shared; ++ ++ opp-648000000 { ++ opp-hz = /bits/ 64 <648000000>; ++ opp-microvolt = <1040000>; ++ clock-latency-ns = <244144>; /* 8 32k periods */ ++ }; ++ ++ opp-816000000 { ++ opp-hz = /bits/ 64 <816000000>; ++ opp-microvolt = <1100000>; ++ clock-latency-ns = <244144>; /* 8 32k periods */ ++ }; ++ ++ opp-912000000 { ++ opp-hz = /bits/ 64 <912000000>; ++ opp-microvolt = <1120000>; ++ clock-latency-ns = <244144>; /* 8 32k periods */ ++ }; ++ ++ opp-960000000 { ++ opp-hz = /bits/ 64 <960000000>; ++ opp-microvolt = <1160000>; ++ clock-latency-ns = <244144>; /* 8 32k periods */ ++ }; ++ ++ opp-1008000000 { ++ opp-hz = /bits/ 64 <1008000000>; ++ opp-microvolt = <1200000>; ++ clock-latency-ns = <244144>; /* 8 32k periods */ ++ }; ++ ++ opp-1056000000 { ++ opp-hz = /bits/ 64 <1056000000>; ++ opp-microvolt = <1240000>; ++ clock-latency-ns = <244144>; /* 8 32k periods */ ++ }; ++ ++ opp-1104000000 { ++ opp-hz = /bits/ 64 <1104000000>; ++ opp-microvolt = <1260000>; ++ clock-latency-ns = <244144>; /* 8 32k periods */ ++ }; ++ ++ opp-1152000000 { ++ opp-hz = /bits/ 64 <1152000000>; ++ opp-microvolt = <1300000>; ++ clock-latency-ns = <244144>; /* 8 32k periods */ ++ }; ++ }; ++}; ++ ++&cpu0 { ++ operating-points-v2 = <&cpu0_opp_table>; ++}; ++ ++&cpu1 { ++ operating-points-v2 = <&cpu0_opp_table>; ++}; ++ ++&cpu2 { ++ operating-points-v2 = <&cpu0_opp_table>; ++}; ++ ++&cpu3 { ++ operating-points-v2 = <&cpu0_opp_table>; ++}; +-- +2.26.2 + +From b077a5962ba631e198d42c14516426b878c157eb Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Fri, 10 Jul 2020 12:39:21 +0100 +Subject: [PATCH 6/8] arm: dts: Sync the sun50i-a64.dtsi from Linux 5.8-rc1 + +Sync the Allwinner A64 sun50i-a64.dtsi from Linux. + +Signed-off-by: Peter Robinson +--- + arch/arm/dts/sun50i-a64.dtsi | 532 ++++++++++++++++++++++++++++------- + 1 file changed, 434 insertions(+), 98 deletions(-) + +diff --git a/arch/arm/dts/sun50i-a64.dtsi b/arch/arm/dts/sun50i-a64.dtsi +index ff41abc96a..8dfbcd1440 100644 +--- a/arch/arm/dts/sun50i-a64.dtsi ++++ b/arch/arm/dts/sun50i-a64.dtsi +@@ -1,46 +1,7 @@ +-/* +- * Copyright (C) 2016 ARM Ltd. +- * based on the Allwinner H3 dtsi: +- * Copyright (C) 2015 Jens Kuske +- * +- * This file is dual-licensed: you can use it either under the terms +- * of the GPL or the X11 license, at your option. Note that this dual +- * licensing only applies to this file, and not this project as a +- * whole. +- * +- * a) This file is free software; you can redistribute it and/or +- * modify it under the terms of the GNU General Public License as +- * published by the Free Software Foundation; either version 2 of the +- * License, or (at your option) any later version. +- * +- * This file is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * Or, alternatively, +- * +- * b) Permission is hereby granted, free of charge, to any person +- * obtaining a copy of this software and associated documentation +- * files (the "Software"), to deal in the Software without +- * restriction, including without limitation the rights to use, +- * copy, modify, merge, publish, distribute, sublicense, and/or +- * sell copies of the Software, and to permit persons to whom the +- * Software is furnished to do so, subject to the following +- * conditions: +- * +- * The above copyright notice and this permission notice shall be +- * included in all copies or substantial portions of the Software. +- * +- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +- * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +- * OTHER DEALINGS IN THE SOFTWARE. +- */ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++// Copyright (C) 2016 ARM Ltd. ++// based on the Allwinner H3 dtsi: ++// Copyright (C) 2015 Jens Kuske + + #include + #include +@@ -49,6 +10,7 @@ + #include + #include + #include ++#include + + / { + interrupt-parent = <&gic>; +@@ -84,35 +46,47 @@ + #size-cells = <0>; + + cpu0: cpu@0 { +- compatible = "arm,cortex-a53", "arm,armv8"; ++ compatible = "arm,cortex-a53"; + device_type = "cpu"; + reg = <0>; + enable-method = "psci"; + next-level-cache = <&L2>; ++ clocks = <&ccu 21>; ++ clock-names = "cpu"; ++ #cooling-cells = <2>; + }; + + cpu1: cpu@1 { +- compatible = "arm,cortex-a53", "arm,armv8"; ++ compatible = "arm,cortex-a53"; + device_type = "cpu"; + reg = <1>; + enable-method = "psci"; + next-level-cache = <&L2>; ++ clocks = <&ccu 21>; ++ clock-names = "cpu"; ++ #cooling-cells = <2>; + }; + + cpu2: cpu@2 { +- compatible = "arm,cortex-a53", "arm,armv8"; ++ compatible = "arm,cortex-a53"; + device_type = "cpu"; + reg = <2>; + enable-method = "psci"; + next-level-cache = <&L2>; ++ clocks = <&ccu 21>; ++ clock-names = "cpu"; ++ #cooling-cells = <2>; + }; + + cpu3: cpu@3 { +- compatible = "arm,cortex-a53", "arm,armv8"; ++ compatible = "arm,cortex-a53"; + device_type = "cpu"; + reg = <3>; + enable-method = "psci"; + next-level-cache = <&L2>; ++ clocks = <&ccu 21>; ++ clock-names = "cpu"; ++ #cooling-cells = <2>; + }; + + L2: l2-cache { +@@ -139,15 +113,16 @@ + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <32768>; +- clock-output-names = "osc32k"; ++ clock-output-names = "ext-osc32k"; + }; + +- iosc: internal-osc-clk { +- #clock-cells = <0>; +- compatible = "fixed-clock"; +- clock-frequency = <16000000>; +- clock-accuracy = <300000000>; +- clock-output-names = "iosc"; ++ pmu { ++ compatible = "arm,cortex-a53-pmu"; ++ interrupts = , ++ , ++ , ++ ; ++ interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; + }; + + psci { +@@ -155,26 +130,33 @@ + method = "smc"; + }; + +- sound_spdif { ++ sound: sound { + compatible = "simple-audio-card"; +- simple-audio-card,name = "On-board SPDIF"; ++ simple-audio-card,name = "sun50i-a64-audio"; ++ simple-audio-card,format = "i2s"; ++ simple-audio-card,frame-master = <&cpudai>; ++ simple-audio-card,bitclock-master = <&cpudai>; ++ simple-audio-card,mclk-fs = <128>; ++ simple-audio-card,aux-devs = <&codec_analog>; ++ simple-audio-card,routing = ++ "Left DAC", "AIF1 Slot 0 Left", ++ "Right DAC", "AIF1 Slot 0 Right", ++ "AIF1 Slot 0 Left ADC", "Left ADC", ++ "AIF1 Slot 0 Right ADC", "Right ADC"; ++ status = "disabled"; + +- simple-audio-card,cpu { +- sound-dai = <&spdif>; ++ cpudai: simple-audio-card,cpu { ++ sound-dai = <&dai>; + }; + +- simple-audio-card,codec { +- sound-dai = <&spdif_out>; ++ link_codec: simple-audio-card,codec { ++ sound-dai = <&codec>; + }; + }; + +- spdif_out: spdif-out { +- #sound-dai-cells = <0>; +- compatible = "linux,spdif-dit"; +- }; +- + timer { + compatible = "arm,armv8-timer"; ++ allwinner,erratum-unknown1; + interrupts = , + ; + }; + ++ thermal-zones { ++ cpu_thermal: cpu0-thermal { ++ /* milliseconds */ ++ polling-delay-passive = <0>; ++ polling-delay = <0>; ++ thermal-sensors = <&ths 0>; ++ ++ cooling-maps { ++ map0 { ++ trip = <&cpu_alert0>; ++ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, ++ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, ++ <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, ++ <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ }; ++ map1 { ++ trip = <&cpu_alert1>; ++ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, ++ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, ++ <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, ++ <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ }; ++ }; ++ ++ trips { ++ cpu_alert0: cpu_alert0 { ++ /* milliCelsius */ ++ temperature = <75000>; ++ hysteresis = <2000>; ++ type = "passive"; ++ }; ++ ++ cpu_alert1: cpu_alert1 { ++ /* milliCelsius */ ++ temperature = <90000>; ++ hysteresis = <2000>; ++ type = "hot"; ++ }; ++ ++ cpu_crit: cpu_crit { ++ /* milliCelsius */ ++ temperature = <110000>; ++ hysteresis = <2000>; ++ type = "critical"; ++ }; ++ }; ++ }; ++ ++ gpu0_thermal: gpu0-thermal { ++ /* milliseconds */ ++ polling-delay-passive = <0>; ++ polling-delay = <0>; ++ thermal-sensors = <&ths 1>; ++ }; ++ ++ gpu1_thermal: gpu1-thermal { ++ /* milliseconds */ ++ polling-delay-passive = <0>; ++ polling-delay = <0>; ++ thermal-sensors = <&ths 2>; ++ }; ++ }; ++ + soc { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + +- de2@1000000 { ++ bus@1000000 { + compatible = "allwinner,sun50i-a64-de2"; + reg = <0x1000000 0x400000>; + allwinner,sram = <&de2_sram 1>; +@@ -201,16 +246,28 @@ + + display_clocks: clock@0 { + compatible = "allwinner,sun50i-a64-de2-clk"; +- reg = <0x0 0x100000>; +- clocks = <&ccu CLK_DE>, +- <&ccu CLK_BUS_DE>; +- clock-names = "mod", +- "bus"; ++ reg = <0x0 0x10000>; ++ clocks = <&ccu CLK_BUS_DE>, ++ <&ccu CLK_DE>; ++ clock-names = "bus", ++ "mod"; + resets = <&ccu RST_BUS_DE>; + #clock-cells = <1>; + #reset-cells = <1>; + }; + ++ rotate: rotate@20000 { ++ compatible = "allwinner,sun50i-a64-de2-rotate", ++ "allwinner,sun8i-a83t-de2-rotate"; ++ reg = <0x20000 0x10000>; ++ interrupts = ; ++ clocks = <&display_clocks CLK_BUS_ROT>, ++ <&display_clocks CLK_ROT>; ++ clock-names = "bus", ++ "mod"; ++ resets = <&display_clocks RST_ROT>; ++ }; ++ + mixer0: mixer@100000 { + compatible = "allwinner,sun50i-a64-de2-mixer-0"; + reg = <0x100000 0x100000>; +@@ -225,11 +282,19 @@ + #size-cells = <0>; + + mixer0_out: port@1 { ++ #address-cells = <1>; ++ #size-cells = <0>; + reg = <1>; + +- mixer0_out_tcon0: endpoint { ++ mixer0_out_tcon0: endpoint@0 { ++ reg = <0>; + remote-endpoint = <&tcon0_in_mixer0>; + }; ++ ++ mixer0_out_tcon1: endpoint@1 { ++ reg = <1>; ++ remote-endpoint = <&tcon1_in_mixer0>; ++ }; + }; + }; + }; +@@ -248,9 +313,17 @@ + #size-cells = <0>; + + mixer1_out: port@1 { ++ #address-cells = <1>; ++ #size-cells = <0>; + reg = <1>; + +- mixer1_out_tcon1: endpoint { ++ mixer1_out_tcon0: endpoint@0 { ++ reg = <0>; ++ remote-endpoint = <&tcon0_in_mixer1>; ++ }; ++ ++ mixer1_out_tcon1: endpoint@1 { ++ reg = <1>; + remote-endpoint = <&tcon1_in_mixer1>; + }; + }; +@@ -259,8 +332,7 @@ + }; + + syscon: syscon@1c00000 { +- compatible = "allwinner,sun50i-a64-system-control", +- "syscon"; ++ compatible = "allwinner,sun50i-a64-system-control"; + reg = <0x01c00000 0x1000>; + #address-cells = <1>; + #size-cells = <1>; +@@ -278,6 +350,20 @@ + reg = <0x0000 0x28000>; + }; + }; ++ ++ sram_c1: sram@1d00000 { ++ compatible = "mmio-sram"; ++ reg = <0x01d00000 0x40000>; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ranges = <0 0x01d00000 0x40000>; ++ ++ ve_sram: sram-section@0 { ++ compatible = "allwinner,sun50i-a64-sram-c1", ++ "allwinner,sun4i-a10-sram-c1"; ++ reg = <0x000000 0x40000>; ++ }; ++ }; + }; + + dma: dma-controller@1c02000 { +@@ -299,6 +385,7 @@ + clocks = <&ccu CLK_BUS_TCON0>, <&ccu CLK_TCON0>; + clock-names = "ahb", "tcon-ch0"; + clock-output-names = "tcon-pixel-clock"; ++ #clock-cells = <0>; + resets = <&ccu RST_BUS_TCON0>, <&ccu RST_BUS_LVDS>; + reset-names = "lcd", "lvds"; + +@@ -315,12 +402,23 @@ + reg = <0>; + remote-endpoint = <&mixer0_out_tcon0>; + }; ++ ++ tcon0_in_mixer1: endpoint@1 { ++ reg = <1>; ++ remote-endpoint = <&mixer1_out_tcon0>; ++ }; + }; + + tcon0_out: port@1 { + #address-cells = <1>; + #size-cells = <0>; + reg = <1>; ++ ++ tcon0_out_dsi: endpoint@1 { ++ reg = <1>; ++ remote-endpoint = <&dsi_in_tcon0>; ++ allwinner,tcon-channel = <1>; ++ }; + }; + }; + }; +@@ -340,9 +438,17 @@ + #size-cells = <0>; + + tcon1_in: port@0 { ++ #address-cells = <1>; ++ #size-cells = <0>; + reg = <0>; + +- tcon1_in_mixer1: endpoint { ++ tcon1_in_mixer0: endpoint@0 { ++ reg = <0>; ++ remote-endpoint = <&mixer0_out_tcon1>; ++ }; ++ ++ tcon1_in_mixer1: endpoint@1 { ++ reg = <1>; + remote-endpoint = <&mixer1_out_tcon1>; + }; + }; +@@ -360,6 +466,17 @@ + }; + }; + ++ video-codec@1c0e000 { ++ compatible = "allwinner,sun50i-a64-video-engine"; ++ reg = <0x01c0e000 0x1000>; ++ clocks = <&ccu CLK_BUS_VE>, <&ccu CLK_VE>, ++ <&ccu CLK_DRAM_VE>; ++ clock-names = "ahb", "mod", "ram"; ++ resets = <&ccu RST_BUS_VE>; ++ interrupts = ; ++ allwinner,sram = <&ve_sram 1>; ++ }; ++ + mmc0: mmc@1c0f000 { + compatible = "allwinner,sun50i-a64-mmc"; + reg = <0x01c0f000 0x1000>; +@@ -405,6 +522,31 @@ + sid: eeprom@1c14000 { + compatible = "allwinner,sun50i-a64-sid"; + reg = <0x1c14000 0x400>; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ ths_calibration: thermal-sensor-calibration@34 { ++ reg = <0x34 0x8>; ++ }; ++ }; ++ ++ crypto: crypto@1c15000 { ++ compatible = "allwinner,sun50i-a64-crypto"; ++ reg = <0x01c15000 0x1000>; ++ interrupts = ; ++ clocks = <&ccu CLK_BUS_CE>, <&ccu CLK_CE>; ++ clock-names = "bus", "mod"; ++ resets = <&ccu RST_BUS_CE>; ++ }; ++ ++ msgbox: mailbox@1c17000 { ++ compatible = "allwinner,sun50i-a64-msgbox", ++ "allwinner,sun6i-a31-msgbox"; ++ reg = <0x01c17000 0x1000>; ++ clocks = <&ccu CLK_BUS_MSGBOX>; ++ resets = <&ccu RST_BUS_MSGBOX>; ++ interrupts = ; ++ #mbox-cells = <1>; + }; + + usb_otg: usb@1c19000 { +@@ -417,6 +559,7 @@ + phys = <&usbphy 0>; + phy-names = "usb"; + extcon = <&usbphy 0>; ++ dr_mode = "otg"; + status = "disabled"; + }; + +@@ -491,7 +634,7 @@ + ccu: clock@1c20000 { + compatible = "allwinner,sun50i-a64-ccu"; + reg = <0x01c20000 0x400>; +- clocks = <&osc24M>, <&osc32k>; ++ clocks = <&osc24M>, <&rtc 0>; + clock-names = "hosc", "losc"; + #clock-cells = <1>; + #reset-cells = <1>; +@@ -503,22 +646,50 @@ + interrupts = , + , + ; +- clocks = <&ccu 58>; ++ clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&rtc 0>; ++ clock-names = "apb", "hosc", "losc"; + gpio-controller; + #gpio-cells = <3>; + interrupt-controller; + #interrupt-cells = <3>; + +- i2c0_pins: i2c0_pins { ++ csi_pins: csi-pins { ++ pins = "PE0", "PE2", "PE3", "PE4", "PE5", "PE6", ++ "PE7", "PE8", "PE9", "PE10", "PE11"; ++ function = "csi"; ++ }; ++ ++ /omit-if-no-ref/ ++ csi_mclk_pin: csi-mclk-pin { ++ pins = "PE1"; ++ function = "csi"; ++ }; ++ ++ i2c0_pins: i2c0-pins { + pins = "PH0", "PH1"; + function = "i2c0"; + }; + +- i2c1_pins: i2c1_pins { ++ i2c1_pins: i2c1-pins { + pins = "PH2", "PH3"; + function = "i2c1"; + }; + ++ i2c2_pins: i2c2-pins { ++ pins = "PE14", "PE15"; ++ function = "i2c2"; ++ }; ++ ++ /omit-if-no-ref/ ++ lcd_rgb666_pins: lcd-rgb666-pins { ++ pins = "PD0", "PD1", "PD2", "PD3", "PD4", ++ "PD5", "PD6", "PD7", "PD8", "PD9", ++ "PD10", "PD11", "PD12", "PD13", ++ "PD14", "PD15", "PD16", "PD17", ++ "PD18", "PD19", "PD20", "PD21"; ++ function = "lcd0"; ++ }; ++ + mmc0_pins: mmc0-pins { + pins = "PF0", "PF1", "PF2", "PF3", + "PF4", "PF5"; +@@ -551,19 +722,19 @@ + bias-pull-up; + }; + +- pwm_pin: pwm_pin { ++ pwm_pin: pwm-pin { + pins = "PD22"; + function = "pwm"; + }; + +- rmii_pins: rmii_pins { ++ rmii_pins: rmii-pins { + pins = "PD10", "PD11", "PD13", "PD14", "PD17", + "PD18", "PD19", "PD20", "PD22", "PD23"; + function = "emac"; + drive-strength = <40>; + }; + +- rgmii_pins: rgmii_pins { ++ rgmii_pins: rgmii-pins { + pins = "PD8", "PD9", "PD10", "PD11", "PD12", + "PD13", "PD15", "PD16", "PD17", "PD18", + "PD19", "PD20", "PD21", "PD22", "PD23"; +@@ -571,17 +742,17 @@ + drive-strength = <40>; + }; + +- spdif_tx_pin: spdif { ++ spdif_tx_pin: spdif-tx-pin { + pins = "PH8"; + function = "spdif"; + }; + +- spi0_pins: spi0 { ++ spi0_pins: spi0-pins { + pins = "PC0", "PC1", "PC2", "PC3"; + function = "spi0"; + }; + +- spi1_pins: spi1 { ++ spi1_pins: spi1-pins { + pins = "PD0", "PD1", "PD2", "PD3"; + function = "spi1"; + }; +@@ -591,12 +762,12 @@ + function = "uart0"; + }; + +- uart1_pins: uart1_pins { ++ uart1_pins: uart1-pins { + pins = "PG6", "PG7"; + function = "uart1"; + }; + +- uart1_rts_cts_pins: uart1_rts_cts_pins { ++ uart1_rts_cts_pins: uart1-rts-cts-pins { + pins = "PG8", "PG9"; + function = "uart1"; + }; +@@ -638,6 +809,14 @@ + status = "disabled"; + }; + ++ lradc: lradc@1c21800 { ++ compatible = "allwinner,sun50i-a64-lradc", ++ "allwinner,sun8i-a83t-r-lradc"; ++ reg = <0x01c21800 0x400>; ++ interrupts = ; ++ status = "disabled"; ++ }; ++ + i2s0: i2s@1c22000 { + #sound-dai-cells = <0>; + compatible = "allwinner,sun50i-a64-i2s", +@@ -666,6 +845,41 @@ + status = "disabled"; + }; + ++ dai: dai@1c22c00 { ++ #sound-dai-cells = <0>; ++ compatible = "allwinner,sun50i-a64-codec-i2s"; ++ reg = <0x01c22c00 0x200>; ++ interrupts = ; ++ clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>; ++ clock-names = "apb", "mod"; ++ resets = <&ccu RST_BUS_CODEC>; ++ dmas = <&dma 15>, <&dma 15>; ++ dma-names = "rx", "tx"; ++ status = "disabled"; ++ }; ++ ++ codec: codec@1c22e00 { ++ #sound-dai-cells = <0>; ++ compatible = "allwinner,sun8i-a33-codec"; ++ reg = <0x01c22e00 0x600>; ++ interrupts = ; ++ clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>; ++ clock-names = "bus", "mod"; ++ status = "disabled"; ++ }; ++ ++ ths: thermal-sensor@1c25000 { ++ compatible = "allwinner,sun50i-a64-ths"; ++ reg = <0x01c25000 0x100>; ++ clocks = <&ccu CLK_BUS_THS>, <&ccu CLK_THS>; ++ clock-names = "bus", "mod"; ++ interrupts = ; ++ resets = <&ccu RST_BUS_THS>; ++ nvmem-cells = <&ths_calibration>; ++ nvmem-cell-names = "calibration"; ++ #thermal-sensor-cells = <1>; ++ }; ++ + uart0: serial@1c28000 { + compatible = "snps,dw-apb-uart"; + reg = <0x01c28000 0x400>; +@@ -727,6 +941,8 @@ + interrupts = ; + clocks = <&ccu CLK_BUS_I2C0>; + resets = <&ccu RST_BUS_I2C0>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&i2c0_pins>; + status = "disabled"; + #address-cells = <1>; + #size-cells = <0>; +@@ -738,6 +954,8 @@ + interrupts = ; + clocks = <&ccu CLK_BUS_I2C1>; + resets = <&ccu RST_BUS_I2C1>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&i2c1_pins>; + status = "disabled"; + #address-cells = <1>; + #size-cells = <0>; +@@ -749,12 +967,13 @@ + interrupts = ; + clocks = <&ccu CLK_BUS_I2C2>; + resets = <&ccu RST_BUS_I2C2>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&i2c2_pins>; + status = "disabled"; + #address-cells = <1>; + #size-cells = <0>; + }; + +- + spi0: spi@1c68000 { + compatible = "allwinner,sun8i-h3-spi"; + reg = <0x01c68000 0x1000>; +@@ -808,6 +1027,28 @@ + }; + }; + ++ mali: gpu@1c40000 { ++ compatible = "allwinner,sun50i-a64-mali", "arm,mali-400"; ++ reg = <0x01c40000 0x10000>; ++ interrupts = , ++ , ++ , ++ , ++ , ++ , ++ ; ++ interrupt-names = "gp", ++ "gpmmu", ++ "pp0", ++ "ppmmu0", ++ "pp1", ++ "ppmmu1", ++ "pmu"; ++ clocks = <&ccu CLK_BUS_GPU>, <&ccu CLK_GPU>; ++ clock-names = "bus", "core"; ++ resets = <&ccu RST_BUS_GPU>; ++ }; ++ + gic: interrupt-controller@1c81000 { + compatible = "arm,gic-400"; + reg = <0x01c81000 0x1000>, +@@ -830,6 +1071,75 @@ + status = "disabled"; + }; + ++ mbus: dram-controller@1c62000 { ++ compatible = "allwinner,sun50i-a64-mbus"; ++ reg = <0x01c62000 0x1000>; ++ clocks = <&ccu 112>; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ dma-ranges = <0x00000000 0x40000000 0xc0000000>; ++ #interconnect-cells = <1>; ++ }; ++ ++ csi: csi@1cb0000 { ++ compatible = "allwinner,sun50i-a64-csi"; ++ reg = <0x01cb0000 0x1000>; ++ interrupts = ; ++ clocks = <&ccu CLK_BUS_CSI>, ++ <&ccu CLK_CSI_SCLK>, ++ <&ccu CLK_DRAM_CSI>; ++ clock-names = "bus", "mod", "ram"; ++ resets = <&ccu RST_BUS_CSI>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&csi_pins>; ++ status = "disabled"; ++ }; ++ ++ dsi: dsi@1ca0000 { ++ compatible = "allwinner,sun50i-a64-mipi-dsi"; ++ reg = <0x01ca0000 0x1000>; ++ interrupts = ; ++ clocks = <&ccu CLK_BUS_MIPI_DSI>; ++ resets = <&ccu RST_BUS_MIPI_DSI>; ++ phys = <&dphy>; ++ phy-names = "dphy"; ++ status = "disabled"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ port { ++ dsi_in_tcon0: endpoint { ++ remote-endpoint = <&tcon0_out_dsi>; ++ }; ++ }; ++ }; ++ ++ dphy: d-phy@1ca1000 { ++ compatible = "allwinner,sun50i-a64-mipi-dphy", ++ "allwinner,sun6i-a31-mipi-dphy"; ++ reg = <0x01ca1000 0x1000>; ++ clocks = <&ccu CLK_BUS_MIPI_DSI>, ++ <&ccu CLK_DSI_DPHY>; ++ clock-names = "bus", "mod"; ++ resets = <&ccu RST_BUS_MIPI_DSI>; ++ status = "disabled"; ++ #phy-cells = <0>; ++ }; ++ ++ deinterlace: deinterlace@1e00000 { ++ compatible = "allwinner,sun50i-a64-deinterlace", ++ "allwinner,sun8i-h3-deinterlace"; ++ reg = <0x01e00000 0x20000>; ++ clocks = <&ccu CLK_BUS_DEINTERLACE>, ++ <&ccu CLK_DEINTERLACE>, ++ <&ccu CLK_DRAM_DEINTERLACE>; ++ clock-names = "bus", "mod", "ram"; ++ resets = <&ccu RST_BUS_DEINTERLACE>; ++ interrupts = ; ++ interconnects = <&mbus 9>; ++ interconnect-names = "dma-mem"; ++ }; ++ + hdmi: hdmi@1ee0000 { + compatible = "allwinner,sun50i-a64-dw-hdmi", + "allwinner,sun8i-a83t-dw-hdmi"; +@@ -842,7 +1152,7 @@ + resets = <&ccu RST_BUS_HDMI1>; + reset-names = "ctrl"; + phys = <&hdmi_phy>; +- phy-names = "hdmi-phy"; ++ phy-names = "phy"; + status = "disabled"; + + ports { +@@ -867,7 +1177,7 @@ + compatible = "allwinner,sun50i-a64-hdmi-phy"; + reg = <0x01ef0000 0x10000>; + clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_DDC>, +- <&ccu 7>; ++ <&ccu CLK_PLL_VIDEO0>; + clock-names = "bus", "mod", "pll-0"; + resets = <&ccu RST_BUS_HDMI0>; + reset-names = "phy"; +@@ -875,11 +1185,12 @@ + }; + + rtc: rtc@1f00000 { +- compatible = "allwinner,sun6i-a31-rtc"; +- reg = <0x01f00000 0x54>; ++ compatible = "allwinner,sun50i-a64-rtc", ++ "allwinner,sun8i-h3-rtc"; ++ reg = <0x01f00000 0x400>; + interrupts = , + ; +- clock-output-names = "rtc-osc32k", "rtc-osc32k-out"; ++ clock-output-names = "osc32k", "osc32k-out", "iosc"; + clocks = <&osc32k>; + #clock-cells = <1>; + }; +@@ -896,13 +1207,19 @@ + r_ccu: clock@1f01400 { + compatible = "allwinner,sun50i-a64-r-ccu"; + reg = <0x01f01400 0x100>; +- clocks = <&osc24M>, <&osc32k>, <&iosc>, +- <&ccu 11>; ++ clocks = <&osc24M>, <&rtc 0>, <&rtc 2>, ++ <&ccu CLK_PLL_PERIPH0>; + clock-names = "hosc", "losc", "iosc", "pll-periph"; + #clock-cells = <1>; + #reset-cells = <1>; + }; + ++ codec_analog: codec-analog@1f015c0 { ++ compatible = "allwinner,sun50i-a64-codec-analog"; ++ reg = <0x01f015c0 0x4>; ++ status = "disabled"; ++ }; ++ + r_i2c: i2c@1f02400 { + compatible = "allwinner,sun50i-a64-i2c", + "allwinner,sun6i-a31-i2c"; +@@ -915,6 +1232,19 @@ + #size-cells = <0>; + }; + ++ r_ir: ir@1f02000 { ++ compatible = "allwinner,sun50i-a64-ir", ++ "allwinner,sun6i-a31-ir"; ++ reg = <0x01f02000 0x400>; ++ clocks = <&r_ccu CLK_APB0_IR>, <&r_ccu CLK_IR>; ++ clock-names = "apb", "ir"; ++ resets = <&r_ccu RST_APB0_IR>; ++ interrupts = ; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&r_ir_rx_pin>; ++ status = "disabled"; ++ }; ++ + r_pwm: pwm@1f03800 { + compatible = "allwinner,sun50i-a64-pwm", + "allwinner,sun5i-a13-pwm"; +@@ -942,12 +1272,17 @@ + function = "s_i2c"; + }; + +- r_pwm_pin: pwm { ++ r_ir_rx_pin: r-ir-rx-pin { ++ pins = "PL11"; ++ function = "s_cir_rx"; ++ }; ++ ++ r_pwm_pin: r-pwm-pin { + pins = "PL10"; + function = "s_pwm"; + }; + +- r_rsb_pins: rsb { ++ r_rsb_pins: r-rsb-pins { + pins = "PL0", "PL1"; + function = "s_rsb"; + }; +@@ -972,6 +1307,7 @@ + "allwinner,sun6i-a31-wdt"; + reg = <0x01c20ca0 0x20>; + interrupts = ; ++ clocks = <&osc24M>; + }; + }; + }; +-- +2.26.2 diff --git a/Allwinner-fix-booting-on-a-number-of-devices.patch b/Allwinner-fix-booting-on-a-number-of-devices.patch deleted file mode 100644 index 2b08e13..0000000 --- a/Allwinner-fix-booting-on-a-number-of-devices.patch +++ /dev/null @@ -1,27 +0,0 @@ -From b8ea3cebde98866b7cbb4e8f9bb6dfdee529a549 Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Wed, 27 Aug 2025 00:23:28 +0100 -Subject: [PATCH] Allwinner: fix booting on a number of devices - -Revert "sunxi: enable MMU_PGPROT proper page table protection" - -This reverts commit 16cfccda4dbf0b53473b8212897f5c63bfbeb6e1. ---- - arch/arm/Kconfig | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig -index 40368abc297..b8be270e4d7 100644 ---- a/arch/arm/Kconfig -+++ b/arch/arm/Kconfig -@@ -1207,7 +1207,6 @@ config ARCH_SUNXI - select DM_SPI_FLASH if SPI && MTD - select DM_KEYBOARD - select DM_SERIAL -- select MMU_PGPROT if ARM64 - select OF_BOARD_SETUP - select OF_CONTROL - select PINCTRL --- -2.51.0 - diff --git a/Fix-NVMe-not-only-on-Raspberry-Pi-5.patch b/Fix-NVMe-not-only-on-Raspberry-Pi-5.patch deleted file mode 100644 index a52ce84..0000000 --- a/Fix-NVMe-not-only-on-Raspberry-Pi-5.patch +++ /dev/null @@ -1,405 +0,0 @@ -From patchwork Mon Jul 6 17:21:47 2026 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Torsten Duwe -X-Patchwork-Id: 2265604 -Return-Path: -X-Original-To: incoming@patchwork.ozlabs.org -Delivered-To: patchwork-incoming@legolas.ozlabs.org -Authentication-Results: legolas.ozlabs.org; - spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de - (client-ip=85.214.62.61; helo=phobos.denx.de; - envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org) -Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) - (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) - key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384) - (No client certificate requested) - by legolas.ozlabs.org (Postfix) with ESMTPS id 4gvB431Qwzz1xqc - for ; Tue, 07 Jul 2026 03:21:55 +1000 (AEST) -Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) - by phobos.denx.de (Postfix) with ESMTP id 179C084942; - Mon, 6 Jul 2026 19:21:52 +0200 (CEST) -Authentication-Results: phobos.denx.de; - dmarc=fail (p=none dis=none) header.from=lst.de -Authentication-Results: phobos.denx.de; - spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de -Received: by phobos.denx.de (Postfix, from userid 109) - id 82ADE8490A; Mon, 6 Jul 2026 19:21:51 +0200 (CEST) -X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de -X-Spam-Level: -X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, - RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=ham - autolearn_force=no version=3.4.2 -Received: from verein.lst.de (verein.lst.de [213.95.11.211]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by phobos.denx.de (Postfix) with ESMTPS id 9F24C846B4 - for ; Mon, 6 Jul 2026 19:21:49 +0200 (CEST) -Authentication-Results: phobos.denx.de; - dmarc=fail (p=none dis=none) header.from=lst.de -Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=duwe@lst.de -Received: by verein.lst.de (Postfix, from userid 2005) - id C934268B05; Mon, 6 Jul 2026 19:21:47 +0200 (CEST) -In-Reply-To: <20260706172028.C148E68BEB@verein.lst.de> -References: <20260706172028.C148E68BEB@verein.lst.de> -Subject: [PATCH v2 1/4] core: Skip parent device nodes without a DT reference - when looking for dma-ranges -To: Neil Armstrong , - Andrew Goodbody , Bin Meng , - Simon Glass -Cc: Tom Rini , Matthias Brugger , - Peter Robinson , - Mattijs Korpershoek , - Marek Vasut , - Heiko Schocher , Svyatoslav Ryhel , - "Lucien.Jheng" , Rasmus Villemoes , - Martin Schwan , - "Markus Schneider-Pargmann (TI.com)" , - Prashant Kamble , - Denis Mukhin , Sughosh Ganu , - u-boot@lists.denx.de -Message-Id: <20260706172147.C934268B05@verein.lst.de> -Date: Mon, 6 Jul 2026 19:21:47 +0200 (CEST) -From: duwe@lst.de (Torsten Duwe) -X-BeenThere: u-boot@lists.denx.de -X-Mailman-Version: 2.1.39 -Precedence: list -List-Id: U-Boot discussion -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: u-boot-bounces@lists.denx.de -Sender: "U-Boot" -X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de -X-Virus-Status: Clean - -From: Torsten Duwe - -If a device node got created dynamically, there is no guarantee that the -parent node has an associated device tree node which could specify dma -constraints. Especially PCI(e) enumeration adds intermediate "bus nodes", -also dynamically. - -Try harder to find the correct configuration by walking up the tree until -a DT association is found. - -Suggested-by: Neil Armstrong -Signed-off-by: Torsten Duwe -Reviewed-by: Peter Robinson -Tested-by: Peter Robinson ---- - drivers/core/device.c | 14 +++++++++++++- - 1 file changed, 13 insertions(+), 1 deletion(-) - -diff --git a/drivers/core/device.c b/drivers/core/device.c -index d365204ba11..b6d00cf4714 100644 ---- a/drivers/core/device.c -+++ b/drivers/core/device.c -@@ -459,7 +459,19 @@ static int device_get_dma_constraints(struct udevice *dev) - u64 size = 0; - int ret; - -- if (!CONFIG_IS_ENABLED(DM_DMA) || !parent || !dev_has_ofnode(parent)) -+ if (!CONFIG_IS_ENABLED(DM_DMA) || !parent) -+ return 0; -+ -+ /* Look for the first node in the parent chain */ -+ while (parent) { -+ if (dev_has_ofnode(parent)) -+ break; -+ -+ parent = dev_get_parent(parent); -+ } -+ -+ /* No parents have a node, bail out */ -+ if (!parent) - return 0; - - /* - -From patchwork Mon Jul 6 17:21:50 2026 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Torsten Duwe -X-Patchwork-Id: 2265605 -Return-Path: -X-Original-To: incoming@patchwork.ozlabs.org -Delivered-To: patchwork-incoming@legolas.ozlabs.org -Authentication-Results: legolas.ozlabs.org; - spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de - (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; - envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org) -Received: from phobos.denx.de (phobos.denx.de - [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) - (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) - key-exchange x25519) - (No client certificate requested) - by legolas.ozlabs.org (Postfix) with ESMTPS id 4gvB481pfXz1xqc - for ; Tue, 07 Jul 2026 03:22:00 +1000 (AEST) -Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) - by phobos.denx.de (Postfix) with ESMTP id 9A59684994; - Mon, 6 Jul 2026 19:21:55 +0200 (CEST) -Authentication-Results: phobos.denx.de; - dmarc=fail (p=none dis=none) header.from=lst.de -Authentication-Results: phobos.denx.de; - spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de -Received: by phobos.denx.de (Postfix, from userid 109) - id EB7D384979; Mon, 6 Jul 2026 19:21:53 +0200 (CEST) -X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de -X-Spam-Level: -X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, - RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=ham - autolearn_force=no version=3.4.2 -Received: from verein.lst.de (verein.lst.de [213.95.11.211]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by phobos.denx.de (Postfix) with ESMTPS id EE61C846B4 - for ; Mon, 6 Jul 2026 19:21:51 +0200 (CEST) -Authentication-Results: phobos.denx.de; - dmarc=fail (p=none dis=none) header.from=lst.de -Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=duwe@lst.de -Received: by verein.lst.de (Postfix, from userid 2005) - id 464E868BEB; Mon, 6 Jul 2026 19:21:50 +0200 (CEST) -In-Reply-To: <20260706172028.C148E68BEB@verein.lst.de> -References: <20260706172028.C148E68BEB@verein.lst.de> -Subject: [PATCH v2 2/4] test: Add a unit test in phys_to_bus for dynamically - created device nodes -To: Neil Armstrong , - Andrew Goodbody , Bin Meng , - Simon Glass -Cc: Tom Rini , Matthias Brugger , - Peter Robinson , - Mattijs Korpershoek , - Marek Vasut , - Heiko Schocher , Svyatoslav Ryhel , - "Lucien.Jheng" , Rasmus Villemoes , - Martin Schwan , - "Markus Schneider-Pargmann (TI.com)" , - Prashant Kamble , - Denis Mukhin , Sughosh Ganu , - u-boot@lists.denx.de -Message-Id: <20260706172150.464E868BEB@verein.lst.de> -Date: Mon, 6 Jul 2026 19:21:50 +0200 (CEST) -From: duwe@lst.de (Torsten Duwe) -X-BeenThere: u-boot@lists.denx.de -X-Mailman-Version: 2.1.39 -Precedence: list -List-Id: U-Boot discussion -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: u-boot-bounces@lists.denx.de -Sender: "U-Boot" -X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de -X-Virus-Status: Clean - -From: Torsten Duwe - -In order to test whether device_get_dma_constraints() is now able to skip -device nodes without a DT association, temporarily remove those on 2 newly- -created nodes. - -Signed-off-by: Torsten Duwe ---- - -This test indeed makes a different whether the previous change is -applied or not, but *only* reliably for the non-flat-tree case (!?). -On the flat tree, it always fails after (reverse) applying it. - -Either the previous patch is incomplete, or, more likely, the test -assumptions here are not all valid. Suggestions welcome (especially -how to create device nodes from a device tree without a reference to -their origin ;-) - ---- - arch/sandbox/dts/test.dts | 9 +++++++++ - test/dm/phys2bus.c | 25 ++++++++++++++++++++++++- - 2 files changed, 33 insertions(+), 1 deletion(-) - -diff --git a/arch/sandbox/dts/test.dts b/arch/sandbox/dts/test.dts -index 0887de4333b..1d92e85c739 100644 ---- a/arch/sandbox/dts/test.dts -+++ b/arch/sandbox/dts/test.dts -@@ -656,6 +656,15 @@ - subnode@0 { - compatible = "denx,u-boot-fdt-test"; - }; -+ bus@7 { -+ #address-cells = <1>; -+ #size-cells = <1>; -+ compatible = "denx,u-boot-test-bus"; -+ -+ subnode@8 { -+ compatible = "denx,u-boot-fdt-test"; -+ }; -+ }; - }; - - mmio-bus@1 { -diff --git a/test/dm/phys2bus.c b/test/dm/phys2bus.c -index 67f33904943..858ed5410e2 100644 ---- a/test/dm/phys2bus.c -+++ b/test/dm/phys2bus.c -@@ -15,7 +15,8 @@ - - static int dm_test_phys_to_bus(struct unit_test_state *uts) - { -- struct udevice *dev; -+ struct udevice *dev, *pdev; -+ ofnode psave, nsave; - ofnode node; - - node = ofnode_path("/mmio-bus@0"); -@@ -31,6 +32,29 @@ static int dm_test_phys_to_bus(struct unit_test_state *uts) - ut_asserteq_addr((void*)0x1003ffffULL, (void*)dev_phys_to_bus(dev, 0x3ffff)); - ut_asserteq_addr((void*)0x3ffffULL, (void*)(ulong)dev_bus_to_phys(dev, 0x1003ffff)); - -+#if CONFIG_IS_ENABLED(OF_REAL) -+ /* dma-ranges are on the grandparent bus node, -+ * OF nodes neither here nor at parent -+ */ -+ node = ofnode_path("/mmio-bus@0/bus@7"); -+ ut_assert(ofnode_valid(node)); -+ ut_assertok(uclass_get_device_by_ofnode(UCLASS_TEST_BUS, node, &pdev)); -+ -+ /* pretend the devices were discovered dynamically and have no OF node */ -+ psave = pdev->node_; -+ pdev->node_.np = NULL; -+ node = ofnode_path("/mmio-bus@0/bus@7/subnode@8"); -+ ut_assert(ofnode_valid(node)); -+ nsave = dev->node_; -+ dev->node_.np = NULL; -+ ut_assertok(uclass_get_device_by_ofnode(UCLASS_TEST_FDT, node, &dev)); -+ -+ ut_asserteq_addr((void *)0x1003ffffULL, (void *)dev_phys_to_bus(dev, 0x3ffff)); -+ ut_asserteq_addr((void *)0x3ffffULL, (void *)(ulong)dev_bus_to_phys(dev, 0x1003ffff)); -+ -+ pdev->node_ = psave; -+ dev->node_ = nsave; -+#endif - return 0; - } - DM_TEST(dm_test_phys_to_bus, UTF_SCAN_PDATA | UTF_SCAN_FDT); - -From patchwork Mon Jul 6 17:21:54 2026 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Torsten Duwe -X-Patchwork-Id: 2265607 -Return-Path: -X-Original-To: incoming@patchwork.ozlabs.org -Delivered-To: patchwork-incoming@legolas.ozlabs.org -Authentication-Results: legolas.ozlabs.org; - spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de - (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; - envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org) -Received: from phobos.denx.de (phobos.denx.de - [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) - (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) - key-exchange x25519) - (No client certificate requested) - by legolas.ozlabs.org (Postfix) with ESMTPS id 4gvB4R378Lz1xqc - for ; Tue, 07 Jul 2026 03:22:15 +1000 (AEST) -Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) - by phobos.denx.de (Postfix) with ESMTP id 3FDAE8490A; - Mon, 6 Jul 2026 19:21:59 +0200 (CEST) -Authentication-Results: phobos.denx.de; - dmarc=fail (p=none dis=none) header.from=lst.de -Authentication-Results: phobos.denx.de; - spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de -Received: by phobos.denx.de (Postfix, from userid 109) - id 17F418490A; Mon, 6 Jul 2026 19:21:58 +0200 (CEST) -X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de -X-Spam-Level: -X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, - RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=ham - autolearn_force=no version=3.4.2 -Received: from verein.lst.de (verein.lst.de [213.95.11.211]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by phobos.denx.de (Postfix) with ESMTPS id 1D593849A4 - for ; Mon, 6 Jul 2026 19:21:56 +0200 (CEST) -Authentication-Results: phobos.denx.de; - dmarc=fail (p=none dis=none) header.from=lst.de -Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=duwe@lst.de -Received: by verein.lst.de (Postfix, from userid 2005) - id B506B68CFE; Mon, 6 Jul 2026 19:21:54 +0200 (CEST) -In-Reply-To: <20260706172028.C148E68BEB@verein.lst.de> -References: <20260706172028.C148E68BEB@verein.lst.de> -Subject: [PATCH v2 4/4] configs: enable NVMe -To: Neil Armstrong , - Andrew Goodbody , Bin Meng , - Simon Glass -Cc: Tom Rini , Matthias Brugger , - Peter Robinson , - Mattijs Korpershoek , - Marek Vasut , - Heiko Schocher , Svyatoslav Ryhel , - "Lucien.Jheng" , Rasmus Villemoes , - Martin Schwan , - "Markus Schneider-Pargmann (TI.com)" , - Prashant Kamble , - Denis Mukhin , Sughosh Ganu , - u-boot@lists.denx.de -Message-Id: <20260706172154.B506B68CFE@verein.lst.de> -Date: Mon, 6 Jul 2026 19:21:54 +0200 (CEST) -From: duwe@lst.de (Torsten Duwe) -X-BeenThere: u-boot@lists.denx.de -X-Mailman-Version: 2.1.39 -Precedence: list -List-Id: U-Boot discussion -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: u-boot-bounces@lists.denx.de -Sender: "U-Boot" -X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de -X-Virus-Status: Clean - -From: Torsten Duwe - -Enable NVMe in the Raspberry Pi 64-Bit default config and scan for devices. - -Signed-off-by: Torsten Duwe -Reviewed-by: Peter Robinson -Tested-by: Peter Robinson ---- - configs/rpi_arm64_defconfig | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/configs/rpi_arm64_defconfig b/configs/rpi_arm64_defconfig -index cdcf05ea6db..fb0fdce1d7f 100644 ---- a/configs/rpi_arm64_defconfig -+++ b/configs/rpi_arm64_defconfig -@@ -16,7 +16,7 @@ CONFIG_BOOTSTD_DEFAULTS=y - CONFIG_OF_BOARD_SETUP=y - CONFIG_FDT_SIMPLEFB=y - CONFIG_USE_PREBOOT=y --CONFIG_PREBOOT="pci enum; usb start;" -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_SYS_PBSIZE=1049 - # CONFIG_DISPLAY_CPUINFO is not set - # CONFIG_DISPLAY_BOARDINFO is not set -@@ -44,6 +44,7 @@ CONFIG_MMC_SDHCI_SDMA=y - CONFIG_MMC_SDHCI_BCM2835=y - CONFIG_MMC_SDHCI_BCMSTB=y - CONFIG_BCMGENET=y -+CONFIG_NVME_PCI=y - CONFIG_PCI_BRCMSTB=y - CONFIG_PINCTRL=y - # CONFIG_PINCTRL_GENERIC is not set diff --git a/JetsonTX2-Fix-upstream-device-tree-naming.patch b/JetsonTX2-Fix-upstream-device-tree-naming.patch deleted file mode 100644 index 14242ce..0000000 --- a/JetsonTX2-Fix-upstream-device-tree-naming.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 4ee5ba36570d94ce27e4023f15b8b3a6b8b9daf9 Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Mon, 13 Oct 2025 21:41:13 +0100 -Subject: [PATCH] config: JetsonTX2: Fix upstream device tree naming - -The upstream naming for the Jetson TX2 is p2771-0000 so fix -the device tree name so the firmware will find the right -name on disk. - -Signed-off-by: Peter Robinson ---- - arch/arm/dts/Makefile | 2 +- - .../{tegra186-p2771-0000-500.dts => tegra186-p2771-0000.dts} | 0 - configs/p2771-0000-500_defconfig | 2 +- - 3 files changed, 2 insertions(+), 2 deletions(-) - rename arch/arm/dts/{tegra186-p2771-0000-500.dts => tegra186-p2771-0000.dts} (100%) - -diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile -index 7c8cf3a5a1d..86a7b4fda35 100644 ---- a/arch/arm/dts/Makefile -+++ b/arch/arm/dts/Makefile -@@ -134,7 +134,7 @@ dtb-$(CONFIG_ARCH_TEGRA) += \ - tegra124-venice2.dtb \ - tegra124-xiaomi-mocha.dtb \ - tegra186-p2771-0000-000.dtb \ -- tegra186-p2771-0000-500.dtb \ -+ tegra186-p2771-0000.dtb \ - tegra210-p2371-0000.dtb \ - tegra210-p2371-2180.dtb \ - tegra210-p2571.dtb \ -diff --git a/arch/arm/dts/tegra186-p2771-0000-500.dts b/arch/arm/dts/tegra186-p2771-0000.dts -similarity index 100% -rename from arch/arm/dts/tegra186-p2771-0000-500.dts -rename to arch/arm/dts/tegra186-p2771-0000.dts -diff --git a/configs/p2771-0000-500_defconfig b/configs/p2771-0000-500_defconfig -index 42043277e2d..e1e5c47ddfa 100644 ---- a/configs/p2771-0000-500_defconfig -+++ b/configs/p2771-0000-500_defconfig -@@ -7,7 +7,7 @@ CONFIG_TEXT_BASE=0x80080000 - CONFIG_NR_DRAM_BANKS=1026 - CONFIG_ENV_SIZE=0x2000 - CONFIG_ENV_OFFSET=0xFFFFE000 --CONFIG_DEFAULT_DEVICE_TREE="tegra186-p2771-0000-500" -+CONFIG_DEFAULT_DEVICE_TREE="tegra186-p2771-0000" - CONFIG_SYS_BOOTM_LEN=0x800000 - CONFIG_SYS_LOAD_ADDR=0x80080000 - CONFIG_TEGRA186=y --- -2.51.0 - diff --git a/USB-PD-TCPM-improvements.patch b/USB-PD-TCPM-improvements.patch deleted file mode 100644 index f84e6f3..0000000 --- a/USB-PD-TCPM-improvements.patch +++ /dev/null @@ -1,717 +0,0 @@ -From patchwork Wed Feb 26 18:44:44 2025 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Sebastian Reichel -X-Patchwork-Id: 2052544 -X-Patchwork-Delegate: marek.vasut@gmail.com -Return-Path: -X-Original-To: incoming@patchwork.ozlabs.org -Delivered-To: patchwork-incoming@legolas.ozlabs.org -Authentication-Results: legolas.ozlabs.org; - dkim=pass (2048-bit key; - unprotected) header.d=collabora.com header.i=@collabora.com - header.a=rsa-sha256 header.s=mail header.b=IthL1Z+m; - dkim-atps=neutral -Authentication-Results: legolas.ozlabs.org; - spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de - (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; - envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org) -Received: from phobos.denx.de (phobos.denx.de - [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) - (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) - key-exchange X25519 server-signature ECDSA (secp384r1)) - (No client certificate requested) - by legolas.ozlabs.org (Postfix) with ESMTPS id 4Z33M03Hhjz1yCp - for ; Thu, 27 Feb 2025 05:45:32 +1100 (AEDT) -Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) - by phobos.denx.de (Postfix) with ESMTP id BFF7680FF0; - Wed, 26 Feb 2025 19:45:16 +0100 (CET) -Authentication-Results: phobos.denx.de; - dmarc=pass (p=none dis=none) header.from=collabora.com -Authentication-Results: phobos.denx.de; - spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de -Authentication-Results: phobos.denx.de; - dkim=pass (2048-bit key; - unprotected) header.d=collabora.com header.i=@collabora.com - header.b="IthL1Z+m"; - dkim-atps=neutral -Received: by phobos.denx.de (Postfix, from userid 109) - id 7614F810F9; Wed, 26 Feb 2025 19:45:13 +0100 (CET) -X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de -X-Spam-Level: -X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, - DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, - SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 -Received: from bali.collaboradmins.com (bali.collaboradmins.com - [IPv6:2a01:4f8:201:9162::2]) - (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) - (No client certificate requested) - by phobos.denx.de (Postfix) with ESMTPS id 2173180FDE - for ; Wed, 26 Feb 2025 19:45:08 +0100 (CET) -Authentication-Results: phobos.denx.de; - dmarc=pass (p=none dis=none) header.from=collabora.com -Authentication-Results: phobos.denx.de; - spf=pass smtp.mailfrom=sebastian.reichel@collabora.com -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; - s=mail; t=1740595507; - bh=Fnp6a8opSCXiH5NJdu5uivbBBZF3pe1CXyluh8+n8/c=; - h=From:To:Cc:Subject:Date:In-Reply-To:References:From; - b=IthL1Z+mDeIRy9MWEa0lGyJWuHk/Pu+yUpLly7RG6NIpC0lCgla3ssiy2x+8/G+bz - DWjrKUMxgWtqfjfffRiKEJZ6Z2sAXJ1ePvDmMtbGoolWSrzsV2+cWh0byYrEBuVBe9 - Vp0ye7gJ4Wt610s4QHa4xoYcm7h9KGmE3IEjb+XYFv1HMJIOoACl04BwkLctza1KBr - XlIqC+snvRP/yQxa2+6RYGXgQD5JnJxCM1orXVIJxyyJxTzb3XgNir60Gb4HI9724H - LDZy0Hq7NQ1zF0h1yVUOklDotw17isbNoI4K3JCExR+r7GsdESsGY6cwAbZY71iWlf - OsSSrV6TZtAMg== -Received: from jupiter.universe (dyndsl-091-249-076-032.ewe-ip-backbone.de - [91.249.76.32]) - (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) - key-exchange X25519 server-signature RSA-PSS (4096 bits)) - (No client certificate requested) (Authenticated sender: sre) - by bali.collaboradmins.com (Postfix) with ESMTPSA id A18CC17E0881; - Wed, 26 Feb 2025 19:45:07 +0100 (CET) -Received: by jupiter.universe (Postfix, from userid 1000) - id 32E35480034; Wed, 26 Feb 2025 19:45:07 +0100 (CET) -From: Sebastian Reichel -To: Marek Vasut , u-boot@lists.denx.de, - Jonas Karlman , Soeren Moch -Cc: Tim Harvey , - Philipp Tomsich , - Anand Moon , Maxim Kiselev , - Sebastian Reichel -Subject: [PATCH v2 1/4] usb: tcpm: improve handling of some power-supplies -Date: Wed, 26 Feb 2025 19:44:44 +0100 -Message-ID: <20250226184506.64114-2-sebastian.reichel@collabora.com> -X-Mailer: git-send-email 2.47.2 -In-Reply-To: <20250226184506.64114-1-sebastian.reichel@collabora.com> -References: <20250226184506.64114-1-sebastian.reichel@collabora.com> -MIME-Version: 1.0 -X-BeenThere: u-boot@lists.denx.de -X-Mailman-Version: 2.1.39 -Precedence: list -List-Id: U-Boot discussion -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: u-boot-bounces@lists.denx.de -Sender: "U-Boot" -X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de -X-Virus-Status: Clean - -When the Rock 5B is booted with the current TCPM with its power supplied -by a "Cambrionix PDSync-C4" port it reaches the power-supply ready state. -Once that has happened the hub starts sending GetSinkCap messages, but -U-Boot already stopped processing PD messages. After retrying a bunch of -times the hub instead sends soft resets. Since U-Boot will also not -react to them, the USB hub will follow-up with a hard reset and that -cuts off the supply voltage. - -Since the state machine is already prepared to handle GetSinkCap -messages, try to avoid this by handling incoming messages for another -50ms after reaching the ready state. - -Fixes: 1db4c0ac77e3 ("usb: tcpm: add core framework") -Signed-off-by: Sebastian Reichel ---- - drivers/usb/tcpm/tcpm.c | 31 ++++++++++++++++++++++++++----- - 1 file changed, 26 insertions(+), 5 deletions(-) - -diff --git a/drivers/usb/tcpm/tcpm.c b/drivers/usb/tcpm/tcpm.c -index 0aee57cb2f4a..b754b4dcd0b5 100644 ---- a/drivers/usb/tcpm/tcpm.c -+++ b/drivers/usb/tcpm/tcpm.c -@@ -2229,6 +2229,17 @@ static int tcpm_port_init(struct udevice *dev) - return 0; - } - -+static inline void tcpm_poll_one_event(struct udevice *dev) -+{ -+ const struct dm_tcpm_ops *drvops = dev_get_driver_ops(dev); -+ struct tcpm_port *port = dev_get_uclass_plat(dev); -+ -+ drvops->poll_event(dev); -+ port->poll_event_cnt++; -+ udelay(500); -+ tcpm_check_and_run_delayed_work(dev); -+} -+ - static void tcpm_poll_event(struct udevice *dev) - { - const struct dm_tcpm_ops *drvops = dev_get_driver_ops(dev); -@@ -2242,15 +2253,25 @@ static void tcpm_poll_event(struct udevice *dev) - (port->state == SNK_READY || port->state == SRC_READY)) - break; - -- drvops->poll_event(dev); -- port->poll_event_cnt++; -- udelay(500); -- tcpm_check_and_run_delayed_work(dev); -+ tcpm_poll_one_event(dev); - } - -- if (port->state != SNK_READY && port->state != SRC_READY) -+ /* -+ * Some power-supplies send GetSinkCap shortly after they are ready. -+ * If they do not receive a response after a few retries they will issue -+ * a soft-reset followed by a hard reset, which kills the board power. -+ * Let's poll for 50ms after reaching the ready state to check if the -+ * power-supply wants something from us. -+ */ -+ if (port->state == SNK_READY) { -+ port->poll_event_cnt = 0; -+ -+ while (port->poll_event_cnt < 100) -+ tcpm_poll_one_event(dev); -+ } else { - dev_warn(dev, "TCPM: exit in state %s\n", - tcpm_states[port->state]); -+ } - - /* - * At this time, call the callback function of the respective pd chip - -From patchwork Wed Feb 26 18:44:45 2025 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Sebastian Reichel -X-Patchwork-Id: 2052546 -X-Patchwork-Delegate: marek.vasut@gmail.com -Return-Path: -X-Original-To: incoming@patchwork.ozlabs.org -Delivered-To: patchwork-incoming@legolas.ozlabs.org -Authentication-Results: legolas.ozlabs.org; - dkim=pass (2048-bit key; - unprotected) header.d=collabora.com header.i=@collabora.com - header.a=rsa-sha256 header.s=mail header.b=hgX6o5vZ; - dkim-atps=neutral -Authentication-Results: legolas.ozlabs.org; - spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de - (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; - envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org) -Received: from phobos.denx.de (phobos.denx.de - [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) - (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) - key-exchange X25519 server-signature ECDSA (secp384r1)) - (No client certificate requested) - by legolas.ozlabs.org (Postfix) with ESMTPS id 4Z33MJ5sFGz1yCp - for ; Thu, 27 Feb 2025 05:45:48 +1100 (AEDT) -Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) - by phobos.denx.de (Postfix) with ESMTP id 69A29811C5; - Wed, 26 Feb 2025 19:45:17 +0100 (CET) -Authentication-Results: phobos.denx.de; - dmarc=pass (p=none dis=none) header.from=collabora.com -Authentication-Results: phobos.denx.de; - spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de -Authentication-Results: phobos.denx.de; - dkim=pass (2048-bit key; - unprotected) header.d=collabora.com header.i=@collabora.com - header.b="hgX6o5vZ"; - dkim-atps=neutral -Received: by phobos.denx.de (Postfix, from userid 109) - id 832B180FB9; Wed, 26 Feb 2025 19:45:14 +0100 (CET) -X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de -X-Spam-Level: -X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, - DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, - RCVD_IN_VALIDITY_RPBL_BLOCKED,RCVD_IN_VALIDITY_SAFE_BLOCKED, - SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 -Received: from bali.collaboradmins.com (bali.collaboradmins.com - [148.251.105.195]) - (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) - (No client certificate requested) - by phobos.denx.de (Postfix) with ESMTPS id 2178380FF0 - for ; Wed, 26 Feb 2025 19:45:08 +0100 (CET) -Authentication-Results: phobos.denx.de; - dmarc=pass (p=none dis=none) header.from=collabora.com -Authentication-Results: phobos.denx.de; - spf=pass smtp.mailfrom=sebastian.reichel@collabora.com -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; - s=mail; t=1740595507; - bh=H/gQCZCWVmLNRIaBLvWsE35SaDMWvta2+rTkymkHQJE=; - h=From:To:Cc:Subject:Date:In-Reply-To:References:From; - b=hgX6o5vZwM72CR2hgo76tgo2eE00qHM7oNja381ACl8gIUUVioy8RTeqXtum89tBf - aIwKm/oNQNvGxy92pX5/1Jg/MwYZKS8jDukz6ZgsLKu22rJXf58FFoV095AcEkUMB2 - lrO4KJgFW/x1FK8GmSVSXXH+iUYJLkzsfZKgHKoQYHZcVXJRgFjHR5ytGKsA/fq4el - 7Wrx3lmLNjL7fYlDF5AyY+Wl6hqzjDq58nFedXHv8TEHx6fzfB0IBzOL/F8bGqVcyy - lal7bjJvMPoA9zfgIC77R1neWktg5FSro75YciSRSj9lmMNCmESnSPCgsZ4wBW0V6f - ppD77gOtjDfLQ== -Received: from jupiter.universe (dyndsl-091-249-076-032.ewe-ip-backbone.de - [91.249.76.32]) - (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) - key-exchange X25519 server-signature RSA-PSS (4096 bits)) - (No client certificate requested) (Authenticated sender: sre) - by bali.collaboradmins.com (Postfix) with ESMTPSA id 9725D17E087F; - Wed, 26 Feb 2025 19:45:07 +0100 (CET) -Received: by jupiter.universe (Postfix, from userid 1000) - id 34511480037; Wed, 26 Feb 2025 19:45:07 +0100 (CET) -From: Sebastian Reichel -To: Marek Vasut , u-boot@lists.denx.de, - Jonas Karlman , Soeren Moch -Cc: Tim Harvey , - Philipp Tomsich , - Anand Moon , Maxim Kiselev , - Sebastian Reichel -Subject: [PATCH v2 2/4] usb: tcpm: avoid resets for missing source capability - messages -Date: Wed, 26 Feb 2025 19:44:45 +0100 -Message-ID: <20250226184506.64114-3-sebastian.reichel@collabora.com> -X-Mailer: git-send-email 2.47.2 -In-Reply-To: <20250226184506.64114-1-sebastian.reichel@collabora.com> -References: <20250226184506.64114-1-sebastian.reichel@collabora.com> -MIME-Version: 1.0 -X-BeenThere: u-boot@lists.denx.de -X-Mailman-Version: 2.1.39 -Precedence: list -List-Id: U-Boot discussion -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: u-boot-bounces@lists.denx.de -Sender: "U-Boot" -X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de -X-Virus-Status: Clean - -The current TCPM code implements source capability message handling -according to the USB-PD specification. Unfortunately some USB PD -sources do not properly follow the specification and do not send -source capability messages after a soft reset when they already -negotiated a specific contract before. The currently implemented way -(and what is described in the specificiation) to resolve this problem -is triggering a hard reset. - -But a hard reset is fatal on batteryless platforms powered via USB-C PD, -since that removes VBUS for some time. Since this is triggered at boot -time, the system may get stuck in a boot loop. - -For example I noticed the following behaviour on a Radxa Rock 5B -combined with an affected power-supply: - -1. The system is booted up with current code -2. A reboot is requested -3. U-Boot TCPM / fusb302 driver sends soft reset and waits for the - source capability message -4. No new source capability message is send by the power-supply - after the soft reset -5. U-Boot sends a hard reset -6. The board resets, but the fusb302 registers are not reset. This - is because of a hardware glitch. The serial pins are high when - no data is exchanged. Apparently the RK3588 has protection diodes, - which leak some voltage into the power-domain. The Rock 5B serial - pins and the fusb302 are using the same 3.3V power domain and the - leaked voltage is enough to keep the fusb302 registers alive. -7. After the hard reset the power-supply sends another source capability - message, which is auto-acked by fusb302 (because the register state - is kept) even though the U-Boot driver has not yet probed. Once the - U-Boot driver probes it sends another soft reset and waits for a new - source capability message, which never arrives. - -Fortunately the affected power-supplies (I have two setups showing this -behaviour) support sending a source capability message when explicitly -being asked. Thus an easy workaround to handle this is deviating from -the USB-PD specification and sending a Get_Source_Cap message and -waiting some time longer before doing the hard reset. - -Note, that I recently added the same workaround to the Linux kernel -with a slightly different rationale (since it needs to take over from -U-Boot). - -Fixes: 1db4c0ac77e3 ("usb: tcpm: add core framework") -Signed-off-by: Sebastian Reichel ---- - drivers/usb/tcpm/tcpm-internal.h | 1 + - drivers/usb/tcpm/tcpm.c | 32 +++++++++++++++++++++++++++++--- - 2 files changed, 30 insertions(+), 3 deletions(-) - -diff --git a/drivers/usb/tcpm/tcpm-internal.h b/drivers/usb/tcpm/tcpm-internal.h -index 561442090027..4861f4d13866 100644 ---- a/drivers/usb/tcpm/tcpm-internal.h -+++ b/drivers/usb/tcpm/tcpm-internal.h -@@ -30,6 +30,7 @@ - S(SNK_DISCOVERY_DEBOUNCE), \ - S(SNK_DISCOVERY_DEBOUNCE_DONE), \ - S(SNK_WAIT_CAPABILITIES), \ -+ S(SNK_WAIT_CAPABILITIES_TIMEOUT), \ - S(SNK_NEGOTIATE_CAPABILITIES), \ - S(SNK_TRANSITION_SINK), \ - S(SNK_TRANSITION_SINK_VBUS), \ -diff --git a/drivers/usb/tcpm/tcpm.c b/drivers/usb/tcpm/tcpm.c -index b754b4dcd0b5..786d92fa4c6f 100644 ---- a/drivers/usb/tcpm/tcpm.c -+++ b/drivers/usb/tcpm/tcpm.c -@@ -1424,7 +1424,8 @@ static inline enum tcpm_state hard_reset_state(struct tcpm_port *port) - return ERROR_RECOVERY; - if (port->pwr_role == TYPEC_SOURCE) - return SRC_UNATTACHED; -- if (port->state == SNK_WAIT_CAPABILITIES) -+ if (port->state == SNK_WAIT_CAPABILITIES || -+ port->state == SNK_WAIT_CAPABILITIES_TIMEOUT) - return SNK_READY; - return SNK_UNATTACHED; - } -@@ -1650,10 +1651,35 @@ static void run_state_machine(struct udevice *dev) - tcpm_set_state(dev, SOFT_RESET_SEND, - PD_T_SINK_WAIT_CAP); - } else { -- tcpm_set_state(dev, hard_reset_state(port), -- PD_T_SINK_WAIT_CAP); -+ if (!port->self_powered) -+ tcpm_set_state(dev, SNK_WAIT_CAPABILITIES_TIMEOUT, -+ PD_T_SINK_WAIT_CAP); -+ else -+ tcpm_set_state(dev, hard_reset_state(port), -+ PD_T_SINK_WAIT_CAP); - } - break; -+ case SNK_WAIT_CAPABILITIES_TIMEOUT: -+ /* -+ * There are some USB PD sources in the field, which do not -+ * properly implement the specification and fail to start -+ * sending Source Capability messages after a soft reset. The -+ * specification suggests to do a hard reset when no Source -+ * capability message is received within PD_T_SINK_WAIT_CAP, -+ * but that might effectively kil the machine's power source. -+ * -+ * This slightly diverges from the specification and tries to -+ * recover from this by explicitly asking for the capabilities -+ * using the Get_Source_Cap control message before falling back -+ * to a hard reset. The control message should also be supported -+ * and handled by all USB PD source and dual role devices -+ * according to the specification. -+ */ -+ if (tcpm_pd_send_control(dev, PD_CTRL_GET_SOURCE_CAP)) -+ tcpm_set_state_cond(dev, hard_reset_state(port), 0); -+ else -+ tcpm_set_state(dev, hard_reset_state(port), PD_T_SINK_WAIT_CAP); -+ break; - case SNK_NEGOTIATE_CAPABILITIES: - port->pd_capable = true; - port->hard_reset_count = 0; - -From patchwork Wed Feb 26 18:44:46 2025 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Sebastian Reichel -X-Patchwork-Id: 2052545 -X-Patchwork-Delegate: marek.vasut@gmail.com -Return-Path: -X-Original-To: incoming@patchwork.ozlabs.org -Delivered-To: patchwork-incoming@legolas.ozlabs.org -Authentication-Results: legolas.ozlabs.org; - dkim=pass (2048-bit key; - unprotected) header.d=collabora.com header.i=@collabora.com - header.a=rsa-sha256 header.s=mail header.b=BxTv7Lfo; - dkim-atps=neutral -Authentication-Results: legolas.ozlabs.org; - spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de - (client-ip=85.214.62.61; helo=phobos.denx.de; - envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org) -Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) - (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) - key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) - (No client certificate requested) - by legolas.ozlabs.org (Postfix) with ESMTPS id 4Z33M971h7z1yCp - for ; Thu, 27 Feb 2025 05:45:41 +1100 (AEDT) -Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) - by phobos.denx.de (Postfix) with ESMTP id 1B09C8118B; - Wed, 26 Feb 2025 19:45:17 +0100 (CET) -Authentication-Results: phobos.denx.de; - dmarc=pass (p=none dis=none) header.from=collabora.com -Authentication-Results: phobos.denx.de; - spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de -Authentication-Results: phobos.denx.de; - dkim=pass (2048-bit key; - unprotected) header.d=collabora.com header.i=@collabora.com - header.b="BxTv7Lfo"; - dkim-atps=neutral -Received: by phobos.denx.de (Postfix, from userid 109) - id 4399E810F9; Wed, 26 Feb 2025 19:45:14 +0100 (CET) -X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de -X-Spam-Level: -X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, - DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, - SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 -Received: from bali.collaboradmins.com (bali.collaboradmins.com - [IPv6:2a01:4f8:201:9162::2]) - (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) - (No client certificate requested) - by phobos.denx.de (Postfix) with ESMTPS id 2163F80FB9 - for ; Wed, 26 Feb 2025 19:45:08 +0100 (CET) -Authentication-Results: phobos.denx.de; - dmarc=pass (p=none dis=none) header.from=collabora.com -Authentication-Results: phobos.denx.de; - spf=pass smtp.mailfrom=sebastian.reichel@collabora.com -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; - s=mail; t=1740595507; - bh=7OaDpd2idE5ETWAiOZte0kuOU6ZYitEVWkDgDmqaQU8=; - h=From:To:Cc:Subject:Date:In-Reply-To:References:From; - b=BxTv7LfoAae43YSXPquVPmmwStgQirXCxaSBD0fo554R5O/si/Iif5L+zXXJocATJ - z7+I7ZKbknkTeVyzoRDCXvXIVz2bFdTRWQN4Z2iwJbVI1covAv/Gn4wIE2Q6hbNKbU - qV5AKg7gvrKkbztbo7N9bHNjkrlAbd8B4Ew3SR8FM46DMAOwNzVsoX3rLMcPtlWzHj - 4OBKCx22H/4ASIWjMbYoDE09DyQ+CPOf8JcX8OPwFcH9j6vW6cEWvyjiAyDj6LnwOq - KD+ZYVIkWhkIzAkE2NHB2IpA4xlxW8i18BJzNBD8N1eBx/HCgb0camb4KanY1Hta/d - 4ipLyuFaCkMog== -Received: from jupiter.universe (dyndsl-091-249-076-032.ewe-ip-backbone.de - [91.249.76.32]) - (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) - key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest - SHA256) - (No client certificate requested) (Authenticated sender: sre) - by bali.collaboradmins.com (Postfix) with ESMTPSA id 816AA17E0861; - Wed, 26 Feb 2025 19:45:07 +0100 (CET) -Received: by jupiter.universe (Postfix, from userid 1000) - id 361F2480038; Wed, 26 Feb 2025 19:45:07 +0100 (CET) -From: Sebastian Reichel -To: Marek Vasut , u-boot@lists.denx.de, - Jonas Karlman , Soeren Moch -Cc: Tim Harvey , - Philipp Tomsich , - Anand Moon , Maxim Kiselev , - Sebastian Reichel -Subject: [PATCH v2 3/4] usb: tcpm: print error on hard reset -Date: Wed, 26 Feb 2025 19:44:46 +0100 -Message-ID: <20250226184506.64114-4-sebastian.reichel@collabora.com> -X-Mailer: git-send-email 2.47.2 -In-Reply-To: <20250226184506.64114-1-sebastian.reichel@collabora.com> -References: <20250226184506.64114-1-sebastian.reichel@collabora.com> -MIME-Version: 1.0 -X-BeenThere: u-boot@lists.denx.de -X-Mailman-Version: 2.1.39 -Precedence: list -List-Id: U-Boot discussion -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: u-boot-bounces@lists.denx.de -Sender: "U-Boot" -X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de -X-Virus-Status: Clean - -A USB-PD hard reset involves removing the voltage from VBUS for some -time. So basically it has the same effect as removing the USB-C plug -for a short moment. If the machine is powered from the USB-C port and -does not have a fallback supply (e.g. a battery), this will result in -a full machine reset due to power loss. - -Ideally we want to avoid triggering a hard reset on these boards. A -non-working USB-C port is probably better than unplanned reboots. But -boards with a backup supply should do the hard reset to get everything -working again. - -In theory it would be enough to check the self_powered property, but -it seems the property might not be configured consistently enough in -system firmwares. - -USB-PD hard resets should happen rarely in general, so let's at least -print an error message before the potential board reset happens. This -is also useful, since it immediately gives away which device triggered -the hard reset. - -Fixes: 1db4c0ac77e3 ("usb: tcpm: add core framework") -Signed-off-by: Sebastian Reichel ---- - drivers/usb/tcpm/tcpm.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/drivers/usb/tcpm/tcpm.c b/drivers/usb/tcpm/tcpm.c -index 786d92fa4c6f..909fe2ef4fcb 100644 ---- a/drivers/usb/tcpm/tcpm.c -+++ b/drivers/usb/tcpm/tcpm.c -@@ -1711,6 +1711,8 @@ static void run_state_machine(struct udevice *dev) - - /* Hard_Reset states */ - case HARD_RESET_SEND: -+ if (!port->self_powered && port->port_type == TYPEC_PORT_SNK) -+ dev_err(dev, "Initiating hard-reset, which might result in machine power-loss.\n"); - tcpm_pd_transmit(dev, TCPC_TX_HARD_RESET, NULL); - tcpm_set_state(dev, HARD_RESET_START, 0); - port->wait_dr_swap_message = false; - -From patchwork Wed Feb 26 18:44:47 2025 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Sebastian Reichel -X-Patchwork-Id: 2052542 -X-Patchwork-Delegate: marek.vasut@gmail.com -Return-Path: -X-Original-To: incoming@patchwork.ozlabs.org -Delivered-To: patchwork-incoming@legolas.ozlabs.org -Authentication-Results: legolas.ozlabs.org; - dkim=pass (2048-bit key; - unprotected) header.d=collabora.com header.i=@collabora.com - header.a=rsa-sha256 header.s=mail header.b=K4mNmlOy; - dkim-atps=neutral -Authentication-Results: legolas.ozlabs.org; - spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de - (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; - envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org) -Received: from phobos.denx.de (phobos.denx.de - [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) - (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) - key-exchange X25519 server-signature ECDSA (secp384r1)) - (No client certificate requested) - by legolas.ozlabs.org (Postfix) with ESMTPS id 4Z33Lk40FPz1yCp - for ; Thu, 27 Feb 2025 05:45:18 +1100 (AEDT) -Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) - by phobos.denx.de (Postfix) with ESMTP id DAFC780FF2; - Wed, 26 Feb 2025 19:45:12 +0100 (CET) -Authentication-Results: phobos.denx.de; - dmarc=pass (p=none dis=none) header.from=collabora.com -Authentication-Results: phobos.denx.de; - spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de -Authentication-Results: phobos.denx.de; - dkim=pass (2048-bit key; - unprotected) header.d=collabora.com header.i=@collabora.com - header.b="K4mNmlOy"; - dkim-atps=neutral -Received: by phobos.denx.de (Postfix, from userid 109) - id 56A22810F9; Wed, 26 Feb 2025 19:45:11 +0100 (CET) -X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de -X-Spam-Level: -X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, - DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, - SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 -Received: from bali.collaboradmins.com (bali.collaboradmins.com - [IPv6:2a01:4f8:201:9162::2]) - (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) - (No client certificate requested) - by phobos.denx.de (Postfix) with ESMTPS id 217E080FF2 - for ; Wed, 26 Feb 2025 19:45:08 +0100 (CET) -Authentication-Results: phobos.denx.de; - dmarc=pass (p=none dis=none) header.from=collabora.com -Authentication-Results: phobos.denx.de; - spf=pass smtp.mailfrom=sebastian.reichel@collabora.com -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; - s=mail; t=1740595507; - bh=FeXZr6pfjIqGXvnsLHDigD702EmgVNH91IWVsD16udQ=; - h=From:To:Cc:Subject:Date:In-Reply-To:References:From; - b=K4mNmlOycXzLuJnNeDxyXLVCeZWNr//ycRqDt3ld9634ThDvJ0+y49X3z2nYW+fei - HCqH2AoFiXj7khjiFpwCA4xOlYaTrF9yb0M9ApRxJ8vGuslNIK2k9osj8IJMoWmY8S - fEez4H6Wso4VamCnXKCze2G5np5mhola5QxSnIJ2CXdFP9TM1x54P+XyeJMX6IZK0X - lpZ0R8mACHGgXnkBASRMbo0CnLfSVrUgA83A0FHT7UgxfW8399wHol/FBakg5WS8nt - 47154TDW4ikoGF4dHBeD0KemJSR7I4F+nnUVQfgg8sXZKVm4yilBT+yx3WWBVCjQDl - 3igqfexnaUKnA== -Received: from jupiter.universe (dyndsl-091-249-076-032.ewe-ip-backbone.de - [91.249.76.32]) - (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) - key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest - SHA256) - (No client certificate requested) (Authenticated sender: sre) - by bali.collaboradmins.com (Postfix) with ESMTPSA id 7FBB317E065A; - Wed, 26 Feb 2025 19:45:07 +0100 (CET) -Received: by jupiter.universe (Postfix, from userid 1000) - id 37B6A480039; Wed, 26 Feb 2025 19:45:07 +0100 (CET) -From: Sebastian Reichel -To: Marek Vasut , u-boot@lists.denx.de, - Jonas Karlman , Soeren Moch -Cc: Tim Harvey , - Philipp Tomsich , - Anand Moon , Maxim Kiselev , - Sebastian Reichel -Subject: [PATCH v2 4/4] usb: tcpm: improve data role mismatch error recovery -Date: Wed, 26 Feb 2025 19:44:47 +0100 -Message-ID: <20250226184506.64114-5-sebastian.reichel@collabora.com> -X-Mailer: git-send-email 2.47.2 -In-Reply-To: <20250226184506.64114-1-sebastian.reichel@collabora.com> -References: <20250226184506.64114-1-sebastian.reichel@collabora.com> -MIME-Version: 1.0 -X-BeenThere: u-boot@lists.denx.de -X-Mailman-Version: 2.1.39 -Precedence: list -List-Id: U-Boot discussion -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: u-boot-bounces@lists.denx.de -Sender: "U-Boot" -X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de -X-Virus-Status: Clean - -On Radxa ROCK 5B I managed to get U-Boot into an endless loop of -printing - -fusb302 usb-typec@22: TCPM: data role mismatch, initiating error recovery - -messages by changing the data role in Linux and then rebooting the -system. This is happening because the external device (A cheap USB-C hub -powered through a USB-C PD power-supply) kept its state and the error -recovery path for non self-powered devices is not enough to change it. - -Avoid this by swapping our own data role when the error recovery stage -is reached for a port, which is not self-powered. Right now data support -is limited anyways and once proper support is added we can use the data -role swap request to get the desired data direction after the initial -negotiation completed. - -Fixes: 1db4c0ac77e3 ("usb: tcpm: add core framework") -Signed-off-by: Sebastian Reichel ---- - drivers/usb/tcpm/tcpm.c | 30 +++++++++++++++++++++++++++--- - 1 file changed, 27 insertions(+), 3 deletions(-) - -diff --git a/drivers/usb/tcpm/tcpm.c b/drivers/usb/tcpm/tcpm.c -index 909fe2ef4fcb..12d66d470f9a 100644 ---- a/drivers/usb/tcpm/tcpm.c -+++ b/drivers/usb/tcpm/tcpm.c -@@ -833,6 +833,28 @@ static void tcpm_pd_ctrl_request(struct udevice *dev, - } - } - -+static void tcpm_recover_data_role_mismatch(struct udevice *dev) -+{ -+ struct tcpm_port *port = dev_get_uclass_plat(dev); -+ -+ dev_err(dev, "TCPM: data role mismatch, initiating error recovery\n"); -+ if (port->self_powered) { -+ tcpm_set_state(dev, ERROR_RECOVERY, 0); -+ return; -+ } -+ -+ /* -+ * The error recovery will not help for devices, which are not -+ * self-powered because the error recovery avoids killing the board -+ * power. Since this can happen early on sending -+ * a DR_SWAP request is not sensible. Instead let's change our own -+ * data role. It can be swapped back once USB-PD reached the ready -+ * state. -+ */ -+ tcpm_set_roles(dev, true, port->pwr_role, -+ port->data_role == TYPEC_HOST ? TYPEC_DEVICE : TYPEC_HOST); -+} -+ - static void tcpm_pd_rx_handler(struct udevice *dev, - const struct pd_message *msg) - { -@@ -867,9 +889,11 @@ static void tcpm_pd_rx_handler(struct udevice *dev, - remote_is_host = !!(le16_to_cpu(msg->header) & PD_HEADER_DATA_ROLE); - local_is_host = port->data_role == TYPEC_HOST; - if (remote_is_host == local_is_host) { -- dev_err(dev, "TCPM: data role mismatch, initiating error recovery\n"); -- tcpm_set_state(dev, ERROR_RECOVERY, 0); -- } else { -+ tcpm_recover_data_role_mismatch(dev); -+ local_is_host = port->data_role == TYPEC_HOST; -+ } -+ -+ if (remote_is_host != local_is_host) { - if (cnt) - tcpm_pd_data_request(dev, msg); - else diff --git a/aarch64-boards b/aarch64-boards index 366d0c8..e5d4147 100644 --- a/aarch64-boards +++ b/aarch64-boards @@ -1,31 +1,23 @@ a64-olinuxino -a64-olinuxino-emmc amarula_a64_relic -anbernic_rg35xx_h700 -apple_m1 bananapi_m2_plus_h5 bananapi_m64 -beelink_gs1 dragonboard410c dragonboard820c -eaidk-610-rk3399 -emlid_neutis_n5_devboard -evb-px5 +espresso7420 evb-rk3328 evb-rk3399 ficus-rk3399 firefly-rk3399 geekbox hikey -hmibsc khadas-edge-captain-rk3399 -khadas-edge-rk3399 khadas-edge-v-rk3399 +khadas-edge-rk3399 khadas-vim khadas-vim2 khadas-vim3 khadas-vim3l -leez-rk3399 libretech-ac libretech_all_h3_cc_h5 libretech_all_h3_it_h5 @@ -36,71 +28,48 @@ mvebu_mcbin-88f8040 nanopc-t4-rk3399 nanopi_a64 nanopi-k2 -nanopi-m4-2gb-rk3399 -nanopi-m4b-rk3399 nanopi-m4-rk3399 +nanopi-m4-2gb-rk3399 nanopi_neo2 nanopi-neo4-rk3399 nanopi_neo_plus2 -nanopi_r1s_h5 -nanopi-r2c-plus-rk3328 -nanopi-r2c-rk3328 -nanopi-r2s-plus-rk3328 -nanopi-r2s-rk3328 -nanopi-r4s-rk3399 -oceanic_5205_5inmfd odroid-c2 -orangepi_3 orangepi_lite2 orangepi_one_plus orangepi_pc2 orangepi_prime -orangepi-r1-plus-lts-rk3328 -orangepi-r1-plus-rk3328 orangepi-rk3399 orangepi_win -orangepi_zero2 -orangepi_zero2w -orangepi_zero3 orangepi_zero_plus orangepi_zero_plus2 p212 p2371-2180 p2771-0000-500 +p3450-0000 pine64-lts pine64_plus pinebook pinebook-pro-rk3399 -pine_h64 pinephone -pinephone-pro-rk3399 pinetab +pine_h64 poplar puma-rk3399 -qcm6490 -qcom -qcom_qcs8300 -qcom_qcs9100 -qemu_arm64 -qemu_arm64_lwip -roc-cc-rk3328 -rock-4c-plus-rk3399 -rock-4se-rk3399 rock64-rk3328 rock960-rk3399 -rock-pi-4c-rk3399 rock-pi-4-rk3399 +rock-pi-4c-rk3399 rock-pi-e-rk3328 -rock-pi-e-v3-rk3328 rock-pi-n10-rk3399pro rockpro64-rk3399 -roc-pc-mezzanine-rk3399 +roc-cc-rk3328 roc-pc-rk3399 +roc-pc-mezzanine-rk3399 +rpi_3 +rpi_4 rpi_arm64 sopine_baseboard -tanix_tx6 teres_i -transpeed-8k618-t turris_mox vexpress_aemv8a_juno -x96_mate +xilinx_zynqmp_virt diff --git a/aarch64-chromebooks b/aarch64-chromebooks new file mode 100644 index 0000000..e69de29 diff --git a/arm-add-BOOTENV_EFI_SET_FDTFILE_FALLBACK-for-tegra186-be.patch b/arm-add-BOOTENV_EFI_SET_FDTFILE_FALLBACK-for-tegra186-be.patch new file mode 100644 index 0000000..df63c4e --- /dev/null +++ b/arm-add-BOOTENV_EFI_SET_FDTFILE_FALLBACK-for-tegra186-be.patch @@ -0,0 +1,55 @@ +From a63eb1bdcd25246b2c637c7846917dc6dc607725 Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Thu, 18 Apr 2019 15:44:59 +0100 +Subject: [PATCH] add BOOTENV_EFI_SET_FDTFILE_FALLBACK for tegra186 because tx2 + variants + +Signed-off-by: Peter Robinson +--- + include/config_distro_bootcmd.h | 2 ++ + include/configs/tegra186-common.h | 7 ++++++- + 2 files changed, 8 insertions(+), 1 deletion(-) + +diff --git a/include/config_distro_bootcmd.h b/include/config_distro_bootcmd.h +index fc0935fa21..fd1c5f5afa 100644 +--- a/include/config_distro_bootcmd.h ++++ b/include/config_distro_bootcmd.h +@@ -118,8 +118,10 @@ + "setenv efi_fdtfile ${soc}-${board}${boardver}.dtb; " \ + "fi; " + #else ++#ifndef BOOTENV_EFI_SET_FDTFILE_FALLBACK + #define BOOTENV_EFI_SET_FDTFILE_FALLBACK + #endif ++#endif + + + #define BOOTENV_SHARED_EFI \ +diff --git a/include/configs/tegra186-common.h b/include/configs/tegra186-common.h +index 5c3ad35c76..d5f21e0907 100644 +--- a/include/configs/tegra186-common.h ++++ b/include/configs/tegra186-common.h +@@ -20,6 +20,12 @@ + /* Generic Interrupt Controller */ + #define CONFIG_GICV2 + ++#undef FDTFILE ++#define BOOTENV_EFI_SET_FDTFILE_FALLBACK \ ++ "if test -z \"${fdtfile}\" -a -n \"${soc}\"; then " \ ++ "setenv efi_fdtfile ${vendor}/${soc}-${board}${boardver}.dtb; " \ ++ "fi; " ++ + /* + * Memory layout for where various images get loaded by boot scripts: + * +@@ -49,7 +55,6 @@ + "scriptaddr=0x90000000\0" \ + "pxefile_addr_r=0x90100000\0" \ + "kernel_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \ +- "fdtfile=" FDTFILE "\0" \ + "fdt_addr_r=0x82000000\0" \ + "ramdisk_addr_r=0x82100000\0" + +-- +2.26.0 + diff --git a/arm-boards b/arm-boards new file mode 100644 index 0000000..bc80bb8 --- /dev/null +++ b/arm-boards @@ -0,0 +1,142 @@ +A10-OLinuXino-Lime +A10s-OLinuXino-M +A13-OLinuXino +A13-OLinuXinoM +A20-Olimex-SOM-EVB +A20-OLinuXino-Lime +A20-OLinuXino-Lime2 +A20-OLinuXino_MICRO +am335x_evm +am57xx_evm +Ampe_A76 +apalis_imx6 +arndale +Auxtek-T003 +Auxtek-T004 +ba10_tv_box +Bananapi +bananapi_m1_plus +bananapi_m2_berry +Bananapi_m2m +bananapi_m2_plus_h3 +Bananapi_M2_Ultra +bananapi_m2_zero +Bananapro +chiliboard +CHIP +Chuwi_V7_CW0825 +clearfog +cm_fx6 +Colombus +colorfly_e708_q1 +CSQ_CS908 +Cubieboard +Cubieboard2 +Cubieboard4 +Cubietruck +Cubietruck_plus +db-mv784mp-gp +difrnce_dit4350 +dserve_dsrv9703c +evb-rk3229 +firefly-rk3288 +helios4 +Hummingbird_A31 +Hyundai_A7HD +i12-tvbox +icnova-a20-swac +inet1 +iNet_3F +iNet_3W +inet86dz +iNet_86VS +inet97fv2 +inet98v_rev2 +inet9f_rev03 +inet_q972 +Itead_Ibox_A20 +jesurun_q5 +jetson-tk1 +kc1 +Lamobo_R1 +libretech_all_h3_cc_h2_plus +Linksprite_pcDuino +Linksprite_pcDuino3 +Linksprite_pcDuino3_Nano +liteboard +marsboard +Marsboard_A10 +Mele_A1000 +Mele_A1000G_quad +Mele_I7 +Mele_M3 +Mele_M5 +Mele_M9 +Mini-X +mk802 +mk802_a10s +mk802ii +MK808C +MSI_Primo73 +MSI_Primo81 +mx6cuboxi +nanopi_m1 +nanopi_m1_plus +nanopi_neo +novena +odroid +odroid-xu3 +omap3_beagle +omap4_panda +omap5_uevm +Orangepi +orangepi_2 +orangepi_lite +Orangepi_mini +orangepi_one +orangepi_pc +orangepi_pc_plus +orangepi_plus +orangepi_plus2e +orangepi_r1 +orangepi_zero +origen +paz00 +polaroid_mid2809pxe04 +pov_protab2_ips9 +q8_a13_tablet +q8_a23_tablet_800x480 +q8_a33_tablet_1024x600 +q8_a33_tablet_800x480 +qemu_arm +r7-tv-dongle +riotboard +rock +rock-pi-n8-rk3288 +rock2 +rpi_2 +rpi_3_32b +rpi_4_32b +Sinlinx_SinA31s +Sinovoip_BPI_M2 +Sinovoip_BPI_M3 +stih410-b2260 +stm32mp15_basic +sunxi_Gemei_G9 +tbs_a711 +tinker-rk3288 +tinker-s-rk3288 +trimslice +udoo +udoo_neo +usbarmory +UTOO_P66 +vexpress_ca15_tc2 +vexpress_ca9x4 +wandboard +warp +warp7 +Wexler_TAB7200 +Wits_Pro_A20_DKT +Yones_Toptech_BS1078_V2 +xilinx_zynq_virt diff --git a/arm-chromebooks b/arm-chromebooks new file mode 100644 index 0000000..899c823 --- /dev/null +++ b/arm-chromebooks @@ -0,0 +1,8 @@ +chromebit_mickey_defconfig +chromebook_jerry_defconfig +chromebook_minnie_defconfig +nyan-big_defconfig +peach-pi_defconfig +peach-pit_defconfig +snow_defconfig +spring_defconfig diff --git a/arm-rk3399-enable-rng-on-rock960-and-firefly3399.patch b/arm-rk3399-enable-rng-on-rock960-and-firefly3399.patch new file mode 100644 index 0000000..89e38f5 --- /dev/null +++ b/arm-rk3399-enable-rng-on-rock960-and-firefly3399.patch @@ -0,0 +1,113 @@ +From c206a750c80dc4aaa8e7eade50199b3198a3e288 Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Wed, 19 Aug 2020 15:49:25 +0100 +Subject: [PATCH 1/3] rockchip: RockPro64: enable rng to provide an entropy + source + +Enable the rng so UEFI can provide entropy for KASLR + +Signed-off-by: Peter Robinson +--- + configs/rockpro64-rk3399_defconfig | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/configs/rockpro64-rk3399_defconfig b/configs/rockpro64-rk3399_defconfig +index a6e2c3d71d..9b1ba04b9e 100644 +--- a/configs/rockpro64-rk3399_defconfig ++++ b/configs/rockpro64-rk3399_defconfig +@@ -41,6 +41,8 @@ CONFIG_MMC_DW=y + CONFIG_MMC_DW_ROCKCHIP=y + CONFIG_MMC_SDHCI=y + CONFIG_MMC_SDHCI_ROCKCHIP=y ++CONFIG_DM_RNG=y ++CONFIG_RNG_ROCKCHIP=y + CONFIG_SPI_FLASH_GIGADEVICE=y + CONFIG_DM_ETH=y + CONFIG_ETH_DESIGNWARE=y +-- +2.26.2 + +From 91db3a7baa4cfc8f1f8879b4bdafeb05902f2114 Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Wed, 19 Aug 2020 15:52:15 +0100 +Subject: [PATCH 2/3] rockchip: Rock960: enable rng to provide an entropy + source + +Enable the rng so UEFI can provide entropy for KASLR + +Signed-off-by: Peter Robinson +--- + arch/arm/dts/rk3399-rock960-u-boot.dtsi | 4 ++++ + configs/rock960-rk3399_defconfig | 2 ++ + 2 files changed, 6 insertions(+) + +diff --git a/arch/arm/dts/rk3399-rock960-u-boot.dtsi b/arch/arm/dts/rk3399-rock960-u-boot.dtsi +index c190089e26..08292dbd39 100644 +--- a/arch/arm/dts/rk3399-rock960-u-boot.dtsi ++++ b/arch/arm/dts/rk3399-rock960-u-boot.dtsi +@@ -24,3 +24,7 @@ + }; + + }; ++ ++&rng { ++ status = "okay"; ++}; +diff --git a/configs/rock960-rk3399_defconfig b/configs/rock960-rk3399_defconfig +index 1d997847c2..9c4d8871b7 100644 +--- a/configs/rock960-rk3399_defconfig ++++ b/configs/rock960-rk3399_defconfig +@@ -38,6 +38,8 @@ CONFIG_MMC_DW_ROCKCHIP=y + CONFIG_MMC_SDHCI=y + CONFIG_MMC_SDHCI_SDMA=y + CONFIG_MMC_SDHCI_ROCKCHIP=y ++CONFIG_DM_RNG=y ++CONFIG_RNG_ROCKCHIP=y + CONFIG_DM_ETH=y + CONFIG_NVME=y + CONFIG_PCI=y +-- +2.26.2 + +From ac0793c7c4ee032da11bddbd0bdefee2322bb621 Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Wed, 19 Aug 2020 15:53:58 +0100 +Subject: [PATCH 3/3] rockchip: firefly-rk3399: enable rng to provide an + entropy source + +Enable the rng so UEFI can provide entropy for KASLR + +Signed-off-by: Peter Robinson +--- + arch/arm/dts/rk3399-firefly-u-boot.dtsi | 4 ++++ + configs/firefly-rk3399_defconfig | 2 ++ + 2 files changed, 6 insertions(+) + +diff --git a/arch/arm/dts/rk3399-firefly-u-boot.dtsi b/arch/arm/dts/rk3399-firefly-u-boot.dtsi +index 38e0897db9..a6c7b913da 100644 +--- a/arch/arm/dts/rk3399-firefly-u-boot.dtsi ++++ b/arch/arm/dts/rk3399-firefly-u-boot.dtsi +@@ -11,3 +11,7 @@ + u-boot,spl-boot-order = "same-as-spl", &sdhci, &sdmmc; + }; + }; ++ ++&rng { ++ status = "okay"; ++}; +diff --git a/configs/firefly-rk3399_defconfig b/configs/firefly-rk3399_defconfig +index ea4a30ebf3..e242ee5009 100644 +--- a/configs/firefly-rk3399_defconfig ++++ b/configs/firefly-rk3399_defconfig +@@ -35,6 +35,8 @@ CONFIG_MMC_DW=y + CONFIG_MMC_DW_ROCKCHIP=y + CONFIG_MMC_SDHCI=y + CONFIG_MMC_SDHCI_ROCKCHIP=y ++CONFIG_DM_RNG=y ++CONFIG_RNG_ROCKCHIP=y + CONFIG_SF_DEFAULT_SPEED=20000000 + CONFIG_DM_ETH=y + CONFIG_ETH_DESIGNWARE=y +-- +2.26.2 + diff --git a/arm-tegra-define-fdtfile-option-for-distro-boot.patch b/arm-tegra-define-fdtfile-option-for-distro-boot.patch new file mode 100644 index 0000000..923ccb1 --- /dev/null +++ b/arm-tegra-define-fdtfile-option-for-distro-boot.patch @@ -0,0 +1,113 @@ +From c3332b102d2ddae01710ae8f4393a2a18a3a1bb3 Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Tue, 12 May 2020 08:19:48 +0100 +Subject: [PATCH] arm: tegra: define fdtfile option for distro boot + +For booting via UEFI we need to define the fdtfile option so +bootefi has the option to load a fdtfile from disk. For arm64 +the kernel dtb is located in a vendor directory so we define +that as nvidia for that architecture. + +Signed-off-by: Peter Robinson +--- + include/configs/tegra-common.h | 6 ++++++ + include/configs/tegra114-common.h | 1 + + include/configs/tegra124-common.h | 1 + + include/configs/tegra186-common.h | 1 + + include/configs/tegra20-common.h | 1 + + include/configs/tegra210-common.h | 1 + + include/configs/tegra30-common.h | 1 + + 7 files changed, 12 insertions(+) + +diff --git a/include/configs/tegra-common.h b/include/configs/tegra-common.h +index 175c55c613..8026f4b32e 100644 +--- a/include/configs/tegra-common.h ++++ b/include/configs/tegra-common.h +@@ -52,6 +52,12 @@ + /* Boot Argument Buffer Size */ + #define CONFIG_SYS_BARGSIZE (CONFIG_SYS_CBSIZE) + ++#ifdef CONFIG_ARM64 ++#define FDTFILE "nvidia/" CONFIG_DEFAULT_DEVICE_TREE ".dtb" ++#else ++#define FDTFILE CONFIG_DEFAULT_DEVICE_TREE ".dtb" ++#endif ++ + /*----------------------------------------------------------------------- + * Physical Memory Map + */ +diff --git a/include/configs/tegra114-common.h b/include/configs/tegra114-common.h +index d3a7045697..9d751b6740 100644 +--- a/include/configs/tegra114-common.h ++++ b/include/configs/tegra114-common.h +@@ -50,6 +50,7 @@ + "scriptaddr=0x90000000\0" \ + "pxefile_addr_r=0x90100000\0" \ + "kernel_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \ ++ "fdtfile=" FDTFILE "\0" \ + "fdt_addr_r=0x83000000\0" \ + "ramdisk_addr_r=0x83100000\0" + +diff --git a/include/configs/tegra124-common.h b/include/configs/tegra124-common.h +index 522993b958..0eb8f92809 100644 +--- a/include/configs/tegra124-common.h ++++ b/include/configs/tegra124-common.h +@@ -52,6 +52,7 @@ + "scriptaddr=0x90000000\0" \ + "pxefile_addr_r=0x90100000\0" \ + "kernel_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \ ++ "fdtfile=" FDTFILE "\0" \ + "fdt_addr_r=0x83000000\0" \ + "ramdisk_addr_r=0x83100000\0" + +diff --git a/include/configs/tegra186-common.h b/include/configs/tegra186-common.h +index b4936cc731..5c3ad35c76 100644 +--- a/include/configs/tegra186-common.h ++++ b/include/configs/tegra186-common.h +@@ -49,6 +49,7 @@ + "scriptaddr=0x90000000\0" \ + "pxefile_addr_r=0x90100000\0" \ + "kernel_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \ ++ "fdtfile=" FDTFILE "\0" \ + "fdt_addr_r=0x82000000\0" \ + "ramdisk_addr_r=0x82100000\0" + +diff --git a/include/configs/tegra20-common.h b/include/configs/tegra20-common.h +index 1e31d82574..fdd8996955 100644 +--- a/include/configs/tegra20-common.h ++++ b/include/configs/tegra20-common.h +@@ -51,6 +51,7 @@ + "scriptaddr=0x10000000\0" \ + "pxefile_addr_r=0x10100000\0" \ + "kernel_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \ ++ "fdtfile=" FDTFILE "\0" \ + "fdt_addr_r=0x03000000\0" \ + "ramdisk_addr_r=0x03100000\0" + +diff --git a/include/configs/tegra210-common.h b/include/configs/tegra210-common.h +index 1b8e94b60c..2226effe16 100644 +--- a/include/configs/tegra210-common.h ++++ b/include/configs/tegra210-common.h +@@ -46,6 +46,7 @@ + "scriptaddr=0x90000000\0" \ + "pxefile_addr_r=0x90100000\0" \ + "kernel_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \ ++ "fdtfile=" FDTFILE "\0" \ + "fdt_addr_r=0x83000000\0" \ + "ramdisk_addr_r=0x83200000\0" + +diff --git a/include/configs/tegra30-common.h b/include/configs/tegra30-common.h +index 54bc6756ab..6c5dc24b26 100644 +--- a/include/configs/tegra30-common.h ++++ b/include/configs/tegra30-common.h +@@ -47,6 +47,7 @@ + "scriptaddr=0x90000000\0" \ + "pxefile_addr_r=0x90100000\0" \ + "kernel_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \ ++ "fdtfile=" FDTFILE "\0" \ + "fdt_addr_r=0x83000000\0" \ + "ramdisk_addr_r=0x83100000\0" + +-- +2.26.2 + diff --git a/disable-VBE-by-default.patch b/disable-VBE-by-default.patch deleted file mode 100644 index 1f1b710..0000000 --- a/disable-VBE-by-default.patch +++ /dev/null @@ -1,32 +0,0 @@ -From d9e3a49bc2a29922da5bddd95772279f6edba802 Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Fri, 18 Aug 2023 13:28:05 +0100 -Subject: [PATCH] disable VBE by default - -The VBE protocol needs explicit device support and as -such isn't particularly useful by itself without that, -it also adds size and the potential of an attack vector -so devices that wish to use this protocol should -explicitly opt in to it like all other large features -in U-Boot. - -Signed-off-by: Peter Robinson ---- - boot/Kconfig | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/boot/Kconfig b/boot/Kconfig -index 30eb5b328d7..e8c3fbcb11d 100644 ---- a/boot/Kconfig -+++ b/boot/Kconfig -@@ -635,7 +635,6 @@ config BOOTMETH_QFW - config BOOTMETH_VBE - bool "Bootdev support for Verified Boot for Embedded" - depends on FIT -- default y - select BOOTMETH_GLOBAL - select EVENT - help --- -2.49.0 - diff --git a/dragonboard-fixes.patch b/dragonboard-fixes.patch new file mode 100644 index 0000000..c49ea50 --- /dev/null +++ b/dragonboard-fixes.patch @@ -0,0 +1,115 @@ +From 8b0274a733cd1ce39ad9ad18e1bd8efdd02a40b7 Mon Sep 17 00:00:00 2001 +From: Rob Clark +Date: Wed, 21 Jun 2017 14:21:15 -0400 +Subject: [PATCH 1/3] WIP: fix usb + +--- + common/usb_storage.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/common/usb_storage.c b/common/usb_storage.c +index d92ebb6eb19..9df3c3daaf4 100644 +--- a/common/usb_storage.c ++++ b/common/usb_storage.c +@@ -1016,7 +1016,7 @@ static int usb_request_sense(struct scsi_cmd *srb, struct us_data *ss) + + static int usb_test_unit_ready(struct scsi_cmd *srb, struct us_data *ss) + { +- int retries = 10; ++ int retries = 20; + + do { + memset(&srb->cmd[0], 0, 12); +@@ -1039,7 +1039,7 @@ static int usb_test_unit_ready(struct scsi_cmd *srb, struct us_data *ss) + if ((srb->sense_buf[2] == 0x02) && + (srb->sense_buf[12] == 0x3a)) + return -1; +- mdelay(100); ++ mdelay(250); + } while (retries--); + + return -1; +-- +2.19.1 + +From 7bf41d74ca9d58bc2243b7688f8987c1d373ea56 Mon Sep 17 00:00:00 2001 +From: Rob Clark +Date: Mon, 3 Jul 2017 08:34:37 -0400 +Subject: [PATCH 2/3] HACK: disable emmc + +Hitting some timeout which makes boot take much longer. And +uefi/boot/rootfs partitions will be on sd-card or usb disk, etc, +so we can just ignore emmc. +--- + arch/arm/dts/dragonboard410c.dts | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/arch/arm/dts/dragonboard410c.dts b/arch/arm/dts/dragonboard410c.dts +index fa348bc621e..bfe7f15d5ed 100644 +--- a/arch/arm/dts/dragonboard410c.dts ++++ b/arch/arm/dts/dragonboard410c.dts +@@ -106,6 +106,7 @@ + #phy-cells = <0>; + }; + ++/* + sdhci@07824000 { + compatible = "qcom,sdhci-msm-v4"; + reg = <0x7824900 0x11c 0x7824000 0x800>; +@@ -115,6 +116,7 @@ + clock = <&clkc 0>; + clock-frequency = <100000000>; + }; ++*/ + + sdhci@07864000 { + compatible = "qcom,sdhci-msm-v4"; +-- +2.19.1 + +From 871fe802cf3ab593b9332c4f36ab2b3f179d51ae Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Tue, 4 Sep 2018 12:21:59 +0100 +Subject: [PATCH 3/3] add options for dm410c config + +--- + configs/dragonboard410c_defconfig | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/configs/dragonboard410c_defconfig b/configs/dragonboard410c_defconfig +index a55abaf8df5..4ece0cafbe4 100644 +--- a/configs/dragonboard410c_defconfig ++++ b/configs/dragonboard410c_defconfig +@@ -7,6 +7,8 @@ CONFIG_NR_DRAM_BANKS=1 + # CONFIG_ANDROID_BOOT_IMAGE is not set + CONFIG_FIT=y + CONFIG_OF_BOARD_SETUP=y ++CONFIG_FAT_WRITE=y ++CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y + CONFIG_MISC_INIT_R=y + # CONFIG_DISPLAY_CPUINFO is not set + # CONFIG_DISPLAY_BOARDINFO is not set +@@ -41,6 +43,13 @@ CONFIG_DM_PMIC=y + CONFIG_PMIC_PM8916=y + CONFIG_MSM_SERIAL=y + CONFIG_SPMI_MSM=y ++CONFIG_DM_ETH=y ++CONFIG_DM_KEYBOARD=y ++CONFIG_DM_VIDEO=y ++# CONFG_VIDEO_BPP8 is not set ++CONFIG_NO_FB_CLEAR=y ++CONFIG_VIDEO_SIMPLE=y ++CONFIG_USB_KEYBOARD=y + CONFIG_USB=y + CONFIG_DM_USB=y + CONFIG_USB_EHCI_HCD=y +@@ -57,5 +66,6 @@ CONFIG_USB_HOST_ETHER=y + CONFIG_USB_ETHER_ASIX=y + CONFIG_USB_ETHER_ASIX88179=y + CONFIG_USB_ETHER_MCS7830=y ++CONFIG_USB_ETHER_RTL8152=y + CONFIG_USB_ETHER_SMSC95XX=y + CONFIG_OF_LIBFDT_OVERLAY=y +-- +2.19.1 + diff --git a/enable-bootmenu-by-default.patch b/enable-bootmenu-by-default.patch deleted file mode 100644 index 1ecd514..0000000 --- a/enable-bootmenu-by-default.patch +++ /dev/null @@ -1,49 +0,0 @@ -From a956480a6d52ae90ef4a46275c2ee29a4074de36 Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Fri, 18 Aug 2023 23:10:42 +0100 -Subject: [PATCH] enable bootmenu by default - -We want the boot menu on all Fedora devices as it makes -it a whole lot more user friendly. - -Signed-off-by: Peter Robinson ---- - boot/Kconfig | 2 ++ - cmd/Kconfig | 1 + - 2 files changed, 3 insertions(+) - -diff --git a/boot/Kconfig b/boot/Kconfig -index 467b09e2350..ad67b1f65a6 100644 ---- a/boot/Kconfig -+++ b/boot/Kconfig -@@ -1281,6 +1281,7 @@ config BOOTDELAY - - config AUTOBOOT_KEYED - bool "Stop autobooting via specific input key / string" -+ default y - help - This option enables stopping (aborting) of the automatic - boot feature only by issuing a specific input key or -@@ -1433,6 +1434,7 @@ config AUTOBOOT_MENUKEY - - config AUTOBOOT_MENU_SHOW - bool "Show a menu on boot" -+ default y - depends on CMD_BOOTMENU - help - This enables the boot menu, controlled by environment variables -diff --git a/cmd/Kconfig b/cmd/Kconfig -index 43ca10f69cc..3d39f2914cc 100644 ---- a/cmd/Kconfig -+++ b/cmd/Kconfig -@@ -413,6 +413,7 @@ source lib/efi_selftest/Kconfig - - config CMD_BOOTMENU - bool "bootmenu" -+ default y - select MENU - select CHARSET - help --- -2.41.0 - diff --git a/p3450-fix-board.patch b/p3450-fix-board.patch deleted file mode 100644 index 74475d5..0000000 --- a/p3450-fix-board.patch +++ /dev/null @@ -1,25 +0,0 @@ -From c9b65320d64a60cde74c4c1f9cb4a05198a456c2 Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Wed, 10 Sep 2025 13:27:52 +0100 -Subject: [PATCH] further size reductions - ---- - configs/p3450-0000_defconfig | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/configs/p3450-0000_defconfig b/configs/p3450-0000_defconfig -index 2ebcf8b83fc..a5e717a02ed 100644 ---- a/configs/p3450-0000_defconfig -+++ b/configs/p3450-0000_defconfig -@@ -27,6 +27,8 @@ CONFIG_CONSOLE_MUX=y - CONFIG_SYS_STDIO_DEREGISTER=y - CONFIG_SYS_PROMPT="Tegra210 (P3450-0000) # " - # CONFIG_BOOTM_PLAN9 is not set -+# CONFIG_SYS_DTC_PAD_BYTES is not set -+# CONFIG_LEGACY_IMAGE_FORMAT is not set - # CONFIG_BOOTM_RTEMS is not set - # CONFIG_BOOTM_VXWORKS is not set - # CONFIG_CMD_ELF is not set --- -2.51.0 - diff --git a/raspberrypi-Add-quirk-for-RPi5-2Gb-rev-1.0.patch b/raspberrypi-Add-quirk-for-RPi5-2Gb-rev-1.0.patch deleted file mode 100644 index d6612ee..0000000 --- a/raspberrypi-Add-quirk-for-RPi5-2Gb-rev-1.0.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 72fd4fdb54721a31d2b4e9f95fdd3b3e398bb2c0 Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Sun, 12 Apr 2026 01:14:12 +0100 -Subject: [PATCH] board/raspberrypi: Add quirk for RPi5 2Gb rev 1.0 - -All 2Gb Raspberry Pi 5s use the BCM2712D0 silicon, but -the early boards were still rev 1.0 so we need a quirk -to ensure the correct device tree is used. - -Signed-off-by: Peter Robinson ---- - board/raspberrypi/rpi/rpi.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c -index b0a1484c0fa..ff9cab6521b 100644 ---- a/board/raspberrypi/rpi/rpi.c -+++ b/board/raspberrypi/rpi/rpi.c -@@ -371,6 +371,10 @@ static void set_fdtfile(void) - const char *fdtfile; - int rev = revision & 0x0f; - -+ /* 2GB Pi 5B board rev 1.0 always has BCM2712D0 silicon */ -+ if (revision == 0xb04170) -+ rev = 1; -+ - if (env_get("fdtfile")) - return; - --- -2.53.0 - diff --git a/riscv64-boards b/riscv64-boards deleted file mode 100644 index f96e775..0000000 --- a/riscv64-boards +++ /dev/null @@ -1,4 +0,0 @@ -qemu-riscv64_spl -sifive_unleashed -sifive_unmatched -starfive_visionfive2 diff --git a/rk3399-Pinebook-pro-EDP-support.patch b/rk3399-Pinebook-pro-EDP-support.patch new file mode 100644 index 0000000..e04b62d --- /dev/null +++ b/rk3399-Pinebook-pro-EDP-support.patch @@ -0,0 +1,1027 @@ +From patchwork Fri Sep 25 18:36:55 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: "Arnaud Patard (Rtp)" +X-Patchwork-Id: 1371525 +Return-Path: +X-Original-To: incoming@patchwork.ozlabs.org +Delivered-To: patchwork-incoming@bilbo.ozlabs.org +Authentication-Results: ozlabs.org; + spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de + (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; + envelope-from=u-boot-bounces@lists.denx.de; receiver=) +Authentication-Results: ozlabs.org; + dmarc=fail (p=none dis=none) header.from=rtp-net.org +Received: from phobos.denx.de (phobos.denx.de + [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) + (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) + key-exchange X25519 server-signature RSA-PSS (4096 bits)) + (No client certificate requested) + by ozlabs.org (Postfix) with ESMTPS id 4BygrL4fh7z9sS8 + for ; Sat, 26 Sep 2020 04:47:14 +1000 (AEST) +Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) + by phobos.denx.de (Postfix) with ESMTP id 1DE9D823F2; + Fri, 25 Sep 2020 20:46:51 +0200 (CEST) +Authentication-Results: phobos.denx.de; + dmarc=fail (p=none dis=none) header.from=rtp-net.org +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de +Received: by phobos.denx.de (Postfix, from userid 109) + id 7FF818240A; Fri, 25 Sep 2020 20:46:47 +0200 (CEST) +X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de +X-Spam-Level: +X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, + URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 +Received: from lechat.rtp-net.org (lechat.rtp-net.org + [IPv6:2001:bc8:3430:1000::c0f:fee]) + (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) + (No client certificate requested) + by phobos.denx.de (Postfix) with ESMTPS id 60178823ED + for ; Fri, 25 Sep 2020 20:46:44 +0200 (CEST) +Authentication-Results: phobos.denx.de; + dmarc=pass (p=none dis=none) header.from=rtp-net.org +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=arnaud.patard@rtp-net.org +Received: by lechat.rtp-net.org (Postfix, from userid 1000) + id 21266180A8C; Fri, 25 Sep 2020 20:46:42 +0200 (CEST) +Message-ID: <20200925183856.346332079@rtp-net.org> +User-Agent: quilt/0.66 +Date: Fri, 25 Sep 2020 20:36:55 +0200 +From: Arnaud Patard (Rtp) +To: u-boot@lists.denx.de +Cc: Kever Yang , + Anatolij Gustschin , + Philipp Tomsich , + Peter Robinson , + Samuel Dionne-Riel , + Arnaud Patard +Subject: [patch 1/8] RFC: drivers/video/rockchip/rk_vop.c: Use endpoint + compatible string to find VOP mode +References: <20200925183654.723338620@rtp-net.org> +MIME-Version: 1.0 +X-BeenThere: u-boot@lists.denx.de +X-Mailman-Version: 2.1.34 +Precedence: list +List-Id: U-Boot discussion +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +Errors-To: u-boot-bounces@lists.denx.de +Sender: "U-Boot" +X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de +X-Virus-Status: Clean + +The current code is using an hard coded enum and the of node reg value of +endpoint to find out if the endpoint is mipi/hdmi/lvds/edp/dp. The order +is different between rk3288, rk3399 vop little, rk3399 vop big. + +A possible solution would be to make sure that the rk3288.dtsi and +rk3399.dtsi files have "expected" reg value or an other solution is +to find the kind of endpoint by comparing the endpoint compatible value. + +This patch is implementing the more flexible second solution. + +Signed-off-by: Arnaud Patard + +Index: u-boot/arch/arm/include/asm/arch-rockchip/vop_rk3288.h +=================================================================== +--- u-boot.orig/arch/arm/include/asm/arch-rockchip/vop_rk3288.h ++++ u-boot/arch/arm/include/asm/arch-rockchip/vop_rk3288.h +@@ -85,26 +85,13 @@ enum { + LB_RGB_1280X8 = 0x5 + }; + +-#if defined(CONFIG_ROCKCHIP_RK3399) + enum vop_modes { + VOP_MODE_EDP = 0, + VOP_MODE_MIPI, + VOP_MODE_HDMI, +- VOP_MODE_MIPI1, +- VOP_MODE_DP, +- VOP_MODE_NONE, +-}; +-#else +-enum vop_modes { +- VOP_MODE_EDP = 0, +- VOP_MODE_HDMI, + VOP_MODE_LVDS, +- VOP_MODE_MIPI, +- VOP_MODE_NONE, +- VOP_MODE_AUTO_DETECT, +- VOP_MODE_UNKNOWN, ++ VOP_MODE_DP, + }; +-#endif + + /* VOP_VERSION_INFO */ + #define M_FPGA_VERSION (0xffff << 16) +Index: u-boot/drivers/video/rockchip/rk_vop.c +=================================================================== +--- u-boot.orig/drivers/video/rockchip/rk_vop.c ++++ u-boot/drivers/video/rockchip/rk_vop.c +@@ -235,12 +235,11 @@ static int rk_display_init(struct udevic + struct clk clk; + enum video_log2_bpp l2bpp; + ofnode remote; ++ const char *compat; + + debug("%s(%s, %lu, %s)\n", __func__, + dev_read_name(dev), fbbase, ofnode_get_name(ep_node)); + +- vop_id = ofnode_read_s32_default(ep_node, "reg", -1); +- debug("vop_id=%d\n", vop_id); + ret = ofnode_read_u32(ep_node, "remote-endpoint", &remote_phandle); + if (ret) + return ret; +@@ -282,6 +281,28 @@ static int rk_display_init(struct udevic + if (disp) + break; + }; ++ compat = ofnode_get_property(remote, "compatible", NULL); ++ if (!compat) { ++ debug("%s(%s): Failed to find compatible property\n", ++ __func__, dev_read_name(dev)); ++ return -EINVAL; ++ } ++ if (strstr(compat, "edp")) { ++ vop_id = VOP_MODE_EDP; ++ } else if (strstr(compat, "mipi")) { ++ vop_id = VOP_MODE_MIPI; ++ } else if (strstr(compat, "hdmi")) { ++ vop_id = VOP_MODE_HDMI; ++ } else if (strstr(compat, "cdn-dp")) { ++ vop_id = VOP_MODE_DP; ++ } else if (strstr(compat, "lvds")) { ++ vop_id = VOP_MODE_LVDS; ++ } else { ++ debug("%s(%s): Failed to find vop mode for %s\n", ++ __func__, dev_read_name(dev), compat); ++ return -EINVAL; ++ } ++ debug("vop_id=%d\n", vop_id); + + disp_uc_plat = dev_get_uclass_platdata(disp); + debug("Found device '%s', disp_uc_priv=%p\n", disp->name, disp_uc_plat); + +From patchwork Fri Sep 25 18:36:56 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: "Arnaud Patard (Rtp)" +X-Patchwork-Id: 1371530 +Return-Path: +X-Original-To: incoming@patchwork.ozlabs.org +Delivered-To: patchwork-incoming@bilbo.ozlabs.org +Authentication-Results: ozlabs.org; + spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de + (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; + envelope-from=u-boot-bounces@lists.denx.de; receiver=) +Authentication-Results: ozlabs.org; + dmarc=fail (p=none dis=none) header.from=rtp-net.org +Received: from phobos.denx.de (phobos.denx.de + [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) + (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) + key-exchange X25519 server-signature RSA-PSS (4096 bits)) + (No client certificate requested) + by ozlabs.org (Postfix) with ESMTPS id 4BygsJ4hGqz9sS8 + for ; Sat, 26 Sep 2020 04:48:04 +1000 (AEST) +Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) + by phobos.denx.de (Postfix) with ESMTP id 50C6E82503; + Fri, 25 Sep 2020 20:47:09 +0200 (CEST) +Authentication-Results: phobos.denx.de; + dmarc=fail (p=none dis=none) header.from=rtp-net.org +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de +Received: by phobos.denx.de (Postfix, from userid 109) + id 0F41F8246F; Fri, 25 Sep 2020 20:46:51 +0200 (CEST) +X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de +X-Spam-Level: +X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, + URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 +Received: from lechat.rtp-net.org (lechat.rtp-net.org [51.15.165.164]) + (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) + (No client certificate requested) + by phobos.denx.de (Postfix) with ESMTPS id BD6E0823F5 + for ; Fri, 25 Sep 2020 20:46:44 +0200 (CEST) +Authentication-Results: phobos.denx.de; + dmarc=pass (p=none dis=none) header.from=rtp-net.org +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=arnaud.patard@rtp-net.org +Received: by lechat.rtp-net.org (Postfix, from userid 1000) + id 0B30218054F; Fri, 25 Sep 2020 20:46:43 +0200 (CEST) +Message-ID: <20200925183856.398231733@rtp-net.org> +User-Agent: quilt/0.66 +Date: Fri, 25 Sep 2020 20:36:56 +0200 +From: Arnaud Patard (Rtp) +To: u-boot@lists.denx.de +Cc: Kever Yang , + Anatolij Gustschin , + Philipp Tomsich , + Peter Robinson , + Samuel Dionne-Riel , + Arnaud Patard +Subject: [patch 2/8] RFC: drivers/video/rockchip/rk_edp.c: Add rk3399 support +References: <20200925183654.723338620@rtp-net.org> +MIME-Version: 1.0 +X-BeenThere: u-boot@lists.denx.de +X-Mailman-Version: 2.1.34 +Precedence: list +List-Id: U-Boot discussion +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +Errors-To: u-boot-bounces@lists.denx.de +Sender: "U-Boot" +X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de +X-Virus-Status: Clean + +According to linux commit "drm/rockchip: analogix_dp: add rk3399 eDP +support" (82872e42bb1501dd9e60ca430f4bae45a469aa64), rk3288 and rk3399 +eDP IPs are nearly the same, the difference is in the grf register +(SOC_CON6 versus SOC_CON20). So, change the code to use the right +register on each IP. + +The clocks don't seem to be the same, the eDP clock is not at index 1 +on rk3399, so don't try changing the clock at index 1 to rate 0 on +rk3399. + +Signed-off-by: Arnaud Patard + +Index: u-boot/drivers/video/rockchip/rk_edp.c +=================================================================== +--- u-boot.orig/drivers/video/rockchip/rk_edp.c ++++ u-boot/drivers/video/rockchip/rk_edp.c +@@ -17,11 +17,10 @@ + #include + #include + #include ++#include + #include + #include +-#include +-#include +-#include ++#include + + #define MAX_CR_LOOP 5 + #define MAX_EQ_LOOP 5 +@@ -37,18 +36,42 @@ static const char * const pre_emph_names + #define DP_VOLTAGE_MAX DP_TRAIN_VOLTAGE_SWING_1200 + #define DP_PRE_EMPHASIS_MAX DP_TRAIN_PRE_EMPHASIS_9_5 + ++#define RK3288_GRF_SOC_CON6 0x025c ++#define RK3288_GRF_SOC_CON12 0x0274 ++#define RK3399_GRF_SOC_CON20 0x6250 ++#define RK3399_GRF_SOC_CON25 0x6264 ++ ++enum rockchip_dp_types { ++ RK3288_DP = 0, ++ RK3399_EDP ++}; ++ ++struct rockchip_dp_data { ++ unsigned long reg_vop_big_little; ++ unsigned long reg_vop_big_little_sel; ++ unsigned long reg_ref_clk_sel; ++ unsigned long ref_clk_sel_bit; ++ enum rockchip_dp_types chip_type; ++}; ++ + struct rk_edp_priv { + struct rk3288_edp *regs; +- struct rk3288_grf *grf; ++ void *grf; + struct udevice *panel; + struct link_train link_train; + u8 train_set[4]; + }; + +-static void rk_edp_init_refclk(struct rk3288_edp *regs) ++static void rk_edp_init_refclk(struct rk3288_edp *regs, enum rockchip_dp_types chip_type) + { + writel(SEL_24M, ®s->analog_ctl_2); +- writel(REF_CLK_24M, ®s->pll_reg_1); ++ u32 reg; ++ ++ reg = REF_CLK_24M; ++ if (chip_type == RK3288_DP) ++ reg ^= REF_CLK_MASK; ++ writel(reg, ®s->pll_reg_1); ++ + + writel(LDO_OUTPUT_V_SEL_145 | KVCO_DEFALUT | CHG_PUMP_CUR_SEL_5US | + V2L_CUR_SEL_1MA, ®s->pll_reg_2); +@@ -1023,6 +1046,8 @@ static int rk_edp_probe(struct udevice * + struct display_plat *uc_plat = dev_get_uclass_platdata(dev); + struct rk_edp_priv *priv = dev_get_priv(dev); + struct rk3288_edp *regs = priv->regs; ++ struct rockchip_dp_data *edp_data = (struct rockchip_dp_data *)dev_get_driver_data(dev); ++ + struct clk clk; + int ret; + +@@ -1037,16 +1062,17 @@ static int rk_edp_probe(struct udevice * + int vop_id = uc_plat->source_id; + debug("%s, uc_plat=%p, vop_id=%u\n", __func__, uc_plat, vop_id); + +- ret = clk_get_by_index(dev, 1, &clk); +- if (ret >= 0) { +- ret = clk_set_rate(&clk, 0); +- clk_free(&clk); +- } +- if (ret) { +- debug("%s: Failed to set EDP clock: ret=%d\n", __func__, ret); +- return ret; ++ if (edp_data->chip_type == RK3288_DP) { ++ ret = clk_get_by_index(dev, 1, &clk); ++ if (ret >= 0) { ++ ret = clk_set_rate(&clk, 0); ++ clk_free(&clk); ++ } ++ if (ret) { ++ debug("%s: Failed to set EDP clock: ret=%d\n", __func__, ret); ++ return ret; ++ } + } +- + ret = clk_get_by_index(uc_plat->src_dev, 0, &clk); + if (ret >= 0) { + ret = clk_set_rate(&clk, 192000000); +@@ -1059,15 +1085,17 @@ static int rk_edp_probe(struct udevice * + } + + /* grf_edp_ref_clk_sel: from internal 24MHz or 27MHz clock */ +- rk_setreg(&priv->grf->soc_con12, 1 << 4); ++ rk_setreg(priv->grf + edp_data->reg_ref_clk_sel, ++ edp_data->ref_clk_sel_bit); + + /* select epd signal from vop0 or vop1 */ +- rk_clrsetreg(&priv->grf->soc_con6, (1 << 5), +- (vop_id == 1) ? (1 << 5) : (0 << 5)); ++ rk_clrsetreg(priv->grf + edp_data->reg_vop_big_little, ++ edp_data->reg_vop_big_little_sel, ++ (vop_id == 1) ? edp_data->reg_vop_big_little_sel : 0); + + rockchip_edp_wait_hpd(priv); + +- rk_edp_init_refclk(regs); ++ rk_edp_init_refclk(regs, edp_data->chip_type); + rk_edp_init_interrupt(regs); + rk_edp_enable_sw_function(regs); + ret = rk_edp_init_analog_func(regs); +@@ -1083,8 +1111,25 @@ static const struct dm_display_ops dp_ro + .enable = rk_edp_enable, + }; + ++static const struct rockchip_dp_data rk3399_edp = { ++ .reg_vop_big_little = RK3399_GRF_SOC_CON20, ++ .reg_vop_big_little_sel = BIT(5), ++ .reg_ref_clk_sel = RK3399_GRF_SOC_CON25, ++ .ref_clk_sel_bit = BIT(11), ++ .chip_type = RK3399_EDP, ++}; ++ ++static const struct rockchip_dp_data rk3288_dp = { ++ .reg_vop_big_little = RK3288_GRF_SOC_CON6, ++ .reg_vop_big_little_sel = BIT(5), ++ .reg_ref_clk_sel = RK3288_GRF_SOC_CON12, ++ .ref_clk_sel_bit = BIT(4), ++ .chip_type = RK3288_DP, ++}; ++ + static const struct udevice_id rockchip_dp_ids[] = { +- { .compatible = "rockchip,rk3288-edp" }, ++ { .compatible = "rockchip,rk3288-edp", .data = (ulong)&rk3288_dp }, ++ { .compatible = "rockchip,rk3399-edp", .data = (ulong)&rk3399_edp }, + { } + }; + +Index: u-boot/arch/arm/include/asm/arch-rockchip/edp_rk3288.h +=================================================================== +--- u-boot.orig/arch/arm/include/asm/arch-rockchip/edp_rk3288.h ++++ u-boot/arch/arm/include/asm/arch-rockchip/edp_rk3288.h +@@ -232,8 +232,9 @@ check_member(rk3288_edp, pll_reg_5, 0xa0 + #define PD_CH0 (0x1 << 0) + + /* pll_reg_1 */ +-#define REF_CLK_24M (0x1 << 1) +-#define REF_CLK_27M (0x0 << 1) ++#define REF_CLK_24M (0x1 << 0) ++#define REF_CLK_27M (0x0 << 0) ++#define REF_CLK_MASK (0x1 << 0) + + /* line_map */ + #define LANE3_MAP_LOGIC_LANE_0 (0x0 << 6) + +From patchwork Fri Sep 25 18:36:57 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: "Arnaud Patard (Rtp)" +X-Patchwork-Id: 1371528 +Return-Path: +X-Original-To: incoming@patchwork.ozlabs.org +Delivered-To: patchwork-incoming@bilbo.ozlabs.org +Authentication-Results: ozlabs.org; + spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de + (client-ip=85.214.62.61; helo=phobos.denx.de; + envelope-from=u-boot-bounces@lists.denx.de; receiver=) +Authentication-Results: ozlabs.org; + dmarc=fail (p=none dis=none) header.from=rtp-net.org +Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) + (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) + key-exchange X25519 server-signature RSA-PSS (4096 bits)) + (No client certificate requested) + by ozlabs.org (Postfix) with ESMTPS id 4Bygrs3CVDz9sSJ + for ; Sat, 26 Sep 2020 04:47:41 +1000 (AEST) +Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) + by phobos.denx.de (Postfix) with ESMTP id A6BF7824BB; + Fri, 25 Sep 2020 20:47:04 +0200 (CEST) +Authentication-Results: phobos.denx.de; + dmarc=fail (p=none dis=none) header.from=rtp-net.org +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de +Received: by phobos.denx.de (Postfix, from userid 109) + id A050F82499; Fri, 25 Sep 2020 20:46:50 +0200 (CEST) +X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de +X-Spam-Level: +X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, + URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 +Received: from lechat.rtp-net.org (lechat.rtp-net.org [51.15.165.164]) + (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) + (No client certificate requested) + by phobos.denx.de (Postfix) with ESMTPS id 8F65D823F0 + for ; Fri, 25 Sep 2020 20:46:44 +0200 (CEST) +Authentication-Results: phobos.denx.de; + dmarc=pass (p=none dis=none) header.from=rtp-net.org +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=arnaud.patard@rtp-net.org +Received: by lechat.rtp-net.org (Postfix, from userid 1000) + id 3BBA4180A6C; Fri, 25 Sep 2020 20:46:43 +0200 (CEST) +Message-ID: <20200925183856.447902421@rtp-net.org> +User-Agent: quilt/0.66 +Date: Fri, 25 Sep 2020 20:36:57 +0200 +From: Arnaud Patard (Rtp) +To: u-boot@lists.denx.de +Cc: Kever Yang , + Anatolij Gustschin , + Philipp Tomsich , + Peter Robinson , + Samuel Dionne-Riel , + Arnaud Patard +Subject: [patch 3/8] RFC: drivers/video/rockchip/rk_edp.c: Change interrupt + polarity configuration +References: <20200925183654.723338620@rtp-net.org> +MIME-Version: 1.0 +X-BeenThere: u-boot@lists.denx.de +X-Mailman-Version: 2.1.34 +Precedence: list +List-Id: U-Boot discussion +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +Errors-To: u-boot-bounces@lists.denx.de +Sender: "U-Boot" +X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de +X-Virus-Status: Clean + +The linux code is setting polarity configuration to 3 but +uboot code is setting it to 1. Change the configuration to match the +linux configuration + +Signed-off-by: Arnaud Patard + +Index: u-boot/drivers/video/rockchip/rk_edp.c +=================================================================== +--- u-boot.orig/drivers/video/rockchip/rk_edp.c ++++ u-boot/drivers/video/rockchip/rk_edp.c +@@ -100,10 +100,13 @@ static void rk_edp_init_refclk(struct rk + ®s->dp_reserv2); + } + ++#define INT_POL1 (0x1 << 1) ++#define INT_POL0 (0x1 << 0) ++ + static void rk_edp_init_interrupt(struct rk3288_edp *regs) + { + /* Set interrupt pin assertion polarity as high */ +- writel(INT_POL, ®s->int_ctl); ++ writel(INT_POL0 | INT_POL1, ®s->int_ctl); + + /* Clear pending registers */ + writel(0xff, ®s->common_int_sta_1); + +From patchwork Fri Sep 25 18:36:58 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: "Arnaud Patard (Rtp)" +X-Patchwork-Id: 1371526 +Return-Path: +X-Original-To: incoming@patchwork.ozlabs.org +Delivered-To: patchwork-incoming@bilbo.ozlabs.org +Authentication-Results: ozlabs.org; + spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de + (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; + envelope-from=u-boot-bounces@lists.denx.de; receiver=) +Authentication-Results: ozlabs.org; + dmarc=fail (p=none dis=none) header.from=rtp-net.org +Received: from phobos.denx.de (phobos.denx.de + [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) + (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) + key-exchange X25519 server-signature RSA-PSS (4096 bits)) + (No client certificate requested) + by ozlabs.org (Postfix) with ESMTPS id 4BygrP4k49z9sS8 + for ; Sat, 26 Sep 2020 04:47:17 +1000 (AEST) +Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) + by phobos.denx.de (Postfix) with ESMTP id 59CA8824A5; + Fri, 25 Sep 2020 20:46:58 +0200 (CEST) +Authentication-Results: phobos.denx.de; + dmarc=fail (p=none dis=none) header.from=rtp-net.org +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de +Received: by phobos.denx.de (Postfix, from userid 109) + id 35BF482489; Fri, 25 Sep 2020 20:46:50 +0200 (CEST) +X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de +X-Spam-Level: +X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, + URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 +Received: from lechat.rtp-net.org (lechat.rtp-net.org + [IPv6:2001:bc8:3430:1000::c0f:fee]) + (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) + (No client certificate requested) + by phobos.denx.de (Postfix) with ESMTPS id 8FB9B823F2 + for ; Fri, 25 Sep 2020 20:46:44 +0200 (CEST) +Authentication-Results: phobos.denx.de; + dmarc=pass (p=none dis=none) header.from=rtp-net.org +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=arnaud.patard@rtp-net.org +Received: by lechat.rtp-net.org (Postfix, from userid 1000) + id 4C3F8180AAC; Fri, 25 Sep 2020 20:46:43 +0200 (CEST) +Message-ID: <20200925183856.497901419@rtp-net.org> +User-Agent: quilt/0.66 +Date: Fri, 25 Sep 2020 20:36:58 +0200 +From: Arnaud Patard (Rtp) +To: u-boot@lists.denx.de +Cc: Kever Yang , + Anatolij Gustschin , + Philipp Tomsich , + Peter Robinson , + Samuel Dionne-Riel , + Arnaud Patard +Subject: [patch 4/8] RFC: drivers/video/rockchip/rk_edp.c: Change clock rate +References: <20200925183654.723338620@rtp-net.org> +MIME-Version: 1.0 +X-BeenThere: u-boot@lists.denx.de +X-Mailman-Version: 2.1.34 +Precedence: list +List-Id: U-Boot discussion +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +Errors-To: u-boot-bounces@lists.denx.de +Sender: "U-Boot" +X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de +X-Virus-Status: Clean + +The current code is setting the clock rate to 192000000, but +due to the current device-tree configuration and linux code, +it should rather be 100000000. + +Signed-off-by: Arnaud Patard + +Index: u-boot/drivers/video/rockchip/rk_edp.c +=================================================================== +--- u-boot.orig/drivers/video/rockchip/rk_edp.c ++++ u-boot/drivers/video/rockchip/rk_edp.c +@@ -1075,7 +1078,7 @@ static int rk_edp_probe(struct udevice * + } + ret = clk_get_by_index(uc_plat->src_dev, 0, &clk); + if (ret >= 0) { +- ret = clk_set_rate(&clk, 192000000); ++ ret = clk_set_rate(&clk, 100000000); + clk_free(&clk); + } + if (ret < 0) { + +From patchwork Fri Sep 25 18:36:59 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: "Arnaud Patard (Rtp)" +X-Patchwork-Id: 1371529 +Return-Path: +X-Original-To: incoming@patchwork.ozlabs.org +Delivered-To: patchwork-incoming@bilbo.ozlabs.org +Authentication-Results: ozlabs.org; + spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de + (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; + envelope-from=u-boot-bounces@lists.denx.de; receiver=) +Authentication-Results: ozlabs.org; + dmarc=fail (p=none dis=none) header.from=rtp-net.org +Received: from phobos.denx.de (phobos.denx.de + [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) + (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) + key-exchange X25519 server-signature RSA-PSS (4096 bits)) + (No client certificate requested) + by ozlabs.org (Postfix) with ESMTPS id 4Bygs45XdNz9sS8 + for ; Sat, 26 Sep 2020 04:47:52 +1000 (AEST) +Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) + by phobos.denx.de (Postfix) with ESMTP id 61E26824EE; + Fri, 25 Sep 2020 20:47:07 +0200 (CEST) +Authentication-Results: phobos.denx.de; + dmarc=fail (p=none dis=none) header.from=rtp-net.org +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de +Received: by phobos.denx.de (Postfix, from userid 109) + id B47DD8248B; Fri, 25 Sep 2020 20:46:50 +0200 (CEST) +X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de +X-Spam-Level: +X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, + URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 +Received: from lechat.rtp-net.org (lechat.rtp-net.org + [IPv6:2001:bc8:3430:1000::c0f:fee]) + (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) + (No client certificate requested) + by phobos.denx.de (Postfix) with ESMTPS id DD7248246F + for ; Fri, 25 Sep 2020 20:46:44 +0200 (CEST) +Authentication-Results: phobos.denx.de; + dmarc=pass (p=none dis=none) header.from=rtp-net.org +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=arnaud.patard@rtp-net.org +Received: by lechat.rtp-net.org (Postfix, from userid 1000) + id 6D075180ABF; Fri, 25 Sep 2020 20:46:43 +0200 (CEST) +Message-ID: <20200925183856.548086571@rtp-net.org> +User-Agent: quilt/0.66 +Date: Fri, 25 Sep 2020 20:36:59 +0200 +From: Arnaud Patard (Rtp) +To: u-boot@lists.denx.de +Cc: Kever Yang , + Anatolij Gustschin , + Philipp Tomsich , + Peter Robinson , + Samuel Dionne-Riel , + Arnaud Patard +Subject: [patch 5/8] RFC: drivers/video/rockchip/rk_vop.c: Reserve efi fb + memory +References: <20200925183654.723338620@rtp-net.org> +MIME-Version: 1.0 +X-BeenThere: u-boot@lists.denx.de +X-Mailman-Version: 2.1.34 +Precedence: list +List-Id: U-Boot discussion +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +Errors-To: u-boot-bounces@lists.denx.de +Sender: "U-Boot" +X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de +X-Virus-Status: Clean + +When booting with EFI and graphics, the memory used for framebuffer +has to be reserved, otherwise it may leads to kernel memory +overwrite. + +Signed-off-by: Arnaud Patard + +Index: u-boot/drivers/video/rockchip/rk_vop.c +=================================================================== +--- u-boot.orig/drivers/video/rockchip/rk_vop.c ++++ u-boot/drivers/video/rockchip/rk_vop.c +@@ -20,6 +20,8 @@ + #include + #include + #include ++#include ++#include + #include + #include + #include +@@ -394,6 +396,13 @@ int rk_vop_probe(struct udevice *dev) + if (!(gd->flags & GD_FLG_RELOC)) + return 0; + ++ plat->base = gd->bd->bi_dram[0].start + gd->bd->bi_dram[0].size - plat->size; ++ ++#if defined(CONFIG_EFI_LOADER) ++ debug("Adding to EFI map %d @ %lx\n", plat->size, plat->base); ++ efi_add_memory_map(plat->base, plat->size, EFI_RESERVED_MEMORY_TYPE); ++#endif ++ + priv->regs = (struct rk3288_vop *)dev_read_addr(dev); + + /* + +From patchwork Fri Sep 25 18:37:00 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: "Arnaud Patard (Rtp)" +X-Patchwork-Id: 1371527 +Return-Path: +X-Original-To: incoming@patchwork.ozlabs.org +Delivered-To: patchwork-incoming@bilbo.ozlabs.org +Authentication-Results: ozlabs.org; + spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de + (client-ip=85.214.62.61; helo=phobos.denx.de; + envelope-from=u-boot-bounces@lists.denx.de; receiver=) +Authentication-Results: ozlabs.org; + dmarc=fail (p=none dis=none) header.from=rtp-net.org +Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) + (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) + key-exchange X25519 server-signature RSA-PSS (4096 bits)) + (No client certificate requested) + by ozlabs.org (Postfix) with ESMTPS id 4Bygrg0YBjz9sS8 + for ; Sat, 26 Sep 2020 04:47:31 +1000 (AEST) +Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) + by phobos.denx.de (Postfix) with ESMTP id 63B7B82489; + Fri, 25 Sep 2020 20:47:01 +0200 (CEST) +Authentication-Results: phobos.denx.de; + dmarc=fail (p=none dis=none) header.from=rtp-net.org +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de +Received: by phobos.denx.de (Postfix, from userid 109) + id 3E20082412; Fri, 25 Sep 2020 20:46:50 +0200 (CEST) +X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de +X-Spam-Level: +X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, + URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 +Received: from lechat.rtp-net.org (lechat.rtp-net.org + [IPv6:2001:bc8:3430:1000::c0f:fee]) + (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) + (No client certificate requested) + by phobos.denx.de (Postfix) with ESMTPS id D99C482423 + for ; Fri, 25 Sep 2020 20:46:44 +0200 (CEST) +Authentication-Results: phobos.denx.de; + dmarc=pass (p=none dis=none) header.from=rtp-net.org +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=arnaud.patard@rtp-net.org +Received: by lechat.rtp-net.org (Postfix, from userid 1000) + id 81B21180AC6; Fri, 25 Sep 2020 20:46:43 +0200 (CEST) +Message-ID: <20200925183856.598156739@rtp-net.org> +User-Agent: quilt/0.66 +Date: Fri, 25 Sep 2020 20:37:00 +0200 +From: Arnaud Patard (Rtp) +To: u-boot@lists.denx.de +Cc: Kever Yang , + Anatolij Gustschin , + Philipp Tomsich , + Peter Robinson , + Samuel Dionne-Riel , + Arnaud Patard +Subject: [patch 6/8] RFC: rk3399-pinebook-pro-u-boot.dtsi: Enable edp +References: <20200925183654.723338620@rtp-net.org> +MIME-Version: 1.0 +X-BeenThere: u-boot@lists.denx.de +X-Mailman-Version: 2.1.34 +Precedence: list +List-Id: U-Boot discussion +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +Errors-To: u-boot-bounces@lists.denx.de +Sender: "U-Boot" +X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de +X-Virus-Status: Clean + +- uboot rockchip edp code is looking for a rockchip,panel property + for the edp dts node, so add it. + +Signed-off-by: Arnaud Patard + +Index: u-boot/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi +=================================================================== +--- u-boot.orig/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi ++++ u-boot/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi +@@ -49,3 +49,7 @@ + &vdd_log { + regulator-init-microvolt = <950000>; + }; ++ ++&edp { ++ rockchip,panel = <&edp_panel>; ++}; + +From patchwork Fri Sep 25 18:37:01 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: "Arnaud Patard (Rtp)" +X-Patchwork-Id: 1371532 +Return-Path: +X-Original-To: incoming@patchwork.ozlabs.org +Delivered-To: patchwork-incoming@bilbo.ozlabs.org +Authentication-Results: ozlabs.org; + spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de + (client-ip=85.214.62.61; helo=phobos.denx.de; + envelope-from=u-boot-bounces@lists.denx.de; receiver=) +Authentication-Results: ozlabs.org; + dmarc=fail (p=none dis=none) header.from=rtp-net.org +Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) + (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) + key-exchange X25519 server-signature RSA-PSS (4096 bits)) + (No client certificate requested) + by ozlabs.org (Postfix) with ESMTPS id 4Bygsg53Gnz9sSJ + for ; Sat, 26 Sep 2020 04:48:23 +1000 (AEST) +Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) + by phobos.denx.de (Postfix) with ESMTP id C15BF82513; + Fri, 25 Sep 2020 20:47:13 +0200 (CEST) +Authentication-Results: phobos.denx.de; + dmarc=fail (p=none dis=none) header.from=rtp-net.org +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de +Received: by phobos.denx.de (Postfix, from userid 109) + id 4F0DE8247A; Fri, 25 Sep 2020 20:46:53 +0200 (CEST) +X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de +X-Spam-Level: +X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, + URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 +Received: from lechat.rtp-net.org (lechat.rtp-net.org + [IPv6:2001:bc8:3430:1000::c0f:fee]) + (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) + (No client certificate requested) + by phobos.denx.de (Postfix) with ESMTPS id EFE03823FF + for ; Fri, 25 Sep 2020 20:46:44 +0200 (CEST) +Authentication-Results: phobos.denx.de; + dmarc=pass (p=none dis=none) header.from=rtp-net.org +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=arnaud.patard@rtp-net.org +Received: by lechat.rtp-net.org (Postfix, from userid 1000) + id 9A94A180ACB; Fri, 25 Sep 2020 20:46:43 +0200 (CEST) +Message-ID: <20200925183856.648221737@rtp-net.org> +User-Agent: quilt/0.66 +Date: Fri, 25 Sep 2020 20:37:01 +0200 +From: Arnaud Patard (Rtp) +To: u-boot@lists.denx.de +Cc: Kever Yang , + Anatolij Gustschin , + Philipp Tomsich , + Peter Robinson , + Samuel Dionne-Riel , + Arnaud Patard +Subject: [patch 7/8] RFC: configs/pinebook-pro-rk3399_defconfig: enable + SYS_USB_EVENT_POLL_VIA_INT_QUEUE +References: <20200925183654.723338620@rtp-net.org> +MIME-Version: 1.0 +X-BeenThere: u-boot@lists.denx.de +X-Mailman-Version: 2.1.34 +Precedence: list +List-Id: U-Boot discussion +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +Errors-To: u-boot-bounces@lists.denx.de +Sender: "U-Boot" +X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de +X-Virus-Status: Clean + +The default configuration will use SYS_USB_EVENT_POLL for handling the +usb keyboard and it makes the system really slow (eg slow keypress, +loading kernel/initrd from grub-efi is taking ages). + +Using CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE seems to be improving +things a lot, so use it. + +Tested-by: Samuel Dionne-Riel +Signed-off-by: Arnaud Patard + +Index: u-boot/configs/pinebook-pro-rk3399_defconfig +=================================================================== +--- u-boot.orig/configs/pinebook-pro-rk3399_defconfig ++++ u-boot/configs/pinebook-pro-rk3399_defconfig +@@ -78,6 +78,7 @@ CONFIG_USB_OHCI_GENERIC=y + CONFIG_USB_DWC3=y + CONFIG_ROCKCHIP_USB2_PHY=y + CONFIG_USB_KEYBOARD=y ++CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y + CONFIG_USB_HOST_ETHER=y + CONFIG_USB_ETHER_ASIX=y + CONFIG_USB_ETHER_RTL8152=y + +From patchwork Fri Sep 25 18:37:02 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: "Arnaud Patard (Rtp)" +X-Patchwork-Id: 1371531 +Return-Path: +X-Original-To: incoming@patchwork.ozlabs.org +Delivered-To: patchwork-incoming@bilbo.ozlabs.org +Authentication-Results: ozlabs.org; + spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de + (client-ip=85.214.62.61; helo=phobos.denx.de; + envelope-from=u-boot-bounces@lists.denx.de; receiver=) +Authentication-Results: ozlabs.org; + dmarc=fail (p=none dis=none) header.from=rtp-net.org +Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) + (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) + key-exchange X25519 server-signature RSA-PSS (4096 bits)) + (No client certificate requested) + by ozlabs.org (Postfix) with ESMTPS id 4BygsV69FWz9sS8 + for ; Sat, 26 Sep 2020 04:48:14 +1000 (AEST) +Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) + by phobos.denx.de (Postfix) with ESMTP id 94D3B824F4; + Fri, 25 Sep 2020 20:47:11 +0200 (CEST) +Authentication-Results: phobos.denx.de; + dmarc=fail (p=none dis=none) header.from=rtp-net.org +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de +Received: by phobos.denx.de (Postfix, from userid 109) + id EA6CB8248B; Fri, 25 Sep 2020 20:46:52 +0200 (CEST) +X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de +X-Spam-Level: +X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, + URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 +Received: from lechat.rtp-net.org (lechat.rtp-net.org [51.15.165.164]) + (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) + (No client certificate requested) + by phobos.denx.de (Postfix) with ESMTPS id 0460082475 + for ; Fri, 25 Sep 2020 20:46:45 +0200 (CEST) +Authentication-Results: phobos.denx.de; + dmarc=pass (p=none dis=none) header.from=rtp-net.org +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=arnaud.patard@rtp-net.org +Received: by lechat.rtp-net.org (Postfix, from userid 1000) + id B7788180ACE; Fri, 25 Sep 2020 20:46:43 +0200 (CEST) +Message-ID: <20200925183856.699546249@rtp-net.org> +User-Agent: quilt/0.66 +Date: Fri, 25 Sep 2020 20:37:02 +0200 +From: Arnaud Patard (Rtp) +To: u-boot@lists.denx.de +Cc: Kever Yang , + Anatolij Gustschin , + Philipp Tomsich , + Peter Robinson , + Samuel Dionne-Riel , + Arnaud Patard +Subject: [patch 8/8] RFC: drivers/pwm/rk_pwm.c: Fix default polarity +References: <20200925183654.723338620@rtp-net.org> +MIME-Version: 1.0 +X-BeenThere: u-boot@lists.denx.de +X-Mailman-Version: 2.1.34 +Precedence: list +List-Id: U-Boot discussion +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +Errors-To: u-boot-bounces@lists.denx.de +Sender: "U-Boot" +X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de +X-Virus-Status: Clean + +In the code, the default polarity is set to positive/positive, +which is neither normal polarity or inverted polarity. It's +only the hardware default. This leads to booting linux with +wrong polarity setting. + +Update the code to use PWM_DUTY_POSTIVE | PWM_INACTIVE_NEGATIVE +by default instead. + +Signed-off-by: Arnaud Patard + +Index: u-boot/drivers/pwm/rk_pwm.c +=================================================================== +--- u-boot.orig/drivers/pwm/rk_pwm.c ++++ u-boot/drivers/pwm/rk_pwm.c +@@ -146,7 +146,7 @@ static int rk_pwm_probe(struct udevice * + priv->data = (struct rockchip_pwm_data *)dev_get_driver_data(dev); + + if (priv->data->supports_polarity) +- priv->conf_polarity = PWM_DUTY_POSTIVE | PWM_INACTIVE_POSTIVE; ++ priv->conf_polarity = PWM_DUTY_POSTIVE | PWM_INACTIVE_NEGATIVE; + + return 0; + } diff --git a/rk3399-reset-display-hack.patch b/rk3399-reset-display-hack.patch new file mode 100644 index 0000000..67adeb3 --- /dev/null +++ b/rk3399-reset-display-hack.patch @@ -0,0 +1,46 @@ +[HACK NOTFORMERGE] PBP: Fix panel reset + +On warm reset, the pinebook pro panel is not working correctly. +The issue is not yet debugged so, for now, this hack seems to be +enough. It toggles the GPIO1_C6 gpio [ LCDVCC_EN signal in the +schematics ] used by the vcc3v3_panel regulator. + +There's no gpio_request, since the gpio is already in use at this +stage, so it can only fail. +Index: u-boot/board/pine64/pinebook-pro-rk3399/pinebook-pro-rk3399.c +=================================================================== +--- u-boot.orig/board/pine64/pinebook-pro-rk3399/pinebook-pro-rk3399.c ++++ u-boot/board/pine64/pinebook-pro-rk3399/pinebook-pro-rk3399.c +@@ -7,9 +7,12 @@ + #include + #include + #include ++#include ++#include + #include + #include + #include ++#include + #include + #include + #include +@@ -59,6 +62,7 @@ int misc_init_r(void) + const u32 cpuid_length = 0x10; + u8 cpuid[cpuid_length]; + int ret; ++ unsigned int gpio; + + setup_iodomain(); + +@@ -70,6 +74,11 @@ int misc_init_r(void) + if (ret) + return ret; + ++ gpio_lookup_name("B22", NULL, NULL, &gpio); ++ gpio_direction_output(gpio, 0); ++ mdelay(500); ++ gpio_direction_output(gpio, 1); ++ + return ret; + } + #endif diff --git a/rockchip-Enable-preboot-start-for-pci-usb.patch b/rockchip-Enable-preboot-start-for-pci-usb.patch deleted file mode 100644 index 30aad4d..0000000 --- a/rockchip-Enable-preboot-start-for-pci-usb.patch +++ /dev/null @@ -1,860 +0,0 @@ -From a6909a16b4cc301f1007d9e75d02abb6d06a1ea7 Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Thu, 28 May 2026 21:29:29 +0100 -Subject: [PATCH] rockchip: Enable preboot start for pci/usb - -Enable the preboot so nvme works OOTB - -Signed-off-by: Peter Robinson ---- - configs/anbernic-rgxx3-rk3566_defconfig | 2 ++ - configs/bpi-r2-pro-rk3568_defconfig | 2 ++ - configs/cm3588-nas-rk3588_defconfig | 2 ++ - configs/coolpi-4b-rk3588s_defconfig | 2 ++ - configs/coolpi-cm5-evb-rk3588_defconfig | 2 ++ - configs/evb-rk3568_defconfig | 2 ++ - configs/evb-rk3588_defconfig | 2 ++ - configs/firefly-rk3399_defconfig | 2 ++ - configs/generic-rk3568_defconfig | 2 ++ - configs/generic-rk3588_defconfig | 2 ++ - configs/jaguar-rk3588_defconfig | 2 ++ - configs/lubancat-2-rk3568_defconfig | 2 ++ - configs/nanopc-t4-rk3399_defconfig | 2 ++ - configs/nanopc-t6-rk3588_defconfig | 2 ++ - configs/nanopi-r5c-rk3568_defconfig | 2 ++ - configs/nanopi-r5s-rk3568_defconfig | 2 ++ - configs/nanopi-r6c-rk3588s_defconfig | 2 ++ - configs/nanopi-r6s-rk3588s_defconfig | 2 ++ - configs/neu6a-io-rk3588_defconfig | 2 ++ - configs/neu6b-io-rk3588_defconfig | 2 ++ - configs/nova-rk3588s_defconfig | 2 ++ - configs/odroid-m1-rk3568_defconfig | 2 ++ - configs/odroid-m1s-rk3566_defconfig | 2 ++ - configs/odroid-m2-rk3588s_defconfig | 2 ++ - configs/orangepi-3b-rk3566_defconfig | 2 ++ - configs/orangepi-5-max-rk3588_defconfig | 2 ++ - configs/orangepi-5-plus-rk3588_defconfig | 2 ++ - configs/orangepi-5-rk3588s_defconfig | 2 ++ - configs/orangepi-5-ultra-rk3588_defconfig | 2 ++ - configs/pinebook-pro-rk3399_defconfig | 1 + - configs/pinetab2-rk3566_defconfig | 2 ++ - configs/powkiddy-x55-rk3566_defconfig | 2 ++ - configs/quartz64-a-rk3566_defconfig | 2 ++ - configs/quartz64-b-rk3566_defconfig | 4 ++++ - configs/quartzpro64-rk3588_defconfig | 2 ++ - configs/radxa-cm3-io-rk3566_defconfig | 2 ++ - configs/radxa-e25-rk3568_defconfig | 2 ++ - configs/radxa-zero-3-rk3566_defconfig | 2 ++ - configs/roc-pc-mezzanine-rk3399_defconfig | 2 ++ - configs/rock-3a-rk3568_defconfig | 2 ++ - configs/rock-3b-rk3568_defconfig | 2 ++ - configs/rock-3c-rk3566_defconfig | 2 ++ - configs/rock-4c-plus-rk3399_defconfig | 2 ++ - configs/rock-4se-rk3399_defconfig | 2 ++ - configs/rock-5-itx-rk3588_defconfig | 2 ++ - configs/rock-5c-rk3588s_defconfig | 2 ++ - configs/rock-pi-4-rk3399_defconfig | 2 ++ - configs/rock-pi-4c-rk3399_defconfig | 2 ++ - configs/rock-pi-n10-rk3399pro_defconfig | 2 ++ - configs/rock5a-rk3588s_defconfig | 2 ++ - configs/rock5b-rk3588_defconfig | 2 ++ - configs/rock960-rk3399_defconfig | 2 ++ - configs/rockpro64-rk3399_defconfig | 2 ++ - configs/sige7-rk3588_defconfig | 2 ++ - configs/soquartz-blade-rk3566_defconfig | 2 ++ - configs/soquartz-cm4-rk3566_defconfig | 2 ++ - configs/soquartz-model-a-rk3566_defconfig | 2 ++ - configs/tiger-rk3588_defconfig | 2 ++ - configs/toybrick-rk3588_defconfig | 2 ++ - configs/turing-rk1-rk3588_defconfig | 2 ++ - 60 files changed, 121 insertions(+) - -diff --git a/configs/anbernic-rgxx3-rk3566_defconfig b/configs/anbernic-rgxx3-rk3566_defconfig -index 854de8b00a4..cd91f18ba80 100644 ---- a/configs/anbernic-rgxx3-rk3566_defconfig -+++ b/configs/anbernic-rgxx3-rk3566_defconfig -@@ -12,6 +12,8 @@ CONFIG_SYS_LOAD_ADDR=0xc00800 - CONFIG_DEBUG_UART_BASE=0xFE660000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - # CONFIG_EFI_LOADER is not set - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y -diff --git a/configs/bpi-r2-pro-rk3568_defconfig b/configs/bpi-r2-pro-rk3568_defconfig -index c5199a39448..603e07f2456 100644 ---- a/configs/bpi-r2-pro-rk3568_defconfig -+++ b/configs/bpi-r2-pro-rk3568_defconfig -@@ -9,6 +9,8 @@ CONFIG_SYS_LOAD_ADDR=0xc00800 - CONFIG_DEBUG_UART_BASE=0xFE660000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/cm3588-nas-rk3588_defconfig b/configs/cm3588-nas-rk3588_defconfig -index 5b5ef8d5ac1..53147d115dd 100644 ---- a/configs/cm3588-nas-rk3588_defconfig -+++ b/configs/cm3588-nas-rk3588_defconfig -@@ -12,6 +12,8 @@ CONFIG_DEBUG_UART_BASE=0xFEB50000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/coolpi-4b-rk3588s_defconfig b/configs/coolpi-4b-rk3588s_defconfig -index e6772622403..75e0b373ce9 100644 ---- a/configs/coolpi-4b-rk3588s_defconfig -+++ b/configs/coolpi-4b-rk3588s_defconfig -@@ -17,6 +17,8 @@ CONFIG_SPL_SPI_FLASH_SUPPORT=y - CONFIG_SPL_SPI=y - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/coolpi-cm5-evb-rk3588_defconfig b/configs/coolpi-cm5-evb-rk3588_defconfig -index 4326e116849..a005e4441d3 100644 ---- a/configs/coolpi-cm5-evb-rk3588_defconfig -+++ b/configs/coolpi-cm5-evb-rk3588_defconfig -@@ -17,6 +17,8 @@ CONFIG_SPL_SPI_FLASH_SUPPORT=y - CONFIG_SPL_SPI=y - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/evb-rk3568_defconfig b/configs/evb-rk3568_defconfig -index 4a5a7454e10..7ec199a08af 100644 ---- a/configs/evb-rk3568_defconfig -+++ b/configs/evb-rk3568_defconfig -@@ -9,6 +9,8 @@ CONFIG_SYS_LOAD_ADDR=0xc00800 - CONFIG_DEBUG_UART_BASE=0xFE660000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/evb-rk3588_defconfig b/configs/evb-rk3588_defconfig -index c7f6256a626..cfa73c660e7 100644 ---- a/configs/evb-rk3588_defconfig -+++ b/configs/evb-rk3588_defconfig -@@ -10,6 +10,8 @@ CONFIG_SYS_LOAD_ADDR=0xc00800 - CONFIG_DEBUG_UART_BASE=0xFEB50000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/firefly-rk3399_defconfig b/configs/firefly-rk3399_defconfig -index 83b9de5feb9..2ba8f5029c3 100644 ---- a/configs/firefly-rk3399_defconfig -+++ b/configs/firefly-rk3399_defconfig -@@ -14,6 +14,8 @@ CONFIG_DEBUG_UART_BASE=0xFF1A0000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-firefly.dtb" - CONFIG_DISPLAY_BOARDINFO_LATE=y - CONFIG_SPL_MAX_SIZE=0x40000 -diff --git a/configs/generic-rk3568_defconfig b/configs/generic-rk3568_defconfig -index a33c3af9255..20966793568 100644 ---- a/configs/generic-rk3568_defconfig -+++ b/configs/generic-rk3568_defconfig -@@ -14,6 +14,8 @@ CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_SPL_SPI_FLASH_SUPPORT=y - CONFIG_SPL_SPI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/generic-rk3588_defconfig b/configs/generic-rk3588_defconfig -index ac450e6d757..b5424ac9f16 100644 ---- a/configs/generic-rk3588_defconfig -+++ b/configs/generic-rk3588_defconfig -@@ -10,6 +10,8 @@ CONFIG_SYS_LOAD_ADDR=0xc00800 - CONFIG_DEBUG_UART_BASE=0xFEB50000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/jaguar-rk3588_defconfig b/configs/jaguar-rk3588_defconfig -index ed3883b4f9c..47dbd834f30 100644 ---- a/configs/jaguar-rk3588_defconfig -+++ b/configs/jaguar-rk3588_defconfig -@@ -16,6 +16,8 @@ CONFIG_DEBUG_UART_BASE=0xfeb50000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/lubancat-2-rk3568_defconfig b/configs/lubancat-2-rk3568_defconfig -index 7548bf60b06..2fb8a432503 100644 ---- a/configs/lubancat-2-rk3568_defconfig -+++ b/configs/lubancat-2-rk3568_defconfig -@@ -9,6 +9,8 @@ CONFIG_SYS_LOAD_ADDR=0xc00800 - CONFIG_DEBUG_UART_BASE=0xFE660000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_EFI_VAR_BUF_SIZE=16384 - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y -diff --git a/configs/nanopc-t4-rk3399_defconfig b/configs/nanopc-t4-rk3399_defconfig -index f8ae436a1ee..7aa8e1a8d42 100644 ---- a/configs/nanopc-t4-rk3399_defconfig -+++ b/configs/nanopc-t4-rk3399_defconfig -@@ -15,6 +15,8 @@ CONFIG_DEBUG_UART_BASE=0xFF1A0000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-nanopc-t4.dtb" - CONFIG_DISPLAY_BOARDINFO_LATE=y - CONFIG_SPL_MAX_SIZE=0x40000 -diff --git a/configs/nanopc-t6-rk3588_defconfig b/configs/nanopc-t6-rk3588_defconfig -index ba9a5adece7..eaf7fa5a0fc 100644 ---- a/configs/nanopc-t6-rk3588_defconfig -+++ b/configs/nanopc-t6-rk3588_defconfig -@@ -18,6 +18,8 @@ CONFIG_SPL_SPI_FLASH_SUPPORT=y - CONFIG_SPL_SPI=y - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/nanopi-r5c-rk3568_defconfig b/configs/nanopi-r5c-rk3568_defconfig -index e75a24dadc8..159ef033932 100644 ---- a/configs/nanopi-r5c-rk3568_defconfig -+++ b/configs/nanopi-r5c-rk3568_defconfig -@@ -11,6 +11,8 @@ CONFIG_DEBUG_UART_BASE=0xFE660000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="usb start;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/nanopi-r5s-rk3568_defconfig b/configs/nanopi-r5s-rk3568_defconfig -index c971f376b38..60b5e8fa014 100644 ---- a/configs/nanopi-r5s-rk3568_defconfig -+++ b/configs/nanopi-r5s-rk3568_defconfig -@@ -11,6 +11,8 @@ CONFIG_DEBUG_UART_BASE=0xFE660000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="usb start;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/nanopi-r6c-rk3588s_defconfig b/configs/nanopi-r6c-rk3588s_defconfig -index 861e3234d29..bb6e2082e3b 100644 ---- a/configs/nanopi-r6c-rk3588s_defconfig -+++ b/configs/nanopi-r6c-rk3588s_defconfig -@@ -12,6 +12,8 @@ CONFIG_DEBUG_UART_BASE=0xFEB50000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/nanopi-r6s-rk3588s_defconfig b/configs/nanopi-r6s-rk3588s_defconfig -index 743dfca441b..903ec56ad6f 100644 ---- a/configs/nanopi-r6s-rk3588s_defconfig -+++ b/configs/nanopi-r6s-rk3588s_defconfig -@@ -12,6 +12,8 @@ CONFIG_DEBUG_UART_BASE=0xFEB50000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/neu6a-io-rk3588_defconfig b/configs/neu6a-io-rk3588_defconfig -index 19f129e96f0..08ed699b01d 100644 ---- a/configs/neu6a-io-rk3588_defconfig -+++ b/configs/neu6a-io-rk3588_defconfig -@@ -10,6 +10,8 @@ CONFIG_SYS_LOAD_ADDR=0xc00800 - CONFIG_DEBUG_UART_BASE=0xFEB50000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/neu6b-io-rk3588_defconfig b/configs/neu6b-io-rk3588_defconfig -index 2cf5aeccf51..8cafd779a1c 100644 ---- a/configs/neu6b-io-rk3588_defconfig -+++ b/configs/neu6b-io-rk3588_defconfig -@@ -10,6 +10,8 @@ CONFIG_SYS_LOAD_ADDR=0xc00800 - CONFIG_DEBUG_UART_BASE=0xFEB50000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/nova-rk3588s_defconfig b/configs/nova-rk3588s_defconfig -index f7d7492ff46..5abb6ebbe18 100644 ---- a/configs/nova-rk3588s_defconfig -+++ b/configs/nova-rk3588s_defconfig -@@ -11,6 +11,8 @@ CONFIG_DEBUG_UART_BASE=0xFEB50000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/odroid-m1-rk3568_defconfig b/configs/odroid-m1-rk3568_defconfig -index b00985b0405..19d7af53c7f 100644 ---- a/configs/odroid-m1-rk3568_defconfig -+++ b/configs/odroid-m1-rk3568_defconfig -@@ -17,6 +17,8 @@ CONFIG_SPL_SPI_FLASH_SUPPORT=y - CONFIG_SPL_SPI=y - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/odroid-m1s-rk3566_defconfig b/configs/odroid-m1s-rk3566_defconfig -index d59882a2a59..20f6dc3c26e 100644 ---- a/configs/odroid-m1s-rk3566_defconfig -+++ b/configs/odroid-m1s-rk3566_defconfig -@@ -11,6 +11,8 @@ CONFIG_DEBUG_UART_BASE=0xFE660000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/odroid-m2-rk3588s_defconfig b/configs/odroid-m2-rk3588s_defconfig -index e71e61ddb0b..561c2b28b7a 100644 ---- a/configs/odroid-m2-rk3588s_defconfig -+++ b/configs/odroid-m2-rk3588s_defconfig -@@ -11,6 +11,8 @@ CONFIG_DEBUG_UART_BASE=0xFEB50000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/orangepi-3b-rk3566_defconfig b/configs/orangepi-3b-rk3566_defconfig -index 1cd78789fa1..dcf182231da 100644 ---- a/configs/orangepi-3b-rk3566_defconfig -+++ b/configs/orangepi-3b-rk3566_defconfig -@@ -18,6 +18,8 @@ CONFIG_SPL_SPI_FLASH_SUPPORT=y - CONFIG_SPL_SPI=y - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/orangepi-5-max-rk3588_defconfig b/configs/orangepi-5-max-rk3588_defconfig -index 0861df962cf..744aad89c4a 100644 ---- a/configs/orangepi-5-max-rk3588_defconfig -+++ b/configs/orangepi-5-max-rk3588_defconfig -@@ -18,6 +18,8 @@ CONFIG_SPL_SPI_FLASH_SUPPORT=y - CONFIG_SPL_SPI=y - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/orangepi-5-plus-rk3588_defconfig b/configs/orangepi-5-plus-rk3588_defconfig -index 52523f87aec..e3bb4e43da9 100644 ---- a/configs/orangepi-5-plus-rk3588_defconfig -+++ b/configs/orangepi-5-plus-rk3588_defconfig -@@ -18,6 +18,8 @@ CONFIG_SPL_SPI_FLASH_SUPPORT=y - CONFIG_SPL_SPI=y - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/orangepi-5-rk3588s_defconfig b/configs/orangepi-5-rk3588s_defconfig -index e0eba389289..33fe68add7b 100644 ---- a/configs/orangepi-5-rk3588s_defconfig -+++ b/configs/orangepi-5-rk3588s_defconfig -@@ -17,6 +17,8 @@ CONFIG_SPL_SPI_FLASH_SUPPORT=y - CONFIG_SPL_SPI=y - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/orangepi-5-ultra-rk3588_defconfig b/configs/orangepi-5-ultra-rk3588_defconfig -index fb7f4432983..62419609695 100644 ---- a/configs/orangepi-5-ultra-rk3588_defconfig -+++ b/configs/orangepi-5-ultra-rk3588_defconfig -@@ -18,6 +18,8 @@ CONFIG_SPL_SPI_FLASH_SUPPORT=y - CONFIG_SPL_SPI=y - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/pinebook-pro-rk3399_defconfig b/configs/pinebook-pro-rk3399_defconfig -index cbf95b4692f..9e4d1b1061d 100644 ---- a/configs/pinebook-pro-rk3399_defconfig -+++ b/configs/pinebook-pro-rk3399_defconfig -@@ -22,6 +22,7 @@ CONFIG_PCI=y - CONFIG_DEBUG_UART=y - CONFIG_BOOTDELAY=3 - CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-pinebook-pro.dtb" - CONFIG_DISPLAY_BOARDINFO_LATE=y - CONFIG_SPL_MAX_SIZE=0x40000 -diff --git a/configs/pinetab2-rk3566_defconfig b/configs/pinetab2-rk3566_defconfig -index f284dadb99d..d87849f0a45 100644 ---- a/configs/pinetab2-rk3566_defconfig -+++ b/configs/pinetab2-rk3566_defconfig -@@ -18,6 +18,8 @@ CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_SPL_SPI_FLASH_SUPPORT=y - CONFIG_SPL_SPI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/powkiddy-x55-rk3566_defconfig b/configs/powkiddy-x55-rk3566_defconfig -index 37a359c91a9..70bc5ab6402 100644 ---- a/configs/powkiddy-x55-rk3566_defconfig -+++ b/configs/powkiddy-x55-rk3566_defconfig -@@ -9,6 +9,8 @@ CONFIG_SYS_LOAD_ADDR=0xc00800 - CONFIG_DEBUG_UART_BASE=0xFE660000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/quartz64-a-rk3566_defconfig b/configs/quartz64-a-rk3566_defconfig -index 780fd581f0a..7938b5c0d1b 100644 ---- a/configs/quartz64-a-rk3566_defconfig -+++ b/configs/quartz64-a-rk3566_defconfig -@@ -18,6 +18,8 @@ CONFIG_SPL_SPI_FLASH_SUPPORT=y - CONFIG_SPL_SPI=y - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/quartz64-b-rk3566_defconfig b/configs/quartz64-b-rk3566_defconfig -index 4d92a67cd73..fe8a168373d 100644 ---- a/configs/quartz64-b-rk3566_defconfig -+++ b/configs/quartz64-b-rk3566_defconfig -@@ -1,4 +1,6 @@ - CONFIG_ARM=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_SKIP_LOWLEVEL_INIT=y - CONFIG_COUNTER_FREQUENCY=24000000 - CONFIG_ARCH_ROCKCHIP=y -@@ -17,6 +19,8 @@ CONFIG_SPL_SPI_FLASH_SUPPORT=y - CONFIG_SPL_SPI=y - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/quartzpro64-rk3588_defconfig b/configs/quartzpro64-rk3588_defconfig -index 0ad74e8bbef..b9cbddfae77 100644 ---- a/configs/quartzpro64-rk3588_defconfig -+++ b/configs/quartzpro64-rk3588_defconfig -@@ -12,6 +12,8 @@ CONFIG_DEBUG_UART_BASE=0xFEB50000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/radxa-cm3-io-rk3566_defconfig b/configs/radxa-cm3-io-rk3566_defconfig -index 875f0b76fa5..2523dccd6a3 100644 ---- a/configs/radxa-cm3-io-rk3566_defconfig -+++ b/configs/radxa-cm3-io-rk3566_defconfig -@@ -9,6 +9,8 @@ CONFIG_SYS_LOAD_ADDR=0xc00800 - CONFIG_DEBUG_UART_BASE=0xFE660000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/radxa-e25-rk3568_defconfig b/configs/radxa-e25-rk3568_defconfig -index 779d540e22d..7e003e74520 100644 ---- a/configs/radxa-e25-rk3568_defconfig -+++ b/configs/radxa-e25-rk3568_defconfig -@@ -11,6 +11,8 @@ CONFIG_DEBUG_UART_BASE=0xFE660000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/radxa-zero-3-rk3566_defconfig b/configs/radxa-zero-3-rk3566_defconfig -index f5cf09a5e4a..7db7e3fcd3d 100644 ---- a/configs/radxa-zero-3-rk3566_defconfig -+++ b/configs/radxa-zero-3-rk3566_defconfig -@@ -11,6 +11,8 @@ CONFIG_SYS_LOAD_ADDR=0xc00800 - CONFIG_DEBUG_UART_BASE=0xFE660000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/roc-pc-mezzanine-rk3399_defconfig b/configs/roc-pc-mezzanine-rk3399_defconfig -index 8b4d8c1b0aa..54baa07aeae 100644 ---- a/configs/roc-pc-mezzanine-rk3399_defconfig -+++ b/configs/roc-pc-mezzanine-rk3399_defconfig -@@ -21,6 +21,8 @@ CONFIG_SPL_SPI_FLASH_SUPPORT=y - CONFIG_SPL_SPI=y - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - # CONFIG_ANDROID_BOOT_IMAGE is not set - CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-roc-pc-mezzanine.dtb" - CONFIG_DISPLAY_BOARDINFO_LATE=y -diff --git a/configs/rock-3a-rk3568_defconfig b/configs/rock-3a-rk3568_defconfig -index e753185610f..19d303e7f70 100644 ---- a/configs/rock-3a-rk3568_defconfig -+++ b/configs/rock-3a-rk3568_defconfig -@@ -16,6 +16,8 @@ CONFIG_SPL_SPI_FLASH_SUPPORT=y - CONFIG_SPL_SPI=y - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/rock-3b-rk3568_defconfig b/configs/rock-3b-rk3568_defconfig -index c3bf48b9e34..0cfa8eba168 100644 ---- a/configs/rock-3b-rk3568_defconfig -+++ b/configs/rock-3b-rk3568_defconfig -@@ -16,6 +16,8 @@ CONFIG_SPL_SPI_FLASH_SUPPORT=y - CONFIG_SPL_SPI=y - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/rock-3c-rk3566_defconfig b/configs/rock-3c-rk3566_defconfig -index 417aa33a663..61d0e1b8c6a 100644 ---- a/configs/rock-3c-rk3566_defconfig -+++ b/configs/rock-3c-rk3566_defconfig -@@ -16,6 +16,8 @@ CONFIG_SPL_SPI_FLASH_SUPPORT=y - CONFIG_SPL_SPI=y - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/rock-4c-plus-rk3399_defconfig b/configs/rock-4c-plus-rk3399_defconfig -index 0f6bdfdfb06..f31cb061a83 100644 ---- a/configs/rock-4c-plus-rk3399_defconfig -+++ b/configs/rock-4c-plus-rk3399_defconfig -@@ -17,6 +17,8 @@ CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_SPL_SPI_FLASH_SUPPORT=y - CONFIG_SPL_SPI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_EFI_CAPSULE_ON_DISK=y - CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y - # CONFIG_ANDROID_BOOT_IMAGE is not set -diff --git a/configs/rock-4se-rk3399_defconfig b/configs/rock-4se-rk3399_defconfig -index 7f22aede912..caf8e02bece 100644 ---- a/configs/rock-4se-rk3399_defconfig -+++ b/configs/rock-4se-rk3399_defconfig -@@ -18,6 +18,8 @@ CONFIG_SPL_SPI_FLASH_SUPPORT=y - CONFIG_SPL_SPI=y - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_EFI_CAPSULE_ON_DISK=y - CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y - # CONFIG_ANDROID_BOOT_IMAGE is not set -diff --git a/configs/rock-5-itx-rk3588_defconfig b/configs/rock-5-itx-rk3588_defconfig -index cb014de4188..e26a126533c 100644 ---- a/configs/rock-5-itx-rk3588_defconfig -+++ b/configs/rock-5-itx-rk3588_defconfig -@@ -18,6 +18,8 @@ CONFIG_SPL_SPI_FLASH_SUPPORT=y - CONFIG_SPL_SPI=y - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/rock-5c-rk3588s_defconfig b/configs/rock-5c-rk3588s_defconfig -index 3d044a81498..27234c250d1 100644 ---- a/configs/rock-5c-rk3588s_defconfig -+++ b/configs/rock-5c-rk3588s_defconfig -@@ -12,6 +12,8 @@ CONFIG_DEBUG_UART_BASE=0xFEB50000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/rock-pi-4-rk3399_defconfig b/configs/rock-pi-4-rk3399_defconfig -index e5c9072c27f..35852c017da 100644 ---- a/configs/rock-pi-4-rk3399_defconfig -+++ b/configs/rock-pi-4-rk3399_defconfig -@@ -18,6 +18,8 @@ CONFIG_SPL_SPI_FLASH_SUPPORT=y - CONFIG_SPL_SPI=y - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_EFI_CAPSULE_ON_DISK=y - CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y - # CONFIG_ANDROID_BOOT_IMAGE is not set -diff --git a/configs/rock-pi-4c-rk3399_defconfig b/configs/rock-pi-4c-rk3399_defconfig -index 4be7b0f8130..eeee446a5bd 100644 ---- a/configs/rock-pi-4c-rk3399_defconfig -+++ b/configs/rock-pi-4c-rk3399_defconfig -@@ -18,6 +18,8 @@ CONFIG_SPL_SPI_FLASH_SUPPORT=y - CONFIG_SPL_SPI=y - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_EFI_CAPSULE_ON_DISK=y - CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y - # CONFIG_ANDROID_BOOT_IMAGE is not set -diff --git a/configs/rock-pi-n10-rk3399pro_defconfig b/configs/rock-pi-n10-rk3399pro_defconfig -index 602a723ea7d..3dcc2932ae3 100644 ---- a/configs/rock-pi-n10-rk3399pro_defconfig -+++ b/configs/rock-pi-n10-rk3399pro_defconfig -@@ -13,6 +13,8 @@ CONFIG_DEBUG_UART_BASE=0xFF1A0000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - # CONFIG_ANDROID_BOOT_IMAGE is not set - CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399pro-rock-pi-n10.dtb" - # CONFIG_CONSOLE_MUX is not set -diff --git a/configs/rock5a-rk3588s_defconfig b/configs/rock5a-rk3588s_defconfig -index 24b2eef35f2..c5830054921 100644 ---- a/configs/rock5a-rk3588s_defconfig -+++ b/configs/rock5a-rk3588s_defconfig -@@ -10,6 +10,8 @@ CONFIG_SYS_LOAD_ADDR=0xc00800 - CONFIG_DEBUG_UART_BASE=0xFEB50000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/rock5b-rk3588_defconfig b/configs/rock5b-rk3588_defconfig -index da5fb3a2c30..053346fc035 100644 ---- a/configs/rock5b-rk3588_defconfig -+++ b/configs/rock5b-rk3588_defconfig -@@ -18,6 +18,8 @@ CONFIG_SPL_SPI_FLASH_SUPPORT=y - CONFIG_SPL_SPI=y - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/rock960-rk3399_defconfig b/configs/rock960-rk3399_defconfig -index db121f03ae6..e55f1b6a034 100644 ---- a/configs/rock960-rk3399_defconfig -+++ b/configs/rock960-rk3399_defconfig -@@ -12,6 +12,8 @@ CONFIG_DEBUG_UART_BASE=0xFF1A0000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-rock960.dtb" - CONFIG_SYS_PBSIZE=1052 - CONFIG_DISPLAY_BOARDINFO_LATE=y -diff --git a/configs/rockpro64-rk3399_defconfig b/configs/rockpro64-rk3399_defconfig -index 1d2bff35fc0..ea8e90b9f6a 100644 ---- a/configs/rockpro64-rk3399_defconfig -+++ b/configs/rockpro64-rk3399_defconfig -@@ -20,6 +20,8 @@ CONFIG_SPL_SPI_FLASH_SUPPORT=y - CONFIG_SPL_SPI=y - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-rockpro64.dtb" - CONFIG_DISPLAY_BOARDINFO_LATE=y - CONFIG_SPL_MAX_SIZE=0x40000 -diff --git a/configs/sige7-rk3588_defconfig b/configs/sige7-rk3588_defconfig -index 00b9759715b..1b837bd554c 100644 ---- a/configs/sige7-rk3588_defconfig -+++ b/configs/sige7-rk3588_defconfig -@@ -13,6 +13,8 @@ CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_SPL_SPI=y - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/soquartz-blade-rk3566_defconfig b/configs/soquartz-blade-rk3566_defconfig -index 7de159a8881..4137f0459b5 100644 ---- a/configs/soquartz-blade-rk3566_defconfig -+++ b/configs/soquartz-blade-rk3566_defconfig -@@ -11,6 +11,8 @@ CONFIG_DEBUG_UART_BASE=0xFE660000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/soquartz-cm4-rk3566_defconfig b/configs/soquartz-cm4-rk3566_defconfig -index 4455ee5b5aa..ad63ba0204f 100644 ---- a/configs/soquartz-cm4-rk3566_defconfig -+++ b/configs/soquartz-cm4-rk3566_defconfig -@@ -11,6 +11,8 @@ CONFIG_DEBUG_UART_BASE=0xFE660000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/soquartz-model-a-rk3566_defconfig b/configs/soquartz-model-a-rk3566_defconfig -index abdab514496..9e01345bdaa 100644 ---- a/configs/soquartz-model-a-rk3566_defconfig -+++ b/configs/soquartz-model-a-rk3566_defconfig -@@ -11,6 +11,8 @@ CONFIG_DEBUG_UART_BASE=0xFE660000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/tiger-rk3588_defconfig b/configs/tiger-rk3588_defconfig -index 105e8e10e0b..bcc2ae302a5 100644 ---- a/configs/tiger-rk3588_defconfig -+++ b/configs/tiger-rk3588_defconfig -@@ -17,6 +17,8 @@ CONFIG_DEBUG_UART_CLOCK=24000000 - # CONFIG_DEBUG_UART_BOARD_INIT is not set - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/toybrick-rk3588_defconfig b/configs/toybrick-rk3588_defconfig -index 14b231ae3e2..7af393731cd 100644 ---- a/configs/toybrick-rk3588_defconfig -+++ b/configs/toybrick-rk3588_defconfig -@@ -10,6 +10,8 @@ CONFIG_SYS_LOAD_ADDR=0xc00800 - CONFIG_DEBUG_UART_BASE=0xFEB50000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y -diff --git a/configs/turing-rk1-rk3588_defconfig b/configs/turing-rk1-rk3588_defconfig -index 0b3efec23e6..515db2a2b0c 100644 ---- a/configs/turing-rk1-rk3588_defconfig -+++ b/configs/turing-rk1-rk3588_defconfig -@@ -12,6 +12,8 @@ CONFIG_DEBUG_UART_BASE=0xFEBC0000 - CONFIG_DEBUG_UART_CLOCK=24000000 - CONFIG_PCI=y - CONFIG_DEBUG_UART=y -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="pci enum; usb start; nvme scan;" - CONFIG_FIT=y - CONFIG_FIT_VERBOSE=y - CONFIG_SPL_FIT_SIGNATURE=y --- -2.54.0 - diff --git a/rockchip-Rock960-Fix-up-USB-support.patch b/rockchip-Rock960-Fix-up-USB-support.patch new file mode 100644 index 0000000..5102787 --- /dev/null +++ b/rockchip-Rock960-Fix-up-USB-support.patch @@ -0,0 +1,66 @@ +From aec6cfccd62e21bdb8686839a22eaff5f8cece1d Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Tue, 29 Sep 2020 13:12:15 +0100 +Subject: [PATCH] rockchip: Rock960: fix up USB support + +Fix up USB config options so keyboards and other USB devices work. +--- + configs/rock960-rk3399_defconfig | 9 ++++++--- + include/configs/rock960_rk3399.h | 2 ++ + 2 files changed, 8 insertions(+), 3 deletions(-) + +diff --git a/configs/rock960-rk3399_defconfig b/configs/rock960-rk3399_defconfig +index 1d997847c2..a5a50785c5 100644 +--- a/configs/rock960-rk3399_defconfig ++++ b/configs/rock960-rk3399_defconfig +@@ -3,12 +3,12 @@ CONFIG_ARCH_ROCKCHIP=y + CONFIG_SYS_TEXT_BASE=0x00200000 + CONFIG_ENV_OFFSET=0x3F8000 + CONFIG_ROCKCHIP_RK3399=y +-CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x4000 + CONFIG_TARGET_ROCK960_RK3399=y + CONFIG_DEBUG_UART_BASE=0xFF1A0000 + CONFIG_DEBUG_UART_CLOCK=24000000 + CONFIG_DEFAULT_DEVICE_TREE="rk3399-rock960" + CONFIG_DEBUG_UART=y ++CONFIG_USE_PREBOOT=y + CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-rock960.dtb" + CONFIG_MISC_INIT_R=y + CONFIG_DISPLAY_BOARDINFO_LATE=y +@@ -41,6 +41,8 @@ CONFIG_MMC_SDHCI_ROCKCHIP=y + CONFIG_DM_ETH=y + CONFIG_NVME=y + CONFIG_PCI=y ++CONFIG_PHY_ROCKCHIP_INNO_USB2=y ++CONFIG_PHY_ROCKCHIP_TYPEC=y + CONFIG_PMIC_RK8XX=y + CONFIG_REGULATOR_PWM=y + CONFIG_REGULATOR_RK8XX=y +@@ -54,10 +56,11 @@ CONFIG_USB_XHCI_HCD=y + CONFIG_USB_XHCI_DWC3=y + CONFIG_USB_EHCI_HCD=y + CONFIG_USB_EHCI_GENERIC=y ++CONFIG_USB_OHCI_HCD=y ++CONFIG_USB_OHCI_GENERIC=y + CONFIG_USB_DWC3=y +-CONFIG_ROCKCHIP_USB2_PHY=y ++CONFIG_DM_KEYBOARD=y + CONFIG_USB_KEYBOARD=y +-CONFIG_USB_GADGET=y + CONFIG_USB_HOST_ETHER=y + CONFIG_USB_ETHER_ASIX=y + CONFIG_USB_ETHER_ASIX88179=y +diff --git a/include/configs/rock960_rk3399.h b/include/configs/rock960_rk3399.h +index c6f9122154..2edad71028 100644 +--- a/include/configs/rock960_rk3399.h ++++ b/include/configs/rock960_rk3399.h +@@ -15,4 +15,6 @@ + + #define SDRAM_BANK_SIZE (2UL << 30) + ++#define CONFIG_USB_OHCI_NEW ++#define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS 2 + #endif +-- +2.26.2 + diff --git a/rockchip-rk3568-nanopi-r5-Drop-duplicated-extra-sdhc.patch b/rockchip-rk3568-nanopi-r5-Drop-duplicated-extra-sdhc.patch deleted file mode 100644 index bef5a9e..0000000 --- a/rockchip-rk3568-nanopi-r5-Drop-duplicated-extra-sdhc.patch +++ /dev/null @@ -1,39 +0,0 @@ -From aef38432fbc93621b434836b95b10c28aa880e84 Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Tue, 9 Dec 2025 20:51:06 +0000 -Subject: [PATCH 1/2] rockchip: rk3568-nanopi-r5: Drop duplicated/extra sdhci - -The pinctrl settings are now upstream, with the upstream -voltage supplies, and the HS200 mode is confirmed to work -fine but the HS400 mode had reported issues so let's just -consume what the upstream DT has now as it's all known good. - -Reported-by: Dusty Mabe -Tested-by: Dusty Mabe -Signed-off-by: Peter Robinson ---- - arch/arm/dts/rk3568-nanopi-r5s-u-boot.dtsi | 8 -------- - 1 file changed, 8 deletions(-) - -diff --git a/arch/arm/dts/rk3568-nanopi-r5s-u-boot.dtsi b/arch/arm/dts/rk3568-nanopi-r5s-u-boot.dtsi -index 64c43374c04..7e24be1a5e7 100644 ---- a/arch/arm/dts/rk3568-nanopi-r5s-u-boot.dtsi -+++ b/arch/arm/dts/rk3568-nanopi-r5s-u-boot.dtsi -@@ -12,14 +12,6 @@ - /delete-property/ vpcie3v3-supply; - }; - --&sdhci { -- cap-mmc-highspeed; -- mmc-hs200-1_8v; -- mmc-hs400-1_8v; -- mmc-hs400-enhanced-strobe; -- pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>; --}; -- - &vcc5v0_usb_host { - /delete-property/ regulator-always-on; - /delete-property/ regulator-boot-on; --- -2.52.0 - diff --git a/rockchip-rk356x-Stop-overriding-sdhci-mmc-aliases.patch b/rockchip-rk356x-Stop-overriding-sdhci-mmc-aliases.patch deleted file mode 100644 index c67e4af..0000000 --- a/rockchip-rk356x-Stop-overriding-sdhci-mmc-aliases.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 29efc0396809384cf37bfcfb01c62e63216fa998 Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Tue, 9 Dec 2025 21:13:46 +0000 -Subject: [PATCH 2/2] rockchip: rk356x: Stop overriding sdhci/mmc aliases - -Upstream device tree has rules where the aliases are board -specific settings, no SoC settings. Looking at upstream -rk356x boards there's a lot of variation in the setting of -mmc0/mmc1 based on the device so we should not be overriding -this here and now we sync to upstream we should just consume -those settings, to do otherwise confuses users. - -Signed-off-by: Peter Robinson ---- - arch/arm/dts/rk356x-u-boot.dtsi | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/arch/arm/dts/rk356x-u-boot.dtsi b/arch/arm/dts/rk356x-u-boot.dtsi -index 738b9673d35..f25c7970208 100644 ---- a/arch/arm/dts/rk356x-u-boot.dtsi -+++ b/arch/arm/dts/rk356x-u-boot.dtsi -@@ -7,8 +7,6 @@ - - / { - aliases { -- mmc0 = &sdhci; -- mmc1 = &sdmmc0; - spi4 = &sfc; - }; - --- -2.52.0 - diff --git a/rockchip-spl-u-boot-itb-offset.patch b/rockchip-spl-u-boot-itb-offset.patch new file mode 100644 index 0000000..d78c2f2 --- /dev/null +++ b/rockchip-spl-u-boot-itb-offset.patch @@ -0,0 +1,11 @@ +--- u-boot-2020.10/common/spl/Kconfig.orig 2020-10-07 12:08:54.972632715 +0100 ++++ u-boot-2020.10/common/spl/Kconfig 2020-10-07 12:08:59.100672506 +0100 +@@ -324,7 +324,7 @@ + default 0x200 if ARCH_SOCFPGA || ARCH_AT91 + default 0x300 if ARCH_ZYNQ || ARCH_KEYSTONE || OMAP34XX || OMAP44XX || \ + OMAP54XX || AM33XX || AM43XX || ARCH_K3 +- default 0x4000 if ARCH_ROCKCHIP ++ default 0x200 if ARCH_ROCKCHIP + default 0x822 if TARGET_SIFIVE_FU540 + help + Address on the MMC to load U-Boot from, when the MMC is being used diff --git a/rpi-Enable-using-the-DT-provided-by-the-Raspberry-Pi.patch b/rpi-Enable-using-the-DT-provided-by-the-Raspberry-Pi.patch new file mode 100644 index 0000000..c156e4d --- /dev/null +++ b/rpi-Enable-using-the-DT-provided-by-the-Raspberry-Pi.patch @@ -0,0 +1,96 @@ +From f10f94831450671a77f61fe413b4a57459963860 Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Mon, 10 Aug 2020 22:20:29 +0100 +Subject: [PATCH] rpi: Use firmware provided device tree + +Signed-off-by: Peter Robinson +--- + configs/rpi_0_w_defconfig | 2 +- + configs/rpi_2_defconfig | 2 +- + configs/rpi_3_32b_defconfig | 2 +- + configs/rpi_3_b_plus_defconfig | 2 +- + configs/rpi_3_defconfig | 2 +- + configs/rpi_defconfig | 2 +- + 6 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/configs/rpi_0_w_defconfig b/configs/rpi_0_w_defconfig +index bba5e12b12..0241f4c6d3 100644 +--- a/configs/rpi_0_w_defconfig ++++ b/configs/rpi_0_w_defconfig +@@ -17,7 +17,7 @@ CONFIG_CMD_GPIO=y + CONFIG_CMD_MMC=y + CONFIG_CMD_USB=y + CONFIG_CMD_FS_UUID=y +-CONFIG_OF_EMBED=y ++CONFIG_OF_BOARD=y + CONFIG_ENV_FAT_DEVICE_AND_PART="0:1" + CONFIG_SYS_RELOC_GD_ENV_ADDR=y + CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y +diff --git a/configs/rpi_2_defconfig b/configs/rpi_2_defconfig +index 1c2bbb29ce..9573e475f4 100644 +--- a/configs/rpi_2_defconfig ++++ b/configs/rpi_2_defconfig +@@ -17,7 +17,7 @@ CONFIG_CMD_GPIO=y + CONFIG_CMD_MMC=y + CONFIG_CMD_USB=y + CONFIG_CMD_FS_UUID=y +-CONFIG_OF_EMBED=y ++CONFIG_OF_BOARD=y + CONFIG_ENV_FAT_DEVICE_AND_PART="0:1" + CONFIG_SYS_RELOC_GD_ENV_ADDR=y + CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y +diff --git a/configs/rpi_3_32b_defconfig b/configs/rpi_3_32b_defconfig +index b8a3d17f43..252df994e6 100644 +--- a/configs/rpi_3_32b_defconfig ++++ b/configs/rpi_3_32b_defconfig +@@ -18,7 +18,7 @@ CONFIG_CMD_GPIO=y + CONFIG_CMD_MMC=y + CONFIG_CMD_USB=y + CONFIG_CMD_FS_UUID=y +-CONFIG_OF_EMBED=y ++CONFIG_OF_BOARD=y + CONFIG_ENV_FAT_DEVICE_AND_PART="0:1" + CONFIG_SYS_RELOC_GD_ENV_ADDR=y + CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y +diff --git a/configs/rpi_3_b_plus_defconfig b/configs/rpi_3_b_plus_defconfig +index 4c361438fa..3b2996a2f9 100644 +--- a/configs/rpi_3_b_plus_defconfig ++++ b/configs/rpi_3_b_plus_defconfig +@@ -18,7 +18,7 @@ CONFIG_CMD_GPIO=y + CONFIG_CMD_MMC=y + CONFIG_CMD_USB=y + CONFIG_CMD_FS_UUID=y +-CONFIG_OF_EMBED=y ++CONFIG_OF_BOARD=y + CONFIG_ENV_FAT_DEVICE_AND_PART="0:1" + CONFIG_SYS_RELOC_GD_ENV_ADDR=y + CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y +diff --git a/configs/rpi_3_defconfig b/configs/rpi_3_defconfig +index 9b281a4f15..1e9ee6122e 100644 +--- a/configs/rpi_3_defconfig ++++ b/configs/rpi_3_defconfig +@@ -18,7 +18,7 @@ CONFIG_CMD_GPIO=y + CONFIG_CMD_MMC=y + CONFIG_CMD_USB=y + CONFIG_CMD_FS_UUID=y +-CONFIG_OF_EMBED=y ++CONFIG_OF_BOARD=y + CONFIG_ENV_FAT_DEVICE_AND_PART="0:1" + CONFIG_SYS_RELOC_GD_ENV_ADDR=y + CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y +diff --git a/configs/rpi_defconfig b/configs/rpi_defconfig +index b5ad53c37b..223fc03275 100644 +--- a/configs/rpi_defconfig ++++ b/configs/rpi_defconfig +@@ -17,7 +17,7 @@ CONFIG_CMD_GPIO=y + CONFIG_CMD_MMC=y + CONFIG_CMD_USB=y + CONFIG_CMD_FS_UUID=y +-CONFIG_OF_EMBED=y ++CONFIG_OF_BOARD=y + CONFIG_ENV_FAT_DEVICE_AND_PART="0:1" + CONFIG_SYS_RELOC_GD_ENV_ADDR=y + CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y +-- +2.26.2 + diff --git a/rpi-copy-chosen-bootloader-partition-and-set-boot_partition.patch b/rpi-copy-chosen-bootloader-partition-and-set-boot_partition.patch deleted file mode 100644 index 6d54fa7..0000000 --- a/rpi-copy-chosen-bootloader-partition-and-set-boot_partition.patch +++ /dev/null @@ -1,256 +0,0 @@ -From patchwork Tue Aug 4 13:39:15 2026 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Gregor Herburger -X-Patchwork-Id: 2280865 -X-Patchwork-Delegate: pbrobinson@gmail.com -Return-Path: -X-Original-To: incoming@patchwork.ozlabs.org -Delivered-To: patchwork-incoming@legolas.ozlabs.org -Authentication-Results: legolas.ozlabs.org; - dkim=fail reason="signature verification failed" (2048-bit key; - unprotected) header.d=lists.u-boot-project.org - header.i=@lists.u-boot-project.org header.a=rsa-sha256 header.s=default - header.b=DFFhfbAr; - dkim-atps=neutral -Authentication-Results: legolas.ozlabs.org; - spf=pass (sender SPF authorized) smtp.mailfrom=lists.u-boot-project.org - (client-ip=2605:bc80:3010::136; helo=smtp3.osuosl.org; - envelope-from=u-boot-bounces@lists.u-boot-project.org; - receiver=patchwork.ozlabs.org) -Received: from smtp3.osuosl.org (smtp3.osuosl.org [IPv6:2605:bc80:3010::136]) - (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) - key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384) - (No client certificate requested) - by legolas.ozlabs.org (Postfix) with ESMTPS id 4hDvm8025rz1xqD - for ; Tue, 04 Aug 2026 23:39:35 +1000 (AEST) -Received: from localhost (localhost [127.0.0.1]) - by smtp3.osuosl.org (Postfix) with ESMTP id 2536960600; - Tue, 4 Aug 2026 13:39:34 +0000 (UTC) -X-Virus-Scanned: amavis at osuosl.org -Received: from smtp3.osuosl.org ([127.0.0.1]) - by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP - id T9Kb3BtsvOX4; Tue, 4 Aug 2026 13:39:33 +0000 (UTC) -X-Comment: SPF check N/A for local connections - client-ip=140.211.166.142; - helo=lists1.osuosl.org; - envelope-from=u-boot-bounces@lists.u-boot-project.org; receiver= -DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 4350560615 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=lists.u-boot-project.org ; s=default; t=1785850773; - bh=Tj3LONeiWXn0Cn5KPSYhoff9avwde4nWUGEguAWdLbE=; - h=From:Date:Subject:To:Cc:List-Id:List-Unsubscribe:List-Archive: - List-Post:List-Help:List-Subscribe:From; - b=DFFhfbArDuHrxJEuZryw3QEVVVcavwAril7tcxulQVs6jkVOCAjh7GEuhkq8EyLIq - suopR14b5dkKpVbbSr23u2v9jRgpynJQ5WBq6kIJSqjmZt58tZeMbaX76PRHjOs8+s - QHatP0Vxf1ny0BOpVlZLZ/LlAsQhypNhW6/qjH0X9OLeNq0IFjSZ5faD3z463b62m0 - yMuPrAXa/kuPPInxGG6HsCPkRzFH3x9hM15r7ipSbXODTRXaVBSVScp03eAeo6zw/d - nll/wcjCEe/78XX5o1Tsug951g7H8meDRnGQHJZtvbEmHdDB1wkTXYdFI2EGwnDxsz - W3dcHoUveJgqQ== -Received: from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142]) - by smtp3.osuosl.org (Postfix) with ESMTP id 4350560615; - Tue, 4 Aug 2026 13:39:33 +0000 (UTC) -X-Original-To: u-boot@lists.u-boot-project.org -Delivered-To: u-boot@lists.u-boot-project.org -Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) - by lists1.osuosl.org (Postfix) with ESMTP id 3009E2BF - for ; Tue, 4 Aug 2026 13:39:31 +0000 (UTC) -Received: from localhost (localhost [127.0.0.1]) - by smtp1.osuosl.org (Postfix) with ESMTP id 222DC8086C - for ; Tue, 4 Aug 2026 13:39:31 +0000 (UTC) -X-Virus-Scanned: amavis at osuosl.org -Received: from smtp1.osuosl.org ([127.0.0.1]) - by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP - id W5OoNRat257d for ; - Tue, 4 Aug 2026 13:39:30 +0000 (UTC) -X-Greylist: delayed 94239 seconds by postgrey-1.37 at util1.osuosl.org; - Tue, 04 Aug 2026 13:39:29 UTC -DMARC-Filter: OpenDMARC Filter v1.4.2 smtp1.osuosl.org 1B0B580827 -DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 1B0B580827 -Received-SPF: Pass (mailfrom) identity=mailfrom; - client-ip=2a0a:51c0:0:12e:550::1; helo=galois.linutronix.de; - envelope-from=gregor.herburger@linutronix.de; receiver= -Received: from galois.linutronix.de (Galois.linutronix.de - [IPv6:2a0a:51c0:0:12e:550::1]) - by smtp1.osuosl.org (Postfix) with ESMTPS id 1B0B580827 - for ; Tue, 4 Aug 2026 13:39:29 +0000 (UTC) -From: Gregor Herburger -Date: Tue, 04 Aug 2026 15:39:15 +0200 -Subject: [PATCH v3] rpi: copy /chosen/bootloader partition and set - boot_partition -MIME-Version: 1.0 -Message-Id: <20260804-tryboot2-v3-1-b0bc282a923b@linutronix.de> -X-B4-Tracking: v=1; b=H4sIAILrcWoC/22OywrCMBBFf0WyNpKHbYor/0O6SNOJjWgiSRpaS - v/dpCKCyKwO3HvmLiiANxDQabcgD8kE42wGvt8hNUh7BWz6zIgRVpOGcBz93DkXGW5UxRjlooZ - Kohx/etBm2lSX9s1h7G6gYumXhPbugePgQX6VgjQfJU4U5+OSHiVIpQU9340do3fWTIceimIwI - To/b3MTK6/+LEssezhRRFDNAGj142nXdX0BG/Mh6/kAAAA= -X-Change-ID: 20260803-tryboot2-8c5221376e5a -To: u-boot@lists.u-boot-project.org -Cc: Matthias Brugger , - Peter Robinson , Tom Rini , - =?utf-8?q?Filip_Kokosi=C5=84ski?= , - Ilias Apalodimas , - Gregor Herburger -X-Developer-Signature: v=1; a=ed25519-sha256; t=1785850764; l=3191; - i=gregor.herburger@linutronix.de; s=20260226; h=from:subject:message-id; - bh=4mVT/kFDHBnjUUlqljWBZ+t7aLa+t+gE+t/hUJ4uc5g=; - b=TBKoGScdkXGUfpGLvpVtYHkg4LDoOR/8M/do2dqU2QlR+9Z9YFNN6x88pDC7UIDeXrJS+Hpeg - e3YsfK6fOcoBgXOuzz3Aabmmn9//OQN7WG6Vz15rSxX0uVZ96TFcvf5 -X-Developer-Key: i=gregor.herburger@linutronix.de; a=ed25519; - pk=u72Lv7+/lS5CC1hmSrb17lv/6CK7HBh4Lvz77PHA5LM= -X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=linutronix.de; s=2020; t=1785850765; - h=from:from:reply-to:subject:subject:date:date:message-id:message-id: - to:to:cc:cc:mime-version:mime-version:content-type:content-type: - content-transfer-encoding:content-transfer-encoding; - bh=Tj3LONeiWXn0Cn5KPSYhoff9avwde4nWUGEguAWdLbE=; - b=plU5oAFojHvTlDhOGINsdXnnc0AnS9OY0C4LB9dSy9uyrPKBBpLWGWj3xmNoX87lLZlhO9 - z0H+R5gqw5NfxbTVYFHqZnW+pW4xJQFW9fMYSU8/k2RRg9JEqP+NrZ8Y720ujlycxn05vP - sF7cD+TEsxvyBhnbRyq82obvpdQIYj0D6T3UkHyz0U4G+5k8dVhhv/mqGaSfY8xW4cCl5G - gIE2QIsuzB4g4pQoW70DrLd7cyqqDM0iDrrXFZL2a7DlnYgbe1ULVXMl05UMMQGfBkHmog - pt8e+zvO4AVA3G8CKcUQhhWOZm7uycUpdrNuyPKg9K7JB6MEd9dHbucVa+v8Yg== -X-Mailman-Original-DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; - d=linutronix.de; s=2020e; t=1785850765; - h=from:from:reply-to:subject:subject:date:date:message-id:message-id: - to:to:cc:cc:mime-version:mime-version:content-type:content-type: - content-transfer-encoding:content-transfer-encoding; - bh=Tj3LONeiWXn0Cn5KPSYhoff9avwde4nWUGEguAWdLbE=; - b=NAMrZHs0ETYIMiwBHLvCoR3NOcg/kwkAxVRq6Q/pdhfkQJjxtHU3mZFV520QjbE1yeix0S - nJyAqHgyKVlRiZCw== -X-Mailman-Original-Authentication-Results: smtp1.osuosl.org; - dmarc=pass (p=none dis=none) - header.from=linutronix.de -X-Mailman-Original-Authentication-Results: smtp1.osuosl.org; - dkim=pass (2048-bit key, unprotected) header.d=linutronix.de - header.i=@linutronix.de header.a=rsa-sha256 header.s=2020 header.b=plU5oAFo; - dkim=pass header.d=linutronix.de header.i=@linutronix.de - header.a=ed25519-sha256 header.s=2020e header.b=NAMrZHs0 -X-BeenThere: u-boot@lists.u-boot-project.org -X-Mailman-Version: 2.1.30 -Precedence: list -List-Id: U-Boot discussion -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: u-boot-bounces@lists.u-boot-project.org -Sender: "U-Boot" - -The Raspberry Pi has the "tryboot" feature where it can boot from a -different partition enabling failsafe A/B updates. After boot the -firmware sets 'partition' property in /chosen/bootloader. - -Copy the /chosen/bootloader node to the device tree. - -Set the env variable boot_partition accordingly to allow boards to -create a bootcmd based on the boot partition. - -Reviewed-by: Matthias Brugger -Signed-off-by: Gregor Herburger ---- -Changes in v3: -- Copy the complete '/chosen/bootloader' node instead of only the - partition property -- Link to v2: https://patch.msgid.link/20260803-tryboot2-v2-1-30c071f2ee15@linutronix.de - -Changes in v2: -- update Reviewed-by tag ---- - board/raspberrypi/rpi/rpi.c | 51 +++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 51 insertions(+) - - ---- -base-commit: baa64b2f892890f00a377eac4a3e685472bb56b5 -change-id: 20260803-tryboot2-8c5221376e5a - -Best regards, --- -Gregor Herburger - -diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c -index 1da5df92351c..ba8a2c1ba4cf 100644 ---- a/board/raspberrypi/rpi/rpi.c -+++ b/board/raspberrypi/rpi/rpi.c -@@ -480,6 +480,20 @@ static void set_serial_number(void) - env_set("serial#", serial_string); - } - -+static void set_boot_partition_fdt(void) -+{ -+ void *fdtp = (void *)gd->fdt_blob; -+ u32 partition; -+ -+ partition = fdt_getprop_u32_default(fdtp, "/chosen/bootloader", "partition", 1); -+ if (!partition) { -+ printf("Failed to the get partition property.\n"); -+ return; -+ } -+ -+ env_set_ulong("boot_partition", partition); -+} -+ - int misc_init_r(void) - { - set_fdt_addr(); -@@ -489,6 +503,7 @@ int misc_init_r(void) - set_board_info(); - #endif - set_serial_number(); -+ set_boot_partition_fdt(); - - return 0; - } -@@ -579,6 +594,39 @@ int board_fdt_blob_setup(void **fdtp) - return 0; - } - -+int copy_node_all_properties(void *dst, void *src, const char *path, const char *node) -+{ -+ int src_parent, dst_parent; -+ int src_node, dst_node; -+ int prop; -+ int len; -+ -+ src_parent = fdt_path_offset(src, path); -+ dst_parent = fdt_path_offset(dst, path); -+ if (src_parent < 0 || dst_parent < 0) -+ return -1; -+ -+ src_node = fdt_subnode_offset(src, src_parent, node); -+ if (src_node < 0) -+ return -1; -+ -+ dst_node = fdt_find_or_add_subnode(dst, dst_parent, node); -+ if (dst_node < 0) -+ return -1; -+ -+ fdt_for_each_property_offset(prop, src, src_node) { -+ const char *name; -+ const void *value = fdt_getprop_by_offset(src, prop, &name, &len); -+ -+ if (!value || !name) -+ continue; -+ -+ fdt_setprop(dst, dst_node, name, value, len); -+ } -+ -+ return 0; -+} -+ - int copy_property(void *dst, void *src, char *path, char *property) - { - int dst_offset, src_offset; -@@ -641,6 +689,9 @@ void update_fdt_from_fw(void *fdt, void *fw_fdt) - - /* copy uart clk as provided by the firmware */ - copy_property(fdt, fw_fdt, "/clocks/clk-uart", "clock-frequency"); -+ -+ /* Copy the bootloader node */ -+ copy_node_all_properties(fdt, fw_fdt, "/chosen", "bootloader"); - } - - int ft_board_setup(void *blob, struct bd_info *bd) diff --git a/sources b/sources index 08618e7..532714c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (u-boot-v2026.10-rc3.tar.bz2) = e993f5d78a1ac0eb11f00e3730ff23eb880e206036f78c3eb74852b846a23d59111b4b07f4ced2c88c61a8c1627036c3cc32717c0efcf819376c5cd0a34183d2 +SHA512 (u-boot-2020.10.tar.bz2) = fd26534f2d72ffc3167919c32067c550636f6a4ee5fead6937e2583ba4ff6165e88b8b50fbbddde7354a8c42701433d0cb2ce982e43c014db60b08415288baf9 diff --git a/uboot-tools.spec b/uboot-tools.spec index 056cc94..d76901d 100644 --- a/uboot-tools.spec +++ b/uboot-tools.spec @@ -1,573 +1,595 @@ -%global candidate rc3 -%if 0%{?rhel} -%bcond_with toolsonly -%else -%bcond_without toolsonly -%endif - -# Set it to "opensbi" (stable) or "opensbi-unstable" (unstable, git) -%global opensbi opensbi +#global candidate rc5 Name: uboot-tools -Version: 2026.10 -Release: 0.3%{?candidate:.%{candidate}}%{?dist} -Epoch: 1 +Version: 2020.10 +Release: 2%{?candidate:.%{candidate}}%{?dist} Summary: U-Boot utilities -# Automatically converted from old format: GPLv2+ BSD LGPL-2.1+ LGPL-2.0+ - review is highly recommended. -License: GPL-2.0-or-later AND LicenseRef-Callaway-BSD AND LGPL-2.1-or-later AND LGPL-2.0-or-later -URL: https://u-boot-project.org/ -ExcludeArch: s390x -Source0: https://git.u-boot-project.org/u-boot/u-boot/-/archive/v%{version}%{?candidate:-%{candidate}}/u-boot-v%{version}%{?candidate:-%{candidate}}.tar.bz2 -Source1: aarch64-boards -Source2: riscv64-boards -Source3: x86_64-boards +License: GPLv2+ BSD LGPL-2.1+ LGPL-2.0+ +URL: http://www.denx.de/wiki/U-Boot -# Fedora patches to enable/disable features -Patch1: disable-VBE-by-default.patch -Patch2: enable-bootmenu-by-default.patch -# This is now legacy, most devices use bootflow, we keep this for the laggards -Patch3: uefi-distro-load-FDT-from-any-partition-on-boot-device.patch -# Identify VFAT partitions as ESP, allows EFI setvar on our images -Patch4: uefi-Add-all-options-for-EFI-System-Partitions.patch -# New function to find fdt for loading from disk -Patch5: uefi-initial-find_fdt_location-for-finding-the-DT-on-disk.patch -# Enable UEFI SetVariable for devices without backed storage -Patch6: uefi-enable-SetVariableRT-with-volotile-storage.patch -# Enable UEFI HTTPS boot for all Fedora firmware -Patch7: uefi-enable-https-boot-by-default.patch +Source0: ftp://ftp.denx.de/pub/u-boot/u-boot-%{version}%{?candidate:-%{candidate}}.tar.bz2 +Source1: arm-boards +Source2: arm-chromebooks +Source3: aarch64-boards +Source4: aarch64-chromebooks +Source5: 10-devicetree.install -# Device improvments -# USB-PD improvements -Patch10: USB-PD-TCPM-improvements.patch +# Fedoraisms patches +# Needed to find DT on boot partition that's not the first partition +Patch1: uefi-distro-load-FDT-from-any-partition-on-boot-device.patch +# Needed due to issues with shim +Patch2: uefi-use-Fedora-specific-path-name.patch +Patch3: rockchip-spl-u-boot-itb-offset.patch + +# Board fixes and enablement +# RPi - uses RPI firmware device tree for HAT support +Patch5: rpi-Enable-using-the-DT-provided-by-the-Raspberry-Pi.patch +# Tegra improvements +Patch6: arm-tegra-define-fdtfile-option-for-distro-boot.patch +Patch7: arm-add-BOOTENV_EFI_SET_FDTFILE_FALLBACK-for-tegra186-be.patch +# AllWinner improvements +Patch8: AllWinner-UpstreamSync.patch +Patch9: AllWinner-PinePhone.patch +Patch10: AllWinner-PineTab.patch +Patch11: 0001-Fixes-for-AllWinner-ethernet-network-interfaces.patch +# TI fixes +Patch12: 0001-Fix-BeagleAI-detection.patch # Rockchips improvements -Patch11: rockchip-Enable-preboot-start-for-pci-usb.patch -Patch13: rockchip-rk356x-Stop-overriding-sdhci-mmc-aliases.patch -# Jetson fixes -Patch14: p3450-fix-board.patch -Patch15: JetsonTX2-Fix-upstream-device-tree-naming.patch -# Fix AllWinner -Patch16: Allwinner-fix-booting-on-a-number-of-devices.patch -# RPi -Patch20: Fix-NVMe-not-only-on-Raspberry-Pi-5.patch -Patch21: raspberrypi-Add-quirk-for-RPi5-2Gb-rev-1.0.patch -Patch22: rpi-copy-chosen-bootloader-partition-and-set-boot_partition.patch +Patch13: arm-rk3399-enable-rng-on-rock960-and-firefly3399.patch +Patch14: rk3399-Pinebook-pro-EDP-support.patch +Patch15: rk3399-reset-display-hack.patch +Patch16: rockchip-Rock960-Fix-up-USB-support.patch BuildRequires: bc -BuildRequires: bison BuildRequires: dtc -BuildRequires: flex -BuildRequires: gcc -BuildRequires: gnutls-devel -BuildRequires: libuuid-devel BuildRequires: make -BuildRequires: ncurses-devel -%if 0%{?fedora} > 44 -BuildRequires: openssl3-devel -BuildRequires: openssl3-devel-engine +# Requirements for building on el7 +%if 0%{?rhel} == 7 +BuildRequires: devtoolset-7-build +BuildRequires: devtoolset-7-binutils +BuildRequires: devtoolset-7-gcc +BuildRequires: python2-devel +BuildRequires: python2-setuptools +BuildRequires: python2-libfdt %else -BuildRequires: openssl-devel -BuildRequires: openssl-devel-engine -%endif -BuildRequires: perl-interpreter +BuildRequires: gcc BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-libfdt -BuildRequires: SDL2-devel +%endif +BuildRequires: flex bison +BuildRequires: openssl-devel +BuildRequires: SDL-devel BuildRequires: swig -%if %{with toolsonly} +%ifarch %{arm} aarch64 +BuildRequires: vboot-utils +%endif %ifarch aarch64 BuildRequires: arm-trusted-firmware-armv8 -BuildRequires: optee-os-firmware-armv8 -BuildRequires: crust-firmware -BuildRequires: python3-pyelftools -BuildRequires: xxd -%endif -%ifarch riscv64 -BuildRequires: %{opensbi} -%endif %endif + Requires: dtc +Requires: systemd +%ifarch aarch64 %{arm} +Obsoletes: uboot-images-elf < 2019.07 +Provides: uboot-images-elf < 2019.07 +%endif %description This package contains a few U-Boot utilities - mkimage for creating boot images and fw_printenv/fw_setenv for manipulating the boot environment variables. -%if %{with toolsonly} %ifarch aarch64 %package -n uboot-images-armv8 Summary: U-Boot firmware images for aarch64 boards +Requires: uboot-tools BuildArch: noarch %description -n uboot-images-armv8 U-Boot firmware binaries for aarch64 boards %endif -%ifarch riscv64 -%package -n uboot-images-riscv64 -Summary: U-Boot firmware images for riscv64 boards +%ifarch %{arm} +%package -n uboot-images-armv7 +Summary: U-Boot firmware images for armv7 boards +Requires: uboot-tools BuildArch: noarch -%description -n uboot-images-riscv64 -U-Boot firmware binaries for riscv64 boards -%endif - -%ifarch x86_64 -%package -n uboot-images-x86_64 -Summary: U-Boot firmware images for x86_64 boards -BuildArch: noarch - -%description -n uboot-images-x86_64 -U-Boot firmware binaries for x86_64 boards -%endif +%description -n uboot-images-armv7 +U-Boot firmware binaries for armv7 boards %endif %prep -%autosetup -p1 -n u-boot-v%{version}%{?candidate:-%{candidate}} +%autosetup -p1 -n u-boot-%{version}%{?candidate:-%{candidate}} -cp %SOURCE1 %SOURCE2 %SOURCE3 . +cp %SOURCE1 %SOURCE2 %SOURCE3 %SOURCE4 . %build mkdir builds -%make_build HOSTCC="gcc $RPM_OPT_FLAGS" CROSS_COMPILE="" tools-only_defconfig O=builds/ -%make_build HOSTCC="gcc $RPM_OPT_FLAGS" CROSS_COMPILE="" tools-all O=builds/ - -%if %{with toolsonly} -# OpenSBI firmware is distributed in U-Boot SPL images -%ifarch riscv64 -export OPENSBI=%{_datadir}/%{opensbi}/generic/firmware/fw_dynamic.bin +%if 0%{?rhel} == 7 +#Enabling DTS for .el7 +%{?enable_devtoolset7:%{enable_devtoolset7}} %endif -%ifarch aarch64 riscv64 x86_64 +%ifarch aarch64 %{arm} for board in $(cat %{_arch}-boards) do echo "Building board: $board" mkdir builds/$(echo $board)/ - # ATF selection, needs improving, suggestions of ATF SoC to Board matrix welcome - sun50i=(a64-olinuxino a64-olinuxino-emmc amarula_a64_relic bananapi_m64 nanopi_a64 oceanic_5205_5inmfd orangepi_win pine64-lts pine64_plus pine64_plus pinebook pinephone pinephone pinetab sopine_baseboard teres_i) + sun50i=(a64-olinuxino amarula_a64_relic bananapi_m2_plus_h5 bananapi_m64 libretech_all_h3_cc_h5 nanopi_a64 nanopi_neo2 nanopi_neo_plus2 orangepi_pc2 orangepi_prime orangepi_win orangepi_zero_plus orangepi_zero_plus2 pine64-lts pine64_plus pinebook pinephone pinetab sopine_baseboard teres_i) if [[ " ${sun50i[*]} " == *" $board "* ]]; then echo "Board: $board using sun50i_a64" - cp /usr/share/arm-trusted-firmware/sun50i_a64/bl31.bin builds/$(echo $board)/atf-bl31 - cp /usr/share/crust-firmware/a64/scp.bin builds/$(echo $board)/ + cp /usr/share/arm-trusted-firmware/sun50i_a64/* builds/$(echo $board)/ fi - sun50h5=(bananapi_m2_plus_h5 emlid_neutis_n5_devboard libretech_all_h3_cc_h5 libretech_all_h3_it_h5 libretech_all_h5_cc_h5 nanopi_neo2 nanopi_neo_plus2 nanopi_r1s_h5 orangepi_pc2 orangepi_prime orangepi_zero_plus2 orangepi_zero_plus) - if [[ " ${sun50h5[*]} " == *" $board "* ]]; then - echo "Board: $board using sun50i_h6" - cp /usr/share/arm-trusted-firmware/sun50i_a64/bl31.bin builds/$(echo $board)/atf-bl31 - cp /usr/share/crust-firmware/h5/scp.bin builds/$(echo $board)/ - fi - sun50h6=(beelink_gs1 emlid_neutis_n5_devboard orangepi_3 orangepi_lite2 orangepi_one_plus pine_h64 tanix_tx6) + sun50h6=(orangepi_lite2 orangepi_one_plus pine_h64) if [[ " ${sun50h6[*]} " == *" $board "* ]]; then echo "Board: $board using sun50i_h6" - cp /usr/share/arm-trusted-firmware/sun50i_h6/bl31.bin builds/$(echo $board)/atf-bl31 - cp /usr/share/crust-firmware/h6/scp.bin builds/$(echo $board)/ + cp /usr/share/arm-trusted-firmware/sun50i_h6/* builds/$(echo $board)/ fi - sun50i_h616=(anbernic_rg35xx_h700 orangepi_zero2 orangepi_zero2w orangepi_zero3 transpeed-8k618-t x96_mate) - if [[ " ${sun50i_h616[*]} " == *" $board "* ]]; then - echo "Board: $board using sun50i_h616" - cp /usr/share/arm-trusted-firmware/sun50i_h616/bl31.bin builds/$(echo $board)/atf-bl31 - fi - rk3328=(evb-rk3328 generic-rk3328 nanopi-r2c-plus-rk3328 nanopi-r2c-rk3328 nanopi-r2s-rk3328 nanopi-r2s-plus-rk3328 orangepi-r1-plus-lts-rk3328 orangepi-r1-plus-rk3328 roc-cc-rk3328 rock64-rk3328 rock-pi-e-rk3328 rock-pi-e-v3-rk3328) + rk3328=(evb-rk3328 rock64-rk3328 rock-pi-e-rk3328 roc-cc-rk3328) if [[ " ${rk3328[*]} " == *" $board "* ]]; then echo "Board: $board using rk3328" - cp /usr/share/arm-trusted-firmware/rk3328/bl31.elf builds/$(echo $board)/atf-bl31 + cp /usr/share/arm-trusted-firmware/rk3328/* builds/$(echo $board)/ fi - rk3368=(evb-px5 geekbox) - if [[ " ${rk3368[*]} " == *" $board "* ]]; then - echo "Board: $board using rk3368" - cp /usr/share/arm-trusted-firmware/rk3368/bl31.elf builds/$(echo $board)/atf-bl31 - fi - rk3399=(eaidk-610-rk3399 evb-rk3399 ficus-rk3399 firefly-rk3399 generic-rk3399 khadas-edge-captain-rk3399 khadas-edge-rk3399 khadas-edge-v-rk3399 leez-rk3399 nanopc-t4-rk3399 nanopi-m4-2gb-rk3399 nanopi-m4b-rk3399 nanopi-m4-rk3399 nanopi-neo4-rk3399 nanopi-r4s-rk3399 orangepi-rk3399 pinebook-pro-rk3399 pinephone-pro-rk3399 puma-rk3399 rock-4c-plus-rk3399 rock-4se-rk3399 rock960-rk3399 rock-pi-4c-rk3399 rock-pi-4-rk3399 rock-pi-n10-rk3399pro rockpro64-rk3399 roc-pc-mezzanine-rk3399 roc-pc-rk3399) + rk3399=(evb-rk3399 ficus-rk3399 firefly-rk3399 khadas-edge-captain-rk3399 khadas-edge-rk3399 khadas-edge-v-rk3399 nanopc-t4-rk3399 nanopi-m4-2gb-rk3399 nanopi-m4-rk3399 nanopi-neo4-rk3399 orangepi-rk3399 pinebook-pro-rk3399 puma-rk3399 rock960-rk3399 rock-pi-4c-rk3399 rock-pi-4-rk3399 rock-pi-n10-rk3399pro rockpro64-rk3399 roc-pc-mezzanine-rk3399 roc-pc-rk3399) if [[ " ${rk3399[*]} " == *" $board "* ]]; then echo "Board: $board using rk3399" cp /usr/share/arm-trusted-firmware/rk3399/* builds/$(echo $board)/ - cp builds/$(echo $board)/bl31.elf builds/$(echo $board)/atf-bl31 - fi - zynqmp=(xilinx_zynqmp_kria xilinx_zynqmp_virt) - if [[ " ${zynqmp[*]} " == *" $board "* ]]; then - echo "Board: $board using zynqmp" - cp /usr/share/arm-trusted-firmware/zynqmp/bl31.bin builds/$(echo $board)/atf-bl31 fi # End ATF - make $(echo $board)_defconfig O=builds/$(echo $board)/ - BL31=builds/$(echo $board)/atf-bl31 %make_build HOSTCC="gcc $RPM_OPT_FLAGS" CROSS_COMPILE="" O=builds/$(echo $board)/ - + %make_build HOSTCC="gcc $RPM_OPT_FLAGS" CROSS_COMPILE="" O=builds/$(echo $board)/ done %endif -%endif + +%make_build HOSTCC="gcc $RPM_OPT_FLAGS" CROSS_COMPILE="" tools-only_defconfig O=builds/ +%make_build HOSTCC="gcc $RPM_OPT_FLAGS" CROSS_COMPILE="" tools-all O=builds/ %install -mkdir -p %{buildroot}%{_bindir} -mkdir -p %{buildroot}%{_mandir}/man1 -mkdir -p %{buildroot}%{_datadir}/uboot/ +mkdir -p $RPM_BUILD_ROOT%{_bindir} +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir} +mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1 +mkdir -p $RPM_BUILD_ROOT%{_datadir}/uboot/ -%if %{with toolsonly} %ifarch aarch64 -for board in $(ls builds) +for board in $(cat %{_arch}-boards) do - for file in u-boot.bin u-boot.img u-boot-dtb.img u-boot-sunxi-with-spl.bin u-boot-rockchip-spi.bin u-boot-rockchip.bin +mkdir -p $RPM_BUILD_ROOT%{_datadir}/uboot/$(echo $board)/ + for file in u-boot.bin u-boot.dtb u-boot.img u-boot-dtb.img u-boot.itb u-boot-sunxi-with-spl.bin u-boot-rockchip.bin idbloader.img spl/boot.bin spl/sunxi-spl.bin do if [ -f builds/$(echo $board)/$(echo $file) ]; then - install -pD -m 0644 builds/$(echo $board)/$(echo $file) %{buildroot}%{_datadir}/uboot/$(echo $board)/$(echo $file) - fi - done -done - -# Just for xilinx_zynqmp -for board in "xilinx_zynqmp_kria xilinx_zynqmp_virt" -do - for file in u-boot.itb spl/boot.bin - do - if [ -f builds/$(echo $board)/$(echo $file) ]; then - install -pD -m 0644 builds/$(echo $board)/$(echo $file) %{buildroot}%{_datadir}/uboot/$(echo $board)/$(echo $file) - fi - done -done - -# For Apple M-series we also need the nodtb variant -install -pD -m 0644 builds/apple_m1/u-boot-nodtb.bin %{buildroot}%{_datadir}/uboot/apple_m1/u-boot-nodtb.bin -%endif - -%ifarch riscv64 -for board in $(ls builds) -do - for file in u-boot.itb spl/u-boot-spl.bin spl/u-boot-spl.bin.normal.out - do - if [ -f builds/$(echo $board)/$(echo $file) ]; then - install -pD -m 0644 builds/$(echo $board)/$(echo $file) %{buildroot}%{_datadir}/uboot/$(echo $board)/$(echo $file) + install -p -m 0644 builds/$(echo $board)/$(echo $file) $RPM_BUILD_ROOT%{_datadir}/uboot/$(echo $board)/ fi done done %endif -%ifarch x86_64 -for board in $(ls builds) +%ifarch %{arm} +for board in $(cat %{_arch}-boards) do - for file in u-boot.rom +mkdir -p $RPM_BUILD_ROOT%{_datadir}/uboot/$(echo $board)/ + for file in MLO SPL spl/arndale-spl.bin spl/origen-spl.bin spl/*spl.bin u-boot.bin u-boot.dtb u-boot-dtb-tegra.bin u-boot.img u-boot.imx u-boot-spl.kwb u-boot-rockchip.bin u-boot-sunxi-with-spl.bin spl/boot.bin do if [ -f builds/$(echo $board)/$(echo $file) ]; then - install -pD -m 0644 builds/$(echo $board)/$(echo $file) %{buildroot}%{_datadir}/uboot/$(echo $board)/$(echo $file) + install -p -m 0644 builds/$(echo $board)/$(echo $file) $RPM_BUILD_ROOT%{_datadir}/uboot/$(echo $board)/ fi done + done -%endif # Bit of a hack to remove binaries we don't use as they're large -for board in $(ls builds) +for board in $(cat %{_arch}-boards) do - rm -f %{buildroot}%{_datadir}/uboot/$(echo $board)/u-boot.dtb - if [ -f %{buildroot}%{_datadir}/uboot/$(echo $board)/u-boot-sunxi-with-spl.bin ]; then - rm -f %{buildroot}%{_datadir}/uboot/$(echo $board)/u-boot{,-dtb}.* + if [ -f $RPM_BUILD_ROOT%{_datadir}/uboot/$(echo $board)/u-boot-sunxi-with-spl.bin ]; then + rm -f $RPM_BUILD_ROOT%{_datadir}/uboot/$(echo $board)/u-boot.* fi - if [ -f %{buildroot}%{_datadir}/uboot/$(echo $board)/u-boot-rockchip.bin ]; then - rm -f %{buildroot}%{_datadir}/uboot/$(echo $board)/u-boot{,-dtb}.* + if [ -f $RPM_BUILD_ROOT%{_datadir}/uboot/$(echo $board)/MLO ]; then + rm -f $RPM_BUILD_ROOT%{_datadir}/uboot/$(echo $board)/u-boot.bin + fi + if [ -f $RPM_BUILD_ROOT%{_datadir}/uboot/$(echo $board)/SPL ]; then + rm -f $RPM_BUILD_ROOT%{_datadir}/uboot/$(echo $board)/u-boot.bin + fi + if [ -f $RPM_BUILD_ROOT%{_datadir}/uboot/$(echo $board)/u-boot.imx ]; then + rm -f $RPM_BUILD_ROOT%{_datadir}/uboot/$(echo $board)/u-boot.bin fi done %endif -for tool in dumpimage env/fw_printenv fdt_add_pubkey fit_check_sign fit_info gdb/gdbcont gdb/gdbsend gen_eth_addr gen_ethaddr_crc ifwitool img2srec kwboot mkeficapsule mkenvimage mkimage mksunxiboot ncb proftool sunxi-spl-image-builder +for tool in bmp_logo dumpimage env/fw_printenv fit_check_sign fit_info gdb/gdbcont gdb/gdbsend gen_eth_addr gen_ethaddr_crc img2srec mkenvimage mkimage mksunxiboot ncb proftool sunxi-spl-image-builder ubsha1 xway-swap-bytes do -install -p -m 0755 builds/tools/$tool %{buildroot}%{_bindir} -done -for tool in dumpimage kwboot mkeficapsule mkimage -do -install -p -m 0644 doc/$tool.1 %{buildroot}%{_mandir}/man1 +install -p -m 0755 builds/tools/$tool $RPM_BUILD_ROOT%{_bindir} done +install -p -m 0644 doc/mkimage.1 $RPM_BUILD_ROOT%{_mandir}/man1 -install -p -m 0755 builds/tools/env/fw_printenv %{buildroot}%{_bindir} -( cd %{buildroot}%{_bindir}; ln -sf fw_printenv fw_setenv ) +install -p -m 0755 builds/tools/env/fw_printenv $RPM_BUILD_ROOT%{_bindir} +( cd $RPM_BUILD_ROOT%{_bindir}; ln -sf fw_printenv fw_setenv ) + +install -p -m 0644 tools/env/fw_env.config $RPM_BUILD_ROOT%{_sysconfdir} + +# systemd kernel-install script for device tree +mkdir -p $RPM_BUILD_ROOT/lib/kernel/install.d/ +install -p -m 0755 %{SOURCE5} $RPM_BUILD_ROOT/lib/kernel/install.d/ + +# Copy sone useful docs over +mkdir -p builds/docs +cp -p board/hisilicon/hikey/README builds/docs/README.hikey +cp -p board/hisilicon/hikey/README builds/docs/README.hikey +cp -p board/Marvell/db-88f6820-gp/README builds/docs/README.mvebu-db-88f6820 +cp -p board/rockchip/evb_rk3399/README builds/docs/README.evb_rk3399 +cp -p board/solidrun/clearfog/README builds/docs/README.clearfog +cp -p board/solidrun/mx6cuboxi/README builds/docs/README.mx6cuboxi +cp -p board/sunxi/README.sunxi64 builds/docs/README.sunxi64 +cp -p board/sunxi/README.nand builds/docs/README.sunxi-nand +cp -p board/ti/am335x/README builds/docs/README.am335x +cp -p board/ti/omap5_uevm/README builds/docs/README.omap5_uevm +cp -p board/udoo/README builds/docs/README.udoo +cp -p board/wandboard/README builds/docs/README.wandboard +cp -p board/warp/README builds/docs/README.warp +cp -p board/warp7/README builds/docs/README.warp7 %files -%license Licenses/* -%doc README doc/develop/distro.rst doc/README.gpt -%doc doc/develop/uefi doc/usage doc/arch/arm64.rst +%doc README doc/README.kwbimage doc/README.distro doc/README.gpt +%doc doc/README.odroid doc/README.rockchip doc/uefi doc/uImage.FIT doc/arch/arm64.rst +%doc doc/README.chromium builds/docs/* +%doc doc/board/amlogic/ doc/board/rockchip/ %{_bindir}/* -%{_mandir}/man1/dumpimage.1* -%{_mandir}/man1/kwboot.1* -%{_mandir}/man1/mkeficapsule.1* %{_mandir}/man1/mkimage.1* +/lib/kernel/install.d/10-devicetree.install +%dir %{_datadir}/uboot/ +%config(noreplace) %{_sysconfdir}/fw_env.config -%if %{with toolsonly} %ifarch aarch64 %files -n uboot-images-armv8 -%license Licenses/* -%dir %{_datadir}/uboot/ %{_datadir}/uboot/* %endif -%ifarch riscv64 -%files -n uboot-images-riscv64 -%license Licenses/* -%dir %{_datadir}/uboot/ +%ifarch %{arm} +%files -n uboot-images-armv7 %{_datadir}/uboot/* %endif -%ifarch x86_64 -%files -n uboot-images-x86_64 -%license Licenses/* -%dir %{_datadir}/uboot/ -%{_datadir}/uboot/* -%endif -%endif - %changelog -* Thu Aug 27 2026 Peter Robinson - 1:2026.10-0.3.rc3 -- Update to 2026.10 RC3 +* Wed Oct 28 08:21:56 GMT 2020 Peter Robinson - 2020.10-2 +- Fix kernel installs for non EBBR systems +- Fix for wired networks on some Allwinner devices -* Wed Aug 12 2026 Peter Robinson - 1:2026.10-0.2.rc2 -- Update to 2026.10 RC2 +* Tue Oct 06 2020 Peter Robinson - 2020.10-1 +- Update to 2020.10 -* Thu Jul 30 2026 Peter Robinson - 1:2026.10-0.1.rc1 -- Update to 2026.10 RC1 -- Update source URL +* Sun Sep 27 2020 Peter Robinson - 2020.10-0.6.rc5 +- Initial support for display output on Pinebook Pro -* Fri Jul 17 2026 Fedora Release Engineering - 1:2026.07-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild +* Tue Sep 22 2020 Peter Robinson - 2020.10-0.5.rc5 +- Update to 2020.10 RC5 -* Tue Jul 07 2026 Peter Robinson - 1:2026.07-1 -- Update to 2026.07 GA +* Wed Sep 09 2020 Peter Robinson - 2020.10-0.4.rc4 +- Update to 2020.10 RC4 -* Tue Jun 23 2026 Peter Robinson - 1:2026.07-0.4.rc5 -- Update to 2026.07 RC5 +* Wed Aug 19 2020 Peter Robinson - 2020.10-0.3.rc2 +- Enable a number of new Rockchip devices -* Mon Jun 08 2026 Peter Robinson - 1:2026.07-0.3.rc4 -- Update to 2026.07 RC4 +* Mon Aug 10 2020 Peter Robinson - 2020.10-0.2.rc2 +- Update to 2020.10 RC2 -* Fri May 29 2026 Peter Robinson - 1:2026.07-0.2.rc3 -- Update to 2026.07 RC3 -- Update U-Boot Project URL -- Update RPi PCIe patches -- Various RPi fixes +* Tue Jul 28 2020 Peter Robinson - 2020.10-0.1.rc1 +- 2020.10 RC1 -* Fri May 01 2026 Peter Robinson - 1:2026.07-0.1.rc1 -- Update to 2026.07 RC1 +* Tue Jul 14 2020 Tom Stellard - 2020.07-2 +- Use make macros +- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro -* Sat Apr 11 2026 Peter Robinson - 1:2026.04-2 -- Fix PCIe/USB on Raspberry Pi 4 (rhbz#2448365) -- Fix detection of some revisions of RPi5 +* Mon Jul 06 2020 Peter Robinson - 2020.07-1 +- 2020.07 GA -* Tue Apr 07 2026 Peter Robinson - 1:2026.04-1 -- Update to 2026.04 GA +* Tue Jun 23 2020 Peter Robinson - 2020.07-0.5.rc5 +- 2020.07 RC5 -* Sun Mar 29 2026 Peter Robinson - 1:2026.04-0.9.rc5 -- Enable NVME booting on RPi5 +* Thu Jun 18 2020 Peter Robinson - 2020.07-0.4.rc4 +- Update various patches to latest upstream -* Tue Mar 24 2026 Peter Robinson - 1:2026.04-0.8.rc5 -- Update to 2026.04 RC5 +* Wed Jun 10 2020 Peter Robinson - 2020.07-0.3.rc4 +- 2020.07 RC4 +- Minor updates and other fixes -* Sat Mar 14 2026 Peter Robinson - 1:2026.04-0.7.rc4 -- Raspberry Pi fixes +* Tue May 12 2020 Peter Robinson - 2020.07-0.2.rc2 +- 2020.07 RC2 +- Minor device updates -* Tue Mar 10 2026 Peter Robinson - 1:2026.04-0.6.rc4 -- Update to 2026.04 RC4 +* Wed Apr 29 2020 Peter Robinson - 2020.07-0.1.rc1 +- 2020.07 RC1 -* Fri Feb 27 2026 Peter Robinson - 1:2026.04-0.5.rc3 -- Update to 2026.04 RC3 +* Tue Apr 21 2020 Peter Robinson - 2020.04-4 +- Initial support for USB on Rasperry Pi 4 -* Tue Feb 17 2026 Peter Robinson - 1:2026.04-0.4.rc2 -- Add initial bcm2712d0 identification +* Tue Apr 21 2020 Peter Robinson - 2020.04-3 +- Ship u-boot-rockchip.bin for SPI flash -* Mon Feb 09 2026 Peter Robinson - 1:2026.04-0.3.rc2 -- Update to 2026.04 RC2 +* Mon Apr 20 2020 Peter Robinson - 2020.04-2 +- Fix ATF for new aarch64 devices +- Fix Wandboard board detection (rhbz 1825247) +- Fix mSD card on RockPro64 +- Enable (inital) Pinebook Pro -* Tue Jan 27 2026 Peter Robinson - 1:2026.04-0.2.rc1 -- Update to 2026.04 RC1 +* Tue Apr 14 2020 Peter Robinson - 2020.04-1 +- 2020.04 -* Mon Jan 19 2026 Javier Martinez Canillas - 1:2026.01-3 -- Add a uboot-images-x86_64 subpackage +* Tue Apr 7 2020 Peter Robinson 2020.04-0.7-rc5 +- 2020.04 RC5 -* Sat Jan 17 2026 Fedora Release Engineering - 1:2026.01-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild +* Tue Mar 31 2020 Peter Robinson 2020.04-0.6-rc4 +- 2020.04 RC4 +- Updates for NVIDIA Jetson platforms +- Support RNG for random seed for KASLR on some Rockchip devices -* Tue Jan 06 2026 Peter Robinson - 1:2026.01-1 -- Update to 2026.01 GA +* Thu Mar 26 2020 Peter Robinson 2020.04-0.5-rc3 +- Fix ext4 alignment issue seen on some NXP i.MX devices -* Mon Dec 29 2025 Peter Robinson - 1:2026.01-0.4.rc5 -- Update to 2026.01 RC5 +* Wed Feb 26 2020 Peter Robinson 2020.04-0.4-rc3 +- 2020.04 RC3 -* Mon Dec 08 2025 Peter Robinson - 1:2026.01-0.3.rc4 -- Update to 2026.01 RC4 +* Thu Feb 13 2020 Peter Robinson 2020.04-0.3-rc2 +- 2020.04 RC2 -* Fri Nov 28 2025 Peter Robinson - 1:2026.01-0.2.rc3 -- Updates for RPi +* Sun Feb 2 2020 Peter Robinson 2020.04-0.2-rc1 +- Update genet NIC driver -* Mon Nov 24 2025 Peter Robinson - 1:2026.01-0.1.rc3 -- Update to 2026.01 RC3 +* Wed Jan 29 2020 Peter Robinson 2020.04-0.1-rc1 +- 2020.04 RC1 -* Thu Oct 16 2025 Peter Robinson - 1:2025.10-2 -- Drop residual Rockchip firmware (saves ~150Mb) +* Tue Jan 7 2020 Peter Robinson 2020.01-1 +- 2020.01 -* Mon Oct 13 2025 Peter Robinson - 1:2025.10-1 -- Update to 2025.10 GA (rhbz#2401964) -- Fix booting when using FW device-tree (rhbz#2402498) -- Fix for some variants of Raspberry Pi -- Fixes for Jetson device booting +* Tue Dec 17 2019 Peter Robinson 2020.01-0.9-rc5 +- 2020.01 RC5 -* Fri Sep 26 2025 Peter Robinson - 1:2025.10-0.7.rc5 -- Update to 2025.10 RC5 +* Thu Dec 12 2019 Peter Robinson 2020.01-0.8-rc4 +- Fixes for Raspberry Pi -* Mon Sep 08 2025 Peter Robinson - 1:2025.10-0.6.rc4 -- Update to 2025.10 RC4 +* Thu Dec 5 2019 Peter Robinson 2020.01-0.7-rc4 +- Enable the Khadas Edge and VIM series of devices +- Minor other fixes -* Sun Sep 07 2025 Peter Robinson - 1:2025.10-0.5.rc3 -- Boot fixes for some Raspberry Pi variants +* Tue Dec 3 2019 Peter Robinson 2020.01-0.6-rc4 +- Fixes for AllWinner, Raspberry Pi, Rockchip, Xilinx ZynqMP -* Wed Aug 27 2025 Peter Robinson - 1:2025.10-0.4.rc3 -- Fix booting on some Allwinner devices +* Tue Dec 3 2019 Peter Robinson 2020.01-0.5-rc4 +- 2020.01 RC4 -* Mon Aug 25 2025 Peter Robinson - 1:2025.10-0.3.rc3 -- Update to 2025.10 RC3 +* Tue Nov 19 2019 Peter Robinson 2020.01-0.4-rc3 +- 2020.01 RC3 -* Tue Aug 19 2025 Peter Robinson - 1:2025.10-0.2.rc2 -- Fix and re-enable Jetson Nano +* Tue Nov 12 2019 Peter Robinson 2020.01-0.3-rc2 +- 2020.01 RC2 -* Mon Aug 18 2025 Peter Robinson - 1:2025.10-0.1.rc2 -- Update to 2025.10 RC2 +* Tue Nov 5 2019 Peter Robinson 2020.01-0.2-rc1 +- Include new ATF 2.2 -* Fri Jul 25 2025 Fedora Release Engineering - 1:2025.07-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild +* Wed Oct 30 2019 Peter Robinson 2020.01-0.1-rc1 +- 2020.01 RC1 +- Initial migration to python3 -* Thu Jul 10 2025 Peter Robinson - 1:2025.07-2 -- Update patch for rebase issue +* Wed Oct 9 2019 Peter Robinson 2019.10-2 +- Fixes for Rockchips rk3328 and rk3399 platforms -* Wed Jul 09 2025 Peter Robinson - 1:2025.07-1 -- Update to 2025.07 GA +* Mon Oct 7 2019 Peter Robinson 2019.10-1 +- 2019.10 -* Fri Jun 27 2025 Peter Robinson - 1:2025.07-0.5.rc5 -- Update to 2025.07 RC5 -- Enable LWIP stack by default -- Enable HTTP(s) boot support +* Mon Sep 23 2019 Peter Robinson 2019.10-0.5-rc4 +- 2019.10 RC4 -* Thu Jun 26 2025 Javier Martinez Canillas - 1:2025.07-0.4.rc4 -- Add EFI_PARTITION_INFO_PROTOCOL support +* Wed Sep 11 2019 Peter Robinson 2019.10-0.4-rc3 +- Minor fixes -* Sun Jun 15 2025 Peter Robinson - 1:2025.07-0.3.rc4 -- Update to 2025.07 RC4 +* Tue Aug 27 2019 Peter Robinson 2019.10-0.3-rc3 +- 2019.10 RC3 -* Tue May 13 2025 Peter Robinson - 1:2025.07-0.2.rc2 -- Update to 2025.07 RC2 +* Mon Aug 26 2019 Peter Robinson 2019.10-0.2-rc2 +- Temporarily disable Chrome devices due to unexpected retirement of vboot-utils -* Thu May 01 2025 Peter Robinson - 1:2025.07-0.1.rc1 -- Update to 2025.07 RC1 +* Wed Aug 14 2019 Peter Robinson 2019.10-0.1-rc2 +- 2019.10 RC2 -* Sun Apr 20 2025 Peter Robinson - 1:2025.04-2 -- Fix for RPi5 serial console +* Sun Aug 4 2019 Peter Robinson 2019.07-3 +- Fixes for Rock960 +- Iniital Raspberry Pi 4 support -* Tue Apr 08 2025 Peter Robinson - 1:2025.04-1 -- Update to 2025.04 GA +* Sat Jul 27 2019 Fedora Release Engineering - 2019.07-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild -* Tue Mar 25 2025 Peter Robinson - 1:2025.04-0.7.rc5 -- Update to 2025.04 RC5 +* Mon Jul 8 2019 Peter Robinson 2019.07-1 +- 2019.07 +- Enable Rock64 +- Rock960 enhancements -* Wed Mar 12 2025 Peter Robinson - 1:2025.04-0.6.rc4 -- Update to 2025.04 RC4 +* Fri Jun 28 2019 Peter Robinson 2019.07-0.2-rc4 +- Fix build with explicit python2 +- Drop a couple of unused boards -* Wed Feb 26 2025 Peter Robinson - 1:2025.04-0.5.rc3 -- Update to 2025.04 RC3 +* Tue Jun 18 2019 Peter Robinson 2019.07-0.1-rc4 +- 2019.07 RC4 +- Obsolete unused elf packages +- A number of new rk3399 devices -* Tue Feb 18 2025 David Abdurachmanov - 1:2025.04-0.4.rc2 -- Add support for riscv64 +* Sat May 4 2019 Peter Robinson 2019.04-2 +- Build and ship pre built SD/SPI SPL bits for all rk3399 boards -* Tue Feb 11 2025 Peter Robinson - 1:2025.04-0.3.rc2 -- Update to 2025.05 RC2 +* Sun Apr 14 2019 Peter Robinson 2019.04-1 +- 2019.04 +- Fixes for AllWinner and NVIDIA Jetson devices -* Tue Feb 11 2025 Peter Robinson - 1:2025.04-0.2.rc1 -- Update to 2025.05 RC1 +* Thu Apr 4 2019 Peter Robinson 2019.04-0.9-rc4 +- Latest Tegra patch revision -* Tue Jan 28 2025 Peter Robinson - 1:2025.01-3 -- Add new fdt_add_pubkey tool +* Sun Mar 31 2019 Peter Robinson 2019.04-0.8-rc4 +- Add ability to make creation of boot/dtb symlink configurable -* Sun Jan 19 2025 Fedora Release Engineering - 1:2025.01-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild +* Sun Mar 24 2019 Peter Robinson 2019.04-0.7-rc4 +- Minor UEFI fixes, Tegra Jetson TX series rebase -* Tue Jan 07 2025 Peter Robinson - 1:2025.01-1 -- Update to 2025.01 GA +* Wed Mar 20 2019 Peter Robinson 2019.04-0.6-rc4 +- Tegra Jetson TX-series improvements -* Mon Jan 06 2025 Peter Robinson - 1:2025.01-0.2.rc6 -- Rebuild for TF-A 2.12 +* Tue Mar 19 2019 Peter Robinson 2019.04-0.5-rc4 +- 2019.04 RC4 -* Tue Dec 31 2024 Peter Robinson - 1:2025.01-0.1.rc6 -- Update to 2025.01 RC6 +* Tue Mar 5 2019 Peter Robinson 2019.04-0.4-rc3 +- 2019.04 RC3 -* Fri Oct 11 2024 Peter Robinson - 1:2024.10-1 -- Update to 2024.10 GA -- Fix passing RPi firmware CMA setting to kernel DT -- Update Geekbox +* Tue Feb 19 2019 Peter Robinson 2019.04-0.3-rc2 +- 2019.04 RC2 -* Thu Oct 03 2024 Peter Robinson - 1:2024.10-0.8.rc6 -- Pass CMA FW setting through to kernel DT for Raspberry Pi +* Sat Feb 9 2019 Peter Robinson 2019.04-0.2-rc1 +- Build against new ATF snapshot -* Tue Oct 01 2024 Peter Robinson - 1:2024.10-0.7.rc6 -- Update to 2024.10 RC6 +* Fri Feb 8 2019 Peter Robinson 2019.04-0.1-rc1 +- 2019.04 RC1 -* Mon Sep 16 2024 Peter Robinson - 1:2024.10-0.6.rc5 -- Update to 2024.10 RC5 +* Sun Feb 03 2019 Fedora Release Engineering - 2019.01-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild -* Fri Sep 6 2024 Peter Robinson - 1:2024.10-0.5.rc4 -- Add missing licenses directory +* Tue Jan 15 2019 Peter Robinson 2019.01-1 +- 2019.01 -* Tue Sep 03 2024 Peter Robinson - 1:2024.10-0.4.rc4 -- Update to 2024.10 RC4 +* Tue Jan 8 2019 Peter Robinson 2019.01-0.4-rc3 +- 2019.01 RC3 -* Mon Sep 02 2024 Peter Robinson - 1:2024.10-0.3.rc3 -- Fix Allwinner firmware chainloading (rhbz#2309138) -- Fix ATF firmware selection on a number of devices -- Support Allwinner SCP firmware (fixes suspend/resume) +* Tue Dec 18 2018 Peter Robinson 2019.01-0.3-rc2 +- 2019.01 RC2 -* Tue Aug 27 2024 Peter Robinson - 1:2024.10-0.2.rc3 -- Update to 2024.10 RC3 -- Enable initial QCM6490 SoC support +* Wed Dec 12 2018 Peter Robinson 2019.01-0.2-rc1 +- ATF tweaks and fixes +- Enable amarula_a64_relic, nanopi_a64, puma-rk3399 -* Thu Aug 15 2024 Peter Robinson - 1:2024.10-0.1.rc2 -- Update to 2024.10 RC2 +* Tue Dec 4 2018 Peter Robinson 2019.01-0.1-rc1 +- 2019.01 RC1 +- Enable new devices -* Tue Jul 23 2024 Peter Robinson - 1:2024.07-1 -- Update to 2024.07 +* Tue Dec 4 2018 Peter Robinson 2018.11-1 +- 2018.11 +- Build with ATF 2.0 +- Fix Hummingboard and CuBox-i devices -* Sat Jul 20 2024 Fedora Release Engineering - 1:2024.07-0.3.rc4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild +* Tue Oct 30 2018 Peter Robinson 2018.11-0.1.rc3 +- 2018.11 RC3 -* Tue Jun 18 2024 Peter Robinson - 1:2024.07-0.2.rc4 -- Update to 2024.07 RC4 +* Sun Sep 30 2018 Pablo Greco +- Added conditional to enable devtoolset-7-gcc for .el7 build (Arrfab) +- Added conditional BR, python2-pyelftools is python-pyelftools in .el7 (Arrfab) -* Sat May 25 2024 Peter Robinson - 1:2024.07-0.1.rc3 -- Update to 2024.07 RC3 +* Sun Sep 23 2018 Peter Robinson +- Update Rock960 patches, enable Rock960 Enterprise Edition (ficus) -* Wed Apr 03 2024 Peter Robinson - 1:2024.04-1 -- Update to 2024.04 GA -- Rockchip rk3328 USB fixes +* Mon Sep 10 2018 Peter Robinson 2018.09-1 +- 2018.09 -* Wed Mar 27 2024 Peter Robinson - 1:2024.04-0.8.rc5 -- Update to 2024.04 RC5 +* Tue Sep 4 2018 Peter Robinson 2018.09-0.4.rc3 +- 2018.09 RC3 +- Enable nanopi_neo_plus2, pine_h64, rock960-rk3399, a64-olinuxino +- Build against new upstream AllWinner ATF support +- Use firmware provided DT on Raspberry Pi +- Support for Pine64-LTS -* Thu Mar 21 2024 Peter Robinson - 1:2024.04-0.7.rc4 -- Updated patch for DTB loading +* Tue Aug 14 2018 Peter Robinson 2018.09-0.2.rc2 +- 2018.09 RC2 +- Improve Jetson TX1 support +- Enable OrangePi 1+ and Avnet Ultra96 -* Fri Mar 15 2024 Peter Robinson - 1:2024.04-0.6.rc4 -- Updated fix for FDT load +* Tue Jul 31 2018 Peter Robinson 2018.09-0.1.rc1 +- 2018.09 RC1 -* Wed Mar 13 2024 Peter Robinson - 1:2024.04-0.5.rc4 -- Fixes for Rockchip rk3399 autoboot +* Sat Jul 14 2018 Fedora Release Engineering - 2018.07-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild -* Tue Mar 12 2024 Peter Robinson - 1:2024.04-0.4.rc4 -- Update to 2024.04 RC4 -- Initial fix for loading DT off /boot (rhbz 2247873) +* Mon Jul 9 2018 Peter Robinson 2018.07-1 +- 2018.07 -* Thu Feb 29 2024 Peter Robinson - 1:2024.04-0.3.rc3 -- Update to 2024.04 RC3 -- Enable a number of new upstream devices -- Upstream now builds Rockchip SPI artifacts -- Various cleanups -- Fix ESP partition detection to enable EFI vars +* Tue Jul 3 2018 Peter Robinson 2018.07-0.4.rc3 +- 2018.07 RC3 -* Wed Feb 14 2024 Peter Robinson - 1:2024.04-0.2.rc2 -- Update to 2024.04 RC2 +* Wed Jun 20 2018 Peter Robinson 2018.07-0.3.rc2 +- 2018.07 RC2 +- Enable Helios4 -* Sat Jan 27 2024 Fedora Release Engineering - 1:2024.01-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild +* Fri Jun 8 2018 Peter Robinson 2018.07-0.2.rc1 +- Update sunxi MMC patch series, Tegra Nyan patch, SolidRun i.MX6 SoM rev 1.5 patch -* Mon Jan 08 2024 Peter Robinson - 1:2024.01-1 -- Update to 2024.01 +* Tue Jun 5 2018 Peter Robinson 2018.07-0.1.rc1 +- 2018.07 RC1 +- Enable Turris Mox, BananaPi m2 Berry, some Libretech boards + +* Mon May 7 2018 Peter Robinson 2018.05-1 +- 2018.05 GA + +* Wed May 2 2018 Peter Robinson 2018.05-0.5.rc3 +- Build Xilnix ZynqMP zcu100 (96boards Ultra96) + +* Tue May 1 2018 Peter Robinson 2018.05-0.4.rc3 +- 2018.05 RC3 + +* Thu Apr 26 2018 Peter Robinson 2018.05-0.3.rc2 +- uEFI improvements +- Fixes for Rockchips rk33xx 64 bit devices +- Build AllWinner 64 bit devices against new ATF + +* Tue Apr 17 2018 Peter Robinson 2018.05-0.2.rc2 +- 2018.05 RC2 +- Enable Raspberry Pi option to use firmware DT + +* Sun Apr 8 2018 Peter Robinson 2018.05-0.1.rc1 +- 2018.05 RC1 + +* Fri Apr 6 2018 Peter Robinson 2018.03-4 +- Improvements for Raspberry Pi, AllWinner MMC perf, mvebu devices + +* Tue Mar 20 2018 Peter Robinson 2018.03-3 +- Fix issue with certain MMC cards on Raspberry Pi + +* Fri Mar 16 2018 Peter Robinson 2018.03-2 +- Add support for Raspberry Pi 3+ + +* Tue Mar 13 2018 Peter Robinson 2018.03-1 +- 2018.03 GA + +* Fri Mar 9 2018 Peter Robinson 2018.03-0.11.rc4 +- Enable support for Jetson TX2 + +* Thu Mar 8 2018 Peter Robinson 2018.03-0.10.rc4 +- Fix for Raspberry Pi 2 boot + +* Wed Mar 7 2018 Peter Robinson 2018.03-0.9.rc4 +- 2018.03 RC4 +- Fixes for Raspberry Pi 3 boot +- Minor kernel install fixes +- Enable am335x_evm_usbspl for Beagle Pocket +- DragonBoard patch rebase + +* Sun Mar 4 2018 Peter Robinson 2018.03-0.8.rc3 +- Add support for SoM rev 1.5 to mx6cuboxi +- Rebuild for new ATF 1.5 rc0 release + +* Sun Feb 25 2018 Peter Robinson 2018.03-0.7.rc3 +- Build 64 bit Rockchips FIT images with ARM Trusted Firmware + +* Tue Feb 20 2018 Peter Robinson 2018.03-0.6.rc3 +- 2018.03 RC3 + +* Fri Feb 16 2018 Peter Robinson 2018.03-0.5.rc2 +- A few upstream fixes + +* Thu Feb 15 2018 Peter Robinson 2018.03-0.4.rc2 +- Fix for GBps network on some AllWinner devices + +* Tue Feb 13 2018 Peter Robinson 2018.03-0.3.rc2 +- 2018.03 RC2 + +* Wed Feb 7 2018 Peter Robinson 2018.03-0.2.rc1 +- Update uEFI patches + +* Tue Jan 30 2018 Peter Robinson 2018.03-0.1.rc1 +- 2018.03 RC1 + +* Tue Jan 9 2018 Peter Robinson 2018.01-1 +- 2018.01 diff --git a/uefi-Add-all-options-for-EFI-System-Partitions.patch b/uefi-Add-all-options-for-EFI-System-Partitions.patch deleted file mode 100644 index 3bf1ec8..0000000 --- a/uefi-Add-all-options-for-EFI-System-Partitions.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 86782e882e9542f5f402e00cd87efb36ad0552d3 Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Sat, 2 Mar 2024 11:17:42 +0000 -Subject: [PATCH v4] disk: dos: Add all options for EFI System Partitions - -The EFI spec states that the ESP can be any of FAT12/16/32 but for -compatibility doesn't necssarily require the partition to be the -EFI partition table ID of 0xef. A number of arm devices will not -find their firmware on a FAT partition with an ID of 0xef so also -allow the original FAT12/16/32 partition IDs as they are also -permissable for an ESP. - -Signed-off-by: Peter Robinson ---- - -v2: -- Add 0x0c option -- Make hex constants consistent -- Move from if to switch statement -v3: -- Fix switch brain fart -v4: -- Drop boot_ind out of switch - - disk/part_dos.c | 13 ++++++++++++- - 1 file changed, 12 insertions(+), 1 deletion(-) - -diff --git a/disk/part_dos.c b/disk/part_dos.c -index 567ead7511d..a35181dff4f 100644 ---- a/disk/part_dos.c -+++ b/disk/part_dos.c -@@ -40,10 +40,21 @@ static int get_bootable(dos_partition_t *p) - { - int ret = 0; - -- if (p->sys_ind == 0xef) -+ switch (p->sys_ind) { -+ case 0x01: -+ case 0x06: -+ case 0x0b: -+ case 0x0c: -+ case 0xef: - ret |= PART_EFI_SYSTEM_PARTITION; -+ break; -+ default: -+ break; -+ } -+ - if (p->boot_ind == 0x80) - ret |= PART_BOOTABLE; -+ - return ret; - } - --- -2.44.0 - diff --git a/uefi-distro-load-FDT-from-any-partition-on-boot-device.patch b/uefi-distro-load-FDT-from-any-partition-on-boot-device.patch index 5954848..c5ecb61 100644 --- a/uefi-distro-load-FDT-from-any-partition-on-boot-device.patch +++ b/uefi-distro-load-FDT-from-any-partition-on-boot-device.patch @@ -1,7 +1,7 @@ -From 4306c538d4a00dd1aa46c55c3c4005c2b0bf7cd5 Mon Sep 17 00:00:00 2001 +From 67c05a07288ef24b3ac9d013f35a0868d26a34c7 Mon Sep 17 00:00:00 2001 From: Peter Robinson -Date: Thu, 24 Nov 2022 12:57:55 +0000 -Subject: [PATCH] distro: load FDT from any partition on boot device +Date: Tue, 18 Jun 2019 11:51:21 +0100 +Subject: [PATCH 1/2] distro: load FDT from any partition on boot device In the EFI_LOADER boot path, we were only checking the FAT partition containing the EFI payload for dtb files. But this is somewhat of a @@ -22,14 +22,14 @@ knows) and SoC/board specific ${fdtfile} (which grub does not know). Signed-off-by: Rob Clark Signed-off-by: Peter Robinson --- - include/config_distro_bootcmd.h | 37 +++++++++++++++++++++------------ - 1 file changed, 24 insertions(+), 13 deletions(-) + include/config_distro_bootcmd.h | 34 ++++++++++++++++++++++----------- + 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/include/config_distro_bootcmd.h b/include/config_distro_bootcmd.h -index fcb319a20ae..e71004fad9c 100644 +index 4993303f4d..f4b3b62fca 100644 --- a/include/config_distro_bootcmd.h +++ b/include/config_distro_bootcmd.h -@@ -155,28 +155,39 @@ +@@ -138,25 +138,37 @@ "fi\0" \ \ "load_efi_dtb=" \ @@ -44,16 +44,13 @@ index fcb319a20ae..e71004fad9c 100644 + "scan_dev_for_dtb=" \ "setenv efi_fdtfile ${fdtfile}; " \ BOOTENV_EFI_SET_FDTFILE_FALLBACK \ - BOOTENV_RUN_EXTENSION_INIT \ - "for prefix in ${efi_dtb_prefixes}; do " \ - "if test -e ${devtype} " \ - "${devnum}:${distro_bootpart} " \ - "${prefix}${efi_fdtfile}; then " \ - "run load_efi_dtb; " \ -- BOOTENV_RUN_EXTENSION_APPLY \ - "fi;" \ - "done;" \ -- "run boot_efi_bootmgr;" \ + "part list ${devtype} ${devnum} dtb_devplist; " \ + "env exists dtb_devplist || setenv dtb_devplist " \ + "${distro_bootpart}; " \ @@ -67,7 +64,6 @@ index fcb319a20ae..e71004fad9c 100644 + "${devnum}:${dtb_devp} " \ + "${prefix}${efi_fdtfile};"\ + "run load_efi_dtb; " \ -+ BOOTENV_RUN_EXTENSION_APPLY \ + "fi;" \ + "done; " \ + "done; " \ @@ -83,5 +79,5 @@ index fcb319a20ae..e71004fad9c 100644 "fi; " \ "setenv efi_fdtfile\0" -- -2.38.1 +2.21.0 diff --git a/uefi-enable-SetVariableRT-with-volotile-storage.patch b/uefi-enable-SetVariableRT-with-volotile-storage.patch deleted file mode 100644 index ee9bcf4..0000000 --- a/uefi-enable-SetVariableRT-with-volotile-storage.patch +++ /dev/null @@ -1,33 +0,0 @@ -From fd736dd720b29fa69a4bb87492f3f94dc6076996 Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Tue, 25 Mar 2025 17:13:44 +0000 -Subject: [PATCH] efi: enable SetVariableRT with volotile storage - -Signed-off-by: Peter Robinson ---- - lib/efi_loader/Kconfig | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig -index d4f6b56afaa..3e522131b01 100644 ---- a/lib/efi_loader/Kconfig -+++ b/lib/efi_loader/Kconfig -@@ -108,6 +108,7 @@ choice - config EFI_VARIABLE_FILE_STORE - bool "Store non-volatile UEFI variables as file" - depends on FAT_WRITE -+ default y - help - Select this option if you want non-volatile UEFI variables to be - stored as file /ubootefi.var on the EFI system partition. -@@ -115,6 +116,7 @@ config EFI_VARIABLE_FILE_STORE - config EFI_RT_VOLATILE_STORE - bool "Allow variable runtime services in volatile storage (e.g RAM)" - depends on EFI_VARIABLE_FILE_STORE -+ default y - help - When EFI variables are stored on file we don't allow SetVariableRT, - since the OS doesn't know how to write that file. At the same time --- -2.49.0 - diff --git a/uefi-enable-https-boot-by-default.patch b/uefi-enable-https-boot-by-default.patch deleted file mode 100644 index dc0a683..0000000 --- a/uefi-enable-https-boot-by-default.patch +++ /dev/null @@ -1,82 +0,0 @@ -From 7eabab2fda12b7a4417e5c7f29a507dfa9e7fffd Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Sun, 3 May 2026 09:24:34 +0100 -Subject: [PATCH] enable https boot by default - -Signed-off-by: Peter Robinson ---- - cmd/Kconfig | 1 + - lib/efi_loader/Kconfig | 1 + - lib/mbedtls/Kconfig | 3 ++- - net/Kconfig | 3 ++- - 4 files changed, 6 insertions(+), 2 deletions(-) - -diff --git a/cmd/Kconfig b/cmd/Kconfig -index c71c6824a19..8ff14adffe1 100644 ---- a/cmd/Kconfig -+++ b/cmd/Kconfig -@@ -2289,6 +2289,7 @@ config CMD_WGET - - config WGET_HTTPS - bool "wget https" -+ default y - depends on CMD_WGET - depends on PROT_TCP_LWIP - depends on MBEDTLS_LIB -diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig -index 4cb13ae7c8a..20733429962 100644 ---- a/lib/efi_loader/Kconfig -+++ b/lib/efi_loader/Kconfig -@@ -609,6 +609,7 @@ config EFI_BOOTMGR - - config EFI_HTTP_BOOT - bool "EFI HTTP Boot support" -+ default y - depends on NET - depends on CMDLINE - select CMD_NET -diff --git a/lib/mbedtls/Kconfig b/lib/mbedtls/Kconfig -index 789721ee6cd..7a241c2bc26 100644 ---- a/lib/mbedtls/Kconfig -+++ b/lib/mbedtls/Kconfig -@@ -2,7 +2,7 @@ - - choice - prompt "Crypto libraries (U-Boot Proper)" -- default LEGACY_HASHING_AND_CRYPTO -+ default MBEDTLS_LIB - help - Select crypto libraries. - LEGACY_HASHING_AND_CRYPTO for legacy crypto libraries, -@@ -15,6 +15,7 @@ config LEGACY_HASHING_AND_CRYPTO - - config MBEDTLS_LIB - bool "MbedTLS libraries" -+ default y - select MBEDTLS_LIB_X509 - endchoice - -diff --git a/net/Kconfig b/net/Kconfig -index e712a0dd2ac..3158d37dff7 100644 ---- a/net/Kconfig -+++ b/net/Kconfig -@@ -16,7 +16,7 @@ if NET - - choice - prompt "Networking stack" -- default NET_LEGACY -+ default NET_LWIP - - config NET_LEGACY - bool "Legacy U-Boot networking stack" -@@ -27,6 +27,7 @@ config NET_LEGACY - - config NET_LWIP - bool "Use lwIP for networking stack" -+ default y - select NETDEVICES - help - Include networking support based on the lwIP (lightweight IP) --- -2.54.0 - diff --git a/uefi-initial-find_fdt_location-for-finding-the-DT-on-disk.patch b/uefi-initial-find_fdt_location-for-finding-the-DT-on-disk.patch deleted file mode 100644 index ac58bad..0000000 --- a/uefi-initial-find_fdt_location-for-finding-the-DT-on-disk.patch +++ /dev/null @@ -1,190 +0,0 @@ -From 56a985cec8592a8de88e7f254df82f5d444a5ecc Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Thu, 28 May 2026 22:08:07 +0100 -Subject: [PATCH] initial find_fdt_location for finding the DT on disk - -The old distro boot looked for a DT on the first boot partition -in the /dtb or /dtb/current directories, and Fedora extended this -to look not just on the boot partition but all the partitions on -that disk. - -The new ways of booting, both bootstd and bootefi bootmgr processes -don't properly look for those options. This provides a function -to search for the DTB on disk so that if the other DT mechanisms -don't work this will look for one on disk to provide a working DT -so that devices will continue to work as they did previously. - -Signed-off-by: Peter Robinson ---- - cmd/bootmenu.c | 5 ++ - include/efi_loader.h | 2 + - lib/efi_loader/efi_helper.c | 106 +++++++++++++++++++++++++++++++++++- - 3 files changed, 112 insertions(+), 1 deletion(-) - -diff --git a/cmd/bootmenu.c b/cmd/bootmenu.c -index 528afd221d0..a10ea35a687 100644 ---- a/cmd/bootmenu.c -+++ b/cmd/bootmenu.c -@@ -502,6 +502,11 @@ static void handle_uefi_bootnext(void) - u16 bootnext; - efi_status_t ret; - efi_uintn_t size; -+ const char *fdt_opt; -+ -+ /* Find the DTB on disk */ -+ log_debug("We will load the DTB\n"); -+ fdt_opt = find_fdt_location(); - - /* Initialize EFI drivers */ - ret = efi_init_obj_list(); -diff --git a/include/efi_loader.h b/include/efi_loader.h -index 3a4d502631c..b11f8a2cb42 100644 ---- a/include/efi_loader.h -+++ b/include/efi_loader.h -@@ -574,6 +574,8 @@ struct efi_register_notify_event { - struct list_head handles; - }; - -+/* Find the FDT on any partition */ -+char *find_fdt_location(void); - /* called at pre-initialization */ - int efi_init_early(void); - /* Initialize efi execution environment */ -diff --git a/lib/efi_loader/efi_helper.c b/lib/efi_loader/efi_helper.c -index 44b806aadc4..61e982091b9 100644 ---- a/lib/efi_loader/efi_helper.c -+++ b/lib/efi_loader/efi_helper.c -@@ -15,6 +15,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -98,6 +99,99 @@ int efi_get_pxe_arch(void) - return -EINVAL; - } - -+/* We need to pass a blk device in and return a location, or a loaded DT */ -+char *find_fdt_location(void) -+{ -+ const char *fdt_filename; -+ /* FIXME: dynamic size */ -+ char fdt_fullpath[60]; -+ const char *prefix; -+ struct udevice *blk; -+ /* FIXME: Fedora really only cares about first 2*/ -+ int MAX_PART = 8; -+ int part; -+ struct disk_partition info; -+ int fdtext; -+ int ret; -+ int retfdt; -+ int retload; -+ loff_t fdtsize; -+ ulong pbraddr; -+ loff_t len_read; -+ -+ /* step one logic: we have the DT name we're hunting for */ -+ fdt_filename = env_get("fdtfile"); -+ if (fdt_filename) { -+ log_debug("FFL: We're looking for the DTB now!: %s\n", fdt_filename); -+ -+ /* probe all block disks to search for fdt */ -+ uclass_foreach_dev_probe(UCLASS_BLK, blk) { -+ log_debug("FFL: dev name: %s\n", blk->name); -+ struct blk_desc *desc; -+ desc = dev_get_uclass_plat(blk); -+ /* we should get a partition count here for looping */ -+ /* For loop for each partition */ -+ /* Need to also deal with zero part whole disk - part_get_info_whole_disk */ -+ for (part = 1; part <= MAX_PART; part++) { -+ log_debug("FFL: part num: %d\n", part); -+ ret = part_get_info(desc, part, &info); -+ /* if we have partition check it for DT */ -+ if (ret < 0) { -+ log_debug("FFL: no partition\n"); -+ } else { -+ log_debug("FFL: we have a partition\n"); -+ /* we should have a case/for prefix in =/ /dtb/ /dtb/current/ */ -+ /* but for now we hard code if for Fedora */ -+ prefix = "/dtb"; -+ snprintf(fdt_fullpath, sizeof(fdt_fullpath), "%s/%s", prefix, fdt_filename); -+ log_debug("FFL: full name: %s\n", fdt_fullpath); -+ /* search for DT on partition and either find and exit or continue */ -+ if (fs_set_blk_dev_with_part(desc, part) == 0){ -+ log_debug("FFL: set block part pass\n"); -+ fdtext = fs_exists(fdt_fullpath); -+ if (fdtext) { -+ /* we have a fdt!*/ -+ if (fs_set_blk_dev_with_part(desc, part) == 0){ -+ retfdt = fs_size(fdt_fullpath, &fdtsize); -+ if (retfdt == 0) { -+ log_debug("FFL: we have found a DT on disk, size %lld\n", fdtsize); -+ /* Get the main fdt and map it */ -+ const char *fdt_pbr; -+ fdt_pbr = env_get("fdt_addr_r"); -+ pbraddr = hextoul(fdt_pbr, NULL); -+ log_debug("FFL: fdr addr: %s\n", fdt_pbr); -+ if (fs_set_blk_dev_with_part(desc, part) == 0){ -+ retload = fs_read(fdt_fullpath, pbraddr, 0, fdtsize, &len_read); -+ if (retload == 0) { -+ log_debug("FFL: we have a loaded DT, size %lld we can return\n", fdtsize); -+ log_info("Found DTB: %s\n", fdt_filename); -+ return fdt_pbr; -+ } else { -+ log_debug("FFL: DT load failed\n"); -+ } -+ } -+ } else { -+ log_debug("FFL: we DON'T have a DT with size\n"); -+ } -+ } -+ } else { -+ /* we don't have a fdt!*/ -+ log_debug("FFL: we DON'T have a DT\n"); -+ } -+ } else { -+ log_debug("FFL: set block part FAIL\n"); -+ } -+ } -+ } -+ } -+ } else { -+ log_debug("FFL: fdt_filename not defined!!\n"); -+ } -+ -+ /* We didn't find a FDT */ -+ return NULL; -+} -+ - /** - * efi_create_current_boot_var() - Return Boot#### name were #### is replaced by - * the value of BootCurrent -@@ -558,11 +652,21 @@ efi_status_t efi_install_fdt(void *fdt) - const char *fdt_opt; - uintptr_t fdt_addr; - -+ /* Check if there is device tree loaded from disk */ -+ fdt_opt = find_fdt_location(); -+ if (fdt_opt) -+ log_info("Found DTB on disk\n"); -+ - /* Check if there is a hardware device tree */ -- fdt_opt = env_get("fdt_addr"); -+ if (!fdt_opt) { -+ fdt_opt = env_get("fdt_addr"); -+ if (fdt_opt) -+ log_info("Found DTB: Prior firmware\n"); -+ } - /* Use our own device tree as fallback */ - if (!fdt_opt) { - fdt_opt = env_get("fdtcontroladdr"); -+ log_info("Using DT from U-Boot\n"); - if (!fdt_opt) { - log_err("need device tree\n"); - return EFI_NOT_FOUND; --- -2.54.0 - diff --git a/uefi-use-Fedora-specific-path-name.patch b/uefi-use-Fedora-specific-path-name.patch new file mode 100644 index 0000000..f51f79c --- /dev/null +++ b/uefi-use-Fedora-specific-path-name.patch @@ -0,0 +1,50 @@ +From 3cc3f7de06dcf9614554d63b159f0cd6710b96b0 Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Tue, 18 Jun 2019 12:08:57 +0100 +Subject: [PATCH 2/2] use Fedora specific EFI path/name + +Signed-off-by: Peter Robinson +--- + include/config_distro_bootcmd.h | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/include/config_distro_bootcmd.h b/include/config_distro_bootcmd.h +index f4b3b62fca..2dc8be9815 100644 +--- a/include/config_distro_bootcmd.h ++++ b/include/config_distro_bootcmd.h +@@ -92,9 +92,9 @@ + + #ifdef CONFIG_EFI_LOADER + #if defined(CONFIG_ARM64) +-#define BOOTEFI_NAME "bootaa64.efi" ++#define BOOTEFI_NAME "grubaa64.efi" + #elif defined(CONFIG_ARM) +-#define BOOTEFI_NAME "bootarm.efi" ++#define BOOTEFI_NAME "grubarm.efi" + #elif defined(CONFIG_X86_RUN_32BIT) + #define BOOTEFI_NAME "bootia32.efi" + #elif defined(CONFIG_X86_RUN_64BIT) +@@ -130,7 +130,7 @@ + "bootefi bootmgr ${fdtcontroladdr};" \ + "fi;" \ + "load ${devtype} ${devnum}:${distro_bootpart} " \ +- "${kernel_addr_r} efi/boot/"BOOTEFI_NAME"; " \ ++ "${kernel_addr_r} efi/fedora/"BOOTEFI_NAME"; " \ + "if fdt addr ${fdt_addr_r}; then " \ + "bootefi ${kernel_addr_r} ${fdt_addr_r};" \ + "else " \ +@@ -165,9 +165,9 @@ + "run boot_efi_binary\0" \ + "scan_dev_for_efi=" \ + "if test -e ${devtype} ${devnum}:${distro_bootpart} " \ +- "efi/boot/"BOOTEFI_NAME"; then " \ ++ "efi/fedora/"BOOTEFI_NAME"; then " \ + "echo Found EFI removable media binary " \ +- "efi/boot/"BOOTEFI_NAME"; " \ ++ "efi/fedora/"BOOTEFI_NAME"; " \ + "run scan_dev_for_dtb; " \ + "echo EFI LOAD FAILED: continuing...; " \ + "fi; " \ +-- +2.21.0 + diff --git a/usb-kbd-fixes.patch b/usb-kbd-fixes.patch new file mode 100644 index 0000000..fb6a0e0 --- /dev/null +++ b/usb-kbd-fixes.patch @@ -0,0 +1,115 @@ +From a49845f198af088c4e5e0019edbf519344d78c97 Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Tue, 4 Dec 2018 15:29:14 +0000 +Subject: [PATCH] usb kbd fixes + +Signed-off-by: Peter Robinson +--- + common/usb_kbd.c | 66 +++++++++++++++++++++++++++++++++++------------ + include/console.h | 2 -- + 2 files changed, 50 insertions(+), 18 deletions(-) + +diff --git a/common/usb_kbd.c b/common/usb_kbd.c +index 020f0d4117f..47674ce4458 100644 +--- a/common/usb_kbd.c ++++ b/common/usb_kbd.c +@@ -518,25 +518,59 @@ static int probe_usb_keyboard(struct usb_device *dev) + return error; + + stdinname = env_get("stdin"); +-#if CONFIG_IS_ENABLED(CONSOLE_MUX) +- error = iomux_doenv(stdin, stdinname); +- if (error) +- return error; +-#else +- /* Check if this is the standard input device. */ +- if (strcmp(stdinname, DEVNAME)) +- return 1; ++ if (CONFIG_IS_ENABLED(CONSOLE_MUX)) { ++ char *devname = DEVNAME; ++ char *newstdin = NULL; ++ /* ++ * stdin might not be set yet.. either way, with console- ++ * mux the sensible thing to do is add ourselves to the ++ * list of stdio devices: ++ */ ++ if (stdinname && !strstr(stdinname, DEVNAME)) { ++ newstdin = malloc(strlen(stdinname) + ++ strlen(","DEVNAME) + 1); ++ sprintf(newstdin, "%s,"DEVNAME, stdinname); ++ stdinname = newstdin; ++ } else if (!stdinname) { ++ stdinname = devname; ++ } ++ error = iomux_doenv(stdin, stdinname); ++ free(newstdin); ++ if (error) ++ goto unregister_stdio; ++ } else { ++ /* Check if this is the standard input device. */ ++ if (strcmp(stdinname, DEVNAME)) { ++ error = -1; ++ goto unregister_stdio; ++ } + +- /* Reassign the console */ +- if (overwrite_console()) +- return 1; ++ /* Reassign the console */ ++ if (overwrite_console()) { ++ error = -1; ++ goto unregister_stdio; ++ } + +- error = console_assign(stdin, DEVNAME); +- if (error) +- return error; +-#endif ++ error = console_assign(stdin, DEVNAME); ++ if (error) ++ goto unregister_stdio; ++ } ++ ++ return 0; + ++unregister_stdio: ++ /* ++ * If probe fails, the device will be removed.. leaving dangling ++ * pointers if the stdio device is not unregistered. If u-boot ++ * is built without stdio_deregister(), just pretend to succeed ++ * in order to avoid dangling pointers. ++ */ ++#if CONFIG_IS_ENABLED(SYS_STDIO_DEREGISTER) ++ stdio_deregister(DEVNAME, 1); ++ return error; ++#else + return 0; ++#endif + } + + #if !CONFIG_IS_ENABLED(DM_USB) +@@ -642,7 +676,7 @@ static int usb_kbd_remove(struct udevice *dev) + + return 0; + err: +- printf("%s: warning, ret=%d", __func__, ret); ++ printf("%s: warning, ret=%d\n", __func__, ret); + return ret; + } + +diff --git a/include/console.h b/include/console.h +index e935c601f12..6382ec8e0d6 100644 +--- a/include/console.h ++++ b/include/console.h +@@ -56,8 +56,6 @@ int console_announce_r(void); + /* + * CONSOLE multiplexing. + */ +-#ifdef CONFIG_CONSOLE_MUX + #include +-#endif + + #endif +-- +2.19.2 + diff --git a/x86_64-boards b/x86_64-boards deleted file mode 100644 index dec8df3..0000000 --- a/x86_64-boards +++ /dev/null @@ -1 +0,0 @@ -qemu-x86_64