summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYe Li <[email protected]>2023-01-30 18:39:54 +0800
committerStefano Babic <[email protected]>2023-03-29 22:27:38 +0200
commitfe787f277daaf22310eb39b0eaa3133b8929b2bf (patch)
treef0f839c717781a06d7d3f6bc328faf56042b5a36
parent040fc2be782d95a8f9fa6a4123f2ab2a7cd6a2cf (diff)
imx: ele_ahab: confirm lifecycle before closing the part
Before moving the lifecycle to OEM closed, confirm the lifecycle is OEM open, otherwise cancel to move forward the lifecycle. Signed-off-by: Ye Li <[email protected]> Reviewed-by: Peng Fan <[email protected]>
-rw-r--r--arch/arm/mach-imx/ele_ahab.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/ele_ahab.c b/arch/arm/mach-imx/ele_ahab.c
index da8c99b8b06..58b6542b8e6 100644
--- a/arch/arm/mach-imx/ele_ahab.c
+++ b/arch/arm/mach-imx/ele_ahab.c
@@ -474,10 +474,20 @@ static int do_ahab_close(struct cmd_tbl *cmdtp, int flag, int argc,
{
int err;
u32 resp;
+ u32 lc;
if (!confirm_close())
return -EACCES;
+ lc = readl(FSB_BASE_ADDR + 0x41c);
+ lc &= 0x3ff;
+
+ if (lc != 0x8) {
+ puts("Current lifecycle is NOT OEM open, can't move to OEM closed\n");
+ display_life_cycle(lc);
+ return -EPERM;
+ }
+
err = ahab_forward_lifecycle(8, &resp);
if (err != 0) {
printf("Error in forward lifecycle to OEM closed\n");