diff --git a/buildroot-external/board/hardkernel/odroid-m1/patches/uboot/0001-ata-dwc_ahci-Fix-support-for-other-platforms.patch b/buildroot-external/board/hardkernel/odroid-m1/patches/uboot/0001-ata-dwc_ahci-Fix-support-for-other-platforms.patch new file mode 100644 index 000000000..44e6ae29d --- /dev/null +++ b/buildroot-external/board/hardkernel/odroid-m1/patches/uboot/0001-ata-dwc_ahci-Fix-support-for-other-platforms.patch @@ -0,0 +1,48 @@ +From acadbae38f91965f204d6a5d49eb8b578970b818 Mon Sep 17 00:00:00 2001 +Message-ID: +From: Jonas Karlman +Date: Sun, 2 Jul 2023 20:47:17 +0000 +Subject: [PATCH] ata: dwc_ahci: Fix support for other platforms + +The dwc_ahci driver use platform specific defines, place the platform +specific code behind a ifdef CONFIG_ARCH_OMAP2PLUS to allow build and +use of the driver on Rockchip platform. + +Fixes: 02a4b4297901 ("drivers: block: dwc_ahci: Implement a driver for Synopsys DWC sata device") +Signed-off-by: Jonas Karlman +--- + drivers/ata/dwc_ahci.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/drivers/ata/dwc_ahci.c b/drivers/ata/dwc_ahci.c +index 826fea71cc..1dc91e7fce 100644 +--- a/drivers/ata/dwc_ahci.c ++++ b/drivers/ata/dwc_ahci.c +@@ -13,7 +13,9 @@ + #include + #include + #include ++#ifdef CONFIG_ARCH_OMAP2PLUS + #include ++#endif + #include + #include + +@@ -72,12 +74,14 @@ static int dwc_ahci_probe(struct udevice *dev) + return ret; + } + ++#ifdef CONFIG_ARCH_OMAP2PLUS + if (priv->wrapper_base) { + u32 val = TI_SATA_IDLE_NO | TI_SATA_STANDBY_NO; + + /* Enable SATA module, No Idle, No Standby */ + writel(val, priv->wrapper_base + TI_SATA_SYSCONFIG); + } ++#endif + + return ahci_probe_scsi(dev, (ulong)priv->base); + } +-- +2.41.0 + diff --git a/buildroot-external/board/hardkernel/odroid-m1/patches/uboot/0001-arm64-dts-rockchip-rk3568-Add-ODROID-M1-board-suppor.patch b/buildroot-external/board/hardkernel/odroid-m1/patches/uboot/0002-board-rockchip-Add-Hardkernel-ODROID-M1.patch similarity index 82% rename from buildroot-external/board/hardkernel/odroid-m1/patches/uboot/0001-arm64-dts-rockchip-rk3568-Add-ODROID-M1-board-suppor.patch rename to buildroot-external/board/hardkernel/odroid-m1/patches/uboot/0002-board-rockchip-Add-Hardkernel-ODROID-M1.patch index 331470240..11bb49782 100644 --- a/buildroot-external/board/hardkernel/odroid-m1/patches/uboot/0001-arm64-dts-rockchip-rk3568-Add-ODROID-M1-board-suppor.patch +++ b/buildroot-external/board/hardkernel/odroid-m1/patches/uboot/0002-board-rockchip-Add-Hardkernel-ODROID-M1.patch @@ -1,68 +1,100 @@ -From 6819a79bdb3c6a63459622e894b8fea9f7f407c5 Mon Sep 17 00:00:00 2001 -Message-Id: <6819a79bdb3c6a63459622e894b8fea9f7f407c5.1678356433.git.stefan@agner.ch> -From: Stefan Agner -Date: Mon, 6 Mar 2023 10:35:01 +0100 -Subject: [PATCH] arm64: dts: rockchip: rk3568: Add ODROID-M1 board support +From e52e7ff196b942c8bf8bee9e74d4f24619934a1b Mon Sep 17 00:00:00 2001 +Message-ID: +In-Reply-To: +References: +From: Jonas Karlman +Date: Sun, 2 Jul 2023 20:47:19 +0000 +Subject: [PATCH] board: rockchip: Add Hardkernel ODROID-M1 -Add ODROID-M1 board support. Board device tree rk3568-odroid-m1.dts -from v6.3-rc1. +Hardkernel ODROID-M1 is a single board computer with a RK3568B2 SoC, +a slightly modified version of the RK3568 SoC. -Signed-off-by: Stefan Agner +Features tested on a ODROID-M1 8GB v1.0 2022-06-13: +- SD-card boot +- eMMC boot +- SPI Flash boot +- PCIe/NVMe/AHCI +- SATA port +- USB host + +Device tree is imported from linux v6.4. + +Signed-off-by: Jonas Karlman --- arch/arm/dts/Makefile | 1 + - arch/arm/dts/rk3568-odroid-m1-u-boot.dtsi | 28 + + arch/arm/dts/rk3568-odroid-m1-u-boot.dtsi | 46 ++ arch/arm/dts/rk3568-odroid-m1.dts | 744 ++++++++++++++++++++++ - configs/odroid-m1_defconfig | 74 +++ - 4 files changed, 847 insertions(+) + board/rockchip/evb_rk3568/MAINTAINERS | 7 + + configs/odroid-m1-rk3568_defconfig | 103 +++ + doc/board/rockchip/rockchip.rst | 1 + + 6 files changed, 902 insertions(+) create mode 100644 arch/arm/dts/rk3568-odroid-m1-u-boot.dtsi create mode 100644 arch/arm/dts/rk3568-odroid-m1.dts - create mode 100644 configs/odroid-m1_defconfig + create mode 100644 configs/odroid-m1-rk3568_defconfig diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile -index c160e884bf..7958922b32 100644 +index 480269fa60..334c1bafda 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile -@@ -166,6 +166,7 @@ dtb-$(CONFIG_ROCKCHIP_RK3399) += \ - - dtb-$(CONFIG_ROCKCHIP_RK3568) += \ - rk3568-evb.dtb \ -+ rk3568-odroid-m1.dts \ +@@ -169,6 +169,7 @@ dtb-$(CONFIG_ROCKCHIP_RK3568) += \ + rk3566-anbernic-rgxx3.dtb \ rk3566-radxa-cm3-io.dtb \ + rk3568-evb.dtb \ ++ rk3568-odroid-m1.dtb \ rk3568-rock-3a.dtb + dtb-$(CONFIG_ROCKCHIP_RK3588) += \ diff --git a/arch/arm/dts/rk3568-odroid-m1-u-boot.dtsi b/arch/arm/dts/rk3568-odroid-m1-u-boot.dtsi new file mode 100644 -index 0000000000..83fa66d591 +index 0000000000..dc8ad98715 --- /dev/null +++ b/arch/arm/dts/rk3568-odroid-m1-u-boot.dtsi -@@ -0,0 +1,28 @@ +@@ -0,0 +1,46 @@ +// SPDX-License-Identifier: GPL-2.0+ -+/* -+ * (C) Copyright 2021 Rockchip Electronics Co., Ltd -+ * (C) Copyright 2023 Akash Gajjar -+ */ + +#include "rk356x-u-boot.dtsi" + +/ { ++ aliases { ++ spi0 = &sfc; ++ }; ++ + chosen { + stdout-path = &uart2; -+ u-boot,spl-boot-order = "same-as-spl", &sdhci, &sdmmc0; + }; +}; + -+&sdmmc0 { -+ status = "okay"; ++&fspi_dual_io_pins { ++ bootph-all; +}; + +&sdhci { -+ status = "okay"; ++ 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>; ++}; ++ ++&sfc { ++ bootph-pre-ram; ++ u-boot,spl-sfc-no-dma; ++ ++ flash@0 { ++ bootph-pre-ram; ++ }; +}; + +&uart2 { -+ clock-frequency = <24000000>; + bootph-all; -+ u-boot,dm-pre-reloc; ++ clock-frequency = <24000000>; ++ status = "okay"; ++}; ++ ++&vcc5v0_usb_host { ++ /* Workaround until regulator implement basic reference counter */ ++ regulator-always-on; +}; diff --git a/arch/arm/dts/rk3568-odroid-m1.dts b/arch/arm/dts/rk3568-odroid-m1.dts new file mode 100644 @@ -814,12 +846,30 @@ index 0000000000..59ecf868db + remote-endpoint = <&hdmi_in_vp0>; + }; +}; -diff --git a/configs/odroid-m1_defconfig b/configs/odroid-m1_defconfig +diff --git a/board/rockchip/evb_rk3568/MAINTAINERS b/board/rockchip/evb_rk3568/MAINTAINERS +index 6b2e7c7575..a5b59da0f7 100644 +--- a/board/rockchip/evb_rk3568/MAINTAINERS ++++ b/board/rockchip/evb_rk3568/MAINTAINERS +@@ -7,6 +7,13 @@ F: configs/evb-rk3568_defconfig + F: arch/arm/dts/rk3568-evb-boot.dtsi + F: arch/arm/dts/rk3568-evb.dts + ++ODROID-M1 ++M: Jonas Karlman ++S: Maintained ++F: configs/odroid-m1-rk3568_defconfig ++F: arch/arm/dts/rk3568-odroid-m1-u-boot.dtsi ++F: arch/arm/dts/rk3568-odroid-m1.dts ++ + RADXA-CM3 + M: Jagan Teki + S: Maintained +diff --git a/configs/odroid-m1-rk3568_defconfig b/configs/odroid-m1-rk3568_defconfig new file mode 100644 -index 0000000000..82cceec01b +index 0000000000..d090196219 --- /dev/null -+++ b/configs/odroid-m1_defconfig -@@ -0,0 +1,74 @@ ++++ b/configs/odroid-m1-rk3568_defconfig +@@ -0,0 +1,103 @@ +CONFIG_ARM=y +CONFIG_SKIP_LOWLEVEL_INIT=y +CONFIG_COUNTER_FREQUENCY=24000000 @@ -828,50 +878,61 @@ index 0000000000..82cceec01b +CONFIG_SPL_LIBCOMMON_SUPPORT=y +CONFIG_SPL_LIBGENERIC_SUPPORT=y +CONFIG_NR_DRAM_BANKS=2 -+CONFIG_DEFAULT_DEVICE_TREE="rk3568-odroid-m1" -+CONFIG_ROCKCHIP_RK3568=y -+CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y -+CONFIG_SPL_ROCKCHIP_COMMON_BOARD=y -+CONFIG_SPL_MMC=y -+CONFIG_SPL_SERIAL=y -+CONFIG_SPL_STACK_R_ADDR=0x600000 -+CONFIG_TARGET_EVB_RK3568=y -+CONFIG_DEBUG_UART_BASE=0xFE660000 -+CONFIG_DEBUG_UART_CLOCK=24000000 -+CONFIG_SYS_LOAD_ADDR=0xc00800 -+CONFIG_DEBUG_UART=y +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="rk3568-odroid-m1" ++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_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/rk3568-odroid-m1.dtb" +# CONFIG_DISPLAY_CPUINFO is not set +CONFIG_DISPLAY_BOARDINFO_LATE=y -+CONFIG_SPL_MAX_SIZE=0x20000 ++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_DM_PMIC=y -+CONFIG_PMIC_RK8XX=y -+CONFIG_SPL_PMIC_RK8XX=y -+CONFIG_SPL_STACK=0x400000 +CONFIG_SPL_STACK_R=y ++CONFIG_SPL_SPI_LOAD=y ++CONFIG_SYS_SPI_U_BOOT_OFFS=0x100000 +CONFIG_SPL_ATF=y -+CONFIG_CMD_I2C=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_PMIC=y ++CONFIG_CMD_REGULATOR=y +# CONFIG_SPL_DOS_PARTITION is not set +CONFIG_SPL_OF_CONTROL=y +CONFIG_OF_LIVE=y -+CONFIG_NET_RANDOM_ETHADDR=y -+CONFIG_REGULATOR_RK8XX=y ++CONFIG_OF_SPL_REMOVE_PROPS="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents" +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 @@ -882,18 +943,48 @@ index 0000000000..82cceec01b +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_SDMA=y +CONFIG_MMC_SDHCI_ROCKCHIP=y ++CONFIG_SPI_FLASH_SFDP_SUPPORT=y ++CONFIG_SPI_FLASH_MACRONIX=y +CONFIG_ETH_DESIGNWARE=y +CONFIG_GMAC_ROCKCHIP=y -+CONFIG_REGULATOR_PWM=y ++CONFIG_NVME_PCI=y ++CONFIG_PCIE_DW_ROCKCHIP=y ++CONFIG_PHY_ROCKCHIP_INNO_USB2=y ++CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY=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_DM_RESET=y ++CONFIG_SCSI=y ++CONFIG_DM_SCSI=y +CONFIG_BAUDRATE=1500000 +CONFIG_DEBUG_UART_SHIFT=2 +CONFIG_SYS_NS16550_MEM32=y ++CONFIG_ROCKCHIP_SFC=y +CONFIG_SYSRESET=y -+# CONFIG_BINMAN_FDT is not set ++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_ERRNO_STR=y +diff --git a/doc/board/rockchip/rockchip.rst b/doc/board/rockchip/rockchip.rst +index 99376fb54c..b3de15b36a 100644 +--- a/doc/board/rockchip/rockchip.rst ++++ b/doc/board/rockchip/rockchip.rst +@@ -95,6 +95,7 @@ List of mainline supported Rockchip boards: + + * rk3568 + - Rockchip Evb-RK3568 (evb-rk3568) ++ - Hardkernel ODROID-M1 (odroid-m1-rk3568) + + * rk3588 + - Rockchip EVB (evb-rk3588) -- -2.39.2 +2.41.0 diff --git a/buildroot-external/configs/odroid_m1_defconfig b/buildroot-external/configs/odroid_m1_defconfig index 9a57cb782..8443bcaf0 100644 --- a/buildroot-external/configs/odroid_m1_defconfig +++ b/buildroot-external/configs/odroid_m1_defconfig @@ -112,8 +112,8 @@ BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_GIT=y BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/u-boot/u-boot.git" -BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="v2023.04" -BR2_TARGET_UBOOT_BOARD_DEFCONFIG="odroid-m1" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="v2023.07.02" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="odroid-m1-rk3568" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config" BR2_TARGET_UBOOT_FORMAT_CUSTOM=y BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="idbloader.img u-boot.itb"