[PATCH 2/2] arm: spl: create a common spl for Stratix10 and Agilex

Jit Loon Lim jit.loon.lim at intel.com
Fri Sep 16 16:23:36 CEST 2022


From: "Ooi, Joyce" <joyce.ooi at intel.com>

Since Stratix10 and Agilex are using ARM64, there are some common codes
in the SPL. Hence, spl_soc64.c is created to place the common codes.

Signed-off-by: Ooi, Joyce <joyce.ooi at intel.com>
Signed-off-by: Jit Loon Lim <jit.loon.lim at intel.com>
---
 arch/arm/mach-socfpga/spl_s10.c   | 63 ---------------------------
 arch/arm/mach-socfpga/spl_soc64.c | 71 +++++++++++++++++++++++++++++--
 2 files changed, 67 insertions(+), 67 deletions(-)

diff --git a/arch/arm/mach-socfpga/spl_s10.c b/arch/arm/mach-socfpga/spl_s10.c
index c4b82ebf14..fb807acf27 100644
--- a/arch/arm/mach-socfpga/spl_s10.c
+++ b/arch/arm/mach-socfpga/spl_s10.c
@@ -29,69 +29,6 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
-u32 spl_boot_device(void)
-{
-	int ret, size;
-	ofnode node;
-	const fdt32_t *phandle_p;
-	u32 phandle;
-	struct udevice *dev;
-
-	node = ofnode_path("/chosen");
-	if (!ofnode_valid(node)) {
-		debug("%s: /chosen node was not found.\n", __func__);
-		goto fallback;
-	}
-
-	phandle_p = ofnode_get_property(node, "u-boot,boot0", &size);
-	if (!phandle_p) {
-		debug("%s: u-boot,boot0 property was not found.\n",
-		     __func__);
-		goto fallback;
-	}
-
-	phandle = fdt32_to_cpu(*phandle_p);
-
-	node = ofnode_get_by_phandle(phandle);
-
-	ret = device_get_global_by_ofnode(node, &dev);
-	if (ret) {
-		debug("%s: Boot device at not found, error: %d\n", __func__,
-		      ret);
-		goto fallback;
-	}
-
-	debug("%s: Found boot device %s\n", __func__, dev->name);
-
-	switch (device_get_uclass_id(dev)) {
-	case UCLASS_SPI_FLASH:
-		return BOOT_DEVICE_SPI;
-	case UCLASS_MISC:
-		return BOOT_DEVICE_NAND;
-	case UCLASS_MMC:
-		return BOOT_DEVICE_MMC1;
-	default:
-		debug("%s: Booting from device uclass '%s' is not "
-		      "supported\n", __func__,
-		      dev_get_uclass_name(dev));
-	}
-
-fallback:
-	/* Return default boot device */
-	return BOOT_DEVICE_MMC1;
-}
-
-#ifdef CONFIG_SPL_MMC_SUPPORT
-u32 spl_mmc_boot_mode(const u32 boot_device)
-{
-#if defined(CONFIG_SPL_FS_FAT) || defined(CONFIG_SPL_FS_EXT4)
-	return MMCSD_MODE_FS;
-#else
-	return MMCSD_MODE_RAW;
-#endif
-}
-#endif
-
 void board_init_f(ulong dummy)
 {
 	const struct cm_config *cm_default_cfg = cm_get_default_config();
diff --git a/arch/arm/mach-socfpga/spl_soc64.c b/arch/arm/mach-socfpga/spl_soc64.c
index ba6efc1d86..ea1acaf309 100644
--- a/arch/arm/mach-socfpga/spl_soc64.c
+++ b/arch/arm/mach-socfpga/spl_soc64.c
@@ -4,22 +4,85 @@
  *
  */
 
+#include <asm/io.h>
+#include <asm/u-boot.h>
+#include <asm/utils.h>
 #include <common.h>
+#include <debug_uart.h>
+#include <dm.h>
+#include <dm/ofnode.h>
+#include <image.h>
+#include <log.h>
 #include <spl.h>
+#include <asm/arch/clock_manager.h>
+#include <asm/arch/firewall.h>
+#include <asm/arch/mailbox_s10.h>
+#include <asm/arch/reset_manager.h>
+#include <asm/arch/system_manager.h>
+#include <asm/arch/smmu_s10.h>
+#include <watchdog.h>
+#include <dm/uclass.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
 u32 spl_boot_device(void)
 {
+	int ret, size;
+	ofnode node;
+	const fdt32_t *phandle_p;
+	u32 phandle;
+	struct udevice *dev;
+
+	node = ofnode_path("/chosen");
+	if (!ofnode_valid(node)) {
+		debug("%s: /chosen node was not found.\n", __func__);
+		goto fallback;
+	}
+
+	phandle_p = ofnode_get_property(node, "u-boot,boot0", &size);
+	if (!phandle_p) {
+		debug("%s: u-boot,boot0 property was not found.\n",
+		      __func__);
+		goto fallback;
+	}
+
+	phandle = fdt32_to_cpu(*phandle_p);
+
+	node = ofnode_get_by_phandle(phandle);
+
+	ret = device_get_global_by_ofnode(node, &dev);
+	if (ret) {
+		debug("%s: Boot device at not found, error: %d\n", __func__,
+		      ret);
+		goto fallback;
+	}
+
+	debug("%s: Found boot device %s\n", __func__, dev->name);
+
+	switch (device_get_uclass_id(dev)) {
+	case UCLASS_SPI_FLASH:
+		return BOOT_DEVICE_SPI;
+	case UCLASS_MISC:
+		return BOOT_DEVICE_NAND;
+	case UCLASS_MMC:
+		return BOOT_DEVICE_MMC1;
+	default:
+		debug("%s: Booting from device uclass '%s' is not supported\n",
+		      __func__, dev_get_uclass_name(dev));
+	}
+
+fallback:
+	/* Return default boot device */
 	return BOOT_DEVICE_MMC1;
 }
 
 #if IS_ENABLED(CONFIG_SPL_MMC)
 u32 spl_boot_mode(const u32 boot_device)
 {
-	if (IS_ENABLED(CONFIG_SPL_FS_FAT) || IS_ENABLED(CONFIG_SPL_FS_EXT4))
-		return MMCSD_MODE_FS;
-	else
-		return MMCSD_MODE_RAW;
+#if defined(CONFIG_SPL_FS_FAT) || defined(CONFIG_SPL_FS_EXT4)
+	return MMCSD_MODE_FS;
+#else
+	return MMCSD_MODE_RAW;
+#endif
 }
 #endif
-- 
2.26.2



More information about the U-Boot mailing list