diff --git a/buildroot-external/board/asus/tinker/patches/uboot/0002-pmic-enable-LDO2-vcc33_mipi-at-bootup.patch b/buildroot-external/board/asus/tinker/patches/uboot/0001-pmic-enable-LDO2-vcc33_mipi-at-bootup.patch similarity index 77% rename from buildroot-external/board/asus/tinker/patches/uboot/0002-pmic-enable-LDO2-vcc33_mipi-at-bootup.patch rename to buildroot-external/board/asus/tinker/patches/uboot/0001-pmic-enable-LDO2-vcc33_mipi-at-bootup.patch index 63abf7eef8d..8809162bb6b 100644 --- a/buildroot-external/board/asus/tinker/patches/uboot/0002-pmic-enable-LDO2-vcc33_mipi-at-bootup.patch +++ b/buildroot-external/board/asus/tinker/patches/uboot/0001-pmic-enable-LDO2-vcc33_mipi-at-bootup.patch @@ -1,31 +1,30 @@ -From defc964eaa9f4ccc9cd1568ade4e4d81f35b9e07 Mon Sep 17 00:00:00 2001 +From 78bd1a46cfc585773719963ce8e0a380e9676a93 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Fri, 24 Apr 2020 11:37:55 +0000 Subject: [PATCH] pmic: enable LDO2 vcc33_mipi at bootup Signed-off-by: Pascal Vizeli --- - board/rockchip/tinker_rk3288/tinker-rk3288.c | 37 ++++++++++++++++++++ - 1 file changed, 37 insertions(+) + board/rockchip/tinker_rk3288/tinker-rk3288.c | 36 ++++++++++++++++++++ + 1 file changed, 36 insertions(+) diff --git a/board/rockchip/tinker_rk3288/tinker-rk3288.c b/board/rockchip/tinker_rk3288/tinker-rk3288.c -index f85209c649..6fa1bb0c66 100644 +index e966e9f201a..2944d8c084f 100644 --- a/board/rockchip/tinker_rk3288/tinker-rk3288.c +++ b/board/rockchip/tinker_rk3288/tinker-rk3288.c -@@ -13,6 +13,7 @@ +@@ -9,6 +9,7 @@ + #include + #include #include - #include - #include +#include static int get_ethaddr_from_eeprom(u8 *addr) { -@@ -48,3 +49,39 @@ int mmc_get_env_dev(void) +@@ -34,3 +35,38 @@ int rk3288_board_late_init(void) - return 1; + return 0; } + -+ +#ifdef CONFIG_DM_PMIC +static int rockchip_set_regulator_on(const char *name, uint uv) +{ @@ -60,6 +59,3 @@ index f85209c649..6fa1bb0c66 100644 + return 0; +} +#endif --- -2.43.0 - diff --git a/buildroot-external/board/hardkernel/odroid-m1/patches/uboot/0001-odroid-m1-Disable-eMMC-DDR52-mode-enable-HS200.patch b/buildroot-external/board/hardkernel/odroid-m1/patches/uboot/0001-odroid-m1-Disable-eMMC-DDR52-mode-enable-HS200.patch deleted file mode 100644 index 40dd8754fd9..00000000000 --- a/buildroot-external/board/hardkernel/odroid-m1/patches/uboot/0001-odroid-m1-Disable-eMMC-DDR52-mode-enable-HS200.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 023bc5bd23d3239494bca81d807d3c093f78c131 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= -Date: Thu, 8 Aug 2024 17:52:47 +0200 -Subject: [PATCH] odroid-m1: Disable eMMC DDR52 mode, enable HS200 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Disable DDR52 mode on odroid-m1 to fix eMMC writes. Also enable HS200, -as it's supposed to work more reliably than slower modes. - -Signed-off-by: Jan Čermák -Upstream: https://patchwork.ozlabs.org/project/uboot/cover/20240204205312.2342868-1-jonas@kwiboo.se/ ---- - arch/arm/dts/rk3568-odroid-m1-u-boot.dtsi | 3 --- - configs/odroid-m1-rk3568_defconfig | 2 ++ - 2 files changed, 2 insertions(+), 3 deletions(-) - -diff --git a/arch/arm/dts/rk3568-odroid-m1-u-boot.dtsi b/arch/arm/dts/rk3568-odroid-m1-u-boot.dtsi -index 0fc360b06d..f9d34d3b77 100644 ---- a/arch/arm/dts/rk3568-odroid-m1-u-boot.dtsi -+++ b/arch/arm/dts/rk3568-odroid-m1-u-boot.dtsi -@@ -14,10 +14,7 @@ - - &sdhci { - cap-mmc-highspeed; -- mmc-ddr-1_8v; - mmc-hs200-1_8v; -- mmc-hs400-1_8v; -- mmc-hs400-enhanced-strobe; - pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>; - }; - -diff --git a/configs/odroid-m1-rk3568_defconfig b/configs/odroid-m1-rk3568_defconfig -index 96b4e9ecda..517ac0575d 100644 ---- a/configs/odroid-m1-rk3568_defconfig -+++ b/configs/odroid-m1-rk3568_defconfig -@@ -72,6 +72,8 @@ CONFIG_ROCKCHIP_GPIO=y - CONFIG_SYS_I2C_ROCKCHIP=y - CONFIG_MISC=y - CONFIG_SUPPORT_EMMC_RPMB=y -+CONFIG_MMC_HS200_SUPPORT=y -+CONFIG_SPL_MMC_HS200_SUPPORT=y - CONFIG_MMC_DW=y - CONFIG_MMC_DW_ROCKCHIP=y - CONFIG_MMC_SDHCI=y diff --git a/buildroot-external/board/hardkernel/odroid-m1s/patches/uboot/0001-board-rockchip-Add-Hardkernel-ODROID-M1S.patch b/buildroot-external/board/hardkernel/odroid-m1s/patches/uboot/0001-board-rockchip-Add-Hardkernel-ODROID-M1S.patch deleted file mode 100644 index f586c96aaee..00000000000 --- a/buildroot-external/board/hardkernel/odroid-m1s/patches/uboot/0001-board-rockchip-Add-Hardkernel-ODROID-M1S.patch +++ /dev/null @@ -1,1049 +0,0 @@ -From f7bc9a62a5ff7e8b95d902103b12c6ace208d11a Mon Sep 17 00:00:00 2001 -From: Dongjin Kim -Date: Thu, 25 Jan 2024 16:02:51 +0900 -Subject: [PATCH] board: rockchip: Add Hardkernel ODROID-M1S - -Hardkernel ODROID-M1S is a single board computer with a RK3566 SoC, -a slightly modified version of the RK3566 SoC. - -Features tested on a ODROID-M1S 8GB v1.0 2023-08-10: - - SD-card boot - - eMMC boot - - PCIe/NVMe - -Signed-off-by: Dongjin Kim -Message ID: 20240125070252.2057679-1-tobetter@gmail.com ---- - arch/arm/dts/rk3566-odroid-m1s-u-boot.dtsi | 28 + - arch/arm/dts/rk3566-odroid-m1s.dts | 665 +++++++++++++++++++++ - arch/arm/mach-rockchip/rk3568/Kconfig | 6 + - board/hardkernel/odroid_m1s/Kconfig | 15 + - board/hardkernel/odroid_m1s/MAINTAINERS | 9 + - board/hardkernel/odroid_m1s/Makefile | 7 + - board/hardkernel/odroid_m1s/board.c | 81 +++ - configs/odroid-m1s-rk3566_defconfig | 109 ++++ - doc/board/rockchip/rockchip.rst | 1 + - include/configs/odroid_m1s.h | 12 + - 10 files changed, 933 insertions(+) - create mode 100644 arch/arm/dts/rk3566-odroid-m1s-u-boot.dtsi - create mode 100644 arch/arm/dts/rk3566-odroid-m1s.dts - create mode 100644 board/hardkernel/odroid_m1s/Kconfig - create mode 100644 board/hardkernel/odroid_m1s/MAINTAINERS - create mode 100644 board/hardkernel/odroid_m1s/Makefile - create mode 100644 board/hardkernel/odroid_m1s/board.c - create mode 100644 configs/odroid-m1s-rk3566_defconfig - create mode 100644 include/configs/odroid_m1s.h - -diff --git a/arch/arm/dts/rk3566-odroid-m1s-u-boot.dtsi b/arch/arm/dts/rk3566-odroid-m1s-u-boot.dtsi -new file mode 100644 -index 0000000000..33a1d142b8 ---- /dev/null -+++ b/arch/arm/dts/rk3566-odroid-m1s-u-boot.dtsi -@@ -0,0 +1,28 @@ -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -+ -+#include "rk356x-u-boot.dtsi" -+ -+#include -+#include -+ -+/ { -+ chosen { -+ stdout-path = &uart2; -+ u-boot,spl-boot-order = &sdmmc0, &sdhci; -+ }; -+}; -+ -+&sdhci { -+ cap-mmc-highspeed; -+ mmc-ddr-1_8v; -+ mmc-hs200-1_8v; -+ mmc-hs400-1_8v; -+ mmc-hs400-enhanced-strobe; -+ pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>; -+}; -+ -+&uart2 { -+ bootph-all; -+ clock-frequency = <24000000>; -+ status = "okay"; -+}; -diff --git a/arch/arm/dts/rk3566-odroid-m1s.dts b/arch/arm/dts/rk3566-odroid-m1s.dts -new file mode 100644 -index 0000000000..73e29d80c7 ---- /dev/null -+++ b/arch/arm/dts/rk3566-odroid-m1s.dts -@@ -0,0 +1,665 @@ -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -+/* -+ * Copyright (c) 2024 Hardkernel Co., Ltd. -+ * -+ */ -+ -+/dts-v1/; -+#include -+#include -+#include -+#include -+#include "rk3566.dtsi" -+ -+/ { -+ model = "Hardkernel ODROID-M1S"; -+ compatible = "hardkernel,rk3568-odroid-m1s", "rockchip,rk3568"; -+ -+ aliases { -+ ethernet0 = &gmac1; -+ i2c0 = &i2c3; -+ i2c3 = &i2c0; -+ mmc0 = &sdhci; -+ mmc1 = &sdmmc0; -+ serial0 = &uart1; -+ serial1 = &uart0; -+ }; -+ -+ chosen { -+ stdout-path = "serial2:1500000n8"; -+ }; -+ -+ gmac1_clkin: external-gmac1-clock { -+ compatible = "fixed-clock"; -+ clock-frequency = <125000000>; -+ clock-output-names = "gmac1_clkin"; -+ #clock-cells = <0>; -+ }; -+ -+ hdmi-con { -+ compatible = "hdmi-connector"; -+ type = "a"; -+ -+ port { -+ hdmi_con_in: endpoint { -+ remote-endpoint = <&hdmi_out_con>; -+ }; -+ }; -+ }; -+ -+ leds { -+ compatible = "gpio-leds"; -+ -+ led_power: led-0 { -+ gpios = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>; -+ function = LED_FUNCTION_POWER; -+ color = ; -+ default-state = "keep"; -+ linux,default-trigger = "default-on"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&led_power_pin>; -+ }; -+ led_work: led-1 { -+ gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>; -+ function = LED_FUNCTION_HEARTBEAT; -+ color = ; -+ linux,default-trigger = "heartbeat"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&led_work_pin>; -+ }; -+ }; -+ -+ pcie20_3v3: pcie20-3v3-regulator { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpios = <&gpio2 RK_PC2 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&vcc3v3_pcie20_en_pin>; -+ regulator-name = "pcie20_3v3"; -+ regulator-always-on; -+ regulator-boot-on; -+ }; -+ -+ rk809-sound { -+ compatible = "simple-audio-card"; -+ simple-audio-card,name = "Analog RK817"; -+ simple-audio-card,format = "i2s"; -+ simple-audio-card,mclk-fs = <256>; -+ simple-audio-card,widgets = -+ "Headphone", "Headphones", -+ "Speaker", "Speaker"; -+ simple-audio-card,routing = -+ "Headphones", "HPOL", -+ "Headphones", "HPOR", -+ "Speaker", "SPKO"; -+ -+ simple-audio-card,cpu { -+ sound-dai = <&i2s1_8ch>; -+ }; -+ -+ simple-audio-card,codec { -+ sound-dai = <&rk809>; -+ }; -+ }; -+ -+ spdif_dit: spdif-dit { -+ compatible = "linux,spdif-dit"; -+ #sound-dai-cells = <0>; -+ status = "disabled"; -+ }; -+ -+ spdif_sound: spdif-sound { -+ compatible = "simple-audio-card"; -+ status = "disabled"; -+ -+ simple-audio-card,cpu { -+ sound-dai = <&spdif>; -+ }; -+ -+ simple-audio-card,codec { -+ sound-dai = <&spdif_dit>; -+ }; -+ }; -+ -+ vcc3v3_sys: vcc3v3-sys-regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc3v3_sys"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ vin-supply = <&vcc5v0_sys>; -+ }; -+ -+ vcc5v0_sys: vcc5v0-sys-regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc5v0_sys"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ vin-supply = <&vcc5v_dcin>; -+ }; -+ -+ vcc5v_dcin: vcc5v0-dcin { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc-5v0"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ }; -+ -+ vcc5v0_usb_host: vcc5v0-usb-host-regulator { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>; -+ pinctrl-0 = <&vcc5v0_usb_host_en_pin>; -+ pinctrl-names = "default"; -+ regulator-max-microvolt = <5000000>; -+ regulator-min-microvolt = <5000000>; -+ regulator-name = "vcc5v0_usb_host"; -+ vin-supply = <&vcc5v0_sys>; -+ }; -+ -+ vcc5v0_usb_otg: vcc5v0-usb-otg-regulator { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>; -+ pinctrl-0 = <&vcc5v0_usb_otg_en_pin>; -+ pinctrl-names = "default"; -+ regulator-max-microvolt = <5000000>; -+ regulator-min-microvolt = <5000000>; -+ regulator-name = "vcc5v0_usb_otg"; -+ vin-supply = <&vcc5v0_sys>; -+ }; -+}; -+ -+&combphy1 { -+ phy-supply = <&vcc5v0_usb_host>; -+ status = "okay"; -+}; -+ -+&combphy2 { -+ status = "okay"; -+}; -+ -+&cpu0 { -+ cpu-supply = <&vdd_cpu>; -+}; -+ -+&cpu1 { -+ cpu-supply = <&vdd_cpu>; -+}; -+ -+&cpu2 { -+ cpu-supply = <&vdd_cpu>; -+}; -+ -+&cpu3 { -+ cpu-supply = <&vdd_cpu>; -+}; -+ -+&gmac1 { -+ assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>; -+ assigned-clock-rates = <0>, <125000000>; -+ assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>; -+ clock_in_out = "output"; -+ phy-handle = <&rgmii_phy1>; -+ phy-mode = "rgmii"; -+ phy-supply = <&vcc3v3_sys>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&gmac1m1_miim -+ &gmac1m1_tx_bus2 -+ &gmac1m1_rx_bus2 -+ &gmac1m1_rgmii_clk -+ &gmac1m1_rgmii_bus -+ &gmac1m1_clkinout>; -+ status = "okay"; -+ -+ tx_delay = <0x4f>; -+ rx_delay = <0x2d>; -+}; -+ -+&gpu { -+ mali-supply = <&vdd_gpu>; -+ status = "okay"; -+}; -+ -+&hdmi { -+ avdd-0v9-supply = <&vdda0v9_image>; -+ avdd-1v8-supply = <&vcca1v8_image>; -+ status = "okay"; -+}; -+ -+&hdmi_in { -+ hdmi_in_vp0: endpoint { -+ remote-endpoint = <&vp0_out_hdmi>; -+ }; -+}; -+ -+&hdmi_out { -+ hdmi_out_con: endpoint { -+ remote-endpoint = <&hdmi_con_in>; -+ }; -+}; -+ -+&hdmi_sound { -+ status = "okay"; -+}; -+ -+&i2c0 { -+ status = "okay"; -+ -+ vdd_cpu: regulator@1c { -+ compatible = "tcs,tcs4525"; -+ reg = <0x1c>; -+ fcs,suspend-voltage-selector = <1>; -+ regulator-name = "vdd_cpu"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <800000>; -+ regulator-max-microvolt = <1150000>; -+ regulator-ramp-delay = <2300>; -+ vin-supply = <&vcc3v3_sys>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ rk809: pmic@20 { -+ compatible = "rockchip,rk809"; -+ reg = <0x20>; -+ interrupt-parent = <&gpio0>; -+ interrupts = ; -+ assigned-clocks = <&cru I2S1_MCLKOUT_TX>; -+ assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>; -+ #clock-cells = <1>; -+ clock-names = "mclk"; -+ clocks = <&cru I2S1_MCLKOUT_TX>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pmic_int_l>, <&i2s1m0_mclk>; -+ rockchip,system-power-controller; -+ #sound-dai-cells = <0>; -+ vcc1-supply = <&vcc3v3_sys>; -+ vcc2-supply = <&vcc3v3_sys>; -+ vcc3-supply = <&vcc3v3_sys>; -+ vcc4-supply = <&vcc3v3_sys>; -+ vcc5-supply = <&vcc3v3_sys>; -+ vcc6-supply = <&vcc3v3_sys>; -+ vcc7-supply = <&vcc3v3_sys>; -+ vcc8-supply = <&vcc3v3_sys>; -+ vcc9-supply = <&vcc3v3_sys>; -+ wakeup-source; -+ -+ regulators { -+ vdd_logic: DCDC_REG1 { -+ regulator-name = "vdd_logic"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-init-microvolt = <900000>; -+ regulator-initial-mode = <0x2>; -+ regulator-min-microvolt = <500000>; -+ regulator-max-microvolt = <1350000>; -+ regulator-ramp-delay = <6001>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vdd_gpu: DCDC_REG2 { -+ regulator-name = "vdd_gpu"; -+ regulator-always-on; -+ regulator-init-microvolt = <900000>; -+ regulator-initial-mode = <0x2>; -+ regulator-min-microvolt = <500000>; -+ regulator-max-microvolt = <1350000>; -+ regulator-ramp-delay = <6001>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc_ddr: DCDC_REG3 { -+ regulator-name = "vcc_ddr"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-initial-mode = <0x2>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ }; -+ }; -+ -+ vdd_npu: DCDC_REG4 { -+ regulator-name = "vdd_npu"; -+ regulator-init-microvolt = <900000>; -+ regulator-initial-mode = <0x2>; -+ regulator-min-microvolt = <500000>; -+ regulator-max-microvolt = <1350000>; -+ regulator-ramp-delay = <6001>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc_1v8: DCDC_REG5 { -+ regulator-name = "vcc_1v8"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vdda0v9_image: LDO_REG1 { -+ regulator-name = "vdda0v9_image"; -+ regulator-always-on; -+ regulator-min-microvolt = <900000>; -+ regulator-max-microvolt = <900000>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vdda_0v9: LDO_REG2 { -+ regulator-name = "vdda_0v9"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <900000>; -+ regulator-max-microvolt = <900000>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vdda0v9_pmu: LDO_REG3 { -+ regulator-name = "vdda0v9_pmu"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <900000>; -+ regulator-max-microvolt = <900000>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <900000>; -+ }; -+ }; -+ -+ vccio_acodec: LDO_REG4 { -+ regulator-name = "vccio_acodec"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vccio_sd: LDO_REG5 { -+ regulator-name = "vccio_sd"; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <3300000>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc3v3_pmu: LDO_REG6 { -+ regulator-name = "vcc3v3_pmu"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <3300000>; -+ }; -+ }; -+ -+ vcca_1v8: LDO_REG7 { -+ regulator-name = "vcca_1v8"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcca1v8_pmu: LDO_REG8 { -+ regulator-name = "vcca1v8_pmu"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <1800000>; -+ }; -+ }; -+ -+ vcca1v8_image: LDO_REG9 { -+ regulator-name = "vcca1v8_image"; -+ regulator-always-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc_3v3: SWITCH_REG1 { -+ regulator-name = "vcc_3v3"; -+ regulator-always-on; -+ regulator-boot-on; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc3v3_sd: SWITCH_REG2 { -+ regulator-name = "vcc3v3_sd"; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ }; -+ }; -+}; -+ -+&i2s0_8ch { -+ status = "okay"; -+}; -+ -+&i2s1_8ch { -+ rockchip,trcm-sync-tx-only; -+ status = "okay"; -+}; -+ -+&mdio1 { -+ rgmii_phy1: ethernet-phy@0 { -+ compatible = "ethernet-phy-ieee802.3-c22"; -+ reg = <0x0>; -+ }; -+}; -+ -+&pcie2x1 { -+ pinctrl-0 = <&pcie20m2_pins>; -+ reset-gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_HIGH>; -+ status = "okay"; -+ vpcie3v3-supply = <&pcie20_3v3>; -+}; -+ -+&pinctrl { -+ leds { -+ led_power_pin: led-power-pin { -+ rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ led_work_pin: led-work-pin { -+ rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ pcie { -+ vcc3v3_pcie20_en_pin: vcc3v3-pcie20-en-pin { -+ rockchip,pins = <2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ pmic { -+ pmic_int_l: pmic-int-l { -+ rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ }; -+ -+ usb { -+ vcc5v0_usb_host_en_pin: vcc5v0-usb-host-en-pin { -+ rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ vcc5v0_usb_otg_en_pin: vcc5v0-usb-dr-en-pin { -+ rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+}; -+ -+&pmu_io_domains { -+ pmuio1-supply = <&vcc3v3_pmu>; -+ pmuio2-supply = <&vcc3v3_pmu>; -+ vccio1-supply = <&vccio_acodec>; -+ vccio2-supply = <&vcc_1v8>; -+ vccio3-supply = <&vccio_sd>; -+ vccio4-supply = <&vcc_3v3>; -+ vccio5-supply = <&vcc_3v3>; -+ vccio6-supply = <&vcc_3v3>; -+ vccio7-supply = <&vcc_3v3>; -+ status = "okay"; -+}; -+ -+&saradc { -+ vref-supply = <&vcca_1v8>; -+ status = "okay"; -+}; -+ -+&sdhci { -+ bus-width = <8>; -+ max-frequency = <200000000>; -+ non-removable; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe &emmc_rstnout>; -+ vmmc-supply = <&vcc_3v3>; -+ vqmmc-supply = <&vcc_1v8>; -+ status = "okay"; -+}; -+ -+&sdmmc0 { -+ bus-width = <4>; -+ cap-sd-highspeed; -+ cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>; -+ disable-wp; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>; -+ sd-uhs-sdr50; -+ vmmc-supply = <&vcc3v3_sd>; -+ vqmmc-supply = <&vccio_sd>; -+ status = "okay"; -+}; -+ -+&tsadc { -+ rockchip,hw-tshut-mode = <1>; -+ rockchip,hw-tshut-polarity = <0>; -+ status = "okay"; -+}; -+ -+&uart2 { -+ status = "okay"; -+}; -+ -+&usb_host0_ehci { -+ status = "okay"; -+}; -+ -+&usb_host0_ohci { -+ status = "okay"; -+}; -+ -+&usb_host0_xhci { -+ dr_mode = "otg"; -+ status = "okay"; -+}; -+ -+&usb_host1_ehci { -+ status = "okay"; -+}; -+ -+&usb_host1_ohci { -+ status = "okay"; -+}; -+ -+&usb_host1_xhci { -+ status = "okay"; -+}; -+ -+&usb2phy0 { -+ status = "okay"; -+}; -+ -+&usb2phy0_host { -+ phy-supply = <&vcc5v0_usb_host>; -+ status = "okay"; -+}; -+ -+&usb2phy0_otg { -+ phy-supply = <&vcc5v0_usb_otg>; -+ status = "okay"; -+}; -+ -+&usb2phy1 { -+ status = "okay"; -+}; -+ -+&usb2phy1_host { -+ phy-supply = <&vcc5v0_usb_host>; -+ status = "okay"; -+}; -+ -+&usb2phy1_otg { -+ phy-supply = <&vcc5v0_usb_host>; -+ status = "okay"; -+}; -+ -+&vop { -+ assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>; -+ assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>; -+ status = "okay"; -+}; -+ -+&vop_mmu { -+ status = "okay"; -+}; -+ -+&vp0 { -+ vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { -+ reg = ; -+ remote-endpoint = <&hdmi_in_vp0>; -+ }; -+}; -diff --git a/arch/arm/mach-rockchip/rk3568/Kconfig b/arch/arm/mach-rockchip/rk3568/Kconfig -index baa51349f4..2f03b983ee 100644 ---- a/arch/arm/mach-rockchip/rk3568/Kconfig -+++ b/arch/arm/mach-rockchip/rk3568/Kconfig -@@ -22,6 +22,11 @@ config TARGET_ODROID_M1_RK3568 - help - Hardkernel ODROID-M1 single board computer with a RK3568B2 SoC. - -+config TARGET_ODROID_M1S_RK3566 -+ bool "ODROID-M1S" -+ help -+ Hardkernel ODROID-M1S single board computer with a RK3566 SoC. -+ - config TARGET_QUARTZ64_RK3566 - bool "Pine64 Quartz64" - help -@@ -44,6 +49,7 @@ config SYS_MALLOC_F_LEN - source "board/rockchip/evb_rk3568/Kconfig" - source "board/anbernic/rgxx3_rk3566/Kconfig" - source "board/hardkernel/odroid_m1/Kconfig" -+source "board/hardkernel/odroid_m1s/Kconfig" - source "board/pine64/quartz64_rk3566/Kconfig" - - endif -diff --git a/board/hardkernel/odroid_m1s/Kconfig b/board/hardkernel/odroid_m1s/Kconfig -new file mode 100644 -index 0000000000..0acea61dac ---- /dev/null -+++ b/board/hardkernel/odroid_m1s/Kconfig -@@ -0,0 +1,15 @@ -+if TARGET_ODROID_M1S_RK3566 -+ -+config SYS_BOARD -+ default "odroid_m1s" -+ -+config SYS_VENDOR -+ default "hardkernel" -+ -+config SYS_CONFIG_NAME -+ default "odroid_m1s" -+ -+config BOARD_SPECIFIC_OPTIONS # dummy -+ def_bool y -+ -+endif -diff --git a/board/hardkernel/odroid_m1s/MAINTAINERS b/board/hardkernel/odroid_m1s/MAINTAINERS -new file mode 100644 -index 0000000000..20fc277ccc ---- /dev/null -+++ b/board/hardkernel/odroid_m1s/MAINTAINERS -@@ -0,0 +1,9 @@ -+ODROID-M1S -+M: Dongjin Kim -+S: Maintained -+F: arch/arm/dts/rk3566-odroid-m1s-u-boot.dtsi -+F: arch/arm/dts/rk3566-odroid-m1s.dts -+F: board/hardkernel/odroid_m1s/ -+F: board/hardkernel/odroid_m1s/board.c -+F: configs/odroid-m1s-rk3566_defconfig -+F: include/configs/odroid_m1s.h -diff --git a/board/hardkernel/odroid_m1s/Makefile b/board/hardkernel/odroid_m1s/Makefile -new file mode 100644 -index 0000000000..6ca49c49b7 ---- /dev/null -+++ b/board/hardkernel/odroid_m1s/Makefile -@@ -0,0 +1,7 @@ -+# -+# Copyright (c) 2024 Hardkernel Co,. Ltd -+# -+# SPDX-License-Identifier: GPL-2.0+ -+# -+ -+obj-y += board.o -diff --git a/board/hardkernel/odroid_m1s/board.c b/board/hardkernel/odroid_m1s/board.c -new file mode 100644 -index 0000000000..e87cfc4797 ---- /dev/null -+++ b/board/hardkernel/odroid_m1s/board.c -@@ -0,0 +1,81 @@ -+// SPDX-License-Identifier: GPL-2.0+ -+/* -+ * (C) Copyright 2024 Hardkernel Co., Ltd -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+ -+#ifdef CONFIG_MISC_INIT_R -+ -+/* Read first block 512 bytes from the first BOOT partition of eMMC -+ * that stores device identifcation sting in UUID type 1, this string -+ * is written in factory to give device seranl number and MAC address. -+ */ -+static int odroid_setup_macaddr(void) -+{ -+ struct mmc *mmc; -+ struct blk_desc *desc; -+ unsigned long mac_addr; -+ unsigned long count; -+ int ret; -+ u8 buf[512]; -+ -+ mmc = find_mmc_device(0); -+ if (!mmc) -+ return -ENODEV; -+ -+ desc = mmc_get_blk_desc(mmc); -+ -+ // Switch to the first BOOT partition -+ ret = blk_select_hwpart_devnum(UCLASS_MMC, 0, 1); -+ if (ret) -+ return -EIO; -+ -+ count = blk_dread(desc, 0, 1, (void *)buf); -+ -+ // Switch back to USER partition -+ ret = blk_dselect_hwpart(desc, 0); -+ if (ret || count != 1) -+ return -EIO; -+ -+ *(char *)(buf + 36) = 0; -+ -+ // Serial number -+ env_set("serial#", (char *)buf); -+ -+ // MAC address -+ mac_addr = cpu_to_be64(simple_strtoul((char *)buf + 24, NULL, 16)) >> 16; -+ -+ eth_env_set_enetaddr("ethaddr", (unsigned char *)&mac_addr); -+ eth_env_set_enetaddr("eth1addr", (unsigned char *)&mac_addr); -+ -+ return 0; -+} -+ -+int misc_init_r(void) -+{ -+ const u32 cpuid_offset = CFG_CPUID_OFFSET; -+ const u32 cpuid_length = 0x10; -+ u8 cpuid[cpuid_length]; -+ int ret; -+ -+ ret = odroid_setup_macaddr(); -+ if (ret) { -+ ret = rockchip_setup_macaddr(); -+ if (ret) -+ return ret; -+ } -+ -+ ret = rockchip_cpuid_from_efuse(cpuid_offset, cpuid_length, cpuid); -+ if (ret) -+ return ret; -+ -+ ret = rockchip_cpuid_set(cpuid, cpuid_length); -+ -+ return ret; -+} -+#endif -diff --git a/configs/odroid-m1s-rk3566_defconfig b/configs/odroid-m1s-rk3566_defconfig -new file mode 100644 -index 0000000000..d70a10dc08 ---- /dev/null -+++ b/configs/odroid-m1s-rk3566_defconfig -@@ -0,0 +1,109 @@ -+CONFIG_ARM=y -+CONFIG_SKIP_LOWLEVEL_INIT=y -+CONFIG_COUNTER_FREQUENCY=24000000 -+CONFIG_ARCH_ROCKCHIP=y -+CONFIG_TEXT_BASE=0x00a00000 -+CONFIG_SPL_LIBCOMMON_SUPPORT=y -+CONFIG_SPL_LIBGENERIC_SUPPORT=y -+CONFIG_NR_DRAM_BANKS=2 -+CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y -+CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xc00000 -+CONFIG_SF_DEFAULT_SPEED=24000000 -+CONFIG_SF_DEFAULT_MODE=0x1000 -+CONFIG_DEFAULT_DEVICE_TREE="rk3566-odroid-m1s" -+CONFIG_ROCKCHIP_RK3568=y -+CONFIG_SPL_ROCKCHIP_COMMON_BOARD=y -+CONFIG_ROCKCHIP_SPI_IMAGE=y -+CONFIG_SPL_SERIAL=y -+CONFIG_SPL_STACK_R_ADDR=0x600000 -+CONFIG_TARGET_ODROID_M1S_RK3566=y -+CONFIG_SPL_STACK=0x400000 -+CONFIG_DEBUG_UART_BASE=0xFE660000 -+CONFIG_DEBUG_UART_CLOCK=24000000 -+CONFIG_SPL_SPI_FLASH_SUPPORT=y -+CONFIG_SPL_SPI=y -+CONFIG_SYS_LOAD_ADDR=0xc00800 -+CONFIG_PCI=y -+CONFIG_DEBUG_UART=y -+CONFIG_AHCI=y -+CONFIG_FIT=y -+CONFIG_FIT_VERBOSE=y -+CONFIG_SPL_FIT_SIGNATURE=y -+CONFIG_SPL_LOAD_FIT=y -+CONFIG_LEGACY_IMAGE_FORMAT=y -+CONFIG_DEFAULT_FDT_FILE="rockchip/rk3566-odroid-m1s.dtb" -+# CONFIG_DISPLAY_CPUINFO is not set -+CONFIG_DISPLAY_BOARDINFO_LATE=y -+CONFIG_SPL_MAX_SIZE=0x40000 -+CONFIG_SPL_PAD_TO=0x7f8000 -+CONFIG_SPL_HAS_BSS_LINKER_SECTION=y -+CONFIG_SPL_BSS_START_ADDR=0x4000000 -+CONFIG_SPL_BSS_MAX_SIZE=0x4000 -+# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set -+# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set -+CONFIG_SPL_STACK_R=y -+CONFIG_SPL_SPI_LOAD=y -+CONFIG_SYS_SPI_U_BOOT_OFFS=0x100000 -+CONFIG_SPL_ATF=y -+CONFIG_CMD_GPIO=y -+CONFIG_CMD_GPT=y -+CONFIG_CMD_I2C=y -+CONFIG_CMD_MMC=y -+CONFIG_CMD_PCI=y -+CONFIG_CMD_USB=y -+# CONFIG_CMD_SETEXPR is not set -+CONFIG_CMD_INI=y -+CONFIG_CMD_PMIC=y -+CONFIG_CMD_REGULATOR=y -+CONFIG_CMD_CRAMFS=y -+# CONFIG_SPL_DOS_PARTITION is not set -+CONFIG_SPL_OF_CONTROL=y -+CONFIG_OF_LIVE=y -+CONFIG_OF_SPL_REMOVE_PROPS="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents" -+CONFIG_SPL_DM_SEQ_ALIAS=y -+CONFIG_SPL_REGMAP=y -+CONFIG_SPL_SYSCON=y -+CONFIG_AHCI_PCI=y -+CONFIG_DWC_AHCI=y -+CONFIG_SPL_CLK=y -+CONFIG_ROCKCHIP_GPIO=y -+CONFIG_SYS_I2C_ROCKCHIP=y -+CONFIG_MISC=y -+CONFIG_SUPPORT_EMMC_RPMB=y -+CONFIG_MMC_DW=y -+CONFIG_MMC_DW_ROCKCHIP=y -+CONFIG_MMC_SDHCI=y -+CONFIG_MMC_SDHCI_SDMA=y -+CONFIG_MMC_SDHCI_ROCKCHIP=y -+CONFIG_SF_DEFAULT_BUS=4 -+CONFIG_PHY_REALTEK=y -+CONFIG_DWC_ETH_QOS=y -+CONFIG_DWC_ETH_QOS_ROCKCHIP=y -+CONFIG_NVME_PCI=y -+CONFIG_PCIE_DW_ROCKCHIP=y -+CONFIG_PHY_ROCKCHIP_INNO_USB2=y -+CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY=y -+CONFIG_PHY_ROCKCHIP_PCIE=y -+CONFIG_SPL_PINCTRL=y -+CONFIG_DM_PMIC=y -+CONFIG_PMIC_RK8XX=y -+CONFIG_REGULATOR_RK8XX=y -+CONFIG_PWM_ROCKCHIP=y -+CONFIG_SPL_RAM=y -+CONFIG_SCSI=y -+CONFIG_DM_SCSI=y -+CONFIG_BAUDRATE=1500000 -+CONFIG_DEBUG_UART_SHIFT=2 -+CONFIG_SYS_NS16550_MEM32=y -+CONFIG_SYSRESET=y -+CONFIG_USB=y -+CONFIG_USB_XHCI_HCD=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_USB_DWC3_GENERIC=y -+CONFIG_FS_CRAMFS=y -+CONFIG_ERRNO_STR=y -+CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x0800 -diff --git a/doc/board/rockchip/rockchip.rst b/doc/board/rockchip/rockchip.rst -index 18d0b6f089..3ce9966fc1 100644 ---- a/doc/board/rockchip/rockchip.rst -+++ b/doc/board/rockchip/rockchip.rst -@@ -93,6 +93,7 @@ List of mainline supported Rockchip boards: - - * rk3566 - - Anbernic RGxx3 (anbernic-rgxx3-rk3566) -+ - Hardkernel ODROID-M1S (odroid-m1s-rk3566) - - Pine64 Quartz64-A Board (quartz64-a-rk3566) - - Pine64 Quartz64-B Board (quartz64-b-rk3566) - - Pine64 SOQuartz on Blade (soquartz-blade-rk3566) -diff --git a/include/configs/odroid_m1s.h b/include/configs/odroid_m1s.h -new file mode 100644 -index 0000000000..b271861388 ---- /dev/null -+++ b/include/configs/odroid_m1s.h -@@ -0,0 +1,12 @@ -+/* SPDX-License-Identifier: GPL-2.0+ */ -+ -+#ifndef __ODROID_M1S_H -+#define __ODROID_M1S_H -+ -+#include -+ -+#define ROCKCHIP_DEVICE_SETTINGS \ -+ "stdout=serial\0" \ -+ "stderr=serial\0" -+ -+#endif --- -2.40.1 - diff --git a/buildroot-external/board/hardkernel/odroid-m1s/patches/uboot/0002-Apply-fixes-for-mainline-u-boot.patch b/buildroot-external/board/hardkernel/odroid-m1s/patches/uboot/0002-Apply-fixes-for-mainline-u-boot.patch deleted file mode 100644 index ef4cbbb8125..00000000000 --- a/buildroot-external/board/hardkernel/odroid-m1s/patches/uboot/0002-Apply-fixes-for-mainline-u-boot.patch +++ /dev/null @@ -1,48 +0,0 @@ -From ed61d0b5f18bf333ff7f35fc8546dd58d227b12f Mon Sep 17 00:00:00 2001 -From: Tim Lunn -Date: Sat, 3 Feb 2024 18:38:49 +1100 -Subject: [PATCH] Apply fixes for mainline u-boot - ---- - arch/arm/dts/rk3566-odroid-m1s.dts | 6 +----- - configs/odroid-m1s-rk3566_defconfig | 1 - - 2 files changed, 1 insertion(+), 6 deletions(-) - -diff --git a/arch/arm/dts/rk3566-odroid-m1s.dts b/arch/arm/dts/rk3566-odroid-m1s.dts -index 73e29d80c7..2dba07ba19 100644 ---- a/arch/arm/dts/rk3566-odroid-m1s.dts -+++ b/arch/arm/dts/rk3566-odroid-m1s.dts -@@ -17,12 +17,8 @@ - - aliases { - ethernet0 = &gmac1; -- i2c0 = &i2c3; -- i2c3 = &i2c0; - mmc0 = &sdhci; - mmc1 = &sdmmc0; -- serial0 = &uart1; -- serial1 = &uart0; - }; - - chosen { -@@ -578,7 +574,7 @@ - disable-wp; - pinctrl-names = "default"; - pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>; -- sd-uhs-sdr50; -+ sd-uhs-sdr104; - vmmc-supply = <&vcc3v3_sd>; - vqmmc-supply = <&vccio_sd>; - status = "okay"; -diff --git a/configs/odroid-m1s-rk3566_defconfig b/configs/odroid-m1s-rk3566_defconfig -index d70a10dc08..61b6962063 100644 ---- a/configs/odroid-m1s-rk3566_defconfig -+++ b/configs/odroid-m1s-rk3566_defconfig -@@ -106,4 +106,3 @@ CONFIG_USB_DWC3=y - CONFIG_USB_DWC3_GENERIC=y - CONFIG_FS_CRAMFS=y - CONFIG_ERRNO_STR=y --CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x0800 --- -2.40.1 - diff --git a/buildroot-external/board/hardkernel/odroid-m1s/patches/uboot/0003-Improve-reliability-of-eMMC.patch b/buildroot-external/board/hardkernel/odroid-m1s/patches/uboot/0003-Improve-reliability-of-eMMC.patch deleted file mode 100644 index 5309c6b70d3..00000000000 --- a/buildroot-external/board/hardkernel/odroid-m1s/patches/uboot/0003-Improve-reliability-of-eMMC.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 2a1d8f586799e4166e802babcce18c9980aa1f44 Mon Sep 17 00:00:00 2001 -From: Tim Lunn -Date: Thu, 1 Feb 2024 17:50:46 +1100 -Subject: [PATCH] Improve reliability of eMMC - -Cherry-picked from: -20240126232615.6826-2-jonas@kwiboo.se ---- - arch/arm/dts/rk3566-odroid-m1s-u-boot.dtsi | 4 ---- - configs/odroid-m1s-rk3566_defconfig | 2 ++ - 2 files changed, 2 insertions(+), 4 deletions(-) - -diff --git a/arch/arm/dts/rk3566-odroid-m1s-u-boot.dtsi b/arch/arm/dts/rk3566-odroid-m1s-u-boot.dtsi -index 33a1d142b8..04d0cd17ef 100644 ---- a/arch/arm/dts/rk3566-odroid-m1s-u-boot.dtsi -+++ b/arch/arm/dts/rk3566-odroid-m1s-u-boot.dtsi -@@ -14,11 +14,7 @@ - - &sdhci { - cap-mmc-highspeed; -- mmc-ddr-1_8v; - mmc-hs200-1_8v; -- mmc-hs400-1_8v; -- mmc-hs400-enhanced-strobe; -- pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>; - }; - - &uart2 { -diff --git a/configs/odroid-m1s-rk3566_defconfig b/configs/odroid-m1s-rk3566_defconfig -index 61b6962063..7920ef224d 100644 ---- a/configs/odroid-m1s-rk3566_defconfig -+++ b/configs/odroid-m1s-rk3566_defconfig -@@ -70,6 +70,8 @@ CONFIG_ROCKCHIP_GPIO=y - CONFIG_SYS_I2C_ROCKCHIP=y - CONFIG_MISC=y - CONFIG_SUPPORT_EMMC_RPMB=y -+CONFIG_MMC_HS200_SUPPORT=y -+CONFIG_SPL_MMC_HS200_SUPPORT=y - CONFIG_MMC_DW=y - CONFIG_MMC_DW_ROCKCHIP=y - CONFIG_MMC_SDHCI=y --- -2.40.1 - diff --git a/buildroot-external/board/hardkernel/odroid-m1s/patches/uboot/0004-Fix-ethernet-properties.patch b/buildroot-external/board/hardkernel/odroid-m1s/patches/uboot/0004-Fix-ethernet-properties.patch deleted file mode 100644 index 3f453c6d6cf..00000000000 --- a/buildroot-external/board/hardkernel/odroid-m1s/patches/uboot/0004-Fix-ethernet-properties.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 65a304151817626157e7be4e7e1581cdddca2a02 Mon Sep 17 00:00:00 2001 -From: Tim Lunn -Date: Sat, 3 Feb 2024 23:42:47 +1100 -Subject: [PATCH] Fix ethernet properties - ---- - arch/arm/dts/rk3566-odroid-m1s.dts | 13 +++++++------ - 1 file changed, 7 insertions(+), 6 deletions(-) - -diff --git a/arch/arm/dts/rk3566-odroid-m1s.dts b/arch/arm/dts/rk3566-odroid-m1s.dts -index 2dba07ba19..73b545109d 100644 ---- a/arch/arm/dts/rk3566-odroid-m1s.dts -+++ b/arch/arm/dts/rk3566-odroid-m1s.dts -@@ -197,10 +197,9 @@ - }; - - &gmac1 { -- assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>; -- assigned-clock-rates = <0>, <125000000>; -- assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>; -- clock_in_out = "output"; -+ assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>; -+ assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>, <&gmac1_clkin>; -+ clock_in_out = "input"; - phy-handle = <&rgmii_phy1>; - phy-mode = "rgmii"; - phy-supply = <&vcc3v3_sys>; -@@ -211,10 +210,9 @@ - &gmac1m1_rgmii_clk - &gmac1m1_rgmii_bus - &gmac1m1_clkinout>; -- status = "okay"; -- - tx_delay = <0x4f>; - rx_delay = <0x2d>; -+ status = "okay"; - }; - - &gpu { -@@ -496,6 +494,9 @@ - rgmii_phy1: ethernet-phy@0 { - compatible = "ethernet-phy-ieee802.3-c22"; - reg = <0x0>; -+ reset-assert-us = <20000>; -+ reset-deassert-us = <100000>; -+ reset-gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>; - }; - }; - --- -2.40.1 - diff --git a/buildroot-external/board/hardkernel/patches/uboot/0001-HACK-mmc-meson-gx-limit-f_max-to-24-MHz-on-the-first.patch b/buildroot-external/board/hardkernel/patches-meson/0001-HACK-mmc-meson-gx-limit-f_max-to-24-MHz-on-the-first.patch similarity index 83% rename from buildroot-external/board/hardkernel/patches/uboot/0001-HACK-mmc-meson-gx-limit-f_max-to-24-MHz-on-the-first.patch rename to buildroot-external/board/hardkernel/patches-meson/0001-HACK-mmc-meson-gx-limit-f_max-to-24-MHz-on-the-first.patch index 6ea9730ff97..9965ab3aeca 100644 --- a/buildroot-external/board/hardkernel/patches/uboot/0001-HACK-mmc-meson-gx-limit-f_max-to-24-MHz-on-the-first.patch +++ b/buildroot-external/board/hardkernel/patches-meson/0001-HACK-mmc-meson-gx-limit-f_max-to-24-MHz-on-the-first.patch @@ -1,4 +1,4 @@ -From 024796cbf752d2e210341ae8609792803641eb92 Mon Sep 17 00:00:00 2001 +From f63ef87b9a9bf9997aa4017f8380567b20a1810c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= Date: Thu, 7 Nov 2024 12:39:02 +0100 Subject: [PATCH] HACK: mmc: meson-gx: limit f_max to 24 MHz on the first try @@ -25,10 +25,10 @@ Signed-off-by: Jan Čermák 3 files changed, 15 insertions(+) diff --git a/drivers/mmc/meson_gx_mmc.c b/drivers/mmc/meson_gx_mmc.c -index fcf4f03d1e..715dce3522 100644 +index 5852b24c6d2..0e0265de359 100644 --- a/drivers/mmc/meson_gx_mmc.c +++ b/drivers/mmc/meson_gx_mmc.c -@@ -283,6 +283,8 @@ static int meson_mmc_probe(struct udevice *dev) +@@ -282,6 +282,8 @@ static int meson_mmc_probe(struct udevice *dev) cfg->b_max = 511; /* max 512 - 1 blocks */ cfg->name = dev->name; @@ -38,10 +38,10 @@ index fcf4f03d1e..715dce3522 100644 upriv->mmc = mmc; diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c -index d96db7a0f8..c8dc676612 100644 +index 799586891af..85b6210f220 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c -@@ -1652,6 +1652,10 @@ int mmc_set_clock(struct mmc *mmc, uint clock, bool disable) +@@ -1694,6 +1694,10 @@ int mmc_set_clock(struct mmc *mmc, uint clock, bool disable) clock = mmc->cfg->f_min; } @@ -52,7 +52,7 @@ index d96db7a0f8..c8dc676612 100644 mmc->clock = clock; mmc->clk_disable = disable; -@@ -2647,6 +2651,13 @@ static int mmc_startup(struct mmc *mmc) +@@ -2701,6 +2705,13 @@ static int mmc_startup(struct mmc *mmc) if (err) return err; err = mmc_select_mode_and_width(mmc, mmc->card_caps); @@ -67,13 +67,13 @@ index d96db7a0f8..c8dc676612 100644 #endif if (err) diff --git a/include/mmc.h b/include/mmc.h -index 1022db3ffa..0ea48c6fd9 100644 +index e4b960b7294..5ad40cf2ed1 100644 --- a/include/mmc.h +++ b/include/mmc.h -@@ -739,6 +739,8 @@ struct mmc { - u8 hs400_tuning; - +@@ -760,6 +760,8 @@ struct mmc { enum bus_mode user_speed_mode; /* input speed mode from user */ + + CONFIG_IS_ENABLED(CYCLIC, (struct cyclic_info cyclic)); + + bool meson_gx_f_max_hack; }; diff --git a/buildroot-external/board/nabucasa/green/patches/uboot/0001-arch-arm-dts-Add-NabuCasa-Green-board.patch b/buildroot-external/board/nabucasa/green/patches/uboot/0001-arch-arm-dts-Add-NabuCasa-Green-board.patch index 539bf2705d6..1dd28485f6e 100644 --- a/buildroot-external/board/nabucasa/green/patches/uboot/0001-arch-arm-dts-Add-NabuCasa-Green-board.patch +++ b/buildroot-external/board/nabucasa/green/patches/uboot/0001-arch-arm-dts-Add-NabuCasa-Green-board.patch @@ -1,33 +1,35 @@ -From 501ac314ef709d6ecac3047310d5e48a473df638 Mon Sep 17 00:00:00 2001 +From 99fdcac59b4c993dcac1869e8372dc895ffa0ae5 Mon Sep 17 00:00:00 2001 From: Zhangqun Ming Date: Thu, 6 Jul 2023 10:06:35 +0000 Subject: [PATCH] arch: arm: dts: Add NabuCasa Green board --- - arch/arm/dts/Makefile | 1 + + arch/arm/dts/Makefile | 3 + arch/arm/dts/rk3566-ha-green-u-boot.dtsi | 28 + arch/arm/dts/rk3566-ha-green.dts | 685 +++++++++++++++++++++++ configs/green_defconfig | 74 +++ - 4 files changed, 788 insertions(+) + 4 files changed, 790 insertions(+) create mode 100644 arch/arm/dts/rk3566-ha-green-u-boot.dtsi create mode 100644 arch/arm/dts/rk3566-ha-green.dts create mode 100644 configs/green_defconfig diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile -index 9d28a485be..f78839f9cc 100644 +index 6ad59aeed5f..92c6fa54caa 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile -@@ -172,6 +172,7 @@ dtb-$(CONFIG_ROCKCHIP_RK3399) += \ +@@ -87,6 +87,9 @@ dtb-$(CONFIG_ROCKCHIP_RK3368) += \ + rk3368-geekbox.dtb \ + rk3368-px5-evb.dtb \ + ++dtb-$(CONFIG_ROCKCHIP_RK3568) += \ ++ rk3566-ha-green.dtb ++ + dtb-$(CONFIG_ARCH_S5P4418) += \ + s5p4418-nanopi2.dtb - dtb-$(CONFIG_ROCKCHIP_RK3568) += \ - rk3566-anbernic-rgxx3.dtb \ -+ rk3566-ha-green.dtb \ - rk3566-quartz64-a.dtb \ - rk3566-quartz64-b.dtb \ - rk3566-radxa-cm3-io.dtb \ diff --git a/arch/arm/dts/rk3566-ha-green-u-boot.dtsi b/arch/arm/dts/rk3566-ha-green-u-boot.dtsi new file mode 100644 -index 0000000000..83fa66d591 +index 00000000000..83fa66d591e --- /dev/null +++ b/arch/arm/dts/rk3566-ha-green-u-boot.dtsi @@ -0,0 +1,28 @@ @@ -61,7 +63,7 @@ index 0000000000..83fa66d591 +}; diff --git a/arch/arm/dts/rk3566-ha-green.dts b/arch/arm/dts/rk3566-ha-green.dts new file mode 100644 -index 0000000000..15d2b73433 +index 00000000000..15d2b734338 --- /dev/null +++ b/arch/arm/dts/rk3566-ha-green.dts @@ -0,0 +1,685 @@ @@ -752,7 +754,7 @@ index 0000000000..15d2b73433 +}; diff --git a/configs/green_defconfig b/configs/green_defconfig new file mode 100644 -index 0000000000..0617d308aa +index 00000000000..0617d308aa2 --- /dev/null +++ b/configs/green_defconfig @@ -0,0 +1,74 @@ @@ -830,6 +832,3 @@ index 0000000000..0617d308aa +CONFIG_SYSRESET=y +# CONFIG_BINMAN_FDT is not set +CONFIG_ERRNO_STR=y --- -2.43.0 - diff --git a/buildroot-external/board/nabucasa/green/patches/uboot/0002-configs-green-Support-USB-boot.patch b/buildroot-external/board/nabucasa/green/patches/uboot/0002-configs-green-Support-USB-boot.patch index 68d5c61c54d..2da29c1c9da 100644 --- a/buildroot-external/board/nabucasa/green/patches/uboot/0002-configs-green-Support-USB-boot.patch +++ b/buildroot-external/board/nabucasa/green/patches/uboot/0002-configs-green-Support-USB-boot.patch @@ -1,4 +1,4 @@ -From 6441bdb22a25649ff8fd69aa8f8a7285d9c37266 Mon Sep 17 00:00:00 2001 +From 634b3b17d96b6def645b15b379fbe617620e6665 Mon Sep 17 00:00:00 2001 From: Zhangqun Ming Date: Fri, 14 Jul 2023 14:13:39 +0000 Subject: [PATCH] configs: green: Support USB boot @@ -8,7 +8,7 @@ Subject: [PATCH] configs: green: Support USB boot 1 file changed, 36 insertions(+), 16 deletions(-) diff --git a/configs/green_defconfig b/configs/green_defconfig -index 0617d308aa..14960b67d2 100644 +index 0617d308aa2..14960b67d26 100644 --- a/configs/green_defconfig +++ b/configs/green_defconfig @@ -6,48 +6,54 @@ CONFIG_TEXT_BASE=0x00a00000 @@ -112,6 +112,3 @@ index 0617d308aa..14960b67d2 100644 +CONFIG_USB_OHCI_GENERIC=y +CONFIG_USB_DWC3=y CONFIG_ERRNO_STR=y --- -2.43.0 - diff --git a/buildroot-external/board/nabucasa/green/patches/uboot/0003-arch-arm-dts-rk3566-green-boot-order.patch b/buildroot-external/board/nabucasa/green/patches/uboot/0003-arch-arm-dts-rk3566-green-boot-order.patch index de2570b7e67..cdc96aae053 100644 --- a/buildroot-external/board/nabucasa/green/patches/uboot/0003-arch-arm-dts-rk3566-green-boot-order.patch +++ b/buildroot-external/board/nabucasa/green/patches/uboot/0003-arch-arm-dts-rk3566-green-boot-order.patch @@ -1,4 +1,4 @@ -From d8b8b614d19dbb3fa004677a2c2e50b685a80192 Mon Sep 17 00:00:00 2001 +From 80fc442a51ecab7b822145561421e3adff899bc9 Mon Sep 17 00:00:00 2001 From: Zhangqun Ming Date: Fri, 14 Jul 2023 14:14:10 +0000 Subject: [PATCH] arch: arm: dts: rk3566: green: boot order @@ -9,7 +9,7 @@ Subject: [PATCH] arch: arm: dts: rk3566: green: boot order 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/arch/arm/dts/rk3566-ha-green-u-boot.dtsi b/arch/arm/dts/rk3566-ha-green-u-boot.dtsi -index 83fa66d591..7f2ed298ce 100644 +index 83fa66d591e..7f2ed298ce3 100644 --- a/arch/arm/dts/rk3566-ha-green-u-boot.dtsi +++ b/arch/arm/dts/rk3566-ha-green-u-boot.dtsi @@ -9,7 +9,7 @@ @@ -33,7 +33,7 @@ index 83fa66d591..7f2ed298ce 100644 clock-frequency = <24000000>; bootph-all; diff --git a/arch/arm/dts/rk3566-ha-green.dts b/arch/arm/dts/rk3566-ha-green.dts -index 15d2b73433..bf0f81c3a1 100644 +index 15d2b734338..bf0f81c3a15 100644 --- a/arch/arm/dts/rk3566-ha-green.dts +++ b/arch/arm/dts/rk3566-ha-green.dts @@ -563,7 +563,7 @@ @@ -45,6 +45,3 @@ index 15d2b73433..bf0f81c3a1 100644 compatible = "jedec,spi-nor"; reg = <0>; spi-max-frequency = <100000000>; --- -2.43.0 - diff --git a/buildroot-external/board/nabucasa/green/patches/uboot/0004-arch-arm-dts-green-spi-nor-uboot.patch b/buildroot-external/board/nabucasa/green/patches/uboot/0004-arch-arm-dts-green-spi-nor-uboot.patch index ca1463c4dcc..06858bb2a47 100644 --- a/buildroot-external/board/nabucasa/green/patches/uboot/0004-arch-arm-dts-green-spi-nor-uboot.patch +++ b/buildroot-external/board/nabucasa/green/patches/uboot/0004-arch-arm-dts-green-spi-nor-uboot.patch @@ -1,4 +1,4 @@ -From e14d7d56b293ba01c5b73a4b3483795d78c75172 Mon Sep 17 00:00:00 2001 +From 107a4b9bf7d335de4a6dc7e6097a1f38fdab38c7 Mon Sep 17 00:00:00 2001 From: Zhangqun Ming Date: Sat, 15 Jul 2023 08:46:09 +0000 Subject: [PATCH] arch: arm: dts: green: spi nor uboot @@ -10,7 +10,7 @@ Subject: [PATCH] arch: arm: dts: green: spi nor uboot 3 files changed, 91 insertions(+), 3 deletions(-) diff --git a/arch/arm/dts/rk3566-ha-green-u-boot.dtsi b/arch/arm/dts/rk3566-ha-green-u-boot.dtsi -index 7f2ed298ce..fa98078fce 100644 +index 7f2ed298ce3..fa98078fce2 100644 --- a/arch/arm/dts/rk3566-ha-green-u-boot.dtsi +++ b/arch/arm/dts/rk3566-ha-green-u-boot.dtsi @@ -13,15 +13,96 @@ @@ -123,7 +123,7 @@ index 7f2ed298ce..fa98078fce 100644 +}; \ No newline at end of file diff --git a/arch/arm/dts/rk3566-ha-green.dts b/arch/arm/dts/rk3566-ha-green.dts -index bf0f81c3a1..ea9d358099 100644 +index bf0f81c3a15..ea9d358099b 100644 --- a/arch/arm/dts/rk3566-ha-green.dts +++ b/arch/arm/dts/rk3566-ha-green.dts @@ -566,8 +566,8 @@ @@ -138,7 +138,7 @@ index bf0f81c3a1..ea9d358099 100644 partitions { diff --git a/configs/green_defconfig b/configs/green_defconfig -index 14960b67d2..5f94c06279 100644 +index 14960b67d26..5f94c062798 100644 --- a/configs/green_defconfig +++ b/configs/green_defconfig @@ -68,6 +68,8 @@ CONFIG_MMC_SDHCI_SDMA=y @@ -150,6 +150,3 @@ index 14960b67d2..5f94c06279 100644 CONFIG_ETH_DESIGNWARE=y CONFIG_GMAC_ROCKCHIP=y CONFIG_PHY_ROCKCHIP_INNO_USB2=y --- -2.43.0 - diff --git a/buildroot-external/board/nabucasa/green/patches/uboot/0005-board-green-add-Green-board-to-read-board-specific-E.patch b/buildroot-external/board/nabucasa/green/patches/uboot/0005-board-green-add-Green-board-to-read-board-specific-E.patch index 380163bcf96..e5962c71703 100644 --- a/buildroot-external/board/nabucasa/green/patches/uboot/0005-board-green-add-Green-board-to-read-board-specific-E.patch +++ b/buildroot-external/board/nabucasa/green/patches/uboot/0005-board-green-add-Green-board-to-read-board-specific-E.patch @@ -1,4 +1,4 @@ -From acec57c77e10230fc32820046301cb2a59c431d4 Mon Sep 17 00:00:00 2001 +From c1b3736623b9a6e5d027ca202dbc53b7eb7e4662 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Thu, 17 Aug 2023 17:38:13 +0200 Subject: [PATCH] board: green: add Green board to read board specific EEPROM @@ -12,17 +12,17 @@ Signed-off-by: Stefan Agner arch/arm/mach-rockchip/rk3568/Kconfig | 7 +++ board/nabucasa/ha-green/Kconfig | 15 +++++++ board/nabucasa/ha-green/Makefile | 3 ++ - board/nabucasa/ha-green/ha-green.c | 65 +++++++++++++++++++++++++++ + board/nabucasa/ha-green/ha-green.c | 64 +++++++++++++++++++++++++++ configs/green_defconfig | 3 ++ include/configs/ha-green.h | 11 +++++ - 7 files changed, 111 insertions(+) + 7 files changed, 110 insertions(+) create mode 100644 board/nabucasa/ha-green/Kconfig create mode 100644 board/nabucasa/ha-green/Makefile create mode 100644 board/nabucasa/ha-green/ha-green.c create mode 100644 include/configs/ha-green.h diff --git a/arch/arm/dts/rk3566-ha-green.dts b/arch/arm/dts/rk3566-ha-green.dts -index ea9d358099..91afadf0e6 100644 +index ea9d358099b..91afadf0e65 100644 --- a/arch/arm/dts/rk3566-ha-green.dts +++ b/arch/arm/dts/rk3566-ha-green.dts @@ -449,6 +449,13 @@ @@ -40,7 +40,7 @@ index ea9d358099..91afadf0e6 100644 &i2s0_8ch { diff --git a/arch/arm/mach-rockchip/rk3568/Kconfig b/arch/arm/mach-rockchip/rk3568/Kconfig -index baa51349f4..42652dec03 100644 +index ce327ed6f9e..5f675b11491 100644 --- a/arch/arm/mach-rockchip/rk3568/Kconfig +++ b/arch/arm/mach-rockchip/rk3568/Kconfig @@ -17,6 +17,12 @@ config TARGET_ANBERNIC_RGXX3_RK3566 @@ -56,17 +56,17 @@ index baa51349f4..42652dec03 100644 config TARGET_ODROID_M1_RK3568 bool "ODROID-M1" help -@@ -44,6 +50,7 @@ config SYS_MALLOC_F_LEN - source "board/rockchip/evb_rk3568/Kconfig" +@@ -81,6 +87,7 @@ source "board/rockchip/evb_rk3568/Kconfig" source "board/anbernic/rgxx3_rk3566/Kconfig" source "board/hardkernel/odroid_m1/Kconfig" + source "board/hardkernel/odroid_m1s/Kconfig" +source "board/nabucasa/ha-green/Kconfig" source "board/pine64/quartz64_rk3566/Kconfig" - - endif + source "board/powkiddy/x55/Kconfig" + source "board/qnap/ts433/Kconfig" diff --git a/board/nabucasa/ha-green/Kconfig b/board/nabucasa/ha-green/Kconfig new file mode 100644 -index 0000000000..863afd4363 +index 00000000000..863afd43632 --- /dev/null +++ b/board/nabucasa/ha-green/Kconfig @@ -0,0 +1,15 @@ @@ -87,7 +87,7 @@ index 0000000000..863afd4363 +endif diff --git a/board/nabucasa/ha-green/Makefile b/board/nabucasa/ha-green/Makefile new file mode 100644 -index 0000000000..bf711fe8c4 +index 00000000000..bf711fe8c44 --- /dev/null +++ b/board/nabucasa/ha-green/Makefile @@ -0,0 +1,3 @@ @@ -96,10 +96,10 @@ index 0000000000..bf711fe8c4 +obj-y += ha-green.o diff --git a/board/nabucasa/ha-green/ha-green.c b/board/nabucasa/ha-green/ha-green.c new file mode 100644 -index 0000000000..b9a0c32441 +index 00000000000..3f0ede747bc --- /dev/null +++ b/board/nabucasa/ha-green/ha-green.c -@@ -0,0 +1,65 @@ +@@ -0,0 +1,64 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright 2023 Nabu Casa, Inc. @@ -109,7 +109,6 @@ index 0000000000..b9a0c32441 +#include +#include +#include -+#include +#include +#include +#include @@ -166,7 +165,7 @@ index 0000000000..b9a0c32441 + return 0; +} diff --git a/configs/green_defconfig b/configs/green_defconfig -index 5f94c06279..a97391f295 100644 +index 5f94c062798..a97391f2954 100644 --- a/configs/green_defconfig +++ b/configs/green_defconfig @@ -16,6 +16,7 @@ CONFIG_SPL_ROCKCHIP_COMMON_BOARD=y @@ -188,7 +187,7 @@ index 5f94c06279..a97391f295 100644 CONFIG_MMC_DW_ROCKCHIP=y diff --git a/include/configs/ha-green.h b/include/configs/ha-green.h new file mode 100644 -index 0000000000..e42d9c8e8c +index 00000000000..e42d9c8e8c9 --- /dev/null +++ b/include/configs/ha-green.h @@ -0,0 +1,11 @@ @@ -203,6 +202,3 @@ index 0000000000..e42d9c8e8c +#include + +#endif --- -2.43.0 - diff --git a/buildroot-external/board/nabucasa/green/patches/uboot/0006-green-spl-loader-uboot-order-sd-emmc-spi_nor.patch b/buildroot-external/board/nabucasa/green/patches/uboot/0006-green-spl-loader-uboot-order-sd-emmc-spi_nor.patch index 661e4cbedba..c9ed24780cd 100644 --- a/buildroot-external/board/nabucasa/green/patches/uboot/0006-green-spl-loader-uboot-order-sd-emmc-spi_nor.patch +++ b/buildroot-external/board/nabucasa/green/patches/uboot/0006-green-spl-loader-uboot-order-sd-emmc-spi_nor.patch @@ -1,4 +1,4 @@ -From 51f1bdec59b8f62ac00a37e97a7bb8ebfc9f61d7 Mon Sep 17 00:00:00 2001 +From 6ae9e30259812a3cbc8d4990a5acfe459053a225 Mon Sep 17 00:00:00 2001 From: syan Date: Mon, 31 Jul 2023 09:39:55 +0000 Subject: [PATCH] green: spl loader uboot order: sd-emmc-spi_nor @@ -8,7 +8,7 @@ Subject: [PATCH] green: spl loader uboot order: sd-emmc-spi_nor 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/dts/rk3566-ha-green-u-boot.dtsi b/arch/arm/dts/rk3566-ha-green-u-boot.dtsi -index fa98078fce..48d7b61513 100644 +index fa98078fce2..48d7b615137 100644 --- a/arch/arm/dts/rk3566-ha-green-u-boot.dtsi +++ b/arch/arm/dts/rk3566-ha-green-u-boot.dtsi @@ -9,7 +9,7 @@ @@ -20,6 +20,3 @@ index fa98078fce..48d7b61513 100644 }; }; --- -2.43.0 - diff --git a/buildroot-external/board/nabucasa/green/patches/uboot/0007-green-Fix-SPI-Flash-alias.patch b/buildroot-external/board/nabucasa/green/patches/uboot/0007-green-Fix-SPI-Flash-alias.patch index 34f53becd5b..52c6763d0a8 100644 --- a/buildroot-external/board/nabucasa/green/patches/uboot/0007-green-Fix-SPI-Flash-alias.patch +++ b/buildroot-external/board/nabucasa/green/patches/uboot/0007-green-Fix-SPI-Flash-alias.patch @@ -1,4 +1,4 @@ -From 0142d1a99d2aa4a6dad7181dcd74958b2ee0fe31 Mon Sep 17 00:00:00 2001 +From b6c7fc08198300d8620f9896db468e0e50e8838a Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Thu, 17 Aug 2023 17:51:07 +0200 Subject: [PATCH] green: Fix SPI Flash alias @@ -12,7 +12,7 @@ Signed-off-by: Stefan Agner 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/configs/green_defconfig b/configs/green_defconfig -index a97391f295..71c9257d7d 100644 +index a97391f2954..71c9257d7d4 100644 --- a/configs/green_defconfig +++ b/configs/green_defconfig @@ -55,6 +55,7 @@ CONFIG_CMD_REGULATOR=y @@ -38,6 +38,3 @@ index a97391f295..71c9257d7d 100644 CONFIG_ETH_DESIGNWARE=y CONFIG_GMAC_ROCKCHIP=y CONFIG_PHY_ROCKCHIP_INNO_USB2=y --- -2.43.0 - diff --git a/buildroot-external/board/nabucasa/green/patches/uboot/0008-arch-arm-dts-green-drop-SPI-NOR-flash-partitions.patch b/buildroot-external/board/nabucasa/green/patches/uboot/0008-arch-arm-dts-green-drop-SPI-NOR-flash-partitions.patch index d16a81edbb4..bb52f832aed 100644 --- a/buildroot-external/board/nabucasa/green/patches/uboot/0008-arch-arm-dts-green-drop-SPI-NOR-flash-partitions.patch +++ b/buildroot-external/board/nabucasa/green/patches/uboot/0008-arch-arm-dts-green-drop-SPI-NOR-flash-partitions.patch @@ -1,4 +1,4 @@ -From 846df62342a4904a91aace66e9204ae3ed4ca0af Mon Sep 17 00:00:00 2001 +From 71ad7d9b73ff14283e61fbb1d3d214982f8c9967 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Fri, 18 Aug 2023 10:06:24 +0200 Subject: [PATCH] arch: arm: dts: green: drop SPI NOR flash partitions @@ -8,7 +8,7 @@ Subject: [PATCH] arch: arm: dts: green: drop SPI NOR flash partitions 1 file changed, 27 deletions(-) diff --git a/arch/arm/dts/rk3566-ha-green.dts b/arch/arm/dts/rk3566-ha-green.dts -index 91afadf0e6..68d836911e 100644 +index 91afadf0e65..68d836911ec 100644 --- a/arch/arm/dts/rk3566-ha-green.dts +++ b/arch/arm/dts/rk3566-ha-green.dts @@ -576,33 +576,6 @@ @@ -45,6 +45,3 @@ index 91afadf0e6..68d836911e 100644 }; }; --- -2.43.0 - diff --git a/buildroot-external/board/nabucasa/green/patches/uboot/0009-green-Do-not-use-eMMC-DDR52-mode-enable-HS200.patch b/buildroot-external/board/nabucasa/green/patches/uboot/0009-green-Do-not-use-eMMC-DDR52-mode-enable-HS200.patch index df3b2364c0c..d9467ddd72a 100644 --- a/buildroot-external/board/nabucasa/green/patches/uboot/0009-green-Do-not-use-eMMC-DDR52-mode-enable-HS200.patch +++ b/buildroot-external/board/nabucasa/green/patches/uboot/0009-green-Do-not-use-eMMC-DDR52-mode-enable-HS200.patch @@ -1,4 +1,4 @@ -From 331826e0c52d6bdd65d862e06834f23b3a750276 Mon Sep 17 00:00:00 2001 +From bda29ba9030c8ad9aa245d68033a83106de4f633 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= Date: Wed, 12 Jun 2024 15:20:46 +0200 Subject: [PATCH] green: Do not use eMMC DDR52 mode, enable HS200 @@ -22,7 +22,7 @@ Signed-off-by: Jan Čermák 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/arch/arm/dts/rk3566-ha-green-u-boot.dtsi b/arch/arm/dts/rk3566-ha-green-u-boot.dtsi -index 48d7b61513..8dc1585aac 100644 +index 48d7b615137..8dc1585aacd 100644 --- a/arch/arm/dts/rk3566-ha-green-u-boot.dtsi +++ b/arch/arm/dts/rk3566-ha-green-u-boot.dtsi @@ -71,10 +71,7 @@ @@ -44,7 +44,7 @@ index 48d7b61513..8dc1585aac 100644 \ No newline at end of file +}; diff --git a/configs/green_defconfig b/configs/green_defconfig -index 71c9257d7d..7b5a705686 100644 +index 71c9257d7d4..7b5a7056868 100644 --- a/configs/green_defconfig +++ b/configs/green_defconfig @@ -65,6 +65,8 @@ CONFIG_MISC=y diff --git a/buildroot-external/board/nabucasa/green/patches/uboot/0010-arch-arm64-dts-green-Improve-LED-representation.patch b/buildroot-external/board/nabucasa/green/patches/uboot/0010-arch-arm64-dts-green-Improve-LED-representation.patch index 40b2c3f8abb..90199ec6241 100644 --- a/buildroot-external/board/nabucasa/green/patches/uboot/0010-arch-arm64-dts-green-Improve-LED-representation.patch +++ b/buildroot-external/board/nabucasa/green/patches/uboot/0010-arch-arm64-dts-green-Improve-LED-representation.patch @@ -1,4 +1,4 @@ -From d3fb1ec2364b20025d71e2263514a71208cfb61e Mon Sep 17 00:00:00 2001 +From 2bdc5718a00ce5cb9c1fa27c8a1ff6893b016455 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= Date: Tue, 13 Aug 2024 17:51:29 +0200 Subject: [PATCH] arch: arm64: dts: green: Improve LED representation @@ -15,7 +15,7 @@ Co-authored-by: Stefan Agner 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/arch/arm/dts/rk3566-ha-green.dts b/arch/arm/dts/rk3566-ha-green.dts -index 68d836911e..c3adc59904 100644 +index 68d836911ec..c3adc599049 100644 --- a/arch/arm/dts/rk3566-ha-green.dts +++ b/arch/arm/dts/rk3566-ha-green.dts @@ -48,16 +48,18 @@ diff --git a/buildroot-external/board/nabucasa/green/patches/uboot/0011-configs-green-fix-bss-and-stack-address-and-disable-.patch b/buildroot-external/board/nabucasa/green/patches/uboot/0011-configs-green-fix-bss-and-stack-address-and-disable-.patch new file mode 100644 index 00000000000..1f01dc19be0 --- /dev/null +++ b/buildroot-external/board/nabucasa/green/patches/uboot/0011-configs-green-fix-bss-and-stack-address-and-disable-.patch @@ -0,0 +1,93 @@ +From a05b87fa8cd6716a07514c64d8816272418d74e8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= +Date: Fri, 14 Feb 2025 18:09:29 +0100 +Subject: [PATCH] configs: green: fix bss and stack address and disable + OF_UPSTREAM +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Some addresses defined in Green defconfig are wrong after upstream +changes [1] for Rockchip platform present since U-Boot 2024.04+. Remove +them to apply upstream changes and disable OF_UPSTREAM, as we don't have +upstream device tree for Green. Also refresh the defconfig + +[1] https://lore.kernel.org/u-boot/20240302191629.322562-1-jonas@kwiboo.se/ + +Signed-off-by: Jan Čermák +--- + configs/green_defconfig | 21 +++------------------ + 1 file changed, 3 insertions(+), 18 deletions(-) + +diff --git a/configs/green_defconfig b/configs/green_defconfig +index 7b5a7056868..1f61c172f01 100644 +--- a/configs/green_defconfig ++++ b/configs/green_defconfig +@@ -2,27 +2,20 @@ CONFIG_ARM=y + CONFIG_SKIP_LOWLEVEL_INIT=y + CONFIG_COUNTER_FREQUENCY=24000000 + CONFIG_ARCH_ROCKCHIP=y +-CONFIG_TEXT_BASE=0x00a00000 +-CONFIG_SPL_LIBCOMMON_SUPPORT=y +-CONFIG_SPL_LIBGENERIC_SUPPORT=y + CONFIG_NR_DRAM_BANKS=2 +-CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y +-CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xc00000 + CONFIG_SF_DEFAULT_SPEED=24000000 + CONFIG_SF_DEFAULT_MODE=0x2000 + CONFIG_DEFAULT_DEVICE_TREE="rk3566-ha-green" + CONFIG_ROCKCHIP_RK3568=y +-CONFIG_SPL_ROCKCHIP_COMMON_BOARD=y + CONFIG_ROCKCHIP_SPI_IMAGE=y + CONFIG_SPL_SERIAL=y +-CONFIG_SPL_STACK_R_ADDR=0x600000 + CONFIG_TARGET_NABU_CASA_HA_GREEN_RK3566=y +-CONFIG_SPL_STACK=0x400000 ++CONFIG_SYS_LOAD_ADDR=0xc00800 ++CONFIG_SF_DEFAULT_BUS=4 + CONFIG_DEBUG_UART_BASE=0xFE660000 + CONFIG_DEBUG_UART_CLOCK=24000000 + CONFIG_SPL_SPI_FLASH_SUPPORT=y + CONFIG_SPL_SPI=y +-CONFIG_SYS_LOAD_ADDR=0xc00800 + CONFIG_DEBUG_UART=y + CONFIG_FIT=y + CONFIG_FIT_VERBOSE=y +@@ -34,12 +27,7 @@ CONFIG_DEFAULT_FDT_FILE="rockchip/rk3566-ha-green.dtb" + CONFIG_DISPLAY_BOARDINFO_LATE=y + CONFIG_SPL_MAX_SIZE=0x40000 + CONFIG_SPL_PAD_TO=0x7f8000 +-CONFIG_SPL_HAS_BSS_LINKER_SECTION=y +-CONFIG_SPL_BSS_START_ADDR=0x4000000 +-CONFIG_SPL_BSS_MAX_SIZE=0x4000 + # CONFIG_SPL_RAW_IMAGE_SUPPORT is not set +-# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set +-CONFIG_SPL_STACK_R=y + CONFIG_SPL_SPI_LOAD=y + CONFIG_SYS_SPI_U_BOOT_OFFS=0x60000 + CONFIG_SPL_ATF=y +@@ -54,6 +42,7 @@ CONFIG_CMD_REGULATOR=y + # CONFIG_SPL_DOS_PARTITION is not set + CONFIG_SPL_OF_CONTROL=y + CONFIG_OF_LIVE=y ++# CONFIG_OF_UPSTREAM is not set + CONFIG_OF_SPL_REMOVE_PROPS="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents" + CONFIG_SPL_DM_SEQ_ALIAS=y + CONFIG_SPL_REGMAP=y +@@ -63,16 +52,12 @@ CONFIG_ROCKCHIP_GPIO=y + CONFIG_SYS_I2C_ROCKCHIP=y + CONFIG_MISC=y + CONFIG_I2C_EEPROM=y +-CONFIG_SYS_I2C_EEPROM_ADDR=0x0 + CONFIG_SUPPORT_EMMC_RPMB=y +-CONFIG_MMC_HS200_SUPPORT=y +-CONFIG_SPL_MMC_HS200_SUPPORT=y + CONFIG_MMC_DW=y + CONFIG_MMC_DW_ROCKCHIP=y + CONFIG_MMC_SDHCI=y + CONFIG_MMC_SDHCI_SDMA=y + CONFIG_MMC_SDHCI_ROCKCHIP=y +-CONFIG_SF_DEFAULT_BUS=4 + CONFIG_SPI_FLASH_SFDP_SUPPORT=y + CONFIG_SPI_FLASH_GIGADEVICE=y + CONFIG_SPI_FLASH_MACRONIX=y diff --git a/buildroot-external/board/raspberrypi/patches/uboot/2024.10/0001-rpi-add-NVMe-to-boot-order.patch b/buildroot-external/board/raspberrypi/patches/uboot/0001-rpi-add-NVMe-to-boot-order.patch similarity index 86% rename from buildroot-external/board/raspberrypi/patches/uboot/2024.10/0001-rpi-add-NVMe-to-boot-order.patch rename to buildroot-external/board/raspberrypi/patches/uboot/0001-rpi-add-NVMe-to-boot-order.patch index 4a93de5a24c..6a0a8d004e9 100644 --- a/buildroot-external/board/raspberrypi/patches/uboot/2024.10/0001-rpi-add-NVMe-to-boot-order.patch +++ b/buildroot-external/board/raspberrypi/patches/uboot/0001-rpi-add-NVMe-to-boot-order.patch @@ -1,4 +1,4 @@ -From 3d9bd29941ce291e44aab60be1339d4c116ebda5 Mon Sep 17 00:00:00 2001 +From 1e59538810162eca0e902e024dde599c15f36cde Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Tue, 29 Dec 2020 23:34:52 +0100 Subject: [PATCH] rpi: add NVMe to boot order @@ -12,7 +12,7 @@ Signed-off-by: Stefan Agner 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/board/raspberrypi/rpi/rpi.env b/board/raspberrypi/rpi/rpi.env -index 30228285ed..89f6c5a839 100644 +index 30228285edd..89f6c5a8392 100644 --- a/board/raspberrypi/rpi/rpi.env +++ b/board/raspberrypi/rpi/rpi.env @@ -74,4 +74,4 @@ pxefile_addr_r=0x02500000 diff --git a/buildroot-external/board/raspberrypi/patches/uboot/2024.10/0002-Revert-nvme-Correct-the-prps-per-page-calculation-me.patch b/buildroot-external/board/raspberrypi/patches/uboot/0002-Revert-nvme-Correct-the-prps-per-page-calculation-me.patch similarity index 92% rename from buildroot-external/board/raspberrypi/patches/uboot/2024.10/0002-Revert-nvme-Correct-the-prps-per-page-calculation-me.patch rename to buildroot-external/board/raspberrypi/patches/uboot/0002-Revert-nvme-Correct-the-prps-per-page-calculation-me.patch index ee08921a954..0f3880c9738 100644 --- a/buildroot-external/board/raspberrypi/patches/uboot/2024.10/0002-Revert-nvme-Correct-the-prps-per-page-calculation-me.patch +++ b/buildroot-external/board/raspberrypi/patches/uboot/0002-Revert-nvme-Correct-the-prps-per-page-calculation-me.patch @@ -1,4 +1,4 @@ -From ab13da2df9f86517df45da293ed8002e07a3d5ec Mon Sep 17 00:00:00 2001 +From 16508d6d1a166ac2c7c03550876633cf9828e0e0 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Thu, 23 Sep 2021 23:43:31 +0200 Subject: [PATCH] Revert "nvme: Correct the prps per page calculation method" @@ -23,7 +23,7 @@ Cc: Wesley Sheng 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c -index 7c58ceb78f..0b2496cf26 100644 +index 7c58ceb78f5..0b2496cf26f 100644 --- a/drivers/nvme/nvme.c +++ b/drivers/nvme/nvme.c @@ -52,7 +52,7 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2, diff --git a/buildroot-external/board/raspberrypi/patches/uboot/2024.10/0003-usb-xhci-brcm-Make-driver-compatible-with-downstream.patch b/buildroot-external/board/raspberrypi/patches/uboot/0003-usb-xhci-brcm-Make-driver-compatible-with-downstream.patch similarity index 88% rename from buildroot-external/board/raspberrypi/patches/uboot/2024.10/0003-usb-xhci-brcm-Make-driver-compatible-with-downstream.patch rename to buildroot-external/board/raspberrypi/patches/uboot/0003-usb-xhci-brcm-Make-driver-compatible-with-downstream.patch index 96f127e6790..8960a4ccc07 100644 --- a/buildroot-external/board/raspberrypi/patches/uboot/2024.10/0003-usb-xhci-brcm-Make-driver-compatible-with-downstream.patch +++ b/buildroot-external/board/raspberrypi/patches/uboot/0003-usb-xhci-brcm-Make-driver-compatible-with-downstream.patch @@ -1,4 +1,4 @@ -From 9de58838106829b8caa47b6fd6b42ba3435c2ce6 Mon Sep 17 00:00:00 2001 +From 725fef2ebd8a23f68c2574ca799593596d1ef6fd Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Thu, 7 Oct 2021 12:02:39 +0200 Subject: [PATCH] usb: xhci-brcm: Make driver compatible with downstream device @@ -13,7 +13,7 @@ Signed-off-by: Stefan Agner 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/usb/host/xhci-brcm.c b/drivers/usb/host/xhci-brcm.c -index 2ffad148de..2a063ccc9e 100644 +index 2ffad148dea..2a063ccc9eb 100644 --- a/drivers/usb/host/xhci-brcm.c +++ b/drivers/usb/host/xhci-brcm.c @@ -81,7 +81,7 @@ static int xhci_brcm_deregister(struct udevice *dev) diff --git a/buildroot-external/board/raspberrypi/patches/uboot/2024.10/0004-nvme-improve-readability-of-nvme_setup_prps.patch b/buildroot-external/board/raspberrypi/patches/uboot/0004-nvme-improve-readability-of-nvme_setup_prps.patch similarity index 93% rename from buildroot-external/board/raspberrypi/patches/uboot/2024.10/0004-nvme-improve-readability-of-nvme_setup_prps.patch rename to buildroot-external/board/raspberrypi/patches/uboot/0004-nvme-improve-readability-of-nvme_setup_prps.patch index 6c54abcf236..2192cf77274 100644 --- a/buildroot-external/board/raspberrypi/patches/uboot/2024.10/0004-nvme-improve-readability-of-nvme_setup_prps.patch +++ b/buildroot-external/board/raspberrypi/patches/uboot/0004-nvme-improve-readability-of-nvme_setup_prps.patch @@ -1,4 +1,4 @@ -From 8c5910539c7e4e97f233789c2489c800f87ddf81 Mon Sep 17 00:00:00 2001 +From cd66ee3e5f0a3c86702cf898c5b6d13227cd29b7 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Thu, 23 Sep 2021 23:52:44 +0200 Subject: [PATCH] nvme: improve readability of nvme_setup_prps() @@ -12,7 +12,7 @@ Signed-off-by: Stefan Agner 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c -index 0b2496cf26..b1d8eecdca 100644 +index 0b2496cf26f..b1d8eecdcaf 100644 --- a/drivers/nvme/nvme.c +++ b/drivers/nvme/nvme.c @@ -47,12 +47,12 @@ static int nvme_wait_csts(struct nvme_dev *dev, u32 mask, u32 val) diff --git a/buildroot-external/board/raspberrypi/patches/uboot/2024.10/0005-nvme-Use-pointer-for-CPU-addressed-buffers.patch b/buildroot-external/board/raspberrypi/patches/uboot/0005-nvme-Use-pointer-for-CPU-addressed-buffers.patch similarity index 97% rename from buildroot-external/board/raspberrypi/patches/uboot/2024.10/0005-nvme-Use-pointer-for-CPU-addressed-buffers.patch rename to buildroot-external/board/raspberrypi/patches/uboot/0005-nvme-Use-pointer-for-CPU-addressed-buffers.patch index db89d2005d3..d379083abc3 100644 --- a/buildroot-external/board/raspberrypi/patches/uboot/2024.10/0005-nvme-Use-pointer-for-CPU-addressed-buffers.patch +++ b/buildroot-external/board/raspberrypi/patches/uboot/0005-nvme-Use-pointer-for-CPU-addressed-buffers.patch @@ -1,4 +1,4 @@ -From e3f73d6ddba46f3b4ec8833c11f9ad831e57d394 Mon Sep 17 00:00:00 2001 +From 76cde18c3c80d4f7c2d53e4731e1c5d9689a6f49 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Thu, 23 Sep 2021 23:58:35 +0200 Subject: [PATCH] nvme: Use pointer for CPU addressed buffers @@ -15,7 +15,7 @@ Signed-off-by: Stefan Agner 3 files changed, 33 insertions(+), 33 deletions(-) diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c -index b1d8eecdca..f626a472ff 100644 +index b1d8eecdcaf..f626a472ffa 100644 --- a/drivers/nvme/nvme.c +++ b/drivers/nvme/nvme.c @@ -45,11 +45,11 @@ static int nvme_wait_csts(struct nvme_dev *dev, u32 mask, u32 val) @@ -184,7 +184,7 @@ index b1d8eecdca..f626a472ff 100644 goto free_id; } diff --git a/drivers/nvme/nvme_show.c b/drivers/nvme/nvme_show.c -index b06cb5c6d5..ad1a260f9a 100644 +index b06cb5c6d51..ad1a260f9ab 100644 --- a/drivers/nvme/nvme_show.c +++ b/drivers/nvme/nvme_show.c @@ -113,7 +113,7 @@ int nvme_print_info(struct udevice *udev) @@ -206,7 +206,7 @@ index b06cb5c6d5..ad1a260f9a 100644 goto free_id; } diff --git a/include/nvme.h b/include/nvme.h -index 2cdf8ce320..8ff823cd81 100644 +index 2cdf8ce320c..8ff823cd81c 100644 --- a/include/nvme.h +++ b/include/nvme.h @@ -18,12 +18,12 @@ struct nvme_dev; diff --git a/buildroot-external/board/raspberrypi/patches/uboot/2024.10/0006-nvme-translate-virtual-addresses-into-the-bus-s-addr.patch b/buildroot-external/board/raspberrypi/patches/uboot/0006-nvme-translate-virtual-addresses-into-the-bus-s-addr.patch similarity index 97% rename from buildroot-external/board/raspberrypi/patches/uboot/2024.10/0006-nvme-translate-virtual-addresses-into-the-bus-s-addr.patch rename to buildroot-external/board/raspberrypi/patches/uboot/0006-nvme-translate-virtual-addresses-into-the-bus-s-addr.patch index 110cc60dd06..05e7a0d90e8 100644 --- a/buildroot-external/board/raspberrypi/patches/uboot/2024.10/0006-nvme-translate-virtual-addresses-into-the-bus-s-addr.patch +++ b/buildroot-external/board/raspberrypi/patches/uboot/0006-nvme-translate-virtual-addresses-into-the-bus-s-addr.patch @@ -1,4 +1,4 @@ -From 1c9ebd44d5af878719f041d6a2329cc81674134c Mon Sep 17 00:00:00 2001 +From 9d2676a8fad6d92e5c761c125b069c90a9ef6587 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Fri, 24 Sep 2021 00:27:39 +0200 Subject: [PATCH] nvme: translate virtual addresses into the bus's address @@ -26,7 +26,7 @@ Signed-off-by: Stefan Agner 2 files changed, 25 insertions(+), 14 deletions(-) diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c -index f626a472ff..70ce63f205 100644 +index f626a472ffa..70ce63f2053 100644 --- a/drivers/nvme/nvme.c +++ b/drivers/nvme/nvme.c @@ -66,7 +66,7 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2, @@ -143,7 +143,7 @@ index f626a472ff..70ce63f205 100644 status = nvme_submit_sync_cmd(dev->queues[NVME_IO_Q], &c, NULL, IO_TIMEOUT); diff --git a/drivers/nvme/nvme.h b/drivers/nvme/nvme.h -index bc1d612dde..f52103c009 100644 +index bc1d612dde4..f52103c0095 100644 --- a/drivers/nvme/nvme.h +++ b/drivers/nvme/nvme.h @@ -7,8 +7,11 @@ diff --git a/buildroot-external/board/raspberrypi/patches/uboot/2024.10/0007-Revert-pci-Check-region-ranges-are-addressable.patch b/buildroot-external/board/raspberrypi/patches/uboot/0007-Revert-pci-Check-region-ranges-are-addressable.patch similarity index 93% rename from buildroot-external/board/raspberrypi/patches/uboot/2024.10/0007-Revert-pci-Check-region-ranges-are-addressable.patch rename to buildroot-external/board/raspberrypi/patches/uboot/0007-Revert-pci-Check-region-ranges-are-addressable.patch index 131d562f92d..c761b18c9f4 100644 --- a/buildroot-external/board/raspberrypi/patches/uboot/2024.10/0007-Revert-pci-Check-region-ranges-are-addressable.patch +++ b/buildroot-external/board/raspberrypi/patches/uboot/0007-Revert-pci-Check-region-ranges-are-addressable.patch @@ -1,4 +1,4 @@ -From 418664bb1dfa61b8fc1a0292adb00ec93e1a7619 Mon Sep 17 00:00:00 2001 +From c77c55c6975af3ff5210559b1c5a89e76de0cceb Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Mon, 24 Apr 2023 15:44:15 +0200 Subject: [PATCH] Revert "pci: Check region ranges are addressable" @@ -15,7 +15,7 @@ Signed-off-by: Stefan Agner 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/drivers/pci/pci-uclass.c b/drivers/pci/pci-uclass.c -index 6571e65304..803d5c25fc 100644 +index 59894d2430b..f1f7e525efe 100644 --- a/drivers/pci/pci-uclass.c +++ b/drivers/pci/pci-uclass.c @@ -1038,22 +1038,7 @@ static int decode_regions(struct pci_controller *hose, ofnode parent_node, diff --git a/buildroot-external/board/raspberrypi/patches/uboot/2024.10/0008-reset-reset-brcmstb-Add-Broadcom-STB-reset-controlle.patch b/buildroot-external/board/raspberrypi/patches/uboot/0008-reset-reset-brcmstb-Add-Broadcom-STB-reset-controlle.patch similarity index 96% rename from buildroot-external/board/raspberrypi/patches/uboot/2024.10/0008-reset-reset-brcmstb-Add-Broadcom-STB-reset-controlle.patch rename to buildroot-external/board/raspberrypi/patches/uboot/0008-reset-reset-brcmstb-Add-Broadcom-STB-reset-controlle.patch index 85b295cbd06..79128a9f792 100644 --- a/buildroot-external/board/raspberrypi/patches/uboot/2024.10/0008-reset-reset-brcmstb-Add-Broadcom-STB-reset-controlle.patch +++ b/buildroot-external/board/raspberrypi/patches/uboot/0008-reset-reset-brcmstb-Add-Broadcom-STB-reset-controlle.patch @@ -1,4 +1,4 @@ -From 81100e760c8ed3d697696de5353d51e8e1af2be4 Mon Sep 17 00:00:00 2001 +From ad9ce9d8ba273fffeff3d98ae1fc978dd217ab1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= Date: Mon, 30 Sep 2024 17:56:45 +0200 Subject: [PATCH] reset: reset-brcmstb: Add Broadcom STB reset controller @@ -20,7 +20,7 @@ Signed-off-by: Jan Čermák create mode 100644 drivers/reset/reset-brcmstb.c diff --git a/drivers/reset/Kconfig b/drivers/reset/Kconfig -index fe5c1214f5..10a364b2a8 100644 +index fe5c1214f57..186dd963bc4 100644 --- a/drivers/reset/Kconfig +++ b/drivers/reset/Kconfig @@ -63,6 +63,12 @@ config RESET_BCM6345 @@ -37,7 +37,7 @@ index fe5c1214f5..10a364b2a8 100644 bool "Reset controller driver for UniPhier SoCs" depends on ARCH_UNIPHIER diff --git a/drivers/reset/Makefile b/drivers/reset/Makefile -index 2eb639e4a6..d7e9ac1a88 100644 +index d99a78c9828..8d9181e8af7 100644 --- a/drivers/reset/Makefile +++ b/drivers/reset/Makefile @@ -13,6 +13,7 @@ obj-$(CONFIG_TEGRA186_RESET) += tegra186-reset.o @@ -50,7 +50,7 @@ index 2eb639e4a6..d7e9ac1a88 100644 obj-$(CONFIG_RESET_AST2600) += reset-ast2600.o diff --git a/drivers/reset/reset-brcmstb.c b/drivers/reset/reset-brcmstb.c new file mode 100644 -index 0000000000..c0aef5f124 +index 00000000000..c0aef5f1241 --- /dev/null +++ b/drivers/reset/reset-brcmstb.c @@ -0,0 +1,89 @@ diff --git a/buildroot-external/board/raspberrypi/patches/uboot/2024.10/0009-reset-reset-brcmstb-rescal-Add-Broadcom-RESCAL-reset.patch b/buildroot-external/board/raspberrypi/patches/uboot/0009-reset-reset-brcmstb-rescal-Add-Broadcom-RESCAL-reset.patch similarity index 96% rename from buildroot-external/board/raspberrypi/patches/uboot/2024.10/0009-reset-reset-brcmstb-rescal-Add-Broadcom-RESCAL-reset.patch rename to buildroot-external/board/raspberrypi/patches/uboot/0009-reset-reset-brcmstb-rescal-Add-Broadcom-RESCAL-reset.patch index 35ce4f3cad7..604374bd556 100644 --- a/buildroot-external/board/raspberrypi/patches/uboot/2024.10/0009-reset-reset-brcmstb-rescal-Add-Broadcom-RESCAL-reset.patch +++ b/buildroot-external/board/raspberrypi/patches/uboot/0009-reset-reset-brcmstb-rescal-Add-Broadcom-RESCAL-reset.patch @@ -1,4 +1,4 @@ -From eb7dd5b1afa4831e6eca2edb2650bd9db9a6d6eb Mon Sep 17 00:00:00 2001 +From d7f2d45fa63507cef65e86aeb79e1f47733e981c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= Date: Mon, 30 Sep 2024 18:09:29 +0200 Subject: [PATCH] reset: reset-brcmstb-rescal: Add Broadcom RESCAL reset @@ -21,7 +21,7 @@ Signed-off-by: Jan Čermák create mode 100644 drivers/reset/reset-brcmstb-rescal.c diff --git a/drivers/reset/Kconfig b/drivers/reset/Kconfig -index 10a364b2a8..fd1eb05a41 100644 +index 186dd963bc4..85776ba234d 100644 --- a/drivers/reset/Kconfig +++ b/drivers/reset/Kconfig @@ -69,6 +69,12 @@ config RESET_BRCMSTB @@ -38,7 +38,7 @@ index 10a364b2a8..fd1eb05a41 100644 bool "Reset controller driver for UniPhier SoCs" depends on ARCH_UNIPHIER diff --git a/drivers/reset/Makefile b/drivers/reset/Makefile -index d7e9ac1a88..45cf2f1b4d 100644 +index 8d9181e8af7..8f926c52c42 100644 --- a/drivers/reset/Makefile +++ b/drivers/reset/Makefile @@ -14,6 +14,7 @@ obj-$(CONFIG_RESET_TI_SCI) += reset-ti-sci.o @@ -51,7 +51,7 @@ index d7e9ac1a88..45cf2f1b4d 100644 obj-$(CONFIG_RESET_AST2600) += reset-ast2600.o diff --git a/drivers/reset/reset-brcmstb-rescal.c b/drivers/reset/reset-brcmstb-rescal.c new file mode 100644 -index 0000000000..37096bb9ff +index 00000000000..37096bb9fff --- /dev/null +++ b/drivers/reset/reset-brcmstb-rescal.c @@ -0,0 +1,101 @@ diff --git a/buildroot-external/board/raspberrypi/patches/uboot/2024.10/0010-pci-pcie-brcmstb-Add-basic-support-for-BCM2712-PCIe.patch b/buildroot-external/board/raspberrypi/patches/uboot/0010-pci-pcie-brcmstb-Add-basic-support-for-BCM2712-PCIe.patch similarity index 74% rename from buildroot-external/board/raspberrypi/patches/uboot/2024.10/0010-pci-pcie-brcmstb-Add-basic-support-for-BCM2712-PCIe.patch rename to buildroot-external/board/raspberrypi/patches/uboot/0010-pci-pcie-brcmstb-Add-basic-support-for-BCM2712-PCIe.patch index 499c2044288..1af7318b16c 100644 --- a/buildroot-external/board/raspberrypi/patches/uboot/2024.10/0010-pci-pcie-brcmstb-Add-basic-support-for-BCM2712-PCIe.patch +++ b/buildroot-external/board/raspberrypi/patches/uboot/0010-pci-pcie-brcmstb-Add-basic-support-for-BCM2712-PCIe.patch @@ -1,4 +1,4 @@ -From 6e16ad9e01d746f78f8a2391dec9aae3f39a96e5 Mon Sep 17 00:00:00 2001 +From 62d5ad02aa91d4f8e5343869439c0e2302b59301 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= Date: Mon, 30 Sep 2024 18:13:09 +0200 Subject: [PATCH] pci: pcie-brcmstb: Add basic support for BCM2712 PCIe @@ -25,12 +25,48 @@ in a similar fashion as in upstream/downstream Linux drivers. Signed-off-by: Jan Čermák --- - arch/arm/mach-bcm283x/init.c | 10 +- - drivers/pci/pcie_brcmstb.c | 191 +++++++++++++++++++++++++++++++++-- - 2 files changed, 189 insertions(+), 12 deletions(-) + .../mach-bcm283x/include/mach/acpi/bcm2711.h | 10 + + arch/arm/mach-bcm283x/init.c | 10 +- + drivers/pci/pcie_brcmstb.c | 179 +++++++++++++++++- + 3 files changed, 188 insertions(+), 11 deletions(-) +diff --git a/arch/arm/mach-bcm283x/include/mach/acpi/bcm2711.h b/arch/arm/mach-bcm283x/include/mach/acpi/bcm2711.h +index a86875b1833..a810b91906e 100644 +--- a/arch/arm/mach-bcm283x/include/mach/acpi/bcm2711.h ++++ b/arch/arm/mach-bcm283x/include/mach/acpi/bcm2711.h +@@ -49,6 +49,10 @@ + #define PCIE_RC_DL_MDIO_WR_DATA 0x1104 + #define PCIE_RC_DL_MDIO_RD_DATA 0x1108 + ++#define PCIE_RC_PL_PHY_CTL_15 0x184c ++#define PCIE_RC_PL_PHY_CTL_15_DIS_PLL_PD_MASK 0x400000 ++#define PCIE_RC_PL_PHY_CTL_15_PM_CLK_PERIOD_MASK 0xff ++ + #define PCIE_MISC_MISC_CTRL 0x4008 + #define MISC_CTRL_SCB_ACCESS_EN_MASK 0x1000 + #define MISC_CTRL_CFG_READ_UR_MODE_MASK 0x2000 +@@ -70,6 +74,9 @@ + #define PCIE_MISC_RC_BAR2_CONFIG_HI 0x4038 + #define PCIE_MISC_RC_BAR3_CONFIG_LO 0x403c + #define RC_BAR3_CONFIG_LO_SIZE_MASK 0x1f ++#define PCIE_MISC_PCIE_CTRL 0x4064 ++#define PCIE_MISC_PCIE_CTRL_PCIE_L23_REQUEST_MASK 1 ++#define PCIE_MISC_PCIE_CTRL_PCIE_PERSTB_MASK 4 + #define PCIE_MISC_PCIE_STATUS 0x4068 + #define STATUS_PCIE_PORT_MASK 0x80 + #define STATUS_PCIE_PORT_SHIFT 7 +@@ -93,6 +100,9 @@ + #define PCIE_MEM_WIN0_LIMIT_HI(win) \ + PCIE_MISC_CPU_2_PCIE_MEM_WIN0_LIMIT_HI + ((win) * 8) + ++#define PCIE_MISC_UBUS_BAR2_CONFIG_REMAP 0x40b4 ++#define PCIE_MISC_UBUS_BAR2_CONFIG_REMAP_ACCESS_ENABLE_MASK BIT(0) ++ + #define PCIE_MISC_HARD_PCIE_HARD_DEBUG 0x4204 + #define PCIE_HARD_DEBUG_SERDES_IDDQ_MASK 0x08000000 + diff --git a/arch/arm/mach-bcm283x/init.c b/arch/arm/mach-bcm283x/init.c -index 1b459707bc..2d34d67075 100644 +index 7a1de22e0ae..7c7c4e75032 100644 --- a/arch/arm/mach-bcm283x/init.c +++ b/arch/arm/mach-bcm283x/init.c @@ -18,7 +18,7 @@ @@ -58,10 +94,10 @@ index 1b459707bc..2d34d67075 100644 /* SoC bus */ .virt = 0x107c000000UL, diff --git a/drivers/pci/pcie_brcmstb.c b/drivers/pci/pcie_brcmstb.c -index f978c64365..df3e177629 100644 +index f089c48f028..51b7351b8ce 100644 --- a/drivers/pci/pcie_brcmstb.c +++ b/drivers/pci/pcie_brcmstb.c -@@ -16,6 +16,7 @@ +@@ -17,6 +17,7 @@ #include #include #include @@ -69,46 +105,11 @@ index f978c64365..df3e177629 100644 #include #include #include -@@ -39,6 +40,10 @@ - #define PCIE_RC_DL_MDIO_WR_DATA 0x1104 - #define PCIE_RC_DL_MDIO_RD_DATA 0x1108 - -+#define PCIE_RC_PL_PHY_CTL_15 0x184c -+#define PCIE_RC_PL_PHY_CTL_15_DIS_PLL_PD_MASK 0x400000 -+#define PCIE_RC_PL_PHY_CTL_15_PM_CLK_PERIOD_MASK 0xff -+ - #define PCIE_MISC_MISC_CTRL 0x4008 - #define MISC_CTRL_SCB_ACCESS_EN_MASK 0x1000 - #define MISC_CTRL_CFG_READ_UR_MODE_MASK 0x2000 -@@ -64,6 +69,10 @@ - #define PCIE_MISC_RC_BAR3_CONFIG_LO 0x403c - #define RC_BAR3_CONFIG_LO_SIZE_MASK 0x1f - -+#define PCIE_MISC_PCIE_CTRL 0x4064 -+#define PCIE_MISC_PCIE_CTRL_PCIE_L23_REQUEST_MASK 0x1 -+#define PCIE_MISC_PCIE_CTRL_PCIE_PERSTB_MASK 0x4 -+ - #define PCIE_MISC_PCIE_STATUS 0x4068 - #define STATUS_PCIE_PORT_MASK 0x80 - #define STATUS_PCIE_PORT_SHIFT 7 -@@ -89,9 +98,11 @@ - #define PCIE_MEM_WIN0_LIMIT_HI(win) \ - PCIE_MISC_CPU_2_PCIE_MEM_WIN0_LIMIT_HI + ((win) * 8) - --#define PCIE_MISC_HARD_PCIE_HARD_DEBUG 0x4204 - #define PCIE_HARD_DEBUG_SERDES_IDDQ_MASK 0x08000000 - -+#define PCIE_MISC_UBUS_BAR2_CONFIG_REMAP 0x40b4 -+#define PCIE_MISC_UBUS_BAR2_CONFIG_REMAP_ACCESS_ENABLE_MASK BIT(0) -+ - #define PCIE_MSI_INTR2_CLR 0x4508 - #define PCIE_MSI_INTR2_MASK_SET 0x4510 - -@@ -130,6 +141,26 @@ +@@ -49,6 +50,26 @@ #define SSC_STATUS_PLL_LOCK_MASK 0x800 #define SSC_STATUS_PLL_LOCK_SHIFT 11 -+#define HARD_DEBUG(pcie) ((pcie)->reg_offsets[PCIE_HARD_DEBUG]) ++#define HARD_DEBUG(pcie) ((pcie)->reg_offsets[PCIE_HARD_DEBUG]) + +struct brcm_pcie; + @@ -131,7 +132,7 @@ index f978c64365..df3e177629 100644 /** * struct brcm_pcie - the PCIe controller state * @base: Base address of memory mapped IO registers of the controller -@@ -140,8 +171,15 @@ +@@ -59,8 +80,15 @@ struct brcm_pcie { void __iomem *base; @@ -147,7 +148,7 @@ index f978c64365..df3e177629 100644 }; /** -@@ -367,6 +405,27 @@ static int brcm_pcie_set_ssc(void __iomem *base) +@@ -286,6 +314,27 @@ static int brcm_pcie_set_ssc(void __iomem *base) return ssc && pll ? 0 : -EIO; } @@ -175,16 +176,16 @@ index f978c64365..df3e177629 100644 /** * brcm_pcie_set_gen() - Limits operation to a specific generation (1, 2 or 3) * @pcie: pointer to the PCIe controller state -@@ -426,6 +485,52 @@ static void brcm_pcie_set_outbound_win(struct brcm_pcie *pcie, +@@ -345,6 +394,52 @@ static void brcm_pcie_set_outbound_win(struct brcm_pcie *pcie, writel(tmp, base + PCIE_MEM_WIN0_LIMIT_HI(win)); } +static int brcm_pcie_perst_set_generic(struct brcm_pcie *pcie, u32 val) +{ + if (val) -+ setbits_le32(pcie->base + PCIE_RGR1_SW_INIT_1, RGR1_SW_INIT_1_PERST_MASK); ++ setbits_le32(pcie->base + PCIE_RGR1_SW_INIT_1, PCIE_RGR1_SW_INIT_1_PERST_MASK); + else -+ clrbits_le32(pcie->base + PCIE_RGR1_SW_INIT_1, RGR1_SW_INIT_1_PERST_MASK); ++ clrbits_le32(pcie->base + PCIE_RGR1_SW_INIT_1, PCIE_RGR1_SW_INIT_1_PERST_MASK); + + return 0; +} @@ -207,9 +208,9 @@ index f978c64365..df3e177629 100644 + } + + if (val) -+ setbits_le32(pcie->base + PCIE_RGR1_SW_INIT_1, RGR1_SW_INIT_1_INIT_MASK); ++ setbits_le32(pcie->base + PCIE_RGR1_SW_INIT_1, PCIE_RGR1_SW_INIT_1_INIT_MASK); + else -+ clrbits_le32(pcie->base + PCIE_RGR1_SW_INIT_1, RGR1_SW_INIT_1_INIT_MASK); ++ clrbits_le32(pcie->base + PCIE_RGR1_SW_INIT_1, PCIE_RGR1_SW_INIT_1_INIT_MASK); + + return ret; +} @@ -228,7 +229,7 @@ index f978c64365..df3e177629 100644 static int brcm_pcie_probe(struct udevice *dev) { struct udevice *ctlr = pci_get_controller(dev); -@@ -441,13 +546,17 @@ static int brcm_pcie_probe(struct udevice *dev) +@@ -360,13 +455,17 @@ static int brcm_pcie_probe(struct udevice *dev) u16 nlw, cls, lnksta; u32 tmp; @@ -241,18 +242,18 @@ index f978c64365..df3e177629 100644 * This will need to be changed when support for other SoCs is added. */ - setbits_le32(base + PCIE_RGR1_SW_INIT_1, -- RGR1_SW_INIT_1_INIT_MASK | RGR1_SW_INIT_1_PERST_MASK); +- PCIE_RGR1_SW_INIT_1_INIT_MASK | PCIE_RGR1_SW_INIT_1_PERST_MASK); + pcie->perst_set(pcie, 1); + pcie->bridge_sw_init_set(pcie, 1); + /* * The delay is a safety precaution to preclude the reset signal * from looking like a glitch. -@@ -455,14 +564,26 @@ static int brcm_pcie_probe(struct udevice *dev) +@@ -374,14 +473,26 @@ static int brcm_pcie_probe(struct udevice *dev) udelay(100); /* Take the bridge out of reset */ -- clrbits_le32(base + PCIE_RGR1_SW_INIT_1, RGR1_SW_INIT_1_INIT_MASK); +- clrbits_le32(base + PCIE_RGR1_SW_INIT_1, PCIE_RGR1_SW_INIT_1_INIT_MASK); + pcie->bridge_sw_init_set(pcie, 0); - clrbits_le32(base + PCIE_MISC_HARD_PCIE_HARD_DEBUG, @@ -277,7 +278,7 @@ index f978c64365..df3e177629 100644 /* Set SCB_MAX_BURST_SIZE, CFG_READ_UR_MODE, SCB_ACCESS_EN */ clrsetbits_le32(base + PCIE_MISC_MISC_CTRL, MISC_CTRL_MAX_BURST_SIZE_MASK, -@@ -481,6 +602,13 @@ static int brcm_pcie_probe(struct udevice *dev) +@@ -400,6 +511,13 @@ static int brcm_pcie_probe(struct udevice *dev) writel(upper_32_bits(rc_bar2_offset), base + PCIE_MISC_RC_BAR2_CONFIG_HI); @@ -291,21 +292,21 @@ index f978c64365..df3e177629 100644 scb_size_val = rc_bar2_size ? ilog2(rc_bar2_size) - 15 : 0xf; /* 0xf is 1GB */ -@@ -507,8 +635,7 @@ static int brcm_pcie_probe(struct udevice *dev) +@@ -426,8 +544,7 @@ static int brcm_pcie_probe(struct udevice *dev) brcm_pcie_set_gen(pcie, pcie->gen); /* Unassert the fundamental reset */ - clrbits_le32(pcie->base + PCIE_RGR1_SW_INIT_1, -- RGR1_SW_INIT_1_PERST_MASK); +- PCIE_RGR1_SW_INIT_1_PERST_MASK); + pcie->perst_set(pcie, 0); /* * Wait for 100ms after PERST# deassertion; see PCIe CEM specification -@@ -595,20 +722,23 @@ static int brcm_pcie_remove(struct udevice *dev) +@@ -514,20 +631,23 @@ static int brcm_pcie_remove(struct udevice *dev) void __iomem *base = pcie->base; /* Assert fundamental reset */ -- setbits_le32(base + PCIE_RGR1_SW_INIT_1, RGR1_SW_INIT_1_PERST_MASK); +- setbits_le32(base + PCIE_RGR1_SW_INIT_1, PCIE_RGR1_SW_INIT_1_PERST_MASK); + pcie->perst_set(pcie, 1); /* Turn off SerDes */ @@ -314,7 +315,7 @@ index f978c64365..df3e177629 100644 PCIE_HARD_DEBUG_SERDES_IDDQ_MASK); /* Shutdown bridge */ -- setbits_le32(base + PCIE_RGR1_SW_INIT_1, RGR1_SW_INIT_1_INIT_MASK); +- setbits_le32(base + PCIE_RGR1_SW_INIT_1, PCIE_RGR1_SW_INIT_1_INIT_MASK); + /* On BCM2712 it will block access to the RESCAL, so don't do it. */ + if (pcie->soc_base != BCM2712) + pcie->bridge_sw_init_set(pcie, 1); @@ -328,7 +329,7 @@ index f978c64365..df3e177629 100644 struct brcm_pcie *pcie = dev_get_priv(dev); ofnode dn = dev_ofnode(dev); u32 max_link_speed; -@@ -619,6 +749,22 @@ static int brcm_pcie_of_to_plat(struct udevice *dev) +@@ -538,6 +658,22 @@ static int brcm_pcie_of_to_plat(struct udevice *dev) if (!pcie->base) return -EINVAL; @@ -351,7 +352,7 @@ index f978c64365..df3e177629 100644 pcie->ssc = ofnode_read_bool(dn, "brcm,enable-ssc"); ret = ofnode_read_u32(dn, "max-link-speed", &max_link_speed); -@@ -635,8 +781,31 @@ static const struct dm_pci_ops brcm_pcie_ops = { +@@ -554,8 +690,31 @@ static const struct dm_pci_ops brcm_pcie_ops = { .write_config = brcm_pcie_write_config, }; diff --git a/buildroot-external/board/raspberrypi/patches/uboot/2024.10/0011-ARM-bcm2835-add-BCM2712-config-option.patch b/buildroot-external/board/raspberrypi/patches/uboot/0011-ARM-bcm2835-add-BCM2712-config-option.patch similarity index 80% rename from buildroot-external/board/raspberrypi/patches/uboot/2024.10/0011-ARM-bcm2835-add-BCM2712-config-option.patch rename to buildroot-external/board/raspberrypi/patches/uboot/0011-ARM-bcm2835-add-BCM2712-config-option.patch index 14050152020..770505d52b6 100644 --- a/buildroot-external/board/raspberrypi/patches/uboot/2024.10/0011-ARM-bcm2835-add-BCM2712-config-option.patch +++ b/buildroot-external/board/raspberrypi/patches/uboot/0011-ARM-bcm2835-add-BCM2712-config-option.patch @@ -1,4 +1,4 @@ -From 61693f4e8db08d263c6036afeecd6d30e7b23660 Mon Sep 17 00:00:00 2001 +From 4302f18da75c7138ce8abc2c67eb6aaf0205e109 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= Date: Thu, 3 Oct 2024 11:09:53 +0200 Subject: [PATCH] ARM: bcm2835: add BCM2712 config option @@ -17,12 +17,12 @@ Signed-off-by: Jan Čermák 2 files changed, 7 insertions(+) diff --git a/arch/arm/mach-bcm283x/Kconfig b/arch/arm/mach-bcm283x/Kconfig -index b3287ce8bc..3b8672cfe0 100644 +index d9303e8c281..0adc881d238 100644 --- a/arch/arm/mach-bcm283x/Kconfig +++ b/arch/arm/mach-bcm283x/Kconfig -@@ -44,6 +44,11 @@ config BCM2711_64B - select BCM2711 - select ARM64 +@@ -56,6 +56,11 @@ config BCM2711_64B + select BLOBLIST_ALLOC if GENERATE_ACPI_TABLE + select BLOBLIST_TABLES if GENERATE_ACPI_TABLE +config BCM2712 + bool "Broadcom BCM2712 SoC support (64-bit only)" @@ -31,12 +31,12 @@ index b3287ce8bc..3b8672cfe0 100644 + menu "Broadcom BCM283X family" depends on ARCH_BCM283X - + choice diff --git a/drivers/pci/Kconfig b/drivers/pci/Kconfig -index 22a56f4ca3..6badc60d13 100644 +index 41901433e8c..89bc332b626 100644 --- a/drivers/pci/Kconfig +++ b/drivers/pci/Kconfig -@@ -386,6 +386,8 @@ config PCIE_DW_ROCKCHIP +@@ -392,6 +392,8 @@ config PCIE_DW_ROCKCHIP config PCI_BRCMSTB bool "Broadcom STB PCIe controller" depends on ARCH_BCM283X diff --git a/buildroot-external/board/raspberrypi/patches/uboot/2024.10/0012-pci-pcie-brcmstb-HACK-add-DT-property-for-skipping-d.patch b/buildroot-external/board/raspberrypi/patches/uboot/0012-pci-pcie-brcmstb-HACK-add-DT-property-for-skipping-d.patch similarity index 85% rename from buildroot-external/board/raspberrypi/patches/uboot/2024.10/0012-pci-pcie-brcmstb-HACK-add-DT-property-for-skipping-d.patch rename to buildroot-external/board/raspberrypi/patches/uboot/0012-pci-pcie-brcmstb-HACK-add-DT-property-for-skipping-d.patch index 03e055b2906..b8e25cd2502 100644 --- a/buildroot-external/board/raspberrypi/patches/uboot/2024.10/0012-pci-pcie-brcmstb-HACK-add-DT-property-for-skipping-d.patch +++ b/buildroot-external/board/raspberrypi/patches/uboot/0012-pci-pcie-brcmstb-HACK-add-DT-property-for-skipping-d.patch @@ -1,4 +1,4 @@ -From d613be9ca405b2e65ac03b137cf6351b1aae7154 Mon Sep 17 00:00:00 2001 +From 57a416a55ebd7ab43fbebd972f984470f7f71973 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= Date: Mon, 7 Oct 2024 15:13:40 +0200 Subject: [PATCH] pci: pcie-brcmstb: HACK - add DT property for skipping device @@ -21,10 +21,10 @@ Signed-off-by: Jan Čermák 1 file changed, 7 insertions(+) diff --git a/drivers/pci/pcie_brcmstb.c b/drivers/pci/pcie_brcmstb.c -index df3e177629..02d9e7a1b3 100644 +index 51b7351b8ce..cd2d395947a 100644 --- a/drivers/pci/pcie_brcmstb.c +++ b/drivers/pci/pcie_brcmstb.c -@@ -175,6 +175,7 @@ struct brcm_pcie { +@@ -84,6 +84,7 @@ struct brcm_pcie { enum pcie_soc_base soc_base; int gen; bool ssc; @@ -32,7 +32,7 @@ index df3e177629..02d9e7a1b3 100644 struct reset_ctl *rescal; struct reset_ctl *bridge_reset; -@@ -546,6 +547,11 @@ static int brcm_pcie_probe(struct udevice *dev) +@@ -455,6 +456,11 @@ static int brcm_pcie_probe(struct udevice *dev) u16 nlw, cls, lnksta; u32 tmp; @@ -44,7 +44,7 @@ index df3e177629..02d9e7a1b3 100644 if (pcie->rescal) reset_deassert(pcie->rescal); -@@ -766,6 +772,7 @@ static int brcm_pcie_of_to_plat(struct udevice *dev) +@@ -675,6 +681,7 @@ static int brcm_pcie_of_to_plat(struct udevice *dev) } pcie->ssc = ofnode_read_bool(dn, "brcm,enable-ssc"); diff --git a/buildroot-external/board/raspberrypi/patches/uboot/2024.01/0001-rpi-Use-CONFIG_OF_BOARD-instead-of-CONFIG_EMBED.patch b/buildroot-external/board/raspberrypi/patches/uboot/2024.01/0001-rpi-Use-CONFIG_OF_BOARD-instead-of-CONFIG_EMBED.patch deleted file mode 100644 index b0936eb9106..00000000000 --- a/buildroot-external/board/raspberrypi/patches/uboot/2024.01/0001-rpi-Use-CONFIG_OF_BOARD-instead-of-CONFIG_EMBED.patch +++ /dev/null @@ -1,82 +0,0 @@ -From 45df955b5aa0460b9c93f63fb4a38f10807c0694 Mon Sep 17 00:00:00 2001 -From: Pascal Vizeli -Date: Tue, 10 Dec 2019 09:48:46 +0000 -Subject: [PATCH] rpi: Use CONFIG_OF_BOARD instead of CONFIG_EMBED - -Signed-off-by: Pascal Vizeli ---- - configs/rpi_0_w_defconfig | 2 +- - configs/rpi_2_defconfig | 2 +- - configs/rpi_3_32b_defconfig | 2 +- - configs/rpi_3_defconfig | 2 +- - configs/rpi_defconfig | 2 +- - 5 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/configs/rpi_0_w_defconfig b/configs/rpi_0_w_defconfig -index ac3b40c1c1..e6765878d1 100644 ---- a/configs/rpi_0_w_defconfig -+++ b/configs/rpi_0_w_defconfig -@@ -24,7 +24,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 b6e06cfe20..0650344526 100644 ---- a/configs/rpi_2_defconfig -+++ b/configs/rpi_2_defconfig -@@ -25,7 +25,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 eadc418927..7f52b508c4 100644 ---- a/configs/rpi_3_32b_defconfig -+++ b/configs/rpi_3_32b_defconfig -@@ -24,7 +24,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 6890af4d1d..0767518279 100644 ---- a/configs/rpi_3_defconfig -+++ b/configs/rpi_3_defconfig -@@ -23,7 +23,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 29c10060cf..79b507405d 100644 ---- a/configs/rpi_defconfig -+++ b/configs/rpi_defconfig -@@ -24,7 +24,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.43.0 - diff --git a/buildroot-external/board/raspberrypi/patches/uboot/2024.01/0002-rpi-add-NVMe-to-boot-order.patch b/buildroot-external/board/raspberrypi/patches/uboot/2024.01/0002-rpi-add-NVMe-to-boot-order.patch deleted file mode 100644 index d169615ddfc..00000000000 --- a/buildroot-external/board/raspberrypi/patches/uboot/2024.01/0002-rpi-add-NVMe-to-boot-order.patch +++ /dev/null @@ -1,26 +0,0 @@ -From f53b9a545132686b0286ce166203a57935502dbc Mon Sep 17 00:00:00 2001 -From: Stefan Agner -Date: Tue, 29 Dec 2020 23:34:52 +0100 -Subject: [PATCH] rpi: add NVMe to boot order - -The Compute Module 4 I/O Board can support a NVMe. Add NVMe to the boot -order. - -Signed-off-by: Stefan Agner ---- - board/raspberrypi/rpi/rpi.env | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/board/raspberrypi/rpi/rpi.env b/board/raspberrypi/rpi/rpi.env -index 30228285ed..89f6c5a839 100644 ---- a/board/raspberrypi/rpi/rpi.env -+++ b/board/raspberrypi/rpi/rpi.env -@@ -74,4 +74,4 @@ pxefile_addr_r=0x02500000 - fdt_addr_r=0x02600000 - ramdisk_addr_r=0x02700000 - --boot_targets=mmc usb pxe dhcp -+boot_targets=mmc nvme usb pxe dhcp --- -2.43.0 - diff --git a/buildroot-external/board/raspberrypi/patches/uboot/2024.01/0003-Revert-nvme-Correct-the-prps-per-page-calculation-me.patch b/buildroot-external/board/raspberrypi/patches/uboot/2024.01/0003-Revert-nvme-Correct-the-prps-per-page-calculation-me.patch deleted file mode 100644 index 57c400ef979..00000000000 --- a/buildroot-external/board/raspberrypi/patches/uboot/2024.01/0003-Revert-nvme-Correct-the-prps-per-page-calculation-me.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 8e63cbe8892eb6edc02674d42078a9f116ee8224 Mon Sep 17 00:00:00 2001 -From: Stefan Agner -Date: Thu, 23 Sep 2021 23:43:31 +0200 -Subject: [PATCH] Revert "nvme: Correct the prps per page calculation method" - -This reverts commit 859b33c948945f7904f60a2c12a3792d356d51ad. - -If there is more than one PRP List the last entry is a pointer to -the next list. From the NVM Express specification: - -"The last entry within a memory page, as indicated by the memory page -size in the CC.MPS field, shall be a PRP List pointer if there is more -than a single memory page of data to be transferred." - -For the purpose of calculating the number of pages required for PRP -lists we should always assume that the last entry is required for -the next PRP list. - -Signed-off-by: Stefan Agner -Cc: Wesley Sheng ---- - drivers/nvme/nvme.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c -index c39cd41aa3..03a652863c 100644 ---- a/drivers/nvme/nvme.c -+++ b/drivers/nvme/nvme.c -@@ -53,7 +53,7 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2, - u64 *prp_pool; - int length = total_len; - int i, nprps; -- u32 prps_per_page = page_size >> 3; -+ u32 prps_per_page = (page_size >> 3) - 1; - u32 num_pages; - - length -= (page_size - offset); --- -2.43.0 - diff --git a/buildroot-external/board/raspberrypi/patches/uboot/2024.01/0004-usb-xhci-brcm-Make-driver-compatible-with-downstream.patch b/buildroot-external/board/raspberrypi/patches/uboot/2024.01/0004-usb-xhci-brcm-Make-driver-compatible-with-downstream.patch deleted file mode 100644 index 71c9fa17c5c..00000000000 --- a/buildroot-external/board/raspberrypi/patches/uboot/2024.01/0004-usb-xhci-brcm-Make-driver-compatible-with-downstream.patch +++ /dev/null @@ -1,30 +0,0 @@ -From c4f0a3c6147e7f8c32cb8806a0c2531b9d3852b7 Mon Sep 17 00:00:00 2001 -From: Stefan Agner -Date: Thu, 7 Oct 2021 12:02:39 +0200 -Subject: [PATCH] usb: xhci-brcm: Make driver compatible with downstream device - tree - -The downstream device tree uses just "generic-xhci" as compatible -string. Use this string to make U-Boot work with the downstream Kernel. - -Signed-off-by: Stefan Agner ---- - drivers/usb/host/xhci-brcm.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/usb/host/xhci-brcm.c b/drivers/usb/host/xhci-brcm.c -index fe17924028..0c6938187b 100644 ---- a/drivers/usb/host/xhci-brcm.c -+++ b/drivers/usb/host/xhci-brcm.c -@@ -82,7 +82,7 @@ static int xhci_brcm_deregister(struct udevice *dev) - } - - static const struct udevice_id xhci_brcm_ids[] = { -- { .compatible = "brcm,generic-xhci" }, -+ { .compatible = "generic-xhci" }, - { } - }; - --- -2.43.0 - diff --git a/buildroot-external/board/raspberrypi/patches/uboot/2024.01/0005-nvme-improve-readability-of-nvme_setup_prps.patch b/buildroot-external/board/raspberrypi/patches/uboot/2024.01/0005-nvme-improve-readability-of-nvme_setup_prps.patch deleted file mode 100644 index f42ce062581..00000000000 --- a/buildroot-external/board/raspberrypi/patches/uboot/2024.01/0005-nvme-improve-readability-of-nvme_setup_prps.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 66e2d5b7ba776587a4ebaca100f27798fa804c54 Mon Sep 17 00:00:00 2001 -From: Stefan Agner -Date: Thu, 23 Sep 2021 23:52:44 +0200 -Subject: [PATCH] nvme: improve readability of nvme_setup_prps() - -Improve readability by introducing consts, reuse consts where -appropriate and adding variables with discriptive name. - -Signed-off-by: Stefan Agner ---- - drivers/nvme/nvme.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c -index 03a652863c..5c4fbd08dc 100644 ---- a/drivers/nvme/nvme.c -+++ b/drivers/nvme/nvme.c -@@ -48,12 +48,12 @@ static int nvme_wait_csts(struct nvme_dev *dev, u32 mask, u32 val) - static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2, - int total_len, u64 dma_addr) - { -- u32 page_size = dev->page_size; -+ const u32 page_size = dev->page_size; -+ const u32 prps_per_page = (page_size >> 3) - 1; - int offset = dma_addr & (page_size - 1); - u64 *prp_pool; - int length = total_len; - int i, nprps; -- u32 prps_per_page = (page_size >> 3) - 1; - u32 num_pages; - - length -= (page_size - offset); -@@ -92,8 +92,8 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2, - i = 0; - while (nprps) { - if ((i == (prps_per_page - 1)) && nprps > 1) { -- *(prp_pool + i) = cpu_to_le64((ulong)prp_pool + -- page_size); -+ u64 next_prp_list = (u64)prp_pool + page_size; -+ *(prp_pool + i) = cpu_to_le64(next_prp_list); - i = 0; - prp_pool += page_size; - } --- -2.43.0 - diff --git a/buildroot-external/board/raspberrypi/patches/uboot/2024.01/0006-nvme-Use-pointer-for-CPU-addressed-buffers.patch b/buildroot-external/board/raspberrypi/patches/uboot/2024.01/0006-nvme-Use-pointer-for-CPU-addressed-buffers.patch deleted file mode 100644 index 905e5613e78..00000000000 --- a/buildroot-external/board/raspberrypi/patches/uboot/2024.01/0006-nvme-Use-pointer-for-CPU-addressed-buffers.patch +++ /dev/null @@ -1,261 +0,0 @@ -From 4e7236a0e4a75dfca366ffc4ffb23a4bd43a52e7 Mon Sep 17 00:00:00 2001 -From: Stefan Agner -Date: Thu, 23 Sep 2021 23:58:35 +0200 -Subject: [PATCH] nvme: Use pointer for CPU addressed buffers - -Pass buffers which use CPU addressing as void pointers. This aligns with -DMA APIs which use void pointers as argument. It will avoid unnecessary -type casts when adding support bus address translations. - -Signed-off-by: Stefan Agner ---- - drivers/nvme/nvme.c | 50 ++++++++++++++++++++-------------------- - drivers/nvme/nvme_show.c | 4 ++-- - include/nvme.h | 12 +++++----- - 3 files changed, 33 insertions(+), 33 deletions(-) - -diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c -index 5c4fbd08dc..43ef819d11 100644 ---- a/drivers/nvme/nvme.c -+++ b/drivers/nvme/nvme.c -@@ -46,11 +46,11 @@ static int nvme_wait_csts(struct nvme_dev *dev, u32 mask, u32 val) - } - - static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2, -- int total_len, u64 dma_addr) -+ int total_len, void *buffer) - { - const u32 page_size = dev->page_size; - const u32 prps_per_page = (page_size >> 3) - 1; -- int offset = dma_addr & (page_size - 1); -+ int offset = (uintptr_t)buffer & (page_size - 1); - u64 *prp_pool; - int length = total_len; - int i, nprps; -@@ -64,10 +64,10 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2, - } - - if (length) -- dma_addr += (page_size - offset); -+ buffer += (page_size - offset); - - if (length <= page_size) { -- *prp2 = dma_addr; -+ *prp2 = (u64)buffer; - return 0; - } - -@@ -97,11 +97,11 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2, - i = 0; - prp_pool += page_size; - } -- *(prp_pool + i++) = cpu_to_le64(dma_addr); -- dma_addr += page_size; -+ *(prp_pool + i++) = cpu_to_le64((u64)buffer); -+ buffer += page_size; - nprps--; - } -- *prp2 = (ulong)dev->prp_pool; -+ *prp2 = (u64)dev->prp_pool; - - flush_dcache_range((ulong)dev->prp_pool, (ulong)dev->prp_pool + - num_pages * page_size); -@@ -448,42 +448,42 @@ static int nvme_alloc_sq(struct nvme_dev *dev, u16 qid, - } - - int nvme_identify(struct nvme_dev *dev, unsigned nsid, -- unsigned cns, dma_addr_t dma_addr) -+ unsigned int cns, void *buffer) - { - struct nvme_command c; - u32 page_size = dev->page_size; -- int offset = dma_addr & (page_size - 1); -+ int offset = (uintptr_t)buffer & (page_size - 1); - int length = sizeof(struct nvme_id_ctrl); - int ret; - - memset(&c, 0, sizeof(c)); - c.identify.opcode = nvme_admin_identify; - c.identify.nsid = cpu_to_le32(nsid); -- c.identify.prp1 = cpu_to_le64(dma_addr); -+ c.identify.prp1 = cpu_to_le64((u64)buffer); - - length -= (page_size - offset); - if (length <= 0) { - c.identify.prp2 = 0; - } else { -- dma_addr += (page_size - offset); -- c.identify.prp2 = cpu_to_le64(dma_addr); -+ buffer += (page_size - offset); -+ c.identify.prp2 = cpu_to_le64((u64)buffer); - } - - c.identify.cns = cpu_to_le32(cns); - -- invalidate_dcache_range(dma_addr, -- dma_addr + sizeof(struct nvme_id_ctrl)); -+ invalidate_dcache_range((uintptr_t)buffer, -+ (uintptr_t)buffer + sizeof(struct nvme_id_ctrl)); - - ret = nvme_submit_admin_cmd(dev, &c, NULL); - if (!ret) -- invalidate_dcache_range(dma_addr, -- dma_addr + sizeof(struct nvme_id_ctrl)); -+ invalidate_dcache_range((uintptr_t)buffer, -+ (uintptr_t)buffer + sizeof(struct nvme_id_ctrl)); - - return ret; - } - - int nvme_get_features(struct nvme_dev *dev, unsigned fid, unsigned nsid, -- dma_addr_t dma_addr, u32 *result) -+ void *buffer, u32 *result) - { - struct nvme_command c; - int ret; -@@ -491,7 +491,7 @@ int nvme_get_features(struct nvme_dev *dev, unsigned fid, unsigned nsid, - memset(&c, 0, sizeof(c)); - c.features.opcode = nvme_admin_get_features; - c.features.nsid = cpu_to_le32(nsid); -- c.features.prp1 = cpu_to_le64(dma_addr); -+ c.features.prp1 = cpu_to_le64((u64)buffer); - c.features.fid = cpu_to_le32(fid); - - ret = nvme_submit_admin_cmd(dev, &c, result); -@@ -511,13 +511,13 @@ int nvme_get_features(struct nvme_dev *dev, unsigned fid, unsigned nsid, - } - - int nvme_set_features(struct nvme_dev *dev, unsigned fid, unsigned dword11, -- dma_addr_t dma_addr, u32 *result) -+ void *buffer, u32 *result) - { - struct nvme_command c; - - memset(&c, 0, sizeof(c)); - c.features.opcode = nvme_admin_set_features; -- c.features.prp1 = cpu_to_le64(dma_addr); -+ c.features.prp1 = cpu_to_le64((u64)buffer); - c.features.fid = cpu_to_le32(fid); - c.features.dword11 = cpu_to_le32(dword11); - -@@ -568,7 +568,7 @@ static int nvme_set_queue_count(struct nvme_dev *dev, int count) - u32 q_count = (count - 1) | ((count - 1) << 16); - - status = nvme_set_features(dev, NVME_FEAT_NUM_QUEUES, -- q_count, 0, &result); -+ q_count, NULL, &result); - - if (status < 0) - return status; -@@ -629,7 +629,7 @@ static int nvme_get_info_from_identify(struct nvme_dev *dev) - if (!ctrl) - return -ENOMEM; - -- ret = nvme_identify(dev, 0, 1, (dma_addr_t)(long)ctrl); -+ ret = nvme_identify(dev, 0, 1, ctrl); - if (ret) { - free(ctrl); - return -EIO; -@@ -717,7 +717,7 @@ static int nvme_blk_probe(struct udevice *udev) - ns->dev = ndev; - /* extract the namespace id from the block device name */ - ns->ns_id = trailing_strtol(udev->name); -- if (nvme_identify(ndev, ns->ns_id, 0, (dma_addr_t)(long)id)) { -+ if (nvme_identify(ndev, ns->ns_id, 0, id)) { - free(id); - return -EIO; - } -@@ -751,7 +751,7 @@ static ulong nvme_blk_rw(struct udevice *udev, lbaint_t blknr, - u64 prp2; - u64 total_len = blkcnt << desc->log2blksz; - u64 temp_len = total_len; -- uintptr_t temp_buffer = (uintptr_t)buffer; -+ void *temp_buffer = buffer; - - u64 slba = blknr; - u16 lbas = 1 << (dev->max_transfer_shift - ns->lba_shift); -@@ -889,7 +889,7 @@ int nvme_init(struct udevice *udev) - char name[20]; - - memset(id, 0, sizeof(*id)); -- if (nvme_identify(ndev, i, 0, (dma_addr_t)(long)id)) { -+ if (nvme_identify(ndev, i, 0, id)) { - ret = -EIO; - goto free_id; - } -diff --git a/drivers/nvme/nvme_show.c b/drivers/nvme/nvme_show.c -index 72cbac82bc..ac9b5cc9bd 100644 ---- a/drivers/nvme/nvme_show.c -+++ b/drivers/nvme/nvme_show.c -@@ -114,7 +114,7 @@ int nvme_print_info(struct udevice *udev) - if (!ctrl) - return -ENOMEM; - -- if (nvme_identify(dev, 0, 1, (dma_addr_t)(long)ctrl)) { -+ if (nvme_identify(dev, 0, 1, ctrl)) { - ret = -EIO; - goto free_ctrl; - } -@@ -129,7 +129,7 @@ int nvme_print_info(struct udevice *udev) - goto free_ctrl; - } - -- if (nvme_identify(dev, ns->ns_id, 0, (dma_addr_t)(long)id)) { -+ if (nvme_identify(dev, ns->ns_id, 0, id)) { - ret = -EIO; - goto free_id; - } -diff --git a/include/nvme.h b/include/nvme.h -index 2cdf8ce320..8ff823cd81 100644 ---- a/include/nvme.h -+++ b/include/nvme.h -@@ -18,12 +18,12 @@ struct nvme_dev; - * @dev: NVMe controller device - * @nsid: 0 for controller, namespace id for namespace to identify - * @cns: 1 for controller, 0 for namespace -- * @dma_addr: dma buffer address to store the identify result -+ * @buffer: dma buffer address to store the identify result - * @return: 0 on success, -ETIMEDOUT on command execution timeout, - * -EIO on command execution fails - */ - int nvme_identify(struct nvme_dev *dev, unsigned nsid, -- unsigned cns, dma_addr_t dma_addr); -+ unsigned int cns, void *buffer); - - /** - * nvme_get_features - retrieve the attributes of the feature specified -@@ -33,13 +33,13 @@ int nvme_identify(struct nvme_dev *dev, unsigned nsid, - * @dev: NVMe controller device - * @fid: feature id to provide data - * @nsid: namespace id the command applies to -- * @dma_addr: data structure used as part of the specified feature -+ * @buffer: data structure used as part of the specified feature - * @result: command-specific result in the completion queue entry - * @return: 0 on success, -ETIMEDOUT on command execution timeout, - * -EIO on command execution fails - */ - int nvme_get_features(struct nvme_dev *dev, unsigned fid, unsigned nsid, -- dma_addr_t dma_addr, u32 *result); -+ void *buffer, u32 *result); - - /** - * nvme_set_features - specify the attributes of the feature indicated -@@ -49,13 +49,13 @@ int nvme_get_features(struct nvme_dev *dev, unsigned fid, unsigned nsid, - * @dev: NVMe controller device - * @fid: feature id to provide data - * @dword11: command-specific input parameter -- * @dma_addr: data structure used as part of the specified feature -+ * @buffer: data structure used as part of the specified feature - * @result: command-specific result in the completion queue entry - * @return: 0 on success, -ETIMEDOUT on command execution timeout, - * -EIO on command execution fails - */ - int nvme_set_features(struct nvme_dev *dev, unsigned fid, unsigned dword11, -- dma_addr_t dma_addr, u32 *result); -+ void *buffer, u32 *result); - - /** - * nvme_scan_namespace - scan all namespaces attached to NVMe controllers --- -2.43.0 - diff --git a/buildroot-external/board/raspberrypi/patches/uboot/2024.01/0007-nvme-translate-virtual-addresses-into-the-bus-s-addr.patch b/buildroot-external/board/raspberrypi/patches/uboot/2024.01/0007-nvme-translate-virtual-addresses-into-the-bus-s-addr.patch deleted file mode 100644 index 746327eff08..00000000000 --- a/buildroot-external/board/raspberrypi/patches/uboot/2024.01/0007-nvme-translate-virtual-addresses-into-the-bus-s-addr.patch +++ /dev/null @@ -1,173 +0,0 @@ -From f992eee16640831a3b2d8c093395a4dcaceff647 Mon Sep 17 00:00:00 2001 -From: Stefan Agner -Date: Fri, 24 Sep 2021 00:27:39 +0200 -Subject: [PATCH] nvme: translate virtual addresses into the bus's address - space - -So far we've been content with passing physical/CPU addresses when -configuring memory addresses into NVMe controllers, but not all -platforms have buses with transparent mappings. Specifically the -Raspberry Pi 4 might introduce an offset to memory accesses incoming -from its PCIe port. - -Introduce nvme_virt_to_bus() and nvme_bus_to_virt() to cater with these -limitations, and make sure we don't break non DM users. -For devices where PCIe's view of host memory doesn't match the memory -as seen by the CPU. - -A similar change has been introduced for XHCI controller with -commit 1a474559d90a ("xhci: translate virtual addresses into the bus's -address space"). - -Signed-off-by: Stefan Agner ---- - drivers/nvme/nvme.c | 31 +++++++++++++++++-------------- - drivers/nvme/nvme.h | 8 ++++++++ - 2 files changed, 25 insertions(+), 14 deletions(-) - -diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c -index 43ef819d11..9cd9037630 100644 ---- a/drivers/nvme/nvme.c -+++ b/drivers/nvme/nvme.c -@@ -67,7 +67,7 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2, - buffer += (page_size - offset); - - if (length <= page_size) { -- *prp2 = (u64)buffer; -+ *prp2 = nvme_virt_to_bus(dev, buffer); - return 0; - } - -@@ -92,16 +92,16 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2, - i = 0; - while (nprps) { - if ((i == (prps_per_page - 1)) && nprps > 1) { -- u64 next_prp_list = (u64)prp_pool + page_size; -- *(prp_pool + i) = cpu_to_le64(next_prp_list); -+ u64 next = nvme_virt_to_bus(dev, prp_pool + page_size); -+ *(prp_pool + i) = cpu_to_le64(next); - i = 0; - prp_pool += page_size; - } -- *(prp_pool + i++) = cpu_to_le64((u64)buffer); -+ *(prp_pool + i++) = cpu_to_le64(nvme_virt_to_bus(dev, buffer)); - buffer += page_size; - nprps--; - } -- *prp2 = (u64)dev->prp_pool; -+ *prp2 = nvme_virt_to_bus(dev, dev->prp_pool); - - flush_dcache_range((ulong)dev->prp_pool, (ulong)dev->prp_pool + - num_pages * page_size); -@@ -354,6 +354,7 @@ static int nvme_configure_admin_queue(struct nvme_dev *dev) - int result; - u32 aqa; - u64 cap = dev->cap; -+ u64 dma_addr; - struct nvme_queue *nvmeq; - /* most architectures use 4KB as the page size */ - unsigned page_shift = 12; -@@ -394,8 +395,10 @@ static int nvme_configure_admin_queue(struct nvme_dev *dev) - dev->ctrl_config |= NVME_CC_IOSQES | NVME_CC_IOCQES; - - writel(aqa, &dev->bar->aqa); -- nvme_writeq((ulong)nvmeq->sq_cmds, &dev->bar->asq); -- nvme_writeq((ulong)nvmeq->cqes, &dev->bar->acq); -+ dma_addr = nvme_virt_to_bus(dev, nvmeq->sq_cmds); -+ nvme_writeq(dma_addr, &dev->bar->asq); -+ dma_addr = nvme_virt_to_bus(dev, nvmeq->cqes); -+ nvme_writeq(dma_addr, &dev->bar->acq); - - result = nvme_enable_ctrl(dev); - if (result) -@@ -421,7 +424,7 @@ static int nvme_alloc_cq(struct nvme_dev *dev, u16 qid, - - memset(&c, 0, sizeof(c)); - c.create_cq.opcode = nvme_admin_create_cq; -- c.create_cq.prp1 = cpu_to_le64((ulong)nvmeq->cqes); -+ c.create_cq.prp1 = cpu_to_le64(nvme_virt_to_bus(dev, nvmeq->cqes)); - c.create_cq.cqid = cpu_to_le16(qid); - c.create_cq.qsize = cpu_to_le16(nvmeq->q_depth - 1); - c.create_cq.cq_flags = cpu_to_le16(flags); -@@ -438,7 +441,7 @@ static int nvme_alloc_sq(struct nvme_dev *dev, u16 qid, - - memset(&c, 0, sizeof(c)); - c.create_sq.opcode = nvme_admin_create_sq; -- c.create_sq.prp1 = cpu_to_le64((ulong)nvmeq->sq_cmds); -+ c.create_sq.prp1 = cpu_to_le64(nvme_virt_to_bus(dev, nvmeq->sq_cmds)); - c.create_sq.sqid = cpu_to_le16(qid); - c.create_sq.qsize = cpu_to_le16(nvmeq->q_depth - 1); - c.create_sq.sq_flags = cpu_to_le16(flags); -@@ -459,14 +462,14 @@ int nvme_identify(struct nvme_dev *dev, unsigned nsid, - memset(&c, 0, sizeof(c)); - c.identify.opcode = nvme_admin_identify; - c.identify.nsid = cpu_to_le32(nsid); -- c.identify.prp1 = cpu_to_le64((u64)buffer); -+ c.identify.prp1 = cpu_to_le64(nvme_virt_to_bus(dev, buffer)); - - length -= (page_size - offset); - if (length <= 0) { - c.identify.prp2 = 0; - } else { - buffer += (page_size - offset); -- c.identify.prp2 = cpu_to_le64((u64)buffer); -+ c.identify.prp2 = cpu_to_le64(nvme_virt_to_bus(dev, buffer)); - } - - c.identify.cns = cpu_to_le32(cns); -@@ -491,7 +494,7 @@ int nvme_get_features(struct nvme_dev *dev, unsigned fid, unsigned nsid, - memset(&c, 0, sizeof(c)); - c.features.opcode = nvme_admin_get_features; - c.features.nsid = cpu_to_le32(nsid); -- c.features.prp1 = cpu_to_le64((u64)buffer); -+ c.features.prp1 = cpu_to_le64(nvme_virt_to_bus(dev, buffer)); - c.features.fid = cpu_to_le32(fid); - - ret = nvme_submit_admin_cmd(dev, &c, result); -@@ -517,7 +520,7 @@ int nvme_set_features(struct nvme_dev *dev, unsigned fid, unsigned dword11, - - memset(&c, 0, sizeof(c)); - c.features.opcode = nvme_admin_set_features; -- c.features.prp1 = cpu_to_le64((u64)buffer); -+ c.features.prp1 = cpu_to_le64(nvme_virt_to_bus(dev, buffer)); - c.features.fid = cpu_to_le32(fid); - c.features.dword11 = cpu_to_le32(dword11); - -@@ -784,7 +787,7 @@ static ulong nvme_blk_rw(struct udevice *udev, lbaint_t blknr, - c.rw.slba = cpu_to_le64(slba); - slba += lbas; - c.rw.length = cpu_to_le16(lbas - 1); -- c.rw.prp1 = cpu_to_le64(temp_buffer); -+ c.rw.prp1 = cpu_to_le64(nvme_virt_to_bus(dev, temp_buffer)); - c.rw.prp2 = cpu_to_le64(prp2); - status = nvme_submit_sync_cmd(dev->queues[NVME_IO_Q], - &c, NULL, IO_TIMEOUT); -diff --git a/drivers/nvme/nvme.h b/drivers/nvme/nvme.h -index bc1d612dde..f52103c009 100644 ---- a/drivers/nvme/nvme.h -+++ b/drivers/nvme/nvme.h -@@ -7,8 +7,11 @@ - #ifndef __DRIVER_NVME_H__ - #define __DRIVER_NVME_H__ - -+#include - #include - -+#define nvme_to_dev(_dev) _dev->udev -+ - struct nvme_id_power_state { - __le16 max_power; /* centiwatts */ - __u8 rsvd2; -@@ -705,4 +708,9 @@ int nvme_init(struct udevice *udev); - */ - int nvme_shutdown(struct udevice *udev); - -+static inline dma_addr_t nvme_virt_to_bus(struct nvme_dev *dev, void *addr) -+{ -+ return dev_phys_to_bus(nvme_to_dev(dev)->parent, virt_to_phys(addr)); -+} -+ - #endif /* __DRIVER_NVME_H__ */ --- -2.43.0 - diff --git a/buildroot-external/board/raspberrypi/patches/uboot/2024.01/0008-Revert-pci-Check-region-ranges-are-addressable.patch b/buildroot-external/board/raspberrypi/patches/uboot/2024.01/0008-Revert-pci-Check-region-ranges-are-addressable.patch deleted file mode 100644 index dd8529340a1..00000000000 --- a/buildroot-external/board/raspberrypi/patches/uboot/2024.01/0008-Revert-pci-Check-region-ranges-are-addressable.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 5743e55d697959bcdcb58744bfc75d2fa99cca61 Mon Sep 17 00:00:00 2001 -From: Stefan Agner -Date: Mon, 24 Apr 2023 15:44:15 +0200 -Subject: [PATCH] Revert "pci: Check region ranges are addressable" - -This reverts commit ec8eba8c2d4e10e77699c56918d2078210aa1339. - -This commit seems to cause boot hangs when USB via XHCI is enabled on -Raspberry Pi 4 32-bit. Reverting the commit fixes USB device detection -and makes the devices boot again. - -Signed-off-by: Stefan Agner ---- - drivers/pci/pci-uclass.c | 17 +---------------- - 1 file changed, 1 insertion(+), 16 deletions(-) - -diff --git a/drivers/pci/pci-uclass.c b/drivers/pci/pci-uclass.c -index e0d01f6a85..ed3513480a 100644 ---- a/drivers/pci/pci-uclass.c -+++ b/drivers/pci/pci-uclass.c -@@ -1039,22 +1039,7 @@ static int decode_regions(struct pci_controller *hose, ofnode parent_node, - - if (!IS_ENABLED(CONFIG_SYS_PCI_64BIT) && - type == PCI_REGION_MEM && upper_32_bits(pci_addr)) { -- debug(" - pci_addr beyond the 32-bit boundary, ignoring\n"); -- continue; -- } -- -- if (!IS_ENABLED(CONFIG_PHYS_64BIT) && upper_32_bits(addr)) { -- debug(" - addr beyond the 32-bit boundary, ignoring\n"); -- continue; -- } -- -- if (~((pci_addr_t)0) - pci_addr < size) { -- debug(" - PCI range exceeds max address, ignoring\n"); -- continue; -- } -- -- if (~((phys_addr_t)0) - addr < size) { -- debug(" - phys range exceeds max address, ignoring\n"); -+ debug(" - beyond the 32-bit boundary, ignoring\n"); - continue; - } - --- -2.43.0 - diff --git a/buildroot-external/board/raspberrypi/yellow/patches/uboot/0001-drivers-bcm283x-don-t-explicitly-disable-init.patch b/buildroot-external/board/raspberrypi/yellow/patches/uboot/0001-drivers-bcm283x-don-t-explicitly-disable-init.patch index fee8f7ca66b..73868de60df 100644 --- a/buildroot-external/board/raspberrypi/yellow/patches/uboot/0001-drivers-bcm283x-don-t-explicitly-disable-init.patch +++ b/buildroot-external/board/raspberrypi/yellow/patches/uboot/0001-drivers-bcm283x-don-t-explicitly-disable-init.patch @@ -1,5 +1,4 @@ -From d93052cd62449759535c295d5b77dbd73d644478 Mon Sep 17 00:00:00 2001 -Message-ID: +From c3b3682d6314eee9b7d42926f96e1559b8bb91dd Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Thu, 14 Apr 2022 12:15:26 +0200 Subject: [PATCH] drivers: bcm283x: don't explicitly disable init @@ -19,10 +18,10 @@ Signed-off-by: Stefan Agner 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/serial/serial_bcm283x_pl011.c b/drivers/serial/serial_bcm283x_pl011.c -index 09a9868a38..cad24aab08 100644 +index 2abc1c4658f..cfafa5fed91 100644 --- a/drivers/serial/serial_bcm283x_pl011.c +++ b/drivers/serial/serial_bcm283x_pl011.c -@@ -51,12 +51,6 @@ static int bcm283x_pl011_serial_probe(struct udevice *dev) +@@ -50,12 +50,6 @@ static int bcm283x_pl011_serial_probe(struct udevice *dev) if (ret) return ret; @@ -36,7 +35,7 @@ index 09a9868a38..cad24aab08 100644 } diff --git a/include/configs/rpi.h b/include/configs/rpi.h -index 8e56bdc84a..c137bd7e19 100644 +index 8e56bdc84a8..c137bd7e19a 100644 --- a/include/configs/rpi.h +++ b/include/configs/rpi.h @@ -31,4 +31,7 @@ @@ -47,6 +46,3 @@ index 8e56bdc84a..c137bd7e19 100644 +#define CFG_PL011_CLOCK 48000000 + #endif --- -2.43.0 - diff --git a/buildroot-external/board/raspberrypi/yellow/patches/uboot/0002-drivers-bcm283x-allow-to-spawn-any-PL011-UART.patch b/buildroot-external/board/raspberrypi/yellow/patches/uboot/0002-drivers-bcm283x-allow-to-spawn-any-PL011-UART.patch index cfba22d4faf..3951aa6697b 100644 --- a/buildroot-external/board/raspberrypi/yellow/patches/uboot/0002-drivers-bcm283x-allow-to-spawn-any-PL011-UART.patch +++ b/buildroot-external/board/raspberrypi/yellow/patches/uboot/0002-drivers-bcm283x-allow-to-spawn-any-PL011-UART.patch @@ -1,7 +1,4 @@ -From 6ec30bbcaff0f45ce9a25f75e741eb3971d457b9 Mon Sep 17 00:00:00 2001 -Message-ID: <6ec30bbcaff0f45ce9a25f75e741eb3971d457b9.1705959834.git.stefan@agner.ch> -In-Reply-To: -References: +From a13e5a0ea3fcb66663d5aa641aaaa59de5b7c6a5 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Thu, 14 Apr 2022 12:18:41 +0200 Subject: [PATCH] drivers: bcm283x: allow to spawn any PL011 UART @@ -22,10 +19,10 @@ Signed-off-by: Stefan Agner 1 file changed, 27 deletions(-) diff --git a/drivers/serial/serial_bcm283x_pl011.c b/drivers/serial/serial_bcm283x_pl011.c -index cad24aab08..1ca2c5d831 100644 +index cfafa5fed91..31d854189c5 100644 --- a/drivers/serial/serial_bcm283x_pl011.c +++ b/drivers/serial/serial_bcm283x_pl011.c -@@ -11,37 +11,10 @@ +@@ -10,37 +10,10 @@ #include #include "serial_pl01x_internal.h" @@ -63,6 +60,3 @@ index cad24aab08..1ca2c5d831 100644 /* * Read the ofdata here rather than in an of_to_plat() method * since we need the soc simple-bus to be probed so that the 'ranges' --- -2.43.0 - diff --git a/buildroot-external/bootloader/uboot.config b/buildroot-external/bootloader/uboot.config index 2a21c6d811b..fa6458e5db7 100644 --- a/buildroot-external/bootloader/uboot.config +++ b/buildroot-external/bootloader/uboot.config @@ -18,3 +18,6 @@ CONFIG_CMD_SETEXPR=y CONFIG_CMD_FILEENV=y CONFIG_CMD_SQUASHFS=y CONFIG_LZO=y +# CONFIG_DFU is not set +# CONFIG_CMD_DFU is not set +# CONFIG_TOOLS_MKEFICAPSULE is not set diff --git a/buildroot-external/configs/green_defconfig b/buildroot-external/configs/green_defconfig index 4f5591282af..93d3fa42d4b 100755 --- a/buildroot-external/configs/green_defconfig +++ b/buildroot-external/configs/green_defconfig @@ -141,7 +141,7 @@ BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144 BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.01" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="green" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/nabucasa/green/uboot.config" BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y diff --git a/buildroot-external/configs/khadas_vim3_defconfig b/buildroot-external/configs/khadas_vim3_defconfig index 47b0135fcad..fb6cc313d41 100644 --- a/buildroot-external/configs/khadas_vim3_defconfig +++ b/buildroot-external/configs/khadas_vim3_defconfig @@ -136,7 +136,7 @@ BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144 BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.01" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="khadas-vim3" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/khadas/vim3/uboot.config" BR2_PACKAGE_HOST_DOSFSTOOLS=y diff --git a/buildroot-external/configs/odroid_c2_defconfig b/buildroot-external/configs/odroid_c2_defconfig index 4f4fc585141..dc813a02475 100644 --- a/buildroot-external/configs/odroid_c2_defconfig +++ b/buildroot-external/configs/odroid_c2_defconfig @@ -4,7 +4,7 @@ BR2_DL_DIR="/cache/dl" BR2_CCACHE=y BR2_CCACHE_DIR="/cache/cc" BR2_ENABLE_LTO=y -BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_HASSOS_PATH)/patches $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/patches" +BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_HASSOS_PATH)/patches $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/patches-meson" BR2_SSP_REGULAR=y BR2_TARGET_GENERIC_HOSTNAME="homeassistant" BR2_TARGET_GENERIC_ISSUE="Welcome to Home Assistant" @@ -136,7 +136,7 @@ BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144 BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.01" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="odroid-c2" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-c2/uboot.config" BR2_PACKAGE_HOST_DOSFSTOOLS=y diff --git a/buildroot-external/configs/odroid_c4_defconfig b/buildroot-external/configs/odroid_c4_defconfig index fd41cba2cd4..fe6529185c4 100644 --- a/buildroot-external/configs/odroid_c4_defconfig +++ b/buildroot-external/configs/odroid_c4_defconfig @@ -4,7 +4,7 @@ BR2_DL_DIR="/cache/dl" BR2_CCACHE=y BR2_CCACHE_DIR="/cache/cc" BR2_ENABLE_LTO=y -BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_HASSOS_PATH)/patches $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/patches" +BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_HASSOS_PATH)/patches $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/patches-meson" BR2_SSP_REGULAR=y BR2_TARGET_GENERIC_HOSTNAME="homeassistant" BR2_TARGET_GENERIC_ISSUE="Welcome to Home Assistant" @@ -134,7 +134,7 @@ BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144 BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.01" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="odroid-c4" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-c4/uboot.config" BR2_PACKAGE_HOST_DOSFSTOOLS=y diff --git a/buildroot-external/configs/odroid_m1_defconfig b/buildroot-external/configs/odroid_m1_defconfig index 1d8e203831d..8f371d994c3 100644 --- a/buildroot-external/configs/odroid_m1_defconfig +++ b/buildroot-external/configs/odroid_m1_defconfig @@ -4,7 +4,7 @@ BR2_DL_DIR="/cache/dl" BR2_CCACHE=y BR2_CCACHE_DIR="/cache/cc" BR2_ENABLE_LTO=y -BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_HASSOS_PATH)/patches $(BR2_EXTERNAL_HASSOS_PATH)/patches-rockchip $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-m1/patches" +BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_HASSOS_PATH)/patches $(BR2_EXTERNAL_HASSOS_PATH)/patches-rockchip" BR2_SSP_REGULAR=y BR2_TARGET_GENERIC_HOSTNAME="homeassistant" BR2_TARGET_GENERIC_ISSUE="Welcome to Home Assistant" @@ -136,7 +136,7 @@ BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144 BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.01" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="odroid-m1-rk3568" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-m1/uboot.config" BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y diff --git a/buildroot-external/configs/odroid_m1s_defconfig b/buildroot-external/configs/odroid_m1s_defconfig index c16a7882b8f..db1753d047a 100644 --- a/buildroot-external/configs/odroid_m1s_defconfig +++ b/buildroot-external/configs/odroid_m1s_defconfig @@ -136,7 +136,7 @@ BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144 BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.01" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="odroid-m1s-rk3566" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-m1s/uboot.config" BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y diff --git a/buildroot-external/configs/odroid_n2_defconfig b/buildroot-external/configs/odroid_n2_defconfig index 34be74af293..7e1e4fa7a36 100644 --- a/buildroot-external/configs/odroid_n2_defconfig +++ b/buildroot-external/configs/odroid_n2_defconfig @@ -4,7 +4,7 @@ BR2_DL_DIR="/cache/dl" BR2_CCACHE=y BR2_CCACHE_DIR="/cache/cc" BR2_ENABLE_LTO=y -BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_HASSOS_PATH)/patches $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/patches" +BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_HASSOS_PATH)/patches $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/patches-meson" BR2_SSP_REGULAR=y BR2_TARGET_GENERIC_HOSTNAME="homeassistant" BR2_TARGET_GENERIC_ISSUE="Welcome to Home Assistant" @@ -136,7 +136,7 @@ BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144 BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.01" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="odroid-n2" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-n2/uboot.config" BR2_PACKAGE_HOST_DOSFSTOOLS=y diff --git a/buildroot-external/configs/odroid_xu4_defconfig b/buildroot-external/configs/odroid_xu4_defconfig index 5ba78859d8e..0470c56d326 100644 --- a/buildroot-external/configs/odroid_xu4_defconfig +++ b/buildroot-external/configs/odroid_xu4_defconfig @@ -5,7 +5,7 @@ BR2_DL_DIR="/cache/dl" BR2_CCACHE=y BR2_CCACHE_DIR="/cache/cc" BR2_ENABLE_LTO=y -BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_HASSOS_PATH)/patches $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/patches $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-xu4/patches" +BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_HASSOS_PATH)/patches $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-xu4/patches" BR2_SSP_REGULAR=y BR2_TARGET_GENERIC_HOSTNAME="homeassistant" BR2_TARGET_GENERIC_ISSUE="Welcome to Home Assistant" @@ -136,7 +136,7 @@ BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144 BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.01" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="odroid-xu3" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-xu4/uboot.config" BR2_TARGET_UBOOT_NEEDS_DTC=y diff --git a/buildroot-external/configs/rpi2_defconfig b/buildroot-external/configs/rpi2_defconfig index d08d4c193b8..915ebfaca83 100644 --- a/buildroot-external/configs/rpi2_defconfig +++ b/buildroot-external/configs/rpi2_defconfig @@ -139,7 +139,7 @@ BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144 BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.01" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_2" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config" BR2_PACKAGE_HOST_DOSFSTOOLS=y diff --git a/buildroot-external/configs/rpi3_64_defconfig b/buildroot-external/configs/rpi3_64_defconfig index d9bc608bad4..115f7566d80 100644 --- a/buildroot-external/configs/rpi3_64_defconfig +++ b/buildroot-external/configs/rpi3_64_defconfig @@ -140,7 +140,7 @@ BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144 BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.01" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_3" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config" BR2_PACKAGE_HOST_DOSFSTOOLS=y diff --git a/buildroot-external/configs/rpi3_defconfig b/buildroot-external/configs/rpi3_defconfig index c1a8249c72b..819059efb7d 100644 --- a/buildroot-external/configs/rpi3_defconfig +++ b/buildroot-external/configs/rpi3_defconfig @@ -141,7 +141,7 @@ BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144 BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.01" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_3_32b" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config" BR2_PACKAGE_HOST_DOSFSTOOLS=y diff --git a/buildroot-external/configs/rpi4_64_defconfig b/buildroot-external/configs/rpi4_64_defconfig index 15322f71285..2d34620b0f9 100644 --- a/buildroot-external/configs/rpi4_64_defconfig +++ b/buildroot-external/configs/rpi4_64_defconfig @@ -141,7 +141,7 @@ BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144 BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.01" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_4" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/rpi4-64/uboot.config" BR2_PACKAGE_HOST_DOSFSTOOLS=y diff --git a/buildroot-external/configs/rpi4_defconfig b/buildroot-external/configs/rpi4_defconfig index 8217cfe8676..02ccb4b0ac0 100644 --- a/buildroot-external/configs/rpi4_defconfig +++ b/buildroot-external/configs/rpi4_defconfig @@ -140,7 +140,7 @@ BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144 BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.01" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_4_32b" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/rpi4/uboot.config" BR2_PACKAGE_HOST_DOSFSTOOLS=y diff --git a/buildroot-external/configs/tinker_defconfig b/buildroot-external/configs/tinker_defconfig index 2818fb83dc3..09b06215cbe 100644 --- a/buildroot-external/configs/tinker_defconfig +++ b/buildroot-external/configs/tinker_defconfig @@ -136,7 +136,7 @@ BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144 BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.01" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="tinker-s-rk3288" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/asus/tinker/uboot.config" BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y diff --git a/buildroot-external/configs/yellow_defconfig b/buildroot-external/configs/yellow_defconfig index 1d0a44f0c63..7e5f258fceb 100644 --- a/buildroot-external/configs/yellow_defconfig +++ b/buildroot-external/configs/yellow_defconfig @@ -143,7 +143,7 @@ BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144 BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.10" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_arm64" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/yellow/uboot.config" BR2_PACKAGE_HOST_DOSFSTOOLS=y diff --git a/buildroot-external/patches/uboot/0001-CMD-read-string-from-fileinto-env.patch b/buildroot-external/patches/uboot/0001-CMD-read-string-from-fileinto-env.patch index fcec8f2e666..2b82edd37bf 100644 --- a/buildroot-external/patches/uboot/0001-CMD-read-string-from-fileinto-env.patch +++ b/buildroot-external/patches/uboot/0001-CMD-read-string-from-fileinto-env.patch @@ -1,4 +1,4 @@ -From 01d614198feedef81ce60e61bbdf5f1ddc62be52 Mon Sep 17 00:00:00 2001 +From 4af7bcd52d0b6c8df3129a2f35035c6a1b62848d Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Sun, 5 Aug 2018 20:43:03 +0000 Subject: [PATCH] CMD: read string from fileinto env @@ -12,10 +12,10 @@ Signed-off-by: Pascal Vizeli create mode 100644 cmd/fileenv.c diff --git a/cmd/Kconfig b/cmd/Kconfig -index df6d71c103..6cda4909d5 100644 +index 1d7ddb4ed36..0c0ce749000 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig -@@ -1689,6 +1689,11 @@ config CMD_XXD +@@ -1792,6 +1792,11 @@ config CMD_XXD help Print file as hexdump to standard output @@ -26,22 +26,22 @@ index df6d71c103..6cda4909d5 100644 + endmenu - menu "Android support commands" + if NET || NET_LWIP diff --git a/cmd/Makefile b/cmd/Makefile -index 9a6790cc17..a521653ff8 100644 +index d1f369deec0..7ad9d3720c0 100644 --- a/cmd/Makefile +++ b/cmd/Makefile -@@ -164,6 +164,7 @@ obj-$(CONFIG_CMD_SHA1SUM) += sha1sum.o +@@ -170,6 +170,7 @@ obj-$(CONFIG_CMD_SHA1SUM) += sha1sum.o obj-$(CONFIG_CMD_SEAMA) += seama.o obj-$(CONFIG_CMD_SETEXPR) += setexpr.o obj-$(CONFIG_CMD_SETEXPR_FMT) += printf.o +obj-$(CONFIG_CMD_FILEENV) += fileenv.o obj-$(CONFIG_CMD_SPI) += spi.o obj-$(CONFIG_CMD_STRINGS) += strings.o - obj-$(CONFIG_CMD_SMC) += smccc.o + obj-$(CONFIG_CMD_SMBIOS) += smbios.o diff --git a/cmd/fileenv.c b/cmd/fileenv.c new file mode 100644 -index 0000000000..4154c8df0f +index 00000000000..4154c8df0f0 --- /dev/null +++ b/cmd/fileenv.c @@ -0,0 +1,45 @@