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>
This commit is contained in:
parent
a98fb62a4c
commit
6e44aebdbb
@ -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();
|
||||
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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();
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user