hello NXP experts,
I tried to forward my i.MX8DXP SoC lifecycle with sc_seco_forward_lifecycle( ) call,the lifecycle is one of the followin value:
/**
* SECO_LIFECYCLE_DEFAULT = (1U << 0) Default fab mode (early_fuses_pgrm not blown)
* SECO_LIFECYCLE_FAB = (1U << 1) Fab mode
* SECO_LIFECYCLE_NO_SECRETS = (1U << 2) No secrets
* SECO_LIFECYCLE_SECRETS = (1U << 3) With Secrets
* SECO_LIFECYCLE_SC_FW_CLSD = (1U << 4) SCU FW Closed
* SECO_LIFECYCLE_SECO_FW_CLSD = (1U << 5) SECO FW Closed
* SECO_LIFECYCLE_CLOSED = (1U << 6) Closed
* SECO_LIFECYCLE_CLOSED_FW = (1U << 7) Closed with FW
* SECO_LIFECYCLE_PART_RTN = (1U <<
* SECO_LIFECYCLE_RTN = (1U << 9) Field return
* SECO_LIFECYCLE_NO_RTN = (1U << 10) No Return
*/
But the call returns sucessfully only when lifecycle is "SECO_LIFECYCLE_CLOSED_FW",
any other value possible will result failure.
I have burned the hashed SRK into eFuse OTP row[730-745].
Now I want to forward the SoC lifecycle to "OEM closed",
how to operate?
Thanks.
Regards,
Liweihua
Hi Liweihua,
About how to forward the SoC lifecycle to "OEM closed", you can refer to the link:https://source.codeaurora.org/external/imx/uboot-imx/tree/doc/imx/ahab/introduction_ahab.txt?h=imx_v...
We don't need to call sc_seco_forward_lifecycle, our SCFW serial port has an interface "seco lifecycle 16" command to change lifecycle to "OEM Closed" mode directly.
BR
Catia
Thank you for your reply.
We want to set the "OEM close" in the mass production stage, SCFW serial port interface is not suitable for mass production.Is there any way to realize this function through function call?
Regards.
Liweihua
Hi Liweihua,
Do you have A core serial port and can uboot boot up?
BR
Catia
Hi dlliweihua,
There is two methods you can try.
One is using JTAG port, we can send the sc_seco_forward_lifecycle() SCU API command by SCU to SECO through debugger.
The other method is that you can modify your source code. Like add a ahab_close command which can be called in the A core serial port(In our uboot, we can also call "ahab_close" to close the chip).
About how to write an ahab_close in the source code, you can refer to the file arch/arm/mach-imx/imx8/ahab.c in our uboot code. This command underlying calls the sc_seco_forward_lifecycle(ipcHndl, 16) SCU API to change lifecycle to OEM closed mode. You can use the same architecture implementation.
BR
Catia
Hi catia_han,
Thanks a lot.
1. I have burned OEM SRK hash into fuse[730-745]
2. I used a boot image signed with the corresponding SGK
3. I called sc_seco_forward_lifecycle(ipcHndl, 16) , but it returned with error code 11.
The commands I used to sign the boot image are:
./cst -i csf_boot_image.txt -o ipl-imx8qxp-cpu_c0.imx.signed
./cst -i csf_fs_image.txt -o ifs-imx8qxp-cpu-graphics.imx.signed
The csf files are attached.
Please help to check them,thanks!
Liweihua