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?
By the spec.
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.
This is end 2 end.
Yours, Linus Walleij