diff mbox series

cmd: ums: Enable by default for sunxi

Message ID 20210705232319.15149-1-andre.przywara@arm.com
State Deferred
Delegated to: Jagannadha Sutradharudu Teki
Headers show
Series cmd: ums: Enable by default for sunxi | expand

Commit Message

Andre Przywara July 5, 2021, 11:23 p.m. UTC
The ums command (presenting a U-Boot block device as a USB mass storage
device) is very useful for accessing eMMC devices via USB-OTG.

At the moment we enable USB fastboot by default for Allwinner devices,
so it makes sense to do the same with USB mass storage, which is
actually more versatile and can be accessed on any USB host easily.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
---
 cmd/Kconfig | 1 +
 1 file changed, 1 insertion(+)

Comments

Jagan Teki July 6, 2021, 2:26 p.m. UTC | #1
On Tue, Jul 6, 2021 at 4:53 AM Andre Przywara <andre.przywara@arm.com> wrote:
>
> The ums command (presenting a U-Boot block device as a USB mass storage
> device) is very useful for accessing eMMC devices via USB-OTG.
>
> At the moment we enable USB fastboot by default for Allwinner devices,
> so it makes sense to do the same with USB mass storage, which is
> actually more versatile and can be accessed on any USB host easily.
>
> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
> ---
>  cmd/Kconfig | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/cmd/Kconfig b/cmd/Kconfig
> index a9fb4eead29..7b1c96910a8 100644
> --- a/cmd/Kconfig
> +++ b/cmd/Kconfig
> @@ -1347,6 +1347,7 @@ config CMD_USB_MASS_STORAGE
>         bool "UMS usb mass storage"
>         select USB_FUNCTION_MASS_STORAGE
>         depends on BLK && USB_GADGET
> +       default y if ARCH_SUNXI && USB_MUSB_GADGET

UMS or any secondary-emmc accessible are considered in production
u-boot config instead of mainline u-boot since we have fastboot
already available for this kind of purpose. This might be one of the
reason not conisidered UMS by default till now, atleast on Allwinner.

Thanks,
Jagan.
Andre Przywara July 6, 2021, 3:57 p.m. UTC | #2
On Tue, 6 Jul 2021 19:56:24 +0530
Jagan Teki <jagan@amarulasolutions.com> wrote:

Hi Jagan,

thanks for the response!

> On Tue, Jul 6, 2021 at 4:53 AM Andre Przywara <andre.przywara@arm.com> wrote:
> >
> > The ums command (presenting a U-Boot block device as a USB mass storage
> > device) is very useful for accessing eMMC devices via USB-OTG.
> >
> > At the moment we enable USB fastboot by default for Allwinner devices,
> > so it makes sense to do the same with USB mass storage, which is
> > actually more versatile and can be accessed on any USB host easily.
> >
> > Signed-off-by: Andre Przywara <andre.przywara@arm.com>
> > ---
> >  cmd/Kconfig | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/cmd/Kconfig b/cmd/Kconfig
> > index a9fb4eead29..7b1c96910a8 100644
> > --- a/cmd/Kconfig
> > +++ b/cmd/Kconfig
> > @@ -1347,6 +1347,7 @@ config CMD_USB_MASS_STORAGE
> >         bool "UMS usb mass storage"
> >         select USB_FUNCTION_MASS_STORAGE
> >         depends on BLK && USB_GADGET
> > +       default y if ARCH_SUNXI && USB_MUSB_GADGET
> 
> UMS or any secondary-emmc accessible are considered in production
> u-boot config instead of mainline u-boot since we have fastboot
> already available for this kind of purpose. This might be one of the
> reason not conisidered UMS by default till now, atleast on Allwinner.

Well, I consider fastboot inferior to UMS. I understand that
Android phone hackers use it all the time, but I think having a block
device is far more versatile - you can partition it as you like, create
and populate a filesystem, dd an image to it, extract or update
firmware, etc. - most without extra software, even on Windows or Mac.
I think fastboot offers a reboot command, but are there other killer
reasons for it? And having the ums command in addition to fastboot does
not hurt, both would still work.
So are there any real arguments for not adding ums as well? I am not
sure many people tweak their config, so I would like to offer a decent
out-of-the-box experience, even for casual users.

Thanks,
Andre
Maxime Ripard July 6, 2021, 4:11 p.m. UTC | #3
On Tue, Jul 06, 2021 at 04:57:32PM +0100, Andre Przywara wrote:
> On Tue, 6 Jul 2021 19:56:24 +0530
> Jagan Teki <jagan@amarulasolutions.com> wrote:
> 
> Hi Jagan,
> 
> thanks for the response!
> 
> > On Tue, Jul 6, 2021 at 4:53 AM Andre Przywara <andre.przywara@arm.com> wrote:
> > >
> > > The ums command (presenting a U-Boot block device as a USB mass storage
> > > device) is very useful for accessing eMMC devices via USB-OTG.
> > >
> > > At the moment we enable USB fastboot by default for Allwinner devices,
> > > so it makes sense to do the same with USB mass storage, which is
> > > actually more versatile and can be accessed on any USB host easily.
> > >
> > > Signed-off-by: Andre Przywara <andre.przywara@arm.com>
> > > ---
> > >  cmd/Kconfig | 1 +
> > >  1 file changed, 1 insertion(+)
> > >
> > > diff --git a/cmd/Kconfig b/cmd/Kconfig
> > > index a9fb4eead29..7b1c96910a8 100644
> > > --- a/cmd/Kconfig
> > > +++ b/cmd/Kconfig
> > > @@ -1347,6 +1347,7 @@ config CMD_USB_MASS_STORAGE
> > >         bool "UMS usb mass storage"
> > >         select USB_FUNCTION_MASS_STORAGE
> > >         depends on BLK && USB_GADGET
> > > +       default y if ARCH_SUNXI && USB_MUSB_GADGET
> > 
> > UMS or any secondary-emmc accessible are considered in production
> > u-boot config instead of mainline u-boot since we have fastboot
> > already available for this kind of purpose. This might be one of the
> > reason not conisidered UMS by default till now, atleast on Allwinner.
> 
> Well, I consider fastboot inferior to UMS. I understand that
> Android phone hackers use it all the time, but I think having a block
> device is far more versatile - you can partition it as you like, create
> and populate a filesystem, dd an image to it, extract or update
> firmware, etc. - most without extra software, even on Windows or Mac.
> I think fastboot offers a reboot command, but are there other killer
> reasons for it? And having the ums command in addition to fastboot does
> not hurt, both would still work.

fastboot abstracts away the storage medium, whereas UMS doesn't. You
cannot run UMS on a NAND or SPI-NOR, while this causes no issue at all
to fastboot.

Similarly, UMS exposes the whole partition to the host. You then need to
have a driver for that FS on that machine, otherwise you just can't
access it.

Sure, it's convenient, but it's far from being ubiquitous and the silver
bullet you claim it is.

> So are there any real arguments for not adding ums as well? I am not
> sure many people tweak their config, so I would like to offer a decent
> out-of-the-box experience, even for casual users.

As usual, we also have to balance that with the size limit, but I'm not
sure it's an issue these days?

Maxime
Sean Anderson July 6, 2021, 7:23 p.m. UTC | #4
On 7/6/21 12:11 PM, Maxime Ripard wrote:
> On Tue, Jul 06, 2021 at 04:57:32PM +0100, Andre Przywara wrote:
>> On Tue, 6 Jul 2021 19:56:24 +0530
>> Jagan Teki <jagan@amarulasolutions.com> wrote:
>>
>> Hi Jagan,
>>
>> thanks for the response!
>>
>> > On Tue, Jul 6, 2021 at 4:53 AM Andre Przywara <andre.przywara@arm.com> wrote:
>> > >
>> > > The ums command (presenting a U-Boot block device as a USB mass storage
>> > > device) is very useful for accessing eMMC devices via USB-OTG.
>> > >
>> > > At the moment we enable USB fastboot by default for Allwinner devices,
>> > > so it makes sense to do the same with USB mass storage, which is
>> > > actually more versatile and can be accessed on any USB host easily.
>> > >
>> > > Signed-off-by: Andre Przywara <andre.przywara@arm.com>
>> > > ---
>> > >  cmd/Kconfig | 1 +
>> > >  1 file changed, 1 insertion(+)
>> > >
>> > > diff --git a/cmd/Kconfig b/cmd/Kconfig
>> > > index a9fb4eead29..7b1c96910a8 100644
>> > > --- a/cmd/Kconfig
>> > > +++ b/cmd/Kconfig
>> > > @@ -1347,6 +1347,7 @@ config CMD_USB_MASS_STORAGE
>> > >         bool "UMS usb mass storage"
>> > >         select USB_FUNCTION_MASS_STORAGE
>> > >         depends on BLK && USB_GADGET
>> > > +       default y if ARCH_SUNXI && USB_MUSB_GADGET
>> >
>> > UMS or any secondary-emmc accessible are considered in production
>> > u-boot config instead of mainline u-boot since we have fastboot
>> > already available for this kind of purpose. This might be one of the
>> > reason not conisidered UMS by default till now, atleast on Allwinner.
>>
>> Well, I consider fastboot inferior to UMS. I understand that
>> Android phone hackers use it all the time, but I think having a block
>> device is far more versatile - you can partition it as you like, create
>> and populate a filesystem, dd an image to it, extract or update
>> firmware, etc. - most without extra software, even on Windows or Mac.
>> I think fastboot offers a reboot command, but are there other killer
>> reasons for it?

During manufacturing it is very convenient to be able to run arbitrary
commands with ACMD/UCMD, or particular commands like partconf. Fastboot
also allows loading things directly to ram, which is nice for loading a
ramdisk/kernel when you don't have network/mass storage.

There is also no way to stop UMS other than by yanking the cord or by
hitting Ctrl-C (though I am working on this).

> And having the ums command in addition to fastboot does
>> not hurt, both would still work.
>
> fastboot abstracts away the storage medium, whereas UMS doesn't. You
> cannot run UMS on a NAND or SPI-NOR, while this causes no issue at all
> to fastboot.
>
> Similarly, UMS exposes the whole partition to the host. You then need to
> have a driver for that FS on that machine, otherwise you just can't
> access it.

You can expose just one partition like

ums 0 mmc 0:2

you can also expose multiple partitions like

ums 0 mmc 0:1,0:2,0.1,0.2

--Sean

> Sure, it's convenient, but it's far from being ubiquitous and the silver
> bullet you claim it is.
>
>> So are there any real arguments for not adding ums as well? I am not
>> sure many people tweak their config, so I would like to offer a decent
>> out-of-the-box experience, even for casual users.
>
> As usual, we also have to balance that with the size limit, but I'm not
> sure it's an issue these days?
>
> Maxime
>
diff mbox series

Patch

diff --git a/cmd/Kconfig b/cmd/Kconfig
index a9fb4eead29..7b1c96910a8 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -1347,6 +1347,7 @@  config CMD_USB_MASS_STORAGE
 	bool "UMS usb mass storage"
 	select USB_FUNCTION_MASS_STORAGE
 	depends on BLK && USB_GADGET
+	default y if ARCH_SUNXI && USB_MUSB_GADGET
 	help
 	  Enables the command "ums" and the USB mass storage support to the
 	  export a block device: U-Boot, the USB device, acts as a simple