mbox series

[v4,00/10] kernel: mtdsplit_uimage: use device tree properties for non-standard uimage parsing

Message ID 20210120173653.28784-1-bjorn@mork.no
Headers show
Series kernel: mtdsplit_uimage: use device tree properties for non-standard uimage parsing | expand

Message

Bjørn Mork Jan. 20, 2021, 5:36 p.m. UTC
This series replace a number of device specific variants of the
"denx,uimage" partition splitter with a unified parser, using optional
device-tree properties to describe deviations from the standard U-Boot
Image.

This is now tested on a number of devices.  Although tests only cover
a fraction of the affected hardware, I believe it's a good sign that
all tests have been successful.  At least I didn't screw up completely
:-)

There is still no test coverage of devices previously using the
"fonfxc", "sge", "allnet,uimage" or "edimax,uimage" compatibles.


Bjørn

---
Changes in v4:
 - changed license of dt-bindings docs
 - added IH_MAGIC_OKLI, FW_EDIMAX_OFFSET and FW_MAGIC_EDIMAX macros and
   used these instead of the magic values in the DTS files
 - removed unwanted space after comma in patch subjects

Changes in v3:
 - rebased onto current master
 - included a number of new and/or forgotton devices:
    ar7242_engenius_eap350-v1
    ar7242_engenius_ecb350-v1
    ar9341_engenius_eap300-v2
    ar9344_engenius_eap600
    ar9344_engenius_ecb600
    qca9557_engenius_enstationac-v1
    qca9558_belkin_f9j1108-v2
    qca9558_belkin_f9k1115-v2
    mt7620a_edimax_ew-7476rpc
    mt7620a_edimax_ew-7478ac
 - added Tested-by tags for some of the okli and netgear devices

Changes in v2
 - added documentation of the properties, almost upstreamable
 - added a device tree header shared with the driver
 - changed property names to openwrt,foo and tied these to an
   openwrt,uimage compatible string
 - split out the definition of the properties from the deletion of the
   "edimax,uimage" parser


Bjørn Mork (10):
  dt-bindings: mtd: partitions: add OpenWrt defined U-Boot Image
  kernel: mtdsplit_uimage: read extralen from device tree
  kernel: mtdsplit_uimage: replace "fonfxc" and "sge" parsers
  kernel: mtdsplit_uimage: add "openwrt,ih-magic" device-tree property
  kernel: mtdsplit_uimage: replace "openwrt,okli" parser
  kernel: mtdsplit_uimage: replace "allnet,uimage" parser
  kernel: mtdsplit_uimage: add "openwrt,ih-type" device-tree property
  kernel: mtdsplit_uimage: replace "netgear,uimage" parser
  kernel: mtdsplit_uimage: add "openwrt,offset" and
    "openwrt,partition-magic"
  kernel: mtdsplit_uimage: replace "edimax,uimage" parser

 .../linux/ath79/dts/ar7161_netgear_wndr.dtsi  |   1 +
 .../ath79/dts/ar7161_netgear_wndr3700-v2.dts  |   4 +-
 .../ath79/dts/ar7161_netgear_wndr3700.dts     |   4 +-
 .../ath79/dts/ar7161_netgear_wndr3800.dts     |   4 +-
 .../ath79/dts/ar7161_netgear_wndr3800ch.dts   |   4 +-
 .../ath79/dts/ar7161_netgear_wndrmac-v1.dts   |   4 +-
 .../ath79/dts/ar7161_netgear_wndrmac-v2.dts   |   4 +-
 .../ath79/dts/ar7240_engenius_enh202-v1.dts   |   4 +-
 .../ath79/dts/ar7240_netgear_wnr1000-v2.dts   |   5 +-
 .../ath79/dts/ar7240_netgear_wnr612-v2.dtsi   |   5 +-
 .../ath79/dts/ar7241_netgear_wnr2000-v3.dts   |   5 +-
 .../ath79/dts/ar7241_netgear_wnr2200-16m.dts  |   4 +-
 .../ath79/dts/ar7241_netgear_wnr2200-8m.dts   |   4 +-
 .../ath79/dts/ar7241_netgear_wnr2200.dtsi     |   1 +
 .../ath79/dts/ar7242_engenius_eap350-v1.dts   |   4 +-
 .../ath79/dts/ar7242_engenius_ecb350-v1.dts   |   4 +-
 .../ath79/dts/ar9341_engenius_eap300-v2.dts   |   4 +-
 .../dts/ar9341_engenius_ens202ext-v1.dts      |   4 +-
 .../linux/ath79/dts/ar9341_pisen_wmb001n.dts  |   4 +-
 .../ath79/dts/ar9344_engenius_exx600.dtsi     |   4 +-
 .../linux/ath79/dts/ar9344_netgear_wndr.dtsi  |   5 +-
 .../dts/qca9557_engenius_enstationac-v1.dts   |   4 +-
 .../ath79/dts/qca9558_belkin_f9x-v2.dtsi      |   4 +-
 .../mtd/partitions/openwrt,uimage.yaml        |  91 ++++
 .../drivers/mtd/mtdsplit/mtdsplit_uimage.c    | 426 +++---------------
 .../dt-bindings/mtd/partitions/uimage.h       | 198 ++++++++
 .../dts/mt7620a_edimax_br-6478ac-v2.dts       |   5 +-
 .../ramips/dts/mt7620a_edimax_ew-7478apc.dts  |   5 +-
 .../ramips/dts/mt7620a_edimax_ew-747x.dtsi    |   5 +-
 .../linux/ramips/dts/mt7620a_fon_fon2601.dts  |   3 +-
 .../ramips/dts/mt7620n_sunvalley_filehub.dtsi |   4 +-
 .../ramips/dts/mt7621_dlink_dir-8xx-a1.dtsi   |   3 +-
 .../ramips/dts/mt7621_dlink_dir-xx60-a1.dtsi  |   6 +-
 .../linux/ramips/dts/mt7621_edimax_re23s.dts  |   5 +-
 .../ramips/dts/rt3050_edimax_3g-6200n.dts     |   5 +-
 .../ramips/dts/rt3050_edimax_3g-6200nl.dts    |   5 +-
 .../ramips/dts/rt3662_edimax_br-6475nd.dts    |   5 +-
 .../dts/rtl8380_netgear_gs110tpp-v1.dts       |   3 +-
 .../dts/rtl8382_allnet_all-sg8208m.dts        |   3 +-
 39 files changed, 471 insertions(+), 391 deletions(-)
 create mode 100644 target/linux/generic/files/Documentation/devicetree/bindings/mtd/partitions/openwrt,uimage.yaml
 create mode 100644 target/linux/generic/files/include/dt-bindings/mtd/partitions/uimage.h