I am using the S32V234 eval board so it's not the same hw than what you are writing about, but just in case you have the answer at hand. On my board, when I try to setup the emmc-rpmb, I get this:
echo -n <my passwd> | mmc rpmb write-key /dev/mmcblk0rpmb -
RPMB ioctl failed: Operation not permitted
By tracing through mmc-utils and <kernel>/drivers/mmc, I found that mmc rpmb ... ends up in the kernel with:
mmc_blk_alloc_req(...) => mmc_init_queue(...) => mmc_prep_request(...)
The last one mmc_prep_request(...) if seeing the request as a rpmb request, return BLKPREP_KILL, and the request is dropped, hence the "Operation not permitted" I've seen.
I check the source code of several kernel versions, 4.14 to 3.x, the call is there.
Do you have to do something special to get rpmb access to work, any change to kernel config, or mmc-utils config? Thank you.
One possible reason is the rpmb already written. rpmb is OTP.
Retrieving data ...