On Mon, 25 Mar 2024 at 09:23, Winkler, Tomas <tomas.winkler@xxxxxxxxx> 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 haven't looked at the NVME or the UFS spec in detail. Although, I > > > assume the above frame makes sense for those types of > > interfaces/protocols too? > > The rpmb implementation in ufs, has drifted apart from eMMC. E.g. in > > UFS4.0: > > - the frame is different - see struct ufs_arpmb_meta in > > include/uapi/scsi/scsi_bsg_ufs.h, > > - Additional extended header was added, > > - the frame size is no longer 512Bytes (256Bytes meta info + 256Bytes data) > > but 4k, > > - there are 9 rpmb operations instead of 7, > > - The atomicity requirement of the command sequence was waved, And > > probably more differences that I forgot. > > This is why it is better to designated this as an eMMC-only implementation? > > As I wrote previously the original implementation has already resolved protocol differences > (NVMe have also different byte ordering) for closed usecase of storing data (not the configuration) > I believe the whole point here is to let TEE driver to store the data, regardless of the technology. Yes, I also agree. It makes sense to have a generic way to manage RPMB partitions, even if there are some specific parts that must be managed differently based on the underlying technology. That said, I tend to think that we actually want the UFS and NVMe implementation being included in the $subject series too. To get the complete picture. Otherwise, we may just end up having to redesign a lot of things, if we just start with eMMC. > In addition I might be wrong but I don't see much value in eMMC as the UFS and NVMe are currently leading technologies. Even if UFS and NVMe have been taking over some of the earlier eMMC product segments, I think it's too soon to declare eMMC dead. :-) Moreover, we also have older platforms that we want to get supported upstream and allowing them to move away from downstream-hacks, is also a very good reason to add eMMC support. > Thanks > Tomas > Kind regards Uffe