Hi Jens, I realized there is one thing I wonder about: On Tue, Feb 27, 2024 at 4:31 PM Jens Wiklander <jens.wiklander@xxxxxxxxxx> 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