Messages in this thread | | | Subject | Re: [PATCH v4 4/4] scsi: ufs: add compatibility with 3.1 UFS unit descriptor length | From | Bean Huo <> | Date | Sat, 30 May 2020 20:33:30 +0200 |
| |
Avri,
On Sat, 2020-05-30 at 06:56 +0000, Avri Altman wrote: > > > > > From: Bean Huo <beanhuo@micron.com> > > > > For UFS 3.1, the normal unit descriptor is 10 bytes larger > > than the RPMB unit, however, both descriptors share the same > > desc_idn, to cover both unit descriptors with one length, we > > choose the normal unit descriptor length by desc_index. > > This is not what your code is doing. > For RPMB - desc size will not be 0x2d but remain 256.
sorry, I'm afraid I didn't quite get your point here. would you go over it again in detail please?
> > Your strategy is still correct IMO - if you assign the larger size, > The device will not reply with error, but with the proper buffer. > > You can also rely that reading the rpmb unit descriptor will not > happen before > Reading regular luns, because this is happening in the first > slave_alloc. >
On my side, I saw the Well-know LU descriptor is read before regulaer/normal LU descritptor. see ufshcd_add_lus();
I did further debug to verify my patch, and the unit descriptor read sequence:
1. read RPMB descriptor: desc_id 2, desc_index 0xc4 2. read LU 0 descriptor: desc_id 2, desc_index 0 3. read LU 0 descriptor: desc_id 2, desc_index 1 4. read LU 0 descriptor: desc_id 2, desc_index 2 5. read LU 0 descriptor: desc_id 2, desc_index 4 ....
> Hence, I think you can drop the extra if, and just add the comment. >
so, this 'if' is still needed. otherwise, LU descriptor length will be initialized as 0x23(RPMB descriptor length).
if I am wrong, please correct me. thanks,
Bean
| |