linux-mtd.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/3] mtd: Move Redboot partition parser
@ 2018-10-19  7:06 Linus Walleij
  2018-10-19  7:06 ` [PATCH 2/3] mtd: partitions: Add RedBoot FIS DT bindings Linus Walleij
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Linus Walleij @ 2018-10-19  7:06 UTC (permalink / raw)
  To: David Woodhouse, Brian Norris, Boris Brezillon, Marek Vasut,
	Richard Weinberger, linux-mtd
  Cc: Linus Walleij

This moves the Redboot partition parser down to the parsers
subdirectory.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 drivers/mtd/Kconfig                 | 50 -----------------------------
 drivers/mtd/Makefile                |  1 -
 drivers/mtd/parsers/Kconfig         | 50 +++++++++++++++++++++++++++++
 drivers/mtd/parsers/Makefile        |  1 +
 drivers/mtd/{ => parsers}/redboot.c |  0
 5 files changed, 51 insertions(+), 51 deletions(-)
 rename drivers/mtd/{ => parsers}/redboot.c (100%)

diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig
index c77f537323ec..4523c875f29a 100644
--- a/drivers/mtd/Kconfig
+++ b/drivers/mtd/Kconfig
@@ -22,56 +22,6 @@ config MTD_TESTS
 	  WARNING: some of the tests will ERASE entire MTD device which they
 	  test. Do not use these tests unless you really know what you do.
 
-config MTD_REDBOOT_PARTS
-	tristate "RedBoot partition table parsing"
-	help
-	  RedBoot is a ROM monitor and bootloader which deals with multiple
-	  'images' in flash devices by putting a table one of the erase
-	  blocks on the device, similar to a partition table, which gives
-	  the offsets, lengths and names of all the images stored in the
-	  flash.
-
-	  If you need code which can detect and parse this table, and register
-	  MTD 'partitions' corresponding to each image in the table, enable
-	  this option.
-
-	  You will still need the parsing functions to be called by the driver
-	  for your particular device. It won't happen automatically. The
-	  SA1100 map driver (CONFIG_MTD_SA1100) has an option for this, for
-	  example.
-
-if MTD_REDBOOT_PARTS
-
-config MTD_REDBOOT_DIRECTORY_BLOCK
-	int "Location of RedBoot partition table"
-	default "-1"
-	help
-	  This option is the Linux counterpart to the
-	  CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK RedBoot compile time
-	  option.
-
-	  The option specifies which Flash sectors holds the RedBoot
-	  partition table.  A zero or positive value gives an absolute
-	  erase block number. A negative value specifies a number of
-	  sectors before the end of the device.
-
-	  For example "2" means block number 2, "-1" means the last
-	  block and "-2" means the penultimate block.
-
-config MTD_REDBOOT_PARTS_UNALLOCATED
-	bool "Include unallocated flash regions"
-	help
-	  If you need to register each unallocated flash region as a MTD
-	  'partition', enable this option.
-
-config MTD_REDBOOT_PARTS_READONLY
-	bool "Force read-only for RedBoot system images"
-	help
-	  If you need to force read-only for 'RedBoot', 'RedBoot Config' and
-	  'FIS directory' images, enable this option.
-
-endif # MTD_REDBOOT_PARTS
-
 config MTD_CMDLINE_PARTS
 	tristate "Command line partition table parsing"
 	depends on MTD
diff --git a/drivers/mtd/Makefile b/drivers/mtd/Makefile
index 93473d215a38..58fc327a5276 100644
--- a/drivers/mtd/Makefile
+++ b/drivers/mtd/Makefile
@@ -8,7 +8,6 @@ obj-$(CONFIG_MTD)		+= mtd.o
 mtd-y				:= mtdcore.o mtdsuper.o mtdconcat.o mtdpart.o mtdchar.o
 
 obj-$(CONFIG_MTD_OF_PARTS)	+= ofpart.o
-obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o
 obj-$(CONFIG_MTD_CMDLINE_PARTS) += cmdlinepart.o
 obj-$(CONFIG_MTD_AFS_PARTS)	+= afs.o
 obj-$(CONFIG_MTD_AR7_PARTS)	+= ar7part.o
diff --git a/drivers/mtd/parsers/Kconfig b/drivers/mtd/parsers/Kconfig
index ee5ab994132f..fccf1950e92d 100644
--- a/drivers/mtd/parsers/Kconfig
+++ b/drivers/mtd/parsers/Kconfig
@@ -14,3 +14,53 @@ config MTD_SHARPSL_PARTS
 	  This provides the read-only FTL logic necessary to read the partition
 	  table from the NAND flash of Sharp SL Series (Zaurus) and the MTD
 	  partition parser using this code.
+
+config MTD_REDBOOT_PARTS
+	tristate "RedBoot partition table parsing"
+	help
+	  RedBoot is a ROM monitor and bootloader which deals with multiple
+	  'images' in flash devices by putting a table one of the erase
+	  blocks on the device, similar to a partition table, which gives
+	  the offsets, lengths and names of all the images stored in the
+	  flash.
+
+	  If you need code which can detect and parse this table, and register
+	  MTD 'partitions' corresponding to each image in the table, enable
+	  this option.
+
+	  You will still need the parsing functions to be called by the driver
+	  for your particular device. It won't happen automatically. The
+	  SA1100 map driver (CONFIG_MTD_SA1100) has an option for this, for
+	  example.
+
+if MTD_REDBOOT_PARTS
+
+config MTD_REDBOOT_DIRECTORY_BLOCK
+	int "Location of RedBoot partition table"
+	default "-1"
+	help
+	  This option is the Linux counterpart to the
+	  CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK RedBoot compile time
+	  option.
+
+	  The option specifies which Flash sectors holds the RedBoot
+	  partition table.  A zero or positive value gives an absolute
+	  erase block number. A negative value specifies a number of
+	  sectors before the end of the device.
+
+	  For example "2" means block number 2, "-1" means the last
+	  block and "-2" means the penultimate block.
+
+config MTD_REDBOOT_PARTS_UNALLOCATED
+	bool "Include unallocated flash regions"
+	help
+	  If you need to register each unallocated flash region as a MTD
+	  'partition', enable this option.
+
+config MTD_REDBOOT_PARTS_READONLY
+	bool "Force read-only for RedBoot system images"
+	help
+	  If you need to force read-only for 'RedBoot', 'RedBoot Config' and
+	  'FIS directory' images, enable this option.
+
+endif # MTD_REDBOOT_PARTS
diff --git a/drivers/mtd/parsers/Makefile b/drivers/mtd/parsers/Makefile
index 5b1bcc3d90d9..d8418bf6804a 100644
--- a/drivers/mtd/parsers/Makefile
+++ b/drivers/mtd/parsers/Makefile
@@ -1,2 +1,3 @@
 obj-$(CONFIG_MTD_PARSER_TRX)		+= parser_trx.o
 obj-$(CONFIG_MTD_SHARPSL_PARTS)		+= sharpslpart.o
+obj-$(CONFIG_MTD_REDBOOT_PARTS)		+= redboot.o
diff --git a/drivers/mtd/redboot.c b/drivers/mtd/parsers/redboot.c
similarity index 100%
rename from drivers/mtd/redboot.c
rename to drivers/mtd/parsers/redboot.c
-- 
2.17.2

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 2/3] mtd: partitions: Add RedBoot FIS DT bindings
  2018-10-19  7:06 [PATCH 1/3] mtd: Move Redboot partition parser Linus Walleij
@ 2018-10-19  7:06 ` Linus Walleij
  2018-10-19  7:27   ` Linus Walleij
  2018-10-25 19:08   ` Rob Herring
  2018-10-19  7:06 ` [PATCH 3/3] mtd: partitions: Add OF support to RedBoot partitions Linus Walleij
  2018-10-22  9:36 ` [PATCH 1/3] mtd: Move Redboot partition parser Boris Brezillon
  2 siblings, 2 replies; 10+ messages in thread
From: Linus Walleij @ 2018-10-19  7:06 UTC (permalink / raw)
  To: David Woodhouse, Brian Norris, Boris Brezillon, Marek Vasut,
	Richard Weinberger, linux-mtd
  Cc: Linus Walleij, devicetree

This adds device tree bindings for the RedBoot FIS partition
format.

Cc: devicetree@vger.kernel.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 .../bindings/mtd/partitions/redboot-fis.txt   | 27 +++++++++++++++++++
 1 file changed, 27 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/mtd/partitions/redboot-fis.txt

diff --git a/Documentation/devicetree/bindings/mtd/partitions/redboot-fis.txt b/Documentation/devicetree/bindings/mtd/partitions/redboot-fis.txt
new file mode 100644
index 000000000000..fd0ebe4e3415
--- /dev/null
+++ b/Documentation/devicetree/bindings/mtd/partitions/redboot-fis.txt
@@ -0,0 +1,27 @@
+RedBoot FLASH Image System (FIS) Partitions
+===========================================
+
+The FLASH Image System (FIS) directory is a flash description
+format closely associated with the RedBoot boot loader.
+
+It uses one single flash eraseblock in the flash to store an index of
+all images in the flash.
+
+This block size will vary depending on flash but is typically
+32 KB in size.
+
+Required properties:
+- compatible : (required) must be "redboot-fis"
+- fis-index-block : (required) a index to the eraseblock containing
+  the FIS directory on this device. On a flash memory with 32KB
+  eraseblocks, 0 means the first eraseblock at 0x00000000, 1 means the
+  second eraseblock at 0x00008000 and so on.
+
+Example:
+
+flash@0 {
+	partitions {
+		compatible = "redboot-fis";
+		fis-index-block = <0>;
+	};
+};
-- 
2.17.2

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 3/3] mtd: partitions: Add OF support to RedBoot partitions
  2018-10-19  7:06 [PATCH 1/3] mtd: Move Redboot partition parser Linus Walleij
  2018-10-19  7:06 ` [PATCH 2/3] mtd: partitions: Add RedBoot FIS DT bindings Linus Walleij
@ 2018-10-19  7:06 ` Linus Walleij
  2018-10-19  7:59   ` Boris Brezillon
  2018-10-22  9:36 ` [PATCH 1/3] mtd: Move Redboot partition parser Boris Brezillon
  2 siblings, 1 reply; 10+ messages in thread
From: Linus Walleij @ 2018-10-19  7:06 UTC (permalink / raw)
  To: David Woodhouse, Brian Norris, Boris Brezillon, Marek Vasut,
	Richard Weinberger, linux-mtd
  Cc: Linus Walleij

This adds device tree support for RedBoot partitioning. We
read out the FIS directory block information from the device
tree and then parse the partition table from there.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 drivers/mtd/parsers/redboot.c | 35 ++++++++++++++++++++++++++++++++++-
 1 file changed, 34 insertions(+), 1 deletion(-)

diff --git a/drivers/mtd/parsers/redboot.c b/drivers/mtd/parsers/redboot.c
index 7623ac5fc586..fb816825aa19 100644
--- a/drivers/mtd/parsers/redboot.c
+++ b/drivers/mtd/parsers/redboot.c
@@ -25,7 +25,7 @@
 #include <linux/slab.h>
 #include <linux/init.h>
 #include <linux/vmalloc.h>
-
+#include <linux/of.h>
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/partitions.h>
 #include <linux/module.h>
@@ -56,6 +56,31 @@ static inline int redboot_checksum(struct fis_image_desc *img)
 	return 1;
 }
 
+#ifdef CONFIG_OF
+static void parse_redboot_of(struct mtd_info *master)
+{
+	struct device_node *np;
+	u32 dirblock;
+	int ret;
+
+	np = mtd_get_of_node(master);
+	if (!np)
+		return;
+	ret = of_property_read_u32(np, "fis-index-block", &dirblock);
+	if (ret)
+		return;
+	/*
+	 * Assign the block found in the device tree to the local
+	 * directory block pointer.
+	 */
+	directory = dirblock;
+}
+#else
+static void parse_redboot_of(struct mtd_info *master)
+{
+}
+#endif
+
 static int parse_redboot_partitions(struct mtd_info *master,
 				    const struct mtd_partition **pparts,
 				    struct mtd_part_parser_data *data)
@@ -75,6 +100,7 @@ static int parse_redboot_partitions(struct mtd_info *master,
 #ifdef CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED
 	static char nullstring[] = "unallocated";
 #endif
+	parse_redboot_of(master);
 
 	if ( directory < 0 ) {
 		offset = master->size + directory * master->erasesize;
@@ -289,9 +315,16 @@ static int parse_redboot_partitions(struct mtd_info *master,
 	return ret;
 }
 
+static const struct of_device_id mtd_parser_redboot_of_match_table[] = {
+	{ .compatible = "redboot-fis" },
+	{},
+};
+MODULE_DEVICE_TABLE(of, mtd_parser_trx_of_match_table);
+
 static struct mtd_part_parser redboot_parser = {
 	.parse_fn = parse_redboot_partitions,
 	.name = "RedBoot",
+	.of_match_table = mtd_parser_redboot_of_match_table,
 };
 module_mtd_part_parser(redboot_parser);
 
-- 
2.17.2

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/3] mtd: partitions: Add RedBoot FIS DT bindings
  2018-10-19  7:06 ` [PATCH 2/3] mtd: partitions: Add RedBoot FIS DT bindings Linus Walleij
@ 2018-10-19  7:27   ` Linus Walleij
  2018-10-19  7:52     ` Boris Brezillon
  2018-10-25 19:08     ` Rob Herring
  2018-10-25 19:08   ` Rob Herring
  1 sibling, 2 replies; 10+ messages in thread
From: Linus Walleij @ 2018-10-19  7:27 UTC (permalink / raw)
  To: David Woodhouse, Brian Norris, Boris BREZILLON, Mark Vasut,
	Richard Weinberger, linux-mtd,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS

Hi,

now just to forestall possible predictable bikeshedding on the devicetree
list before it happens:

On Fri, Oct 19, 2018 at 9:06 AM Linus Walleij <linus.walleij@linaro.org> wrote:

> +RedBoot FLASH Image System (FIS) Partitions

This expansion of the acronym including using capital letters in
FLASH comes from the eCOS source code for RedBoot:
https://sourceware.org/viewvc/ecos/packages/redboot/current/src/flash.c?view=markup

> +- compatible : (required) must be "redboot-fis"

There is no vendor here because the source code was owned by
Cygnus Solutions, Redhat and now Free Software Foundation.
https://en.wikipedia.org/wiki/ECos

We have no (AFAICT) policy for whether stuff that just change vendor
all the time should be named after the inventing (first) company "cygnus,*",
current owner "fsf,*" or the one that made most changes to the source
code "redhat,*". I do not think we should care, and just name it
"redboot-fis" for it's historical value and widespread acceptance so this
is a conscious naming scheme.

If one of the OF maintainers says they want it a certain way I will change
it without discussion, I just want this supported.

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/3] mtd: partitions: Add RedBoot FIS DT bindings
  2018-10-19  7:27   ` Linus Walleij
@ 2018-10-19  7:52     ` Boris Brezillon
  2018-10-25 19:08     ` Rob Herring
  1 sibling, 0 replies; 10+ messages in thread
From: Boris Brezillon @ 2018-10-19  7:52 UTC (permalink / raw)
  To: Linus Walleij
  Cc: David Woodhouse, Brian Norris, Boris BREZILLON, Mark Vasut,
	Richard Weinberger, linux-mtd,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS

On Fri, 19 Oct 2018 09:27:24 +0200
Linus Walleij <linus.walleij@linaro.org> wrote:

> Hi,
> 
> now just to forestall possible predictable bikeshedding on the devicetree
> list before it happens:
> 
> On Fri, Oct 19, 2018 at 9:06 AM Linus Walleij <linus.walleij@linaro.org> wrote:
> 
> > +RedBoot FLASH Image System (FIS) Partitions  
> 
> This expansion of the acronym including using capital letters in
> FLASH comes from the eCOS source code for RedBoot:
> https://sourceware.org/viewvc/ecos/packages/redboot/current/src/flash.c?view=markup
> 
> > +- compatible : (required) must be "redboot-fis"  
> 
> There is no vendor here because the source code was owned by
> Cygnus Solutions, Redhat and now Free Software Foundation.
> https://en.wikipedia.org/wiki/ECos
> 
> We have no (AFAICT) policy for whether stuff that just change vendor
> all the time should be named after the inventing (first) company "cygnus,*",
> current owner "fsf,*" or the one that made most changes to the source
> code "redhat,*". I do not think we should care, and just name it
> "redboot-fis" for it's historical value and widespread acceptance so this
> is a conscious naming scheme.
> 
> If one of the OF maintainers says they want it a certain way I will change
> it without discussion, I just want this supported.

If you send a new version, don't forget to update the subject prefix
("dt-bindings: mtd: ...") :-).

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 3/3] mtd: partitions: Add OF support to RedBoot partitions
  2018-10-19  7:06 ` [PATCH 3/3] mtd: partitions: Add OF support to RedBoot partitions Linus Walleij
@ 2018-10-19  7:59   ` Boris Brezillon
  0 siblings, 0 replies; 10+ messages in thread
From: Boris Brezillon @ 2018-10-19  7:59 UTC (permalink / raw)
  To: Linus Walleij
  Cc: David Woodhouse, Brian Norris, Boris Brezillon, Marek Vasut,
	Richard Weinberger, linux-mtd

On Fri, 19 Oct 2018 09:06:22 +0200
Linus Walleij <linus.walleij@linaro.org> wrote:

> This adds device tree support for RedBoot partitioning. We
> read out the FIS directory block information from the device
> tree and then parse the partition table from there.
> 
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
>  drivers/mtd/parsers/redboot.c | 35 ++++++++++++++++++++++++++++++++++-
>  1 file changed, 34 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/mtd/parsers/redboot.c b/drivers/mtd/parsers/redboot.c
> index 7623ac5fc586..fb816825aa19 100644
> --- a/drivers/mtd/parsers/redboot.c
> +++ b/drivers/mtd/parsers/redboot.c
> @@ -25,7 +25,7 @@
>  #include <linux/slab.h>
>  #include <linux/init.h>
>  #include <linux/vmalloc.h>
> -
> +#include <linux/of.h>
>  #include <linux/mtd/mtd.h>
>  #include <linux/mtd/partitions.h>
>  #include <linux/module.h>
> @@ -56,6 +56,31 @@ static inline int redboot_checksum(struct fis_image_desc *img)
>  	return 1;
>  }
>  
> +#ifdef CONFIG_OF
> +static void parse_redboot_of(struct mtd_info *master)
> +{
> +	struct device_node *np;
> +	u32 dirblock;
> +	int ret;
> +
> +	np = mtd_get_of_node(master);
> +	if (!np)
> +		return;
> +	ret = of_property_read_u32(np, "fis-index-block", &dirblock);
> +	if (ret)
> +		return;
> +	/*
> +	 * Assign the block found in the device tree to the local
> +	 * directory block pointer.
> +	 */
> +	directory = dirblock;
> +}
> +#else
> +static void parse_redboot_of(struct mtd_info *master)
> +{
> +}
> +#endif
> +
>  static int parse_redboot_partitions(struct mtd_info *master,
>  				    const struct mtd_partition **pparts,
>  				    struct mtd_part_parser_data *data)
> @@ -75,6 +100,7 @@ static int parse_redboot_partitions(struct mtd_info *master,
>  #ifdef CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED
>  	static char nullstring[] = "unallocated";
>  #endif
> +	parse_redboot_of(master);
>  
>  	if ( directory < 0 ) {
>  		offset = master->size + directory * master->erasesize;
> @@ -289,9 +315,16 @@ static int parse_redboot_partitions(struct mtd_info *master,
>  	return ret;
>  }
>  
> +static const struct of_device_id mtd_parser_redboot_of_match_table[] = {
> +	{ .compatible = "redboot-fis" },
> +	{},
> +};
> +MODULE_DEVICE_TABLE(of, mtd_parser_trx_of_match_table);

You might want to have this match table definition enclosed in a #ifdef
CONFIG_OF section...

> +
>  static struct mtd_part_parser redboot_parser = {
>  	.parse_fn = parse_redboot_partitions,
>  	.name = "RedBoot",
> +	.of_match_table = mtd_parser_redboot_of_match_table,

... and use of_match_ptr(mtd_parser_redboot_of_match_table) here.

I'm proposing that to make it consistent with the
approach you've taken for the parse_redboot_of() function.

Alternatively, you could just drop the #ifdef CONFIG_OF section around
parse_redboot_of() (there's already a dummy of_property_read_u32()
func returning -ENOSYS when CONFIG_OF is not set, so it should work
just fine).

>  };
>  module_mtd_part_parser(redboot_parser);
>  

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/3] mtd: Move Redboot partition parser
  2018-10-19  7:06 [PATCH 1/3] mtd: Move Redboot partition parser Linus Walleij
  2018-10-19  7:06 ` [PATCH 2/3] mtd: partitions: Add RedBoot FIS DT bindings Linus Walleij
  2018-10-19  7:06 ` [PATCH 3/3] mtd: partitions: Add OF support to RedBoot partitions Linus Walleij
@ 2018-10-22  9:36 ` Boris Brezillon
  2 siblings, 0 replies; 10+ messages in thread
From: Boris Brezillon @ 2018-10-22  9:36 UTC (permalink / raw)
  To: Linus Walleij
  Cc: David Woodhouse, Brian Norris, Boris Brezillon, Marek Vasut,
	Richard Weinberger, linux-mtd, Rafał Miłecki

+Rafal 

On Fri, 19 Oct 2018 09:06:20 +0200
Linus Walleij <linus.walleij@linaro.org> wrote:

> This moves the Redboot partition parser down to the parsers
> subdirectory.

Rafal, could you have a look at this patchset and maybe add your R-b if
you're okay with it?

Thanks,

Boris

> 
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
>  drivers/mtd/Kconfig                 | 50 -----------------------------
>  drivers/mtd/Makefile                |  1 -
>  drivers/mtd/parsers/Kconfig         | 50 +++++++++++++++++++++++++++++
>  drivers/mtd/parsers/Makefile        |  1 +
>  drivers/mtd/{ => parsers}/redboot.c |  0
>  5 files changed, 51 insertions(+), 51 deletions(-)
>  rename drivers/mtd/{ => parsers}/redboot.c (100%)
> 
> diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig
> index c77f537323ec..4523c875f29a 100644
> --- a/drivers/mtd/Kconfig
> +++ b/drivers/mtd/Kconfig
> @@ -22,56 +22,6 @@ config MTD_TESTS
>  	  WARNING: some of the tests will ERASE entire MTD device which they
>  	  test. Do not use these tests unless you really know what you do.
>  
> -config MTD_REDBOOT_PARTS
> -	tristate "RedBoot partition table parsing"
> -	help
> -	  RedBoot is a ROM monitor and bootloader which deals with multiple
> -	  'images' in flash devices by putting a table one of the erase
> -	  blocks on the device, similar to a partition table, which gives
> -	  the offsets, lengths and names of all the images stored in the
> -	  flash.
> -
> -	  If you need code which can detect and parse this table, and register
> -	  MTD 'partitions' corresponding to each image in the table, enable
> -	  this option.
> -
> -	  You will still need the parsing functions to be called by the driver
> -	  for your particular device. It won't happen automatically. The
> -	  SA1100 map driver (CONFIG_MTD_SA1100) has an option for this, for
> -	  example.
> -
> -if MTD_REDBOOT_PARTS
> -
> -config MTD_REDBOOT_DIRECTORY_BLOCK
> -	int "Location of RedBoot partition table"
> -	default "-1"
> -	help
> -	  This option is the Linux counterpart to the
> -	  CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK RedBoot compile time
> -	  option.
> -
> -	  The option specifies which Flash sectors holds the RedBoot
> -	  partition table.  A zero or positive value gives an absolute
> -	  erase block number. A negative value specifies a number of
> -	  sectors before the end of the device.
> -
> -	  For example "2" means block number 2, "-1" means the last
> -	  block and "-2" means the penultimate block.
> -
> -config MTD_REDBOOT_PARTS_UNALLOCATED
> -	bool "Include unallocated flash regions"
> -	help
> -	  If you need to register each unallocated flash region as a MTD
> -	  'partition', enable this option.
> -
> -config MTD_REDBOOT_PARTS_READONLY
> -	bool "Force read-only for RedBoot system images"
> -	help
> -	  If you need to force read-only for 'RedBoot', 'RedBoot Config' and
> -	  'FIS directory' images, enable this option.
> -
> -endif # MTD_REDBOOT_PARTS
> -
>  config MTD_CMDLINE_PARTS
>  	tristate "Command line partition table parsing"
>  	depends on MTD
> diff --git a/drivers/mtd/Makefile b/drivers/mtd/Makefile
> index 93473d215a38..58fc327a5276 100644
> --- a/drivers/mtd/Makefile
> +++ b/drivers/mtd/Makefile
> @@ -8,7 +8,6 @@ obj-$(CONFIG_MTD)		+= mtd.o
>  mtd-y				:= mtdcore.o mtdsuper.o mtdconcat.o mtdpart.o mtdchar.o
>  
>  obj-$(CONFIG_MTD_OF_PARTS)	+= ofpart.o
> -obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o
>  obj-$(CONFIG_MTD_CMDLINE_PARTS) += cmdlinepart.o
>  obj-$(CONFIG_MTD_AFS_PARTS)	+= afs.o
>  obj-$(CONFIG_MTD_AR7_PARTS)	+= ar7part.o
> diff --git a/drivers/mtd/parsers/Kconfig b/drivers/mtd/parsers/Kconfig
> index ee5ab994132f..fccf1950e92d 100644
> --- a/drivers/mtd/parsers/Kconfig
> +++ b/drivers/mtd/parsers/Kconfig
> @@ -14,3 +14,53 @@ config MTD_SHARPSL_PARTS
>  	  This provides the read-only FTL logic necessary to read the partition
>  	  table from the NAND flash of Sharp SL Series (Zaurus) and the MTD
>  	  partition parser using this code.
> +
> +config MTD_REDBOOT_PARTS
> +	tristate "RedBoot partition table parsing"
> +	help
> +	  RedBoot is a ROM monitor and bootloader which deals with multiple
> +	  'images' in flash devices by putting a table one of the erase
> +	  blocks on the device, similar to a partition table, which gives
> +	  the offsets, lengths and names of all the images stored in the
> +	  flash.
> +
> +	  If you need code which can detect and parse this table, and register
> +	  MTD 'partitions' corresponding to each image in the table, enable
> +	  this option.
> +
> +	  You will still need the parsing functions to be called by the driver
> +	  for your particular device. It won't happen automatically. The
> +	  SA1100 map driver (CONFIG_MTD_SA1100) has an option for this, for
> +	  example.
> +
> +if MTD_REDBOOT_PARTS
> +
> +config MTD_REDBOOT_DIRECTORY_BLOCK
> +	int "Location of RedBoot partition table"
> +	default "-1"
> +	help
> +	  This option is the Linux counterpart to the
> +	  CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK RedBoot compile time
> +	  option.
> +
> +	  The option specifies which Flash sectors holds the RedBoot
> +	  partition table.  A zero or positive value gives an absolute
> +	  erase block number. A negative value specifies a number of
> +	  sectors before the end of the device.
> +
> +	  For example "2" means block number 2, "-1" means the last
> +	  block and "-2" means the penultimate block.
> +
> +config MTD_REDBOOT_PARTS_UNALLOCATED
> +	bool "Include unallocated flash regions"
> +	help
> +	  If you need to register each unallocated flash region as a MTD
> +	  'partition', enable this option.
> +
> +config MTD_REDBOOT_PARTS_READONLY
> +	bool "Force read-only for RedBoot system images"
> +	help
> +	  If you need to force read-only for 'RedBoot', 'RedBoot Config' and
> +	  'FIS directory' images, enable this option.
> +
> +endif # MTD_REDBOOT_PARTS
> diff --git a/drivers/mtd/parsers/Makefile b/drivers/mtd/parsers/Makefile
> index 5b1bcc3d90d9..d8418bf6804a 100644
> --- a/drivers/mtd/parsers/Makefile
> +++ b/drivers/mtd/parsers/Makefile
> @@ -1,2 +1,3 @@
>  obj-$(CONFIG_MTD_PARSER_TRX)		+= parser_trx.o
>  obj-$(CONFIG_MTD_SHARPSL_PARTS)		+= sharpslpart.o
> +obj-$(CONFIG_MTD_REDBOOT_PARTS)		+= redboot.o
> diff --git a/drivers/mtd/redboot.c b/drivers/mtd/parsers/redboot.c
> similarity index 100%
> rename from drivers/mtd/redboot.c
> rename to drivers/mtd/parsers/redboot.c

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/3] mtd: partitions: Add RedBoot FIS DT bindings
  2018-10-19  7:27   ` Linus Walleij
  2018-10-19  7:52     ` Boris Brezillon
@ 2018-10-25 19:08     ` Rob Herring
  2018-10-28 19:24       ` Linus Walleij
  1 sibling, 1 reply; 10+ messages in thread
From: Rob Herring @ 2018-10-25 19:08 UTC (permalink / raw)
  To: Linus Walleij
  Cc: David Woodhouse, Brian Norris, Boris BREZILLON, Mark Vasut,
	Richard Weinberger, linux-mtd,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS

On Fri, Oct 19, 2018 at 09:27:24AM +0200, Linus Walleij wrote:
> Hi,
> 
> now just to forestall possible predictable bikeshedding on the devicetree
> list before it happens:
> 
> On Fri, Oct 19, 2018 at 9:06 AM Linus Walleij <linus.walleij@linaro.org> wrote:
> 
> > +RedBoot FLASH Image System (FIS) Partitions
> 
> This expansion of the acronym including using capital letters in
> FLASH comes from the eCOS source code for RedBoot:
> https://sourceware.org/viewvc/ecos/packages/redboot/current/src/flash.c?view=markup
> 
> > +- compatible : (required) must be "redboot-fis"
> 
> There is no vendor here because the source code was owned by
> Cygnus Solutions, Redhat and now Free Software Foundation.
> https://en.wikipedia.org/wiki/ECos
> 
> We have no (AFAICT) policy for whether stuff that just change vendor
> all the time should be named after the inventing (first) company "cygnus,*",
> current owner "fsf,*" or the one that made most changes to the source
> code "redhat,*". I do not think we should care, and just name it
> "redboot-fis" for it's historical value and widespread acceptance so this
> is a conscious naming scheme.
> 
> If one of the OF maintainers says they want it a certain way I will change
> it without discussion, I just want this supported.

It's all fine for me.

I was only going to comment is Redboot still a thing? :)

Rob

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/3] mtd: partitions: Add RedBoot FIS DT bindings
  2018-10-19  7:06 ` [PATCH 2/3] mtd: partitions: Add RedBoot FIS DT bindings Linus Walleij
  2018-10-19  7:27   ` Linus Walleij
@ 2018-10-25 19:08   ` Rob Herring
  1 sibling, 0 replies; 10+ messages in thread
From: Rob Herring @ 2018-10-25 19:08 UTC (permalink / raw)
  To: Linus Walleij
  Cc: David Woodhouse, Brian Norris, Boris Brezillon, Marek Vasut,
	Richard Weinberger, linux-mtd, Linus Walleij, devicetree

On Fri, 19 Oct 2018 09:06:21 +0200, Linus Walleij wrote:
> This adds device tree bindings for the RedBoot FIS partition
> format.
> 
> Cc: devicetree@vger.kernel.org
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
>  .../bindings/mtd/partitions/redboot-fis.txt   | 27 +++++++++++++++++++
>  1 file changed, 27 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/mtd/partitions/redboot-fis.txt
> 

Reviewed-by: Rob Herring <robh@kernel.org>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/3] mtd: partitions: Add RedBoot FIS DT bindings
  2018-10-25 19:08     ` Rob Herring
@ 2018-10-28 19:24       ` Linus Walleij
  0 siblings, 0 replies; 10+ messages in thread
From: Linus Walleij @ 2018-10-28 19:24 UTC (permalink / raw)
  To: Rob Herring
  Cc: David Woodhouse, Brian Norris, Boris BREZILLON, Mark Vasut,
	Richard Weinberger, linux-mtd,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS

On Thu, Oct 25, 2018 at 9:08 PM Rob Herring <robh@kernel.org> wrote:

> It's all fine for me.

Thanks.

> I was only going to comment is Redboot still a thing? :)

Yep. What I've learned recently is that some of the stuff we
support has way longer lifecycles than we expected. There are
brand new devices shipping using the RedBoot partition table
as we speak. It seems to be coming from places like Taiwan.

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2018-10-28 19:25 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-19  7:06 [PATCH 1/3] mtd: Move Redboot partition parser Linus Walleij
2018-10-19  7:06 ` [PATCH 2/3] mtd: partitions: Add RedBoot FIS DT bindings Linus Walleij
2018-10-19  7:27   ` Linus Walleij
2018-10-19  7:52     ` Boris Brezillon
2018-10-25 19:08     ` Rob Herring
2018-10-28 19:24       ` Linus Walleij
2018-10-25 19:08   ` Rob Herring
2018-10-19  7:06 ` [PATCH 3/3] mtd: partitions: Add OF support to RedBoot partitions Linus Walleij
2018-10-19  7:59   ` Boris Brezillon
2018-10-22  9:36 ` [PATCH 1/3] mtd: Move Redboot partition parser Boris Brezillon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).