Message ID | 20181012050909.7009-2-takahiro.akashi@linaro.org |
---|---|
State | New |
Headers | show |
Series | uefi: support USB boot in distro boot | expand |
Hi Takahiro, On Fri, 12 Oct 2018 14:09:07 +0900 AKASHI Takahiro <takahiro.akashi@linaro.org> wrote: > With this patch, a removable USB mass storage device attached to the > system will also be scanned to find and boot an EFI binary (that is > BOOTEFI_NAME, see config_distro_bootcmd.h). > > Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org> > --- > include/config_distro_bootcmd.h | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/include/config_distro_bootcmd.h > b/include/config_distro_bootcmd.h index 76e12b7bf4ee..dd47e27d6835 > 100644 --- a/include/config_distro_bootcmd.h > +++ b/include/config_distro_bootcmd.h > @@ -26,7 +26,12 @@ > */ > > #define BOOTENV_SHARED_BLKDEV_BODY(devtypel) \ > - "if " #devtypel " dev ${devnum}; then " \ > + "if test " #devtypel " = usb ; then " \ > + "if " #devtypel " info ${devnum}; then " \ > + "setenv devtype " #devtypel "; " \ > + "run scan_dev_for_boot_part; " \ > + "fi;" \ > + "elif " #devtypel " dev ${devnum}; then " \ > "setenv devtype " #devtypel "; " \ > "run scan_dev_for_boot_part; " \ > "fi\0" I can't see how this patch is needed - "usb dev" is a valid command (via do_usb() -> blk_common_cmd()) as long as CONFIG_USB_STORAGE is set.
On Sun, Oct 14, 2018 at 02:21:11AM +0300, Tuomas Tynkkynen wrote: > Hi Takahiro, > > On Fri, 12 Oct 2018 14:09:07 +0900 > AKASHI Takahiro <takahiro.akashi@linaro.org> wrote: > > > With this patch, a removable USB mass storage device attached to the > > system will also be scanned to find and boot an EFI binary (that is > > BOOTEFI_NAME, see config_distro_bootcmd.h). > > > > Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org> > > --- > > include/config_distro_bootcmd.h | 7 ++++++- > > 1 file changed, 6 insertions(+), 1 deletion(-) > > > > diff --git a/include/config_distro_bootcmd.h > > b/include/config_distro_bootcmd.h index 76e12b7bf4ee..dd47e27d6835 > > 100644 --- a/include/config_distro_bootcmd.h > > +++ b/include/config_distro_bootcmd.h > > @@ -26,7 +26,12 @@ > > */ > > > > #define BOOTENV_SHARED_BLKDEV_BODY(devtypel) \ > > - "if " #devtypel " dev ${devnum}; then " \ > > + "if test " #devtypel " = usb ; then " \ > > + "if " #devtypel " info ${devnum}; then " \ > > + "setenv devtype " #devtypel "; " \ > > + "run scan_dev_for_boot_part; " \ > > + "fi;" \ > > + "elif " #devtypel " dev ${devnum}; then " \ > > "setenv devtype " #devtypel "; " \ > > "run scan_dev_for_boot_part; " \ > > "fi\0" > > I can't see how this patch is needed - "usb dev" is a valid command > (via do_usb() -> blk_common_cmd()) as long as CONFIG_USB_STORAGE is set. Right. I didn't notice this sub-command, dev, because I first consulted "help usb" with default qemu_arm64_defconfig which doesn't have CONFIG_USB_STORAGE. Since then I've believed it was not available. Yet my patch #2 should work. -Takahiro Akashi
On 15.10.18 06:53, AKASHI Takahiro wrote: > On Sun, Oct 14, 2018 at 02:21:11AM +0300, Tuomas Tynkkynen wrote: >> Hi Takahiro, >> >> On Fri, 12 Oct 2018 14:09:07 +0900 >> AKASHI Takahiro <takahiro.akashi@linaro.org> wrote: >> >>> With this patch, a removable USB mass storage device attached to the >>> system will also be scanned to find and boot an EFI binary (that is >>> BOOTEFI_NAME, see config_distro_bootcmd.h). >>> >>> Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org> >>> --- >>> include/config_distro_bootcmd.h | 7 ++++++- >>> 1 file changed, 6 insertions(+), 1 deletion(-) >>> >>> diff --git a/include/config_distro_bootcmd.h >>> b/include/config_distro_bootcmd.h index 76e12b7bf4ee..dd47e27d6835 >>> 100644 --- a/include/config_distro_bootcmd.h >>> +++ b/include/config_distro_bootcmd.h >>> @@ -26,7 +26,12 @@ >>> */ >>> >>> #define BOOTENV_SHARED_BLKDEV_BODY(devtypel) \ >>> - "if " #devtypel " dev ${devnum}; then " \ >>> + "if test " #devtypel " = usb ; then " \ >>> + "if " #devtypel " info ${devnum}; then " \ >>> + "setenv devtype " #devtypel "; " \ >>> + "run scan_dev_for_boot_part; " \ >>> + "fi;" \ >>> + "elif " #devtypel " dev ${devnum}; then " \ >>> "setenv devtype " #devtypel "; " \ >>> "run scan_dev_for_boot_part; " \ >>> "fi\0" >> >> I can't see how this patch is needed - "usb dev" is a valid command >> (via do_usb() -> blk_common_cmd()) as long as CONFIG_USB_STORAGE is set. > > Right. > I didn't notice this sub-command, dev, because I first consulted > "help usb" with default qemu_arm64_defconfig which doesn't have > CONFIG_USB_STORAGE. Since then I've believed it was not available. > > Yet my patch #2 should work. Yes, distro boot already supports USB booting just fine. All you need to do is what you did in patch 3 to enable it on a particular target board. Alex
diff --git a/include/config_distro_bootcmd.h b/include/config_distro_bootcmd.h index 76e12b7bf4ee..dd47e27d6835 100644 --- a/include/config_distro_bootcmd.h +++ b/include/config_distro_bootcmd.h @@ -26,7 +26,12 @@ */ #define BOOTENV_SHARED_BLKDEV_BODY(devtypel) \ - "if " #devtypel " dev ${devnum}; then " \ + "if test " #devtypel " = usb ; then " \ + "if " #devtypel " info ${devnum}; then " \ + "setenv devtype " #devtypel "; " \ + "run scan_dev_for_boot_part; " \ + "fi;" \ + "elif " #devtypel " dev ${devnum}; then " \ "setenv devtype " #devtypel "; " \ "run scan_dev_for_boot_part; " \ "fi\0"
With this patch, a removable USB mass storage device attached to the system will also be scanned to find and boot an EFI binary (that is BOOTEFI_NAME, see config_distro_bootcmd.h). Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org> --- include/config_distro_bootcmd.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)