RE: [PATCH v2 14/15] scsi: ufs: ufs-exynos: multi-host configuration for exynosauto

Chanho Park
2021-07-28T01:39:40Z

> > > so you split the "Task Tag" filed byte3 in the UPIU header to two
> > > parts, bit7~bit5 is for the VHs ID, and bit4~bit0 is for the task
> > > ID.
> > > but this is not defined in the Spec 2.1. correct?
> >
> >
> > You're right.
> >
> > For PH, TASK_TAG[7:5] will be set to "0" but a VHID will be used in
> > case of VH.
> >
> >
> >
> > Best Regards,
> >
> > Chanho Park
>
> Hi Chanho Park,
> Thansk for yoru reply.
>
> I didn't see your changes about task_tag and IID. Having a look at
> ufshcd_prepare_utp_scsi_cmd_upiu(), the task tag in the UPIU header is
> still only task tag. and IID is always 0x00.
>
> If you didn't add these changes, your patch is un-readable, and also the
> driver doesn't have a real usage case.

I already replied regarding this in another mail thread and please refer below comments. The controller will handle the tag translation.
https://lore.kernel.org/linux-scsi/002901d782c6$937ac0f0$ba7042d0$@samsung.com/

> Also, you mentioned there is no support/change needed from the UFS device
> side. But, IMO, if you changed the UPIU header, there are changes needed
> on the UFS device side in order to use your driver.

Please see the figure[1]. Once IID_IN_TASKTAG bit is set, the function arbiter will translate the value of UPIU header before delivering it to the device.

[1]: https://lore.kernel.org/linux-scsi/20210714071131.101204-1-chanho61.park@samsung.com/

Best Regards,
Chanho Park