]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
arm: SC584-EZKIT initial support
authorOliver Gaskell <Oliver.Gaskell@analog.com>
Thu, 12 Sep 2024 15:50:58 +0000 (16:50 +0100)
committerTom Rini <trini@konsulko.com>
Thu, 3 Oct 2024 15:29:23 +0000 (09:29 -0600)
Adds support for Analog Devices' SC584-EZKIT board. Includes:
- SoC specific configs in mach-sc5xx/Kconfig
- Memory Map for SPL
- SPL config options in common/spl/Kconfig
- Necessary board-specific init functions
- Board-specific Kconfig and environment in board/adi/
- Memory configuration

Co-developed-by: Greg Malysa <greg.malysa@timesys.com>
Signed-off-by: Greg Malysa <greg.malysa@timesys.com>
Co-developed-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
Co-developed-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Oliver Gaskell <Oliver.Gaskell@analog.com>
Kconfig
arch/arm/mach-sc5xx/Kconfig
arch/arm/mach-sc5xx/Makefile
arch/arm/mach-sc5xx/sc58x-spl.c [new file with mode: 0644]
board/adi/sc584-ezkit/Kconfig [new file with mode: 0644]
board/adi/sc584-ezkit/sc584-ezkit.env [new file with mode: 0644]
common/spl/Kconfig
include/configs/sc584-ezkit.h [new file with mode: 0644]

diff --git a/Kconfig b/Kconfig
index f7971057510adaeedeb3e0f328eb20f045ea78ed..2422b94e6d2ba898623783234cf77bdb641c2d01 100644 (file)
--- a/Kconfig
+++ b/Kconfig
@@ -647,6 +647,7 @@ config TEXT_BASE
        default 0x42e00000 if SUNXI_MINIMUM_DRAM_MB >= 64
        default 0x96000000 if ARCH_SC5XX && SC59X_64
        default 0xB2200000 if ARCH_SC5XX && SC59X
+       default 0x89200000 if ARCH_SC5XX && TARGET_SC584_EZKIT
        hex "Text Base"
        help
          The address in memory that U-Boot will be copied and executed from
index b57c21cf1651670c92fdc6a0c214331261c5257d..ac2b6699402383173c4f858e59e9e32329cc9d18 100644 (file)
@@ -49,6 +49,20 @@ config SC59X_64
 
 endchoice
 
+if SC58X
+
+choice
+       prompt "SC58x board select"
+
+config TARGET_SC584_EZKIT
+       bool
+       prompt "SC584-EZKIT"
+       select ADI_USE_DDR2
+
+endchoice
+
+endif
+
 if SC59X
 
 choice
@@ -530,5 +544,6 @@ source "board/adi/sc598-som-ezkit/Kconfig"
 source "board/adi/sc598-som-ezlite/Kconfig"
 source "board/adi/sc594-som-ezkit/Kconfig"
 source "board/adi/sc594-som-ezlite/Kconfig"
+source "board/adi/sc584-ezkit/Kconfig"
 
 endif
index a8079b6120efdb37ce2b4a3b80346c97aeed03a6..9a00a430b497d0a7249a9ea4491f6de2e2358733 100644 (file)
@@ -12,6 +12,7 @@ obj-y += soc.o init/
 
 obj-$(CONFIG_SC57X) += sc57x.o
 obj-$(CONFIG_SC58X) += sc58x.o
+obj-$(CONFIG_SC58X) += sc58x-spl.o
 obj-$(CONFIG_SC59X) += sc59x.o
 obj-$(CONFIG_SC59X) += sc59x-spl.o
 obj-$(CONFIG_SC59X_64) += sc59x_64.o
diff --git a/arch/arm/mach-sc5xx/sc58x-spl.c b/arch/arm/mach-sc5xx/sc58x-spl.c
new file mode 100644 (file)
index 0000000..ae809f0
--- /dev/null
@@ -0,0 +1,26 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * (C) Copyright 2024 - Analog Devices, Inc.
+ */
+
+#include <asm/arch-adi/sc5xx/spl.h>
+
+// Table 53-13 in SC58x HRM
+const struct adi_boot_args adi_rom_boot_args[] = {
+       // JTAG/no boot
+       [0] = {0, 0, 0},
+       // SPI master, used for qspi as well
+       [1] = {0x60020000, 0x00040000, 0x00010207},
+       // SPI slave
+       [2] = {0, 0, 0x00000212},
+       // reserved, no boot
+       [3] = {0, 0, 0},
+       // reserved, no boot
+       [4] = {0, 0, 0},
+       // reserved, also no boot
+       [5] = {0, 0, 0},
+       // Linkport slave
+       [6] = {0, 0, 0x00000014},
+       // UART slave
+       [7] = {0, 0, 0x00000013},
+};
diff --git a/board/adi/sc584-ezkit/Kconfig b/board/adi/sc584-ezkit/Kconfig
new file mode 100644 (file)
index 0000000..14c47f1
--- /dev/null
@@ -0,0 +1,116 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+# (C) Copyright 2024 - Analog Devices, Inc.
+
+if TARGET_SC584_EZKIT
+
+config LDR_CPU
+       default "ADSP-SC584-0.1"
+
+config SYS_BOARD
+       default "sc584-ezkit"
+
+config SYS_CONFIG_NAME
+       default "sc584-ezkit"
+
+config DEFAULT_DEVICE_TREE
+       default "sc584-ezkit"
+
+config ADI_IMAGE
+       default "tiny"
+
+config CUSTOM_SYS_INIT_SP_ADDR
+       default 0x8903f000
+
+# SPI Flash
+
+config SF_DEFAULT_BUS
+       default 2
+
+config SF_DEFAULT_CS
+       default 1
+
+config SF_DEFAULT_SPEED
+       default 5000000
+
+# Clocks
+
+config CGU0_DF_DIV
+       default 0
+
+config CGU0_VCO_MULT
+       default 18
+
+config CGU0_CCLK_DIV
+       default 1
+
+config CGU0_SCLK_DIV
+       default 2
+
+config CGU0_SCLK0_DIV
+       default 2
+
+config CGU0_SCLK1_DIV
+       default 2
+
+config CGU0_DCLK_DIV
+       default 2
+
+config CGU0_OCLK_DIV
+       default 3
+
+config CGU1_VCO_MULT
+       default 5
+
+config CGU1_DF_DIV
+       default 0
+
+config CGU1_CCLK_DIV
+       default 1
+
+config CGU1_SCLK_DIV
+       default 2
+
+config CGU1_SCLK0_DIV
+       default 2
+
+config CGU1_SCLK1_DIV
+       default 2
+
+config CGU1_DCLK_DIV
+       default 2
+
+config CGU1_OCLK_DIV
+       default 3
+
+config CDU0_CLKO0
+       default 1
+
+config CDU0_CLKO1
+       default 1
+
+config CDU0_CLKO2
+       default 1
+
+config CDU0_CLKO3
+       default 1
+
+config CDU0_CLKO4
+       default 1
+
+config CDU0_CLKO5
+       default 1
+
+config CDU0_CLKO6
+       default 1
+
+config CDU0_CLKO7
+       default 5
+
+config CDU0_CLKO8
+       default 1
+
+config CDU0_CLKO9
+       default 1
+
+endif
diff --git a/board/adi/sc584-ezkit/sc584-ezkit.env b/board/adi/sc584-ezkit/sc584-ezkit.env
new file mode 100644 (file)
index 0000000..af9a9e0
--- /dev/null
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later+ */
+
+/*
+ * (C) Copyright 2024 - Analog Devices, Inc.
+ */
+
+#include <env/adi/adi_boot.env>
+
+adi_stage2_offset=0x20000
+adi_image_offset=0xE0000
+adi_rfs_offset=0x6E0000
+loadaddr=0x89300000
+jffs2file=adsp-sc5xx-__stringify(CONFIG_ADI_IMAGE)-adsp-sc584-ezkit.jffs2
index e723ff1996881922090d8ba52c12f9e6df75c936..a7378bea8f219f3589e16d63a4a00b29117601bc 100644 (file)
@@ -87,6 +87,7 @@ config SPL_MAX_SIZE
        default 0x10000 if ASPEED_AST2600
        default 0x27000 if IMX8MM && SPL_TEXT_BASE = 0x7E1000
        default 0x30000 if ARCH_SC5XX && (SC59X_64 || SC59X)
+       default 0x20000 if ARCH_SC5XX && SC58X
        default 0x0
        help
          Maximum size of the SPL image (text, data, rodata, and linker lists
@@ -124,6 +125,7 @@ config SPL_BSS_START_ADDR
        default 0x2ff80000 if ARCH_SUNXI && MACH_SUN9I
        default 0x1000 if ARCH_ZYNQMP
        default 0x200B0000 if ARCH_SC5XX && (SC59X_64 || SC59X)
+       default 0x20080000 if ARCH_SC5XX && SC58X
 
 choice
        prompt "Enforce SPL BSS limit"
@@ -395,6 +397,7 @@ config SPL_STACK
        default 0x18000 if MACH_SUN9I
        default 0x8000 if ARCH_SUNXI
        default 0x200E4000 if ARCH_SC5XX && (SC59X_64 || SC59X)
+       default 0x200B0000 if ARCH_SC5XX && SC58X
        help
          Address of the start of the stack SPL will use before SDRAM is
          initialized.
diff --git a/include/configs/sc584-ezkit.h b/include/configs/sc584-ezkit.h
new file mode 100644 (file)
index 0000000..905836c
--- /dev/null
@@ -0,0 +1,18 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * (C) Copyright 2024 - Analog Devices, Inc.
+ */
+
+#ifndef __CONFIG_SC584_EZKIT_H
+#define __CONFIG_SC584_EZKIT_H
+
+/*
+ * Memory Settings
+ */
+#define MEM_MT47H128M16RT
+#define MEM_DMC0
+
+#define CFG_SYS_SDRAM_BASE     0x89000000
+#define CFG_SYS_SDRAM_SIZE     0x7000000
+
+#endif