Re: UFS utilities

2017-12-05 Thread Bart Van Assche
On Mon, 2017-12-04 at 15:20 +, Bean Huo (beanhuo) wrote:
> Also, is it possible bypass SCSI stacks and go into directly UFS stack?

Hello Bean,

Sorry but I think it would be wrong to bypass the block layer when submitting
UFS commands. My understanding is that UFS devices are used in systems where
power management functionality is important (see also Documentation/power).
If the block layer would be bypassed then the power management support that
exists in the block layer will have to be reimplemented in UFS devices. That
would be a duplicate effort. I'm not sure that we want such duplication.

Bart.

Re: UFS utilities

2017-12-05 Thread gre...@linuxfoundation.org
On Tue, Dec 05, 2017 at 03:44:19PM +, Bean Huo (beanhuo) wrote:
> Hi, greg k-h
> 
> >
> >So what UFS commands are you missing that you need to see implemented?
> >
> >And again, have you checked the different forks of the driver?
> >
> 
> Seems there is something misunderstood, I want to use UPIU, rather than CDB.
> Maybe it is not possible based on current UFS stacks. Of course, exactly, 
> there is no missing SCSI command listed in UFS 2.1.

Again, have you looked at the different forks out there?  I bet you can
already do this...

If not, I'm sure simple patches should be able to add the missing
functionality, it would be good to get a solid UFS driver one of these
days in the tree :)

thanks,

greg k-h


Re: UFS utilities

2017-12-05 Thread Bean Huo (beanhuo)
Hi, greg k-h

>
>So what UFS commands are you missing that you need to see implemented?
>
>And again, have you checked the different forks of the driver?
>

Seems there is something misunderstood, I want to use UPIU, rather than CDB.
Maybe it is not possible based on current UFS stacks. Of course, exactly, 
there is no missing SCSI command listed in UFS 2.1.

>> >> And also it doesn't support several UFS special command.
>> >
>> >Are you referring to SCSI commands or rather to UFS commands that
>> >fall outside the SCSI spec? Anyway, an approach that is used by many
>> >SCSI drivers to export information to user space that falls outside
>> >the SCSI spec is to create additional sysfs attributes. See also the
>> >sdev_attrs and shost_attrs members of struct scsi_host_template.
>> >
>> Yes, for the UFS information, I can use these interface/approach to easily
>get.
>> I am thinking how about some testing case and configuration operation.
>
>Which ones exactly?
>
>> Also, is it possible bypass SCSI stacks and go into directly UFS stack?
>
>Look at the different sysfs files for the UFS device, it does that for some
>commands.
>
To be honest, I don't know which interface, it can pass UPIU to UFS driver,
And bypass SCSI stacks.

Thanks.
Bean Huo



Re: [EXT] Re: UFS utilities

2017-12-04 Thread gre...@linuxfoundation.org
On Mon, Dec 04, 2017 at 03:20:34PM +, Bean Huo (beanhuo) wrote:
> Hi, Bart
> Sorry for later!
> >
> >Hello Bean,
> >
> >Please be more specific. What is inconvenient about sg3_utils on embedded
> >ARM systems?
> >
> Exactly, I don't know how to compile sg3_utils with static library, instead 
> of sharing library. I used following configuration
> Parameter:
> ./configure --enable-static=yes --build=x86_64-unknown-linux-gnu 
> --host=aarch64-linux-gnu  --prefix=$PWD/out/  CC=aarch64-linux-gnu-g
> cc --target=aarch64-linux-gnu LD=aarch64-linux-gnu-ld 
> AS=aarch64-linux-gnu-as CFLAGS=-static LDFLAGS=-static
> 
> But the object files are still dynamically linked.
> 
> ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked, 
> interpreter /lib/ld-linux-aarch64.so.1, 
> for GNU/Linux 3.7.0, BuildID[sha1]=4f01b4c9f1ff47bc00aef93950c02734b4cc8e57, 
> not stripped.
> 
> I want it to be statically linked. Otherwise, I should copy its library to my 
> lib folder, and sometimes for the embedded, 
> Need to re-build rootfs. Meanwhile, for the UFS, there are totally 27 scsi 
> commands being used based on UFS2.1.
> For the most case, we just use several sg3_utils object files, don't need to 
> copy all object files to the ending product. 

So what UFS commands are you missing that you need to see implemented?

And again, have you checked the different forks of the driver?

> >> And also it doesn't support several UFS special command.
> >
> >Are you referring to SCSI commands or rather to UFS commands that fall
> >outside the SCSI spec? Anyway, an approach that is used by many SCSI drivers
> >to export information to user space that falls outside the SCSI spec is to
> >create additional sysfs attributes. See also the sdev_attrs and shost_attrs
> >members of struct scsi_host_template.
> >
> Yes, for the UFS information, I can use these interface/approach to easily 
> get.
> I am thinking how about some testing case and configuration operation.

Which ones exactly?

> Also, is it possible bypass SCSI stacks and go into directly UFS stack?

Look at the different sysfs files for the UFS device, it does that for
some commands.

thanks,

greg k-h


RE: [EXT] Re: UFS utilities

2017-12-04 Thread Bean Huo (beanhuo)
Hi, Bart
Sorry for later!
>
>Hello Bean,
>
>Please be more specific. What is inconvenient about sg3_utils on embedded
>ARM systems?
>
Exactly, I don't know how to compile sg3_utils with static library, instead of 
sharing library. I used following configuration
Parameter:
./configure --enable-static=yes --build=x86_64-unknown-linux-gnu 
--host=aarch64-linux-gnu  --prefix=$PWD/out/  CC=aarch64-linux-gnu-g
cc --target=aarch64-linux-gnu LD=aarch64-linux-gnu-ld 
AS=aarch64-linux-gnu-as CFLAGS=-static LDFLAGS=-static

But the object files are still dynamically linked.

ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked, 
interpreter /lib/ld-linux-aarch64.so.1, 
for GNU/Linux 3.7.0, BuildID[sha1]=4f01b4c9f1ff47bc00aef93950c02734b4cc8e57, 
not stripped.

I want it to be statically linked. Otherwise, I should copy its library to my 
lib folder, and sometimes for the embedded, 
Need to re-build rootfs. Meanwhile, for the UFS, there are totally 27 scsi 
commands being used based on UFS2.1.
For the most case, we just use several sg3_utils object files, don't need to 
copy all object files to the ending product. 

>> And also it doesn't support several UFS special command.
>
>Are you referring to SCSI commands or rather to UFS commands that fall
>outside the SCSI spec? Anyway, an approach that is used by many SCSI drivers
>to export information to user space that falls outside the SCSI spec is to
>create additional sysfs attributes. See also the sdev_attrs and shost_attrs
>members of struct scsi_host_template.
>
Yes, for the UFS information, I can use these interface/approach to easily get.
I am thinking how about some testing case and configuration operation.
Also, is it possible bypass SCSI stacks and go into directly UFS stack?
Thanks for your inputs.
>Bart.

//Bean Huo


Re: UFS utilities

2017-12-03 Thread Kyuho Choi
Hi,

On 11/30/17, Bean Huo (beanhuo)  wrote:
> Hi, Greg
>
>>On Mon, Nov 27, 2017 at 11:25:47AM +, Bean Huo (beanhuo) wrote:
>>> Hi, all
>>> Is there someone knows if exists one utilis dedicated to UFS device,
>>> rather
>>than SCSI utils?
>>> I have tried sg3-utils, but it is not convenient for the embedded
>>> ARM-based
>>system.
>>> And also it doesn't support several UFS special command.
>>
>>What specific UFS commands do you need to make to the device that the
>>current driver does not support?
>
>
> There are some UFS/vendor native commands. They are not SCSI based.
>

UFS command means uic/dme commands?.
AFAIK, many uic/dme commands need  pre/post operation of SoC related.
So, it would be need modify sg3-utils or another.

Therefore, IMHO, I don't know why we need it. But if you still want
it, You'll be need to modify/create user application and modified ufs
driver for your needs.

About vendor command, it's vendor specific.
It'll be possible to support by sg3-utils. And it need modify too.

>>And yes, this is a trick question as there are about 4 different major
>> forks that
>>I know of of the UFS driver in different vendor trees, all of which
>> support
>>different types of UFS commands :(
>>
>>> If we don't have this kind of tool for UFS, is it necessary for us to
>>> develop a
>>>ufs-utils?
>>
>>I doubt it, what neds to happen is getting all of the functionality that
>> lives in
>>these different forks all merged upstream into the in-kernel driver.  Then
>> I bet
>>all of the needed functionality you are looking for will be there.
>>
> Sometimes customers tend to use user space tool to do some configuration.
> And especially, for example the UFS FFU.
>

As i knew, in case of FFU, it's possible to support by sg_write_buffer.

>>good luck!
>>
> Thanks !
>>greg k-h
>
> //Bean Huo
>
>

WBR,
Kyuho Choi


Re: UFS utilities

2017-11-29 Thread James Bottomley
On Wed, 2017-11-29 at 15:39 +, Bean Huo (beanhuo) wrote:
> Thread-Topic: UFS utilities
>  Thread-Index: AdNpKDYJWTPjczfxQHC/pD9WNnnl4w==

Could you fix your mail transfer agent?  It's using these non standard
headers instead of the RFC mandated In-Reply-To: and References:

The problem is that this breaks threading on the public mailing lists
and means most of us can't tie this email back to the original thread.

> > On Mon, Nov 27, 2017 at 11:25:47AM +, Bean Huo (beanhuo) wrote:
> > > 
> > > Hi, all
> > > Is there someone knows if exists one utilis dedicated to UFS
> > > device, rather than SCSI utils?
> > > 
> > > I have tried sg3-utils, but it is not convenient for the embedded
> > > ARM-based system.
> > > 
> > > And also it doesn't support several UFS special command.
> > 
> > What specific UFS commands do you need to make to the device that
> > the current driver does not support?
> 
> 
> There are some UFS/vendor native commands. They are not SCSI based.

Can you list them?  The reason for asking is that SCSI-3 is pretty
extensive in terms of management utilities, so any function you do with
vendor native commands that matches an sg3utils function could be done
by the latter instead via a SCSI translation layer.

James



Re: UFS utilities

2017-11-29 Thread Greg KH
On Wed, Nov 29, 2017 at 03:39:19PM +, Bean Huo (beanhuo) wrote:
> Hi, Greg
> 
> >On Mon, Nov 27, 2017 at 11:25:47AM +, Bean Huo (beanhuo) wrote:
> >> Hi, all
> >> Is there someone knows if exists one utilis dedicated to UFS device, rather
> >than SCSI utils?
> >> I have tried sg3-utils, but it is not convenient for the embedded ARM-based
> >system.
> >> And also it doesn't support several UFS special command.
> >
> >What specific UFS commands do you need to make to the device that the
> >current driver does not support?
> 
> 
> There are some UFS/vendor native commands. They are not SCSI based.

Exactly what ones are missing?  Again, there are numerous non-scsi UFS
commands supported in sysfs files in the in-kernel, and lots in the
different forks I mentioned.  I bet if you pull all of those together,
you should cover all of the ones you need, right?

> >And yes, this is a trick question as there are about 4 different major forks 
> >that
> >I know of of the UFS driver in different vendor trees, all of which support
> >different types of UFS commands :(
> >
> >> If we don't have this kind of tool for UFS, is it necessary for us to 
> >> develop a
> >>ufs-utils?
> >
> >I doubt it, what neds to happen is getting all of the functionality that 
> >lives in
> >these different forks all merged upstream into the in-kernel driver.  Then I 
> >bet
> >all of the needed functionality you are looking for will be there.
> >
> Sometimes customers tend to use user space tool to do some configuration.
> And especially, for example the UFS FFU.

Again, that's fine, have you looked at what is currently present and
what is missing?

thanks,

greg k-h


Re: UFS utilities

2017-11-29 Thread Bean Huo (beanhuo)
Hi, Greg

>On Mon, Nov 27, 2017 at 11:25:47AM +, Bean Huo (beanhuo) wrote:
>> Hi, all
>> Is there someone knows if exists one utilis dedicated to UFS device, rather
>than SCSI utils?
>> I have tried sg3-utils, but it is not convenient for the embedded ARM-based
>system.
>> And also it doesn't support several UFS special command.
>
>What specific UFS commands do you need to make to the device that the
>current driver does not support?


There are some UFS/vendor native commands. They are not SCSI based.

>And yes, this is a trick question as there are about 4 different major forks 
>that
>I know of of the UFS driver in different vendor trees, all of which support
>different types of UFS commands :(
>
>> If we don't have this kind of tool for UFS, is it necessary for us to 
>> develop a
>>ufs-utils?
>
>I doubt it, what neds to happen is getting all of the functionality that lives 
>in
>these different forks all merged upstream into the in-kernel driver.  Then I 
>bet
>all of the needed functionality you are looking for will be there.
>
Sometimes customers tend to use user space tool to do some configuration.
And especially, for example the UFS FFU.

>good luck!
>
Thanks !
>greg k-h

//Bean Huo



Re: UFS utilities

2017-11-27 Thread Bart Van Assche
On Mon, 2017-11-27 at 11:25 +, Bean Huo (beanhuo) wrote:
> Is there someone knows if exists one utilis dedicated to UFS device,
> rather than SCSI utils? I have tried sg3-utils, but it is not convenient
> for the embedded ARM-based system.

Hello Bean,

Please be more specific. What is inconvenient about sg3_utils on embedded
ARM systems?

> And also it doesn't support several UFS special command. 

Are you referring to SCSI commands or rather to UFS commands that fall
outside the SCSI spec? Anyway, an approach that is used by many SCSI drivers
to export information to user space that falls outside the SCSI spec is to
create additional sysfs attributes. See also the sdev_attrs and shost_attrs
members of struct scsi_host_template.

Bart.

Re: UFS utilities

2017-11-27 Thread Greg KH
On Mon, Nov 27, 2017 at 11:25:47AM +, Bean Huo (beanhuo) wrote:
> Hi, all 
> Is there someone knows if exists one utilis dedicated to UFS device, rather 
> than SCSI utils?
> I have tried sg3-utils, but it is not convenient for the embedded ARM-based 
> system.
> And also it doesn't support several UFS special command. 

What specific UFS commands do you need to make to the device that the
current driver does not support?

And yes, this is a trick question as there are about 4 different major
forks that I know of of the UFS driver in different vendor trees, all of
which support different types of UFS commands :(

> If we don't have this kind of tool for UFS, is it necessary for us to develop 
> a ufs-utils?

I doubt it, what neds to happen is getting all of the functionality that
lives in these different forks all merged upstream into the in-kernel
driver.  Then I bet all of the needed functionality you are looking for
will be there.

good luck!

greg k-h


UFS utilities

2017-11-27 Thread Bean Huo (beanhuo)
Hi, all 
Is there someone knows if exists one utilis dedicated to UFS device, rather 
than SCSI utils?
I have tried sg3-utils, but it is not convenient for the embedded ARM-based 
system.
And also it doesn't support several UFS special command. 
If we don't have this kind of tool for UFS, is it necessary for us to develop a 
ufs-utils?
I need your every expert's inputs and suggestions.
Thanks in advance.

//Bean Huo