• Bean Huo's avatar
    scsi: ufs: core: bsg: Add advanced RPMB support in ufs_bsg · 6ff265fc
    Bean Huo authored
    Add advanced RPMB support in ufs_bsg:
    
     1. According to the UFS specification, only one RPMB operation can be
        performed at any time. We can ensure this by using reserved slot and
        its dev_cmd sync operation protection mechanism.
    
     2. For Advanced RPMB, RPMB metadata is packaged in an EHS (Extra Header
        Segment) of a command UPIU, and the corresponding reply EHS (from the
        device) should also be returned to the user space.  bsg_job->request
        and bsg_job->reply allow us to pass and return EHS from/back to
        userspace.
    
    Compared to normal/legacy RPMB, the advantages of advanced RPMB are:
    
     1. The data length in the Advanced RPMB data read/write command can be
        larger than 4KB. For the legacy RPMB, the data length in a single RPMB
        data transfer is 256 bytes.
    
     2. All of the advanced RPMB operations will be a single command. For
        legacy RPMB, take the read write-counter value as an example, you need
        two commands (first SECURITY PROTOCOL OUT, then second SECURITY
        PROTOCOL IN).
    Signed-off-by: default avatarBean Huo <beanhuo@micron.com>
    Reviewed-by: default avatarAvri Altman <avri.altman@wdc.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    6ff265fc
ufshcd.c 274 KB