Re: [U-Boot] [PATCH v4 14/14] net: fastboot: Merge AOSP UDP fastboot

2018-05-16 Thread Alex Kiernan
On Wed, May 16, 2018 at 8:15 PM Joe Hershberger 
wrote:

> On Tue, May 15, 2018 at 9:48 AM, Alex Kiernan 
wrote:
> > Merge UDP fastboot support from AOSP:
> >
> >
https://android.googlesource.com/platform/external/u-boot/+/android-o-mr1-iot-preview-8
> >
> > Signed-off-by: Alex Kiernan 
> > Signed-off-by: Alex Deymo 
> > Signed-off-by: Jocelyn Bohr 
> > Reviewed-by: Simon Glass 
> > ---
> >
> > Changes in v4:
> > - guard fb_getvar/fb_command with UDP_FUNCTION_FASTBOOT in Makefile
> > - add docbook comments
> > - remove parameter from fastboot_boot() since we always want
> >   fastboot_buf_addr (and if we're using fastboot_bootcmd then it's
> >   ignored)
> >
> > Changes in v3:
> > - use FASTBOOT as our guard in Kconfig not a list of USB || UDP
> > - correct mis-translation from AOSP introduced when cleaning up for
> >   checkpatch - we should write when buffer is not NULL, rather than
> >   erasing, and erase when buffer is NULL
> > - use CMD_RET_USAGE from do_fastboot
> > - remove do_fastboot_udp from cmd/net.c and rewrite using net_loop()
> > - rename timed_send_info to fastboot_send_info, rename
fastboot_send_info to
> >   fastboot_udp_send_info
> > - replace FASTBOOT_HEADER_SIZE with sizeof(struct fastboot_header)
> > - move start time into timed_send_info() rather than passing it in
> > - make calls to fastboot_udp_send_info a runtime dependency, not a
compile
> >   time one
> > - set ${filesize} to size of downloaded image
> > - add progress meter from USB path during download
> > - add support for 'oem format' command from the USB path
> > - rename 'fastbootcmd' to 'fastboot_bootcmd' to make clear that this is
the
> >   fastboot boot command
> > - make getvar implementation table driven
> > - add fastboot_buf_addr, fastboot_buf_size to override buffer address
and
> >   size
> > - return correct filesystem type in getvar partition-type on MMC
> > - process "fastboot." prefixed env variables in getvar first so you
> >   can override the normal values (this also lets you set a fs type for
> >   NAND devices)
> > - make global variables static and add accessors for the things which
> >   the transport layers need
> > - squash subsequent patches which change this code into this one:
> >   - If the fastboot flash/erase commands are disabled, remove that
support
> > so we still build correctly.
> >   - Add NAND support to fastboot UDP flash/erase commands
> >   - If we don't have a partition name passed, report it as not found.
> >   - Change the behaviour of the fastboot net code such that
> > "reboot-bootloader" is no longer written to
CONFIG_FASTBOOT_BUF_ADDR for
> > use as a marker on reboot (the AOSP code in
common/android-bootloader.c
> > uses this marker - this code could be reinstated there if that gets
> > merged).
> >   - Merge USB and UDP boot code. The USB implementation stays the same,
but
> > UDP no longer passes an fdt. We introduce a new environment variable
> > 'fastboot_bootcmd' which if set overrides the hardcoded boot
command,
> > setting this then allows the UDP implementation to remain the same.
If
> > after running 'fastboot_bootcmd' the board has not booted, control
is
> > returned to U-Boot and the fastboot process ends.
> >   - Separate the fastboot protocol handling from the fastboot UDP code
in
> > preparation for reusing it in the USB code.
> >
> > Changes in v2:
> > - ensure fastboot syntax is backward compatible - 'fastboot 0' means
> >   'fastboot usb 0'
> >
> >  cmd/fastboot.c|  91 +++-
> >  drivers/fastboot/Kconfig  |  15 ++
> >  drivers/fastboot/Makefile |   3 +-
> >  drivers/fastboot/fb_command.c | 327
++
> >  drivers/fastboot/fb_common.c  | 113 +++
> >  drivers/fastboot/fb_getvar.c  | 229 +
> >  drivers/fastboot/fb_mmc.c |  76 +-
> >  drivers/fastboot/fb_nand.c|  12 +-
> >  include/fastboot.h| 157 
> >  include/fb_mmc.h  |   8 +-
> >  include/fb_nand.h |  10 +-
> >  include/net.h |   2 +-
> >  include/net/fastboot.h|  21 +++
> >  net/Makefile  |   1 +
> >  net/fastboot.c| 312

> >  net/net.c |   7 +
> >  16 files changed, 1367 insertions(+), 17 deletions(-)
> >  create mode 100644 drivers/fastboot/fb_command.c
> >  create mode 100644 drivers/fastboot/fb_getvar.c
> >  create mode 100644 include/net/fastboot.h
> >  create mode 100644 net/fastboot.c
> >
> > diff --git a/cmd/fastboot.c b/cmd/fastboot.c
> > index a5ec5f4..557257a 100644
> > --- a/cmd/fastboot.c
> > +++ b/cmd/fastboot.c
> > @@ -10,10 +10,32 @@
> >  #include 
> >  #include 
> >  #include 
> > +#include 
> > +#include 
> >  #include 
> >
> > -static 

Re: [U-Boot] [PATCH v4 14/14] net: fastboot: Merge AOSP UDP fastboot

2018-05-16 Thread Joe Hershberger
On Tue, May 15, 2018 at 9:48 AM, Alex Kiernan  wrote:
> Merge UDP fastboot support from AOSP:
>
>   
> https://android.googlesource.com/platform/external/u-boot/+/android-o-mr1-iot-preview-8
>
> Signed-off-by: Alex Kiernan 
> Signed-off-by: Alex Deymo 
> Signed-off-by: Jocelyn Bohr 
> Reviewed-by: Simon Glass 
> ---
>
> Changes in v4:
> - guard fb_getvar/fb_command with UDP_FUNCTION_FASTBOOT in Makefile
> - add docbook comments
> - remove parameter from fastboot_boot() since we always want
>   fastboot_buf_addr (and if we're using fastboot_bootcmd then it's
>   ignored)
>
> Changes in v3:
> - use FASTBOOT as our guard in Kconfig not a list of USB || UDP
> - correct mis-translation from AOSP introduced when cleaning up for
>   checkpatch - we should write when buffer is not NULL, rather than
>   erasing, and erase when buffer is NULL
> - use CMD_RET_USAGE from do_fastboot
> - remove do_fastboot_udp from cmd/net.c and rewrite using net_loop()
> - rename timed_send_info to fastboot_send_info, rename fastboot_send_info to
>   fastboot_udp_send_info
> - replace FASTBOOT_HEADER_SIZE with sizeof(struct fastboot_header)
> - move start time into timed_send_info() rather than passing it in
> - make calls to fastboot_udp_send_info a runtime dependency, not a compile
>   time one
> - set ${filesize} to size of downloaded image
> - add progress meter from USB path during download
> - add support for 'oem format' command from the USB path
> - rename 'fastbootcmd' to 'fastboot_bootcmd' to make clear that this is the
>   fastboot boot command
> - make getvar implementation table driven
> - add fastboot_buf_addr, fastboot_buf_size to override buffer address and
>   size
> - return correct filesystem type in getvar partition-type on MMC
> - process "fastboot." prefixed env variables in getvar first so you
>   can override the normal values (this also lets you set a fs type for
>   NAND devices)
> - make global variables static and add accessors for the things which
>   the transport layers need
> - squash subsequent patches which change this code into this one:
>   - If the fastboot flash/erase commands are disabled, remove that support
> so we still build correctly.
>   - Add NAND support to fastboot UDP flash/erase commands
>   - If we don't have a partition name passed, report it as not found.
>   - Change the behaviour of the fastboot net code such that
> "reboot-bootloader" is no longer written to CONFIG_FASTBOOT_BUF_ADDR for
> use as a marker on reboot (the AOSP code in common/android-bootloader.c
> uses this marker - this code could be reinstated there if that gets
> merged).
>   - Merge USB and UDP boot code. The USB implementation stays the same, but
> UDP no longer passes an fdt. We introduce a new environment variable
> 'fastboot_bootcmd' which if set overrides the hardcoded boot command,
> setting this then allows the UDP implementation to remain the same. If
> after running 'fastboot_bootcmd' the board has not booted, control is
> returned to U-Boot and the fastboot process ends.
>   - Separate the fastboot protocol handling from the fastboot UDP code in
> preparation for reusing it in the USB code.
>
> Changes in v2:
> - ensure fastboot syntax is backward compatible - 'fastboot 0' means
>   'fastboot usb 0'
>
>  cmd/fastboot.c|  91 +++-
>  drivers/fastboot/Kconfig  |  15 ++
>  drivers/fastboot/Makefile |   3 +-
>  drivers/fastboot/fb_command.c | 327 
> ++
>  drivers/fastboot/fb_common.c  | 113 +++
>  drivers/fastboot/fb_getvar.c  | 229 +
>  drivers/fastboot/fb_mmc.c |  76 +-
>  drivers/fastboot/fb_nand.c|  12 +-
>  include/fastboot.h| 157 
>  include/fb_mmc.h  |   8 +-
>  include/fb_nand.h |  10 +-
>  include/net.h |   2 +-
>  include/net/fastboot.h|  21 +++
>  net/Makefile  |   1 +
>  net/fastboot.c| 312 
>  net/net.c |   7 +
>  16 files changed, 1367 insertions(+), 17 deletions(-)
>  create mode 100644 drivers/fastboot/fb_command.c
>  create mode 100644 drivers/fastboot/fb_getvar.c
>  create mode 100644 include/net/fastboot.h
>  create mode 100644 net/fastboot.c
>
> diff --git a/cmd/fastboot.c b/cmd/fastboot.c
> index a5ec5f4..557257a 100644
> --- a/cmd/fastboot.c
> +++ b/cmd/fastboot.c
> @@ -10,10 +10,32 @@
>  #include 
>  #include 
>  #include 
> +#include 
> +#include 
>  #include 
>
> -static int do_fastboot(cmd_tbl_t *cmdtp, int flag, int argc, char *const 
> argv[])
> +static int do_fastboot_udp(int argc, char *const argv[],
> +  uintptr_t buf_addr, size_t buf_size)
>  {
> +#if CONFIG_IS_ENABLED(UDP_FUNCTION_FASTBOOT)
> +   int err =