2020-04-17 15:28:05

by ron minnich

[permalink] [raw]
Subject: [PATCH] mtd: spi-nor: controllers: intel-spi: Add support for command line partitions

On Intel platforms, the usable SPI area is located several
MiB in from the start, to leave room for descriptors and
the Management Engine binary. Further, not all the remaining
space can be used, as the last 16 MiB contains firmware.

To make the SPI usable for mtdblock and other devices,
it is necessary to enable command line partitions so the
middle usable region can be specified.

Add a part_probes array which includes only "cmdelineparts",
and change to mtd_device_parse_register to use this part_probes.

Signed-off-by: Ronald G. Minnich <[email protected]>
---
drivers/mtd/spi-nor/controllers/intel-spi.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/mtd/spi-nor/controllers/intel-spi.c b/drivers/mtd/spi-nor/controllers/intel-spi.c
index 61d2a0ad2131..132129e89d07 100644
--- a/drivers/mtd/spi-nor/controllers/intel-spi.c
+++ b/drivers/mtd/spi-nor/controllers/intel-spi.c
@@ -894,6 +894,8 @@ static const struct spi_nor_controller_ops intel_spi_controller_ops = {
.erase = intel_spi_erase,
};

+static const char * const part_probes[] = { "cmdlinepart", NULL };
+
struct intel_spi *intel_spi_probe(struct device *dev,
struct resource *mem, const struct intel_spi_boardinfo *info)
{
@@ -941,7 +943,8 @@ struct intel_spi *intel_spi_probe(struct device *dev,
if (!ispi->writeable || !writeable)
ispi->nor.mtd.flags &= ~MTD_WRITEABLE;

- ret = mtd_device_register(&ispi->nor.mtd, &part, 1);
+ ret = mtd_device_parse_register(&ispi->nor.mtd, part_probes,
+ NULL, &part, 1);
if (ret)
return ERR_PTR(ret);

--
2.26.1.301.g55bc3eb7cb9-goog


2020-04-17 16:11:25

by Mika Westerberg

[permalink] [raw]
Subject: Re: [PATCH] mtd: spi-nor: controllers: intel-spi: Add support for command line partitions

On Fri, Apr 17, 2020 at 08:26:11AM -0700, Ronald G. Minnich wrote:
> On Intel platforms, the usable SPI area is located several
> MiB in from the start, to leave room for descriptors and
> the Management Engine binary. Further, not all the remaining
> space can be used, as the last 16 MiB contains firmware.
>
> To make the SPI usable for mtdblock and other devices,
> it is necessary to enable command line partitions so the
> middle usable region can be specified.
>
> Add a part_probes array which includes only "cmdelineparts",
> and change to mtd_device_parse_register to use this part_probes.
>
> Signed-off-by: Ronald G. Minnich <[email protected]>

Reviewed-by: Mika Westerberg <[email protected]>

2020-09-25 04:25:32

by Vignesh Raghavendra

[permalink] [raw]
Subject: Re: [PATCH] mtd: spi-nor: controllers: intel-spi: Add support for command line partitions



On 4/17/20 9:37 PM, Mika Westerberg wrote:
> On Fri, Apr 17, 2020 at 08:26:11AM -0700, Ronald G. Minnich wrote:
>> On Intel platforms, the usable SPI area is located several
>> MiB in from the start, to leave room for descriptors and
>> the Management Engine binary. Further, not all the remaining
>> space can be used, as the last 16 MiB contains firmware.
>>
>> To make the SPI usable for mtdblock and other devices,
>> it is necessary to enable command line partitions so the
>> middle usable region can be specified.
>>
>> Add a part_probes array which includes only "cmdelineparts",
>> and change to mtd_device_parse_register to use this part_probes.
>>
>> Signed-off-by: Ronald G. Minnich <[email protected]>
>
> Reviewed-by: Mika Westerberg <[email protected]>
>

scripts/checkpatch.pl --strict complains:

CHECK: Alignment should match open parenthesis
#46: FILE: drivers/mtd/spi-nor/controllers/intel-spi.c:956:
+ ret = mtd_device_parse_register(&ispi->nor.mtd, part_probes,
+ NULL, &part, 1);

WARNING: Missing Signed-off-by: line by nominal patch author '"Ronald G. Minnich" <[email protected]>'

Regards
Vignesh

2020-12-23 21:58:15

by Ian Goegebuer

[permalink] [raw]
Subject: [PATCH] mtd: parser: cmdline: Support MTD names containing one or more colons

On Intel platforms, the usable SPI area is located several
MiB in from the start, to leave room for descriptors and
the Management Engine binary. Further, not all the remaining
space can be used, as the last 16 MiB contains firmware.

To make the SPI usable for mtdblock and other devices,
it is necessary to enable command line partitions so the
middle usable region can be specified.

Add a part_probes array which includes only "cmdelineparts",
and change to mtd_device_parse_register to use this part_probes.

Signed-off-by: "Ronald G. Minnich" <[email protected]>
Signed-off-by: Ian Goegebuer <[email protected]>
---
drivers/mtd/spi-nor/controllers/intel-spi.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/mtd/spi-nor/controllers/intel-spi.c b/drivers/mtd/spi-nor/controllers/intel-spi.c
index b54a56a68100..9de38851c411 100644
--- a/drivers/mtd/spi-nor/controllers/intel-spi.c
+++ b/drivers/mtd/spi-nor/controllers/intel-spi.c
@@ -903,6 +903,8 @@ static const struct spi_nor_controller_ops intel_spi_controller_ops = {
.erase = intel_spi_erase,
};

+static const char * const part_probes[] = { "cmdlinepart", NULL };
+
struct intel_spi *intel_spi_probe(struct device *dev,
struct resource *mem, const struct intel_spi_boardinfo *info)
{
@@ -950,7 +952,8 @@ struct intel_spi *intel_spi_probe(struct device *dev,
if (!ispi->writeable || !writeable)
ispi->nor.mtd.flags &= ~MTD_WRITEABLE;

- ret = mtd_device_register(&ispi->nor.mtd, &part, 1);
+ ret = mtd_device_parse_register(&ispi->nor.mtd, part_probes,
+ NULL, &part, 1);
if (ret)
return ERR_PTR(ret);

--
2.29.2.729.g45daf8777d-goog

2021-01-04 09:10:01

by Miquel Raynal

[permalink] [raw]
Subject: Re: [PATCH] mtd: parser: cmdline: Support MTD names containing one or more colons

Hello Ian,

Ian Goegebuer <[email protected]> wrote on Wed, 23 Dec 2020 13:56:30
-0800:

> On Intel platforms, the usable SPI area is located several
> MiB in from the start, to leave room for descriptors and
> the Management Engine binary. Further, not all the remaining
> space can be used, as the last 16 MiB contains firmware.
>
> To make the SPI usable for mtdblock and other devices,
> it is necessary to enable command line partitions so the
> middle usable region can be specified.
>
> Add a part_probes array which includes only "cmdelineparts",
> and change to mtd_device_parse_register to use this part_probes.

The commit title seem to be taken from another patch and does not
match the below change. Or am I missing something?

> Signed-off-by: "Ronald G. Minnich" <[email protected]>
> Signed-off-by: Ian Goegebuer <[email protected]>
> ---
> drivers/mtd/spi-nor/controllers/intel-spi.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mtd/spi-nor/controllers/intel-spi.c b/drivers/mtd/spi-nor/controllers/intel-spi.c
> index b54a56a68100..9de38851c411 100644
> --- a/drivers/mtd/spi-nor/controllers/intel-spi.c
> +++ b/drivers/mtd/spi-nor/controllers/intel-spi.c
> @@ -903,6 +903,8 @@ static const struct spi_nor_controller_ops intel_spi_controller_ops = {
> .erase = intel_spi_erase,
> };
>
> +static const char * const part_probes[] = { "cmdlinepart", NULL };
> +
> struct intel_spi *intel_spi_probe(struct device *dev,
> struct resource *mem, const struct intel_spi_boardinfo *info)
> {
> @@ -950,7 +952,8 @@ struct intel_spi *intel_spi_probe(struct device *dev,
> if (!ispi->writeable || !writeable)
> ispi->nor.mtd.flags &= ~MTD_WRITEABLE;
>
> - ret = mtd_device_register(&ispi->nor.mtd, &part, 1);
> + ret = mtd_device_parse_register(&ispi->nor.mtd, part_probes,
> + NULL, &part, 1);
> if (ret)
> return ERR_PTR(ret);
>

Thanks,
Miquèl

2021-01-04 16:26:25

by Ron Minnich

[permalink] [raw]
Subject: Re: [PATCH] mtd: parser: cmdline: Support MTD names containing one or more colons

It is likely we're missing something -- I am not fully checked out on
the Linux patch process and it's Ian's first patch.

Guidance appreciated.

On Mon, Jan 4, 2021 at 1:08 AM Miquel Raynal <[email protected]> wrote:
>
> Hello Ian,
>
> Ian Goegebuer <[email protected]> wrote on Wed, 23 Dec 2020 13:56:30
> -0800:
>
> > On Intel platforms, the usable SPI area is located several
> > MiB in from the start, to leave room for descriptors and
> > the Management Engine binary. Further, not all the remaining
> > space can be used, as the last 16 MiB contains firmware.
> >
> > To make the SPI usable for mtdblock and other devices,
> > it is necessary to enable command line partitions so the
> > middle usable region can be specified.
> >
> > Add a part_probes array which includes only "cmdelineparts",
> > and change to mtd_device_parse_register to use this part_probes.
>
> The commit title seem to be taken from another patch and does not
> match the below change. Or am I missing something?
>
> > Signed-off-by: "Ronald G. Minnich" <[email protected]>
> > Signed-off-by: Ian Goegebuer <[email protected]>
> > ---
> > drivers/mtd/spi-nor/controllers/intel-spi.c | 5 ++++-
> > 1 file changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/mtd/spi-nor/controllers/intel-spi.c b/drivers/mtd/spi-nor/controllers/intel-spi.c
> > index b54a56a68100..9de38851c411 100644
> > --- a/drivers/mtd/spi-nor/controllers/intel-spi.c
> > +++ b/drivers/mtd/spi-nor/controllers/intel-spi.c
> > @@ -903,6 +903,8 @@ static const struct spi_nor_controller_ops intel_spi_controller_ops = {
> > .erase = intel_spi_erase,
> > };
> >
> > +static const char * const part_probes[] = { "cmdlinepart", NULL };
> > +
> > struct intel_spi *intel_spi_probe(struct device *dev,
> > struct resource *mem, const struct intel_spi_boardinfo *info)
> > {
> > @@ -950,7 +952,8 @@ struct intel_spi *intel_spi_probe(struct device *dev,
> > if (!ispi->writeable || !writeable)
> > ispi->nor.mtd.flags &= ~MTD_WRITEABLE;
> >
> > - ret = mtd_device_register(&ispi->nor.mtd, &part, 1);
> > + ret = mtd_device_parse_register(&ispi->nor.mtd, part_probes,
> > + NULL, &part, 1);
> > if (ret)
> > return ERR_PTR(ret);
> >
>
> Thanks,
> Miquèl