mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-03-16 23:07:00 +00:00
imx: imx8: ahab: refactor do_ahab_close command
Move an OEM closing logic to ahab_close() function to be able to use it directly without calling a u-boot command. Signed-off-by: Igor Opaniuk <igor.opaniuk@foundries.io> Co-developed-by: Oleksandr Suvorov <oleksandr.suvorov@foundries.io> Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov@foundries.io>
This commit is contained in:
parent
452e385b08
commit
9e9d92f823
2 changed files with 30 additions and 16 deletions
|
@ -23,6 +23,7 @@ struct pass_over_info_t {
|
|||
|
||||
extern unsigned long boot_pointer[];
|
||||
void build_info(void);
|
||||
int ahab_close(void);
|
||||
int print_bootinfo(void);
|
||||
int sc_pm_setup_uart(sc_rsrc_t uart_rsrc, sc_pm_clock_rate_t clk_rate);
|
||||
int imx8_power_domain_lookup_name(const char *name,
|
||||
|
|
|
@ -340,6 +340,32 @@ static int do_ahab_status(struct cmd_tbl *cmdtp, int flag, int argc,
|
|||
return 0;
|
||||
}
|
||||
|
||||
int ahab_close(void)
|
||||
{
|
||||
int err;
|
||||
u16 lc;
|
||||
|
||||
err = sc_seco_chip_info(-1, &lc, NULL, NULL, NULL);
|
||||
if (err != SC_ERR_NONE) {
|
||||
printf("Error in get lifecycle\n");
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
if (lc != 0x20) {
|
||||
puts("Current lifecycle is NOT NXP closed, can't move to OEM closed\n");
|
||||
display_life_cycle(lc);
|
||||
return -EPERM;
|
||||
}
|
||||
|
||||
err = sc_seco_forward_lifecycle(-1, 16);
|
||||
if (err != SC_ERR_NONE) {
|
||||
printf("Error in forward lifecycle to OEM closed\n");
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int confirm_close(void)
|
||||
{
|
||||
puts("Warning: Please ensure your sample is in NXP closed state, "
|
||||
|
@ -361,27 +387,14 @@ static int do_ahab_close(struct cmd_tbl *cmdtp, int flag, int argc,
|
|||
{
|
||||
int confirmed = argc >= 2 && !strcmp(argv[1], "-y");
|
||||
int err;
|
||||
u16 lc;
|
||||
|
||||
if (!confirmed && !confirm_close())
|
||||
return -EACCES;
|
||||
|
||||
err = sc_seco_chip_info(-1, &lc, NULL, NULL, NULL);
|
||||
err = ahab_close();
|
||||
if (err) {
|
||||
printf("Error in get lifecycle\n");
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
if (lc != 0x20) {
|
||||
puts("Current lifecycle is NOT NXP closed, can't move to OEM closed\n");
|
||||
display_life_cycle(lc);
|
||||
return -EPERM;
|
||||
}
|
||||
|
||||
err = sc_seco_forward_lifecycle(-1, 16);
|
||||
if (err) {
|
||||
printf("Error in forward lifecycle to OEM closed\n");
|
||||
return -EIO;
|
||||
printf("Change to OEM closed failed\n");
|
||||
return err;
|
||||
}
|
||||
|
||||
printf("Change to OEM closed successfully\n");
|
||||
|
|
Loading…
Add table
Reference in a new issue