aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/mach-k3
diff options
context:
space:
mode:
authorLokesh Vutla <lokeshvutla@ti.com>2020-03-10 16:50:58 +0530
committerLokesh Vutla <lokeshvutla@ti.com>2020-03-11 08:56:49 +0530
commit6e44aebdbb96e9465ec874b926fa108fd10d9b59 (patch)
tree53a7810cb5ec1e9cbda0e4713f181218ba01788c /arch/arm/mach-k3
parenta98fb62a4c2cd9db81b7a7a0f35889a924b3cb61 (diff)
downloadu-boot-6e44aebdbb96e9465ec874b926fa108fd10d9b59.zip
u-boot-6e44aebdbb96e9465ec874b926fa108fd10d9b59.tar.gz
u-boot-6e44aebdbb96e9465ec874b926fa108fd10d9b59.tar.bz2
arm: mach-k3: Add a separate function for printing sysfw version
Add a separate function for printing sysfw version so that it can be called independently of k3_sysfw_loader. Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
Diffstat (limited to 'arch/arm/mach-k3')
-rw-r--r--arch/arm/mach-k3/am6_init.c9
-rw-r--r--arch/arm/mach-k3/common.c22
-rw-r--r--arch/arm/mach-k3/common.h1
-rw-r--r--arch/arm/mach-k3/j721e_init.c3
-rw-r--r--arch/arm/mach-k3/sysfw-loader.c18
5 files changed, 31 insertions, 22 deletions
diff --git a/arch/arm/mach-k3/am6_init.c b/arch/arm/mach-k3/am6_init.c
index 63cd7e0..0f73981 100644
--- a/arch/arm/mach-k3/am6_init.c
+++ b/arch/arm/mach-k3/am6_init.c
@@ -133,10 +133,8 @@ void board_init_f(ulong dummy)
pinctrl_select_state(dev, "default");
/*
- * Load, start up, and configure system controller firmware. Provide
- * the U-Boot console init function to the SYSFW post-PM configuration
- * callback hook, effectively switching on (or over) the console
- * output.
+ * Load, start up, and configure system controller firmware while
+ * also populating the SYSFW post-PM configuration callback hook.
*/
k3_sysfw_loader(preloader_console_init);
@@ -150,6 +148,9 @@ void board_init_f(ulong dummy)
preloader_console_init();
#endif
+ /* Output System Firmware version info */
+ k3_sysfw_print_ver();
+
/* Perform EEPROM-based board detection */
do_board_detect();
diff --git a/arch/arm/mach-k3/common.c b/arch/arm/mach-k3/common.c
index b2d25ed..efd84ec 100644
--- a/arch/arm/mach-k3/common.c
+++ b/arch/arm/mach-k3/common.c
@@ -35,6 +35,28 @@ struct ti_sci_handle *get_ti_sci_handle(void)
return (struct ti_sci_handle *)ti_sci_get_handle_from_sysfw(dev);
}
+void k3_sysfw_print_ver(void)
+{
+ struct ti_sci_handle *ti_sci = get_ti_sci_handle();
+ char fw_desc[sizeof(ti_sci->version.firmware_description) + 1];
+
+ /*
+ * Output System Firmware version info. Note that since the
+ * 'firmware_description' field is not guaranteed to be zero-
+ * terminated we manually add a \0 terminator if needed. Further
+ * note that we intentionally no longer rely on the extended
+ * printf() formatter '%.*s' to not having to require a more
+ * full-featured printf() implementation.
+ */
+ strncpy(fw_desc, ti_sci->version.firmware_description,
+ sizeof(ti_sci->version.firmware_description));
+ fw_desc[sizeof(fw_desc) - 1] = '\0';
+
+ printf("SYSFW ABI: %d.%d (firmware rev 0x%04x '%s')\n",
+ ti_sci->version.abi_major, ti_sci->version.abi_minor,
+ ti_sci->version.firmware_revision, fw_desc);
+}
+
DECLARE_GLOBAL_DATA_PTR;
#ifdef CONFIG_K3_EARLY_CONS
diff --git a/arch/arm/mach-k3/common.h b/arch/arm/mach-k3/common.h
index 42fb8ee..b1cbe11 100644
--- a/arch/arm/mach-k3/common.h
+++ b/arch/arm/mach-k3/common.h
@@ -26,3 +26,4 @@ void disable_linefill_optimization(void);
void remove_fwl_configs(struct fwl_data *fwl_data, size_t fwl_data_size);
void start_non_linux_remote_cores(void);
int load_firmware(char *name_fw, char *name_loadaddr, u32 *loadaddr);
+void k3_sysfw_print_ver(void);
diff --git a/arch/arm/mach-k3/j721e_init.c b/arch/arm/mach-k3/j721e_init.c
index 13f3791..511cfd2 100644
--- a/arch/arm/mach-k3/j721e_init.c
+++ b/arch/arm/mach-k3/j721e_init.c
@@ -172,6 +172,9 @@ void board_init_f(ulong dummy)
preloader_console_init();
#endif
+ /* Output System Firmware version info */
+ k3_sysfw_print_ver();
+
/* Perform EEPROM-based board detection */
do_board_detect();
diff --git a/arch/arm/mach-k3/sysfw-loader.c b/arch/arm/mach-k3/sysfw-loader.c
index 3677a37..0229491 100644
--- a/arch/arm/mach-k3/sysfw-loader.c
+++ b/arch/arm/mach-k3/sysfw-loader.c
@@ -330,22 +330,4 @@ void k3_sysfw_loader(void (*config_pm_done_callback)(void))
*/
if (config_pm_done_callback)
config_pm_done_callback();
-
- /*
- * Output System Firmware version info. Note that since the
- * 'firmware_description' field is not guaranteed to be zero-
- * terminated we manually add a \0 terminator if needed. Further
- * note that we intentionally no longer rely on the extended
- * printf() formatter '%.*s' to not having to require a more
- * full-featured printf() implementation.
- */
- char fw_desc[sizeof(ti_sci->version.firmware_description) + 1];
-
- strncpy(fw_desc, ti_sci->version.firmware_description,
- sizeof(ti_sci->version.firmware_description));
- fw_desc[sizeof(fw_desc) - 1] = '\0';
-
- printf("SYSFW ABI: %d.%d (firmware rev 0x%04x '%s')\n",
- ti_sci->version.abi_major, ti_sci->version.abi_minor,
- ti_sci->version.firmware_revision, fw_desc);
}