@Rita_Wang
Thanks for your reply, now it's more clear.
"We DON"T support HSM API for i.MX8QM device, SHE API can be used in i.MX8QM.", now I see in the documentation, I missed that part, thanks!
Do you know what this is related to?, because looks like some parts between the imx8 family are the same, for example, security subsystem with cortex-m0, I thought the HSM library it's just SW implementation of ROM code that should be common. or there is an HW difference in?
2. There is no parallel in SECO HSM FW, a new request will be blocked until SECO completes the previous HSM request.
"There is no parallel in SECO HSM FW" - it's clear, also I'm worried about how the SECO FW will work with 2 SHE storages due to anti-rollback counter.
About:
"User can open different session from each domain, and one single NVM session is enough for the user case."
The NVM session services handles replies from SECO, via RX channel of MUx
static char SECO_MU_SHE_PATH[] = "/dev/seco_mu1_ch0";
static char SECO_MU_SHE_NVM_PATH[] = "/dev/seco_mu1_ch1";
Thus, I have to send messages to SECO via seco_mu1_ch0 in each domain, but
MU1 cannot be shared between 2 OS's to use it simultaneously. (Or, need to find a way to have some global lock between domains).
I guess that I have to assign MU1 to OS1(A53) and MU2 to OS2(A72), for example.
So, I was thinking about fixing the she_hsm library for another OS in that way:
static char SECO_MU_HSM_PATH_PRIMARY[] = "/dev/seco_mu2_ch0"; -> static char SECO_MU_SHE_PATH[] = "/dev/seco_mu2_ch0";
static char SECO_MU_HSM_NVM_PATH[] = "/dev/seco_mu2_ch1"; -> static char SECO_MU_SHE_NVM_PATH[] = "/dev/seco_mu2_ch1";
And for M4s
SECO_MU3 -> to M4_0
SECO_MU4 -> to M4_1
so, each domain will have access to the SHE API.