Hi Jens,
I realized there is one thing I wonder about:
On Tue, Feb 27, 2024 at 4:31 PM Jens Wiklander jens.wiklander@linaro.org wrote:
+struct rpmb_frame {
u8 stuff[196];u8 key_mac[32];u8 data[256];u8 nonce[16];__be32 write_counter;__be16 addr;__be16 block_count;__be16 result;__be16 req_resp;+} __packed;
I didn't quite get why these things are encoded big-endian?
As on the producer side (the eMMC backend) it seems we are anyway calling cpu_to_be* to convert them into this format.
If this is a requirement on the consumer side (such as TEE) I think the consumer should swap the bytes rather than the producer, but I guess that kind of assumes that we foresee there will be other consumers in the first place.
Yours, Linus Walleij