All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 0/4] ARM: uniphier: some more updates for UniPhier SoCs
@ 2016-06-17 10:24 Masahiro Yamada
  2016-06-17 10:24 ` [U-Boot] [PATCH 1/4] ARM: uniphier: introduce CONFIG_ARM_UNIPHIER_{32, 64}BIT Masahiro Yamada
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Masahiro Yamada @ 2016-06-17 10:24 UTC (permalink / raw)
  To: u-boot




Masahiro Yamada (4):
  ARM: uniphier: introduce CONFIG_ARM_UNIPHIER_{32,64}BIT
  ARM: uniphier: move CONFIG_ARMV8_MULTIENTRY to Kconfig
  ARM: uniphier: reserve memory for DRAM PHY training on PH1-LD20
  ARM: uniphier: use the default CONFIG_BOOTDELAY=2

 arch/arm/Kconfig                     |  1 +
 arch/arm/mach-uniphier/Kconfig       | 25 ++++++++++++++--------
 arch/arm/mach-uniphier/dram_init.c   | 40 ++++++++++++++++++++++++++++++++++++
 configs/uniphier_ld11_defconfig      |  1 -
 configs/uniphier_ld20_defconfig      |  1 -
 configs/uniphier_ld4_sld8_defconfig  |  1 -
 configs/uniphier_pro4_defconfig      |  1 -
 configs/uniphier_pxs2_ld6b_defconfig |  1 -
 configs/uniphier_sld3_defconfig      |  1 -
 include/configs/uniphier.h           |  1 -
 10 files changed, 58 insertions(+), 15 deletions(-)

-- 
1.9.1

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH 1/4] ARM: uniphier: introduce CONFIG_ARM_UNIPHIER_{32, 64}BIT
  2016-06-17 10:24 [U-Boot] [PATCH 0/4] ARM: uniphier: some more updates for UniPhier SoCs Masahiro Yamada
@ 2016-06-17 10:24 ` Masahiro Yamada
  2016-06-17 10:24 ` [U-Boot] [PATCH 2/4] ARM: uniphier: move CONFIG_ARMV8_MULTIENTRY to Kconfig Masahiro Yamada
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Masahiro Yamada @ 2016-06-17 10:24 UTC (permalink / raw)
  To: u-boot

This will make it easier to select config options specific to
particular ARM processor generation.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---

 arch/arm/mach-uniphier/Kconfig | 23 +++++++++++++++--------
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/arch/arm/mach-uniphier/Kconfig b/arch/arm/mach-uniphier/Kconfig
index ae763ad..175c9f7 100644
--- a/arch/arm/mach-uniphier/Kconfig
+++ b/arch/arm/mach-uniphier/Kconfig
@@ -3,35 +3,42 @@ if ARCH_UNIPHIER
 config SYS_CONFIG_NAME
 	default "uniphier"
 
+config ARCH_UNIPHIER_32BIT
+	bool
+	select CPU_V7
+
+config ARCH_UNIPHIER_64BIT
+	bool
+	select ARM64
+	select SPL_SEPARATE_BSS
+
 choice
         prompt "UniPhier SoC select"
         default ARCH_UNIPHIER_PRO4
 
 config ARCH_UNIPHIER_SLD3
 	bool "UniPhier PH1-sLD3 SoC"
-	select CPU_V7
+	select ARCH_UNIPHIER_32BIT
 
 config ARCH_UNIPHIER_LD4_SLD8
 	bool "UniPhier PH1-LD4/PH1-sLD8 SoC"
-	select CPU_V7
+	select ARCH_UNIPHIER_32BIT
 
 config ARCH_UNIPHIER_PRO4
 	bool "UniPhier PH1-Pro4 SoC"
-	select CPU_V7
+	select ARCH_UNIPHIER_32BIT
 
 config ARCH_UNIPHIER_PRO5_PXS2_LD6B
 	bool "UniPhier PH1-Pro5/ProXstream2/PH1-LD6b SoC"
-	select CPU_V7
+	select ARCH_UNIPHIER_32BIT
 
 config ARCH_UNIPHIER_LD11
 	bool "UniPhier PH1-LD11 SoC"
-	select ARM64
-	select SPL_SEPARATE_BSS
+	select ARCH_UNIPHIER_64BIT
 
 config ARCH_UNIPHIER_LD20
 	bool "UniPhier PH1-LD20 SoC"
-	select ARM64
-	select SPL_SEPARATE_BSS
+	select ARCH_UNIPHIER_64BIT
 
 endchoice
 
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH 2/4] ARM: uniphier: move CONFIG_ARMV8_MULTIENTRY to Kconfig
  2016-06-17 10:24 [U-Boot] [PATCH 0/4] ARM: uniphier: some more updates for UniPhier SoCs Masahiro Yamada
  2016-06-17 10:24 ` [U-Boot] [PATCH 1/4] ARM: uniphier: introduce CONFIG_ARM_UNIPHIER_{32, 64}BIT Masahiro Yamada
@ 2016-06-17 10:24 ` Masahiro Yamada
  2016-06-17 10:24 ` [U-Boot] [PATCH 3/4] ARM: uniphier: reserve memory for DRAM PHY training on PH1-LD20 Masahiro Yamada
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Masahiro Yamada @ 2016-06-17 10:24 UTC (permalink / raw)
  To: u-boot

I just did not notice this option had an entry in Kconfig.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---

 arch/arm/mach-uniphier/Kconfig | 1 +
 include/configs/uniphier.h     | 1 -
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/mach-uniphier/Kconfig b/arch/arm/mach-uniphier/Kconfig
index 175c9f7..89be0b3 100644
--- a/arch/arm/mach-uniphier/Kconfig
+++ b/arch/arm/mach-uniphier/Kconfig
@@ -11,6 +11,7 @@ config ARCH_UNIPHIER_64BIT
 	bool
 	select ARM64
 	select SPL_SEPARATE_BSS
+	select ARMV8_MULTIENTRY
 
 choice
         prompt "UniPhier SoC select"
diff --git a/include/configs/uniphier.h b/include/configs/uniphier.h
index 68f6c9f..77057d0 100644
--- a/include/configs/uniphier.h
+++ b/include/configs/uniphier.h
@@ -99,7 +99,6 @@
 #define CONFIG_SYS_MMC_ENV_PART		1
 
 #ifdef CONFIG_ARM64
-#define CONFIG_ARMV8_MULTIENTRY
 #define CPU_RELEASE_ADDR			0x80000000
 #define COUNTER_FREQUENCY			50000000
 #define CONFIG_GICV3
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH 3/4] ARM: uniphier: reserve memory for DRAM PHY training on PH1-LD20
  2016-06-17 10:24 [U-Boot] [PATCH 0/4] ARM: uniphier: some more updates for UniPhier SoCs Masahiro Yamada
  2016-06-17 10:24 ` [U-Boot] [PATCH 1/4] ARM: uniphier: introduce CONFIG_ARM_UNIPHIER_{32, 64}BIT Masahiro Yamada
  2016-06-17 10:24 ` [U-Boot] [PATCH 2/4] ARM: uniphier: move CONFIG_ARMV8_MULTIENTRY to Kconfig Masahiro Yamada
@ 2016-06-17 10:24 ` Masahiro Yamada
  2016-06-17 10:24 ` [U-Boot] [PATCH 4/4] ARM: uniphier: use the default CONFIG_BOOTDELAY=2 Masahiro Yamada
  2016-06-19 22:22 ` [U-Boot] [PATCH 0/4] ARM: uniphier: some more updates for UniPhier SoCs Masahiro Yamada
  4 siblings, 0 replies; 6+ messages in thread
From: Masahiro Yamada @ 2016-06-17 10:24 UTC (permalink / raw)
  To: u-boot

The DRAM PHY layer on PH1-LD20 is able to calibrate PHY parameters
periodically.  This compensates for the voltage and temperature
deviation and improves the PHY parameter adjustment.  Instead, it
requires 64 byte scratch memory in each DRAM channel for the dynamic
training.  The memory regions must be reserved in DT before jumping
to the kernel.

The scratch area can be anywhere in each DRAM channel, but the DRAM
init code in SPL currently assigns it at the end of each channel.
So, it makes sense to reserve the regions on run-time by U-Boot
instead of statically embedding it in the DT in Linux.  Anyway,
a boot-loader should know much more about memory initialization
than the kernel.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---

 arch/arm/Kconfig                   |  1 +
 arch/arm/mach-uniphier/Kconfig     |  1 +
 arch/arm/mach-uniphier/dram_init.c | 40 ++++++++++++++++++++++++++++++++++++++
 3 files changed, 42 insertions(+)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index e75c4c0..5aaae96 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -801,6 +801,7 @@ config ARCH_UNIPHIER
 	select SPL
 	select OF_CONTROL
 	select SPL_OF_CONTROL
+	select OF_LIBFDT
 	select DM
 	select SPL_DM
 	select DM_GPIO
diff --git a/arch/arm/mach-uniphier/Kconfig b/arch/arm/mach-uniphier/Kconfig
index 89be0b3..e256eeb 100644
--- a/arch/arm/mach-uniphier/Kconfig
+++ b/arch/arm/mach-uniphier/Kconfig
@@ -40,6 +40,7 @@ config ARCH_UNIPHIER_LD11
 config ARCH_UNIPHIER_LD20
 	bool "UniPhier PH1-LD20 SoC"
 	select ARCH_UNIPHIER_64BIT
+	select OF_BOARD_SETUP
 
 endchoice
 
diff --git a/arch/arm/mach-uniphier/dram_init.c b/arch/arm/mach-uniphier/dram_init.c
index ef0e2e8..489366c 100644
--- a/arch/arm/mach-uniphier/dram_init.c
+++ b/arch/arm/mach-uniphier/dram_init.c
@@ -9,6 +9,9 @@
 #include <fdtdec.h>
 #include <linux/err.h>
 
+#include "init.h"
+#include "soc-info.h"
+
 DECLARE_GLOBAL_DATA_PTR;
 
 static const void *get_memory_reg_prop(const void *fdt, int *lenp)
@@ -81,3 +84,40 @@ void dram_init_banksize(void)
 		      (unsigned long)gd->bd->bi_dram[i].size);
 	}
 }
+
+#ifdef CONFIG_OF_BOARD_SETUP
+/*
+ * The DRAM PHY requires 64 byte scratch area in each DRAM channel
+ * for its dynamic PHY training feature.
+ */
+int ft_board_setup(void *fdt, bd_t *bd)
+{
+	const struct uniphier_board_data *param;
+	unsigned long rsv_addr;
+	const unsigned long rsv_size = 64;
+	int ch, ret;
+
+	if (uniphier_get_soc_type() != SOC_UNIPHIER_LD20)
+		return 0;
+
+	param = uniphier_get_board_param();
+	if (!param) {
+		printf("failed to get board parameter\n");
+		return -ENODEV;
+	}
+
+	for (ch = 0; ch < param->dram_nr_ch; ch++) {
+		rsv_addr = param->dram_ch[ch].base + param->dram_ch[ch].size;
+		rsv_addr -= rsv_size;
+
+		ret = fdt_add_mem_rsv(fdt, rsv_addr, rsv_size);
+		if (ret)
+			return -ENOSPC;
+
+		printf("   Reserved memory region for DRAM PHY training: addr=%lx size=%lx\n",
+		       rsv_addr, rsv_size);
+	}
+
+	return 0;
+}
+#endif
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH 4/4] ARM: uniphier: use the default CONFIG_BOOTDELAY=2
  2016-06-17 10:24 [U-Boot] [PATCH 0/4] ARM: uniphier: some more updates for UniPhier SoCs Masahiro Yamada
                   ` (2 preceding siblings ...)
  2016-06-17 10:24 ` [U-Boot] [PATCH 3/4] ARM: uniphier: reserve memory for DRAM PHY training on PH1-LD20 Masahiro Yamada
@ 2016-06-17 10:24 ` Masahiro Yamada
  2016-06-19 22:22 ` [U-Boot] [PATCH 0/4] ARM: uniphier: some more updates for UniPhier SoCs Masahiro Yamada
  4 siblings, 0 replies; 6+ messages in thread
From: Masahiro Yamada @ 2016-06-17 10:24 UTC (permalink / raw)
  To: u-boot

I do not insist on CONFIG_BOOTDELAY=3. The default value in Kconfig,
CONFIG_BOOTDELAY=2, is just fine for these boards.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---

 configs/uniphier_ld11_defconfig      | 1 -
 configs/uniphier_ld20_defconfig      | 1 -
 configs/uniphier_ld4_sld8_defconfig  | 1 -
 configs/uniphier_pro4_defconfig      | 1 -
 configs/uniphier_pxs2_ld6b_defconfig | 1 -
 configs/uniphier_sld3_defconfig      | 1 -
 6 files changed, 6 deletions(-)

diff --git a/configs/uniphier_ld11_defconfig b/configs/uniphier_ld11_defconfig
index e7f9b15..ffcac79 100644
--- a/configs/uniphier_ld11_defconfig
+++ b/configs/uniphier_ld11_defconfig
@@ -5,7 +5,6 @@ CONFIG_ARCH_UNIPHIER_LD11=y
 CONFIG_MICRO_SUPPORT_CARD=y
 CONFIG_SYS_TEXT_BASE=0x84000000
 CONFIG_DEFAULT_DEVICE_TREE="uniphier-ph1-ld11-ref"
-CONFIG_BOOTDELAY=3
 CONFIG_HUSH_PARSER=y
 # CONFIG_CMD_XIMG is not set
 # CONFIG_CMD_ENV_EXISTS is not set
diff --git a/configs/uniphier_ld20_defconfig b/configs/uniphier_ld20_defconfig
index d073e3d..cbc65dd 100644
--- a/configs/uniphier_ld20_defconfig
+++ b/configs/uniphier_ld20_defconfig
@@ -5,7 +5,6 @@ CONFIG_ARCH_UNIPHIER_LD20=y
 CONFIG_MICRO_SUPPORT_CARD=y
 CONFIG_SYS_TEXT_BASE=0x84000000
 CONFIG_DEFAULT_DEVICE_TREE="uniphier-ph1-ld20-ref"
-CONFIG_BOOTDELAY=3
 CONFIG_HUSH_PARSER=y
 # CONFIG_CMD_XIMG is not set
 # CONFIG_CMD_ENV_EXISTS is not set
diff --git a/configs/uniphier_ld4_sld8_defconfig b/configs/uniphier_ld4_sld8_defconfig
index 04d651d..22615a6 100644
--- a/configs/uniphier_ld4_sld8_defconfig
+++ b/configs/uniphier_ld4_sld8_defconfig
@@ -5,7 +5,6 @@ CONFIG_ARCH_UNIPHIER_LD4_SLD8=y
 CONFIG_MICRO_SUPPORT_CARD=y
 CONFIG_SYS_TEXT_BASE=0x84000000
 CONFIG_DEFAULT_DEVICE_TREE="uniphier-ph1-ld4-ref"
-CONFIG_BOOTDELAY=3
 CONFIG_HUSH_PARSER=y
 CONFIG_CMD_BOOTZ=y
 # CONFIG_CMD_XIMG is not set
diff --git a/configs/uniphier_pro4_defconfig b/configs/uniphier_pro4_defconfig
index d5fc138..18f4caf 100644
--- a/configs/uniphier_pro4_defconfig
+++ b/configs/uniphier_pro4_defconfig
@@ -4,7 +4,6 @@ CONFIG_SYS_MALLOC_F_LEN=0x2000
 CONFIG_MICRO_SUPPORT_CARD=y
 CONFIG_SYS_TEXT_BASE=0x84000000
 CONFIG_DEFAULT_DEVICE_TREE="uniphier-ph1-pro4-ref"
-CONFIG_BOOTDELAY=3
 CONFIG_HUSH_PARSER=y
 CONFIG_CMD_BOOTZ=y
 # CONFIG_CMD_XIMG is not set
diff --git a/configs/uniphier_pxs2_ld6b_defconfig b/configs/uniphier_pxs2_ld6b_defconfig
index 285ea98..cf6d3e4 100644
--- a/configs/uniphier_pxs2_ld6b_defconfig
+++ b/configs/uniphier_pxs2_ld6b_defconfig
@@ -5,7 +5,6 @@ CONFIG_ARCH_UNIPHIER_PRO5_PXS2_LD6B=y
 CONFIG_MICRO_SUPPORT_CARD=y
 CONFIG_SYS_TEXT_BASE=0x84000000
 CONFIG_DEFAULT_DEVICE_TREE="uniphier-proxstream2-vodka"
-CONFIG_BOOTDELAY=3
 CONFIG_HUSH_PARSER=y
 CONFIG_CMD_BOOTZ=y
 # CONFIG_CMD_XIMG is not set
diff --git a/configs/uniphier_sld3_defconfig b/configs/uniphier_sld3_defconfig
index 13f3147..0965019 100644
--- a/configs/uniphier_sld3_defconfig
+++ b/configs/uniphier_sld3_defconfig
@@ -4,7 +4,6 @@ CONFIG_ARCH_UNIPHIER_SLD3=y
 CONFIG_MICRO_SUPPORT_CARD=y
 CONFIG_SYS_TEXT_BASE=0x84000000
 CONFIG_DEFAULT_DEVICE_TREE="uniphier-ph1-sld3-ref"
-CONFIG_BOOTDELAY=3
 CONFIG_HUSH_PARSER=y
 CONFIG_CMD_BOOTZ=y
 # CONFIG_CMD_XIMG is not set
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH 0/4] ARM: uniphier: some more updates for UniPhier SoCs
  2016-06-17 10:24 [U-Boot] [PATCH 0/4] ARM: uniphier: some more updates for UniPhier SoCs Masahiro Yamada
                   ` (3 preceding siblings ...)
  2016-06-17 10:24 ` [U-Boot] [PATCH 4/4] ARM: uniphier: use the default CONFIG_BOOTDELAY=2 Masahiro Yamada
@ 2016-06-19 22:22 ` Masahiro Yamada
  4 siblings, 0 replies; 6+ messages in thread
From: Masahiro Yamada @ 2016-06-19 22:22 UTC (permalink / raw)
  To: u-boot

2016-06-17 19:24 GMT+09:00 Masahiro Yamada <yamada.masahiro@socionext.com>:
>
>
>
> Masahiro Yamada (4):
>   ARM: uniphier: introduce CONFIG_ARM_UNIPHIER_{32,64}BIT
>   ARM: uniphier: move CONFIG_ARMV8_MULTIENTRY to Kconfig
>   ARM: uniphier: reserve memory for DRAM PHY training on PH1-LD20
>   ARM: uniphier: use the default CONFIG_BOOTDELAY=2


Applied to u-boot-uniphier/master.




-- 
Best Regards
Masahiro Yamada

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-06-19 22:22 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-17 10:24 [U-Boot] [PATCH 0/4] ARM: uniphier: some more updates for UniPhier SoCs Masahiro Yamada
2016-06-17 10:24 ` [U-Boot] [PATCH 1/4] ARM: uniphier: introduce CONFIG_ARM_UNIPHIER_{32, 64}BIT Masahiro Yamada
2016-06-17 10:24 ` [U-Boot] [PATCH 2/4] ARM: uniphier: move CONFIG_ARMV8_MULTIENTRY to Kconfig Masahiro Yamada
2016-06-17 10:24 ` [U-Boot] [PATCH 3/4] ARM: uniphier: reserve memory for DRAM PHY training on PH1-LD20 Masahiro Yamada
2016-06-17 10:24 ` [U-Boot] [PATCH 4/4] ARM: uniphier: use the default CONFIG_BOOTDELAY=2 Masahiro Yamada
2016-06-19 22:22 ` [U-Boot] [PATCH 0/4] ARM: uniphier: some more updates for UniPhier SoCs Masahiro Yamada

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.