[PATCH 1/2] arm64: zynqmp: Add support for debug uart also for U-Boot proper

board_early_init_f() is the right location where debug uart can be configurated (after MIO initialization). The patch is taking this call from SPL to also make it available for U-Boot proper.
Signed-off-by: Michal Simek michal.simek@xilinx.com ---
arch/arm/mach-zynqmp/spl.c | 6 ------ board/xilinx/zynqmp/zynqmp.c | 15 ++++++++++++--- 2 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/arch/arm/mach-zynqmp/spl.c b/arch/arm/mach-zynqmp/spl.c index b3830182e250..c53945e57f39 100644 --- a/arch/arm/mach-zynqmp/spl.c +++ b/arch/arm/mach-zynqmp/spl.c @@ -6,7 +6,6 @@ */
#include <common.h> -#include <debug_uart.h> #include <init.h> #include <spl.h>
@@ -21,11 +20,6 @@ void board_init_f(ulong dummy) board_early_init_f(); board_early_init_r();
-#ifdef CONFIG_DEBUG_UART - /* Uart debug for sure */ - debug_uart_init(); - puts("Debug uart enabled\n"); /* or printch() */ -#endif /* Delay is required for clocks to be propagated */ udelay(1000000); } diff --git a/board/xilinx/zynqmp/zynqmp.c b/board/xilinx/zynqmp/zynqmp.c index c6c55caa1ce0..04fd3bd0a443 100644 --- a/board/xilinx/zynqmp/zynqmp.c +++ b/board/xilinx/zynqmp/zynqmp.c @@ -6,6 +6,7 @@
#include <common.h> #include <cpu_func.h> +#include <debug_uart.h> #include <env.h> #include <init.h> #include <sata.h> @@ -319,13 +320,21 @@ static char *zynqmp_get_silicon_idcode_name(void)
int board_early_init_f(void) { - int ret = 0; - #if defined(CONFIG_ZYNQMP_PSU_INIT_ENABLED) + int ret; + ret = psu_init(); + if (ret) + return ret; #endif
- return ret; +#ifdef CONFIG_DEBUG_UART + /* Uart debug for sure */ + debug_uart_init(); + puts("Debug uart enabled\n"); /* or printch() */ +#endif + + return 0; }
static int multi_boot(void)

Delay required for clock propagation is tighly coupled with initialization done in psu_init(). That's why call it also for u-boot proper with CONFIG_ZYNQMP_PSU_INIT_ENABLED enabled.
Signed-off-by: Michal Simek michal.simek@xilinx.com ---
arch/arm/mach-zynqmp/spl.c | 3 --- board/xilinx/zynqmp/zynqmp.c | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/arm/mach-zynqmp/spl.c b/arch/arm/mach-zynqmp/spl.c index c53945e57f39..68df0a79c4e5 100644 --- a/arch/arm/mach-zynqmp/spl.c +++ b/arch/arm/mach-zynqmp/spl.c @@ -19,9 +19,6 @@ void board_init_f(ulong dummy) { board_early_init_f(); board_early_init_r(); - - /* Delay is required for clocks to be propagated */ - udelay(1000000); }
static void ps_mode_reset(ulong mode) diff --git a/board/xilinx/zynqmp/zynqmp.c b/board/xilinx/zynqmp/zynqmp.c index 04fd3bd0a443..eb1bc0861e2f 100644 --- a/board/xilinx/zynqmp/zynqmp.c +++ b/board/xilinx/zynqmp/zynqmp.c @@ -326,6 +326,9 @@ int board_early_init_f(void) ret = psu_init(); if (ret) return ret; + + /* Delay is required for clocks to be propagated */ + udelay(1000000); #endif
#ifdef CONFIG_DEBUG_UART

pá 20. 3. 2020 v 9:03 odesílatel Michal Simek michal.simek@xilinx.com napsal:
Delay required for clock propagation is tighly coupled with initialization done in psu_init(). That's why call it also for u-boot proper with CONFIG_ZYNQMP_PSU_INIT_ENABLED enabled.
Signed-off-by: Michal Simek michal.simek@xilinx.com
arch/arm/mach-zynqmp/spl.c | 3 --- board/xilinx/zynqmp/zynqmp.c | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/arm/mach-zynqmp/spl.c b/arch/arm/mach-zynqmp/spl.c index c53945e57f39..68df0a79c4e5 100644 --- a/arch/arm/mach-zynqmp/spl.c +++ b/arch/arm/mach-zynqmp/spl.c @@ -19,9 +19,6 @@ void board_init_f(ulong dummy) { board_early_init_f(); board_early_init_r();
/* Delay is required for clocks to be propagated */
udelay(1000000);
}
static void ps_mode_reset(ulong mode) diff --git a/board/xilinx/zynqmp/zynqmp.c b/board/xilinx/zynqmp/zynqmp.c index 04fd3bd0a443..eb1bc0861e2f 100644 --- a/board/xilinx/zynqmp/zynqmp.c +++ b/board/xilinx/zynqmp/zynqmp.c @@ -326,6 +326,9 @@ int board_early_init_f(void) ret = psu_init(); if (ret) return ret;
/* Delay is required for clocks to be propagated */
udelay(1000000);
#endif
#ifdef CONFIG_DEBUG_UART
2.25.1
Applied. M

pá 20. 3. 2020 v 9:03 odesílatel Michal Simek michal.simek@xilinx.com napsal:
board_early_init_f() is the right location where debug uart can be configurated (after MIO initialization). The patch is taking this call from SPL to also make it available for U-Boot proper.
Signed-off-by: Michal Simek michal.simek@xilinx.com
arch/arm/mach-zynqmp/spl.c | 6 ------ board/xilinx/zynqmp/zynqmp.c | 15 ++++++++++++--- 2 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/arch/arm/mach-zynqmp/spl.c b/arch/arm/mach-zynqmp/spl.c index b3830182e250..c53945e57f39 100644 --- a/arch/arm/mach-zynqmp/spl.c +++ b/arch/arm/mach-zynqmp/spl.c @@ -6,7 +6,6 @@ */
#include <common.h> -#include <debug_uart.h> #include <init.h> #include <spl.h>
@@ -21,11 +20,6 @@ void board_init_f(ulong dummy) board_early_init_f(); board_early_init_r();
-#ifdef CONFIG_DEBUG_UART
/* Uart debug for sure */
debug_uart_init();
puts("Debug uart enabled\n"); /* or printch() */
-#endif /* Delay is required for clocks to be propagated */ udelay(1000000); } diff --git a/board/xilinx/zynqmp/zynqmp.c b/board/xilinx/zynqmp/zynqmp.c index c6c55caa1ce0..04fd3bd0a443 100644 --- a/board/xilinx/zynqmp/zynqmp.c +++ b/board/xilinx/zynqmp/zynqmp.c @@ -6,6 +6,7 @@
#include <common.h> #include <cpu_func.h> +#include <debug_uart.h> #include <env.h> #include <init.h> #include <sata.h> @@ -319,13 +320,21 @@ static char *zynqmp_get_silicon_idcode_name(void)
int board_early_init_f(void) {
int ret = 0;
#if defined(CONFIG_ZYNQMP_PSU_INIT_ENABLED)
int ret;
ret = psu_init();
if (ret)
return ret;
#endif
return ret;
+#ifdef CONFIG_DEBUG_UART
/* Uart debug for sure */
debug_uart_init();
puts("Debug uart enabled\n"); /* or printch() */
+#endif
return 0;
}
static int multi_boot(void)
2.25.1
Applied. M
participants (2)
-
Michal Simek
-
Michal Simek