[PATCH 00/16] USB: gadget: refactor to allow easier extension

Ahmad Fatoum a.fatoum at pengutronix.de
Mon May 3 04:48:45 PDT 2021


 There's some duplication between DFU and Fastboot and incoming USB
 mass storage support as well as custom protocols that might be
 implemented by board vendors could benefit from some consolidation.

 This is added here in the form of system partitions, which is just
 a way to have a machine-global file_list, that can be used as fallback
 for fastboot, DFU, mass storage gadget, ... etc.

 Some commits are not directly related and happened along the way.

 v2 -> v3:
  - squash fixups
  - add new commit to ignore NULL in file_list_free
  - reworked usbgadget_register logic, so usbgadget -D '' with no
    DFU compiled in is not silently ignored
  - fix error checking in file_list_detect_all

 v1 -> v2:
  - log_writefile(filename) instead of log_dprint(fd) (Sascha)
  - rename $machine.partitions to $global.system.partitions (Sascha)
  - add new commit fixing error with appending to files on ext4


Ahmad Fatoum (16):
  show_progress: add system wide progress stage notifier
  common: console: add log_writefile to write log into new file
  string: implement strstarts along with strends
  vsprintf: introduce %m shorthand for "%s", strerror(errno)
  param: introduce file-list parameter type
  common: add generic system partitions interface
  fastboot: handle ill-named partitions gracefully
  usb: gadget: dfu: change status message to info log level
  usbgadget: autostart: fix indeterminism around usbgadget.autostart
  usbgadget: allow DFU and Fastboot functions to coexist
  file_list: make freeing a NULL pointer a no-op
  fastboot/dfu: use system partitions as fall back
  bbu: add function to directly add handlers into file_list
  file_list: add file_list_detect_all()
  common: make FILE_LIST feature unconditional
  fs: error out when writing on read-only file system

 common/Kconfig              | 15 ++++--
 common/Makefile             |  3 +-
 common/bbu.c                | 24 ++++++----
 common/console_common.c     | 20 ++++++++
 common/fastboot.c           | 28 ++++-------
 common/file-list.c          | 85 +++++++++++++++++++++++++++++++++
 common/system-partitions.c  | 44 ++++++++++++++++++
 common/usbgadget.c          | 93 ++++++++++++++++++++++---------------
 drivers/usb/gadget/Kconfig  |  2 -
 drivers/usb/gadget/dfu.c    |  3 +-
 drivers/usb/gadget/multi.c  | 18 +++++--
 fs/fs.c                     |  6 +--
 include/bbu.h               | 10 +++-
 include/fastboot.h          |  6 +--
 include/file-list.h         | 12 +++++
 include/linux/string.h      | 10 ++++
 include/param.h             | 15 ++++++
 include/printk.h            |  1 +
 include/progress.h          | 43 +++++++++++++++++
 include/string.h            |  1 +
 include/stringlist.h        |  1 +
 include/system-partitions.h | 40 ++++++++++++++++
 include/usb/gadget-multi.h  |  1 +
 lib/Kconfig                 |  6 +++
 lib/parameter.c             | 88 +++++++++++++++++++++++++++++++++++
 lib/show_progress.c         | 28 +++++++++++
 lib/string.c                |  9 ++++
 lib/stringlist.c            | 30 ++++++++++++
 lib/vsprintf.c              | 13 ++++++
 net/Kconfig                 |  1 -
 net/fastboot.c              |  4 +-
 31 files changed, 571 insertions(+), 89 deletions(-)
 create mode 100644 common/system-partitions.c
 create mode 100644 include/system-partitions.h

-- 
2.29.2




More information about the barebox mailing list