All of lore.kernel.org
 help / color / mirror / Atom feed
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Amit Kumar Mahapatra <amit.kumar-mahapatra@amd.com>
Cc: <tudor.ambarus@linaro.org>,  <michael@walle.cc>,
	 <broonie@kernel.org>, <pratyush@kernel.org>,  <richard@nod.at>,
	 <vigneshr@ti.com>, <robh@kernel.org>,  <conor+dt@kernel.org>,
	 <krzk+dt@kernel.org>, <venkatesh.abbarapu@amd.com>,
	 <linux-spi@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	 <linux-mtd@lists.infradead.org>, <nicolas.ferre@microchip.com>,
	 <alexandre.belloni@bootlin.com>, <claudiu.beznea@tuxon.dev>,
	 <michal.simek@amd.com>, <linux-arm-kernel@lists.infradead.org>,
	 <alsa-devel@alsa-project.org>, <patches@opensource.cirrus.com>,
	 <git@amd.com>, <amitrkcian2002@gmail.com>,  <beanhuo@micron.com>
Subject: Re: [RFC PATCH 2/2] dt-bindings: spi: Update stacked and parallel bindings
Date: Mon, 18 Nov 2024 14:39:32 +0100	[thread overview]
Message-ID: <87y11gwtij.fsf@bootlin.com> (raw)
In-Reply-To: <20241026075347.580858-3-amit.kumar-mahapatra@amd.com> (Amit Kumar Mahapatra's message of "Sat, 26 Oct 2024 13:23:47 +0530")

Hi Amit,

On 26/10/2024 at 13:23:47 +0530, Amit Kumar Mahapatra <amit.kumar-mahapatra@amd.com> wrote:

> For implementing the proposed solution the current 'stacked-memories' &
> 'parallel-memories' bindings need to be updated as follow.
>
> stacked-memories binding changes:
> - Each flash will have its own flash node. This approach allows flashes of
>   different makes and sizes to be stacked together, as each flash will be
>   probed individually.
> - Each of the flash node will have its own “reg” property that will contain
>   its physical CS.
> - Remove the size information from the bindings as it can be retrived
>   drirectly from the flash.
> - The stacked-memories DT bindings will contain the phandles of the flash
>   nodes connected in stacked mode.
>
> The new layer will update the mtd->size and other mtd_info parameters after
> both the flashes are probed and will call mtd_device_register with the
> combined information.
>
> spi@0 {
>         ...
>         flash@0 {
>                 compatible = "jedec,spi-nor"
>                 reg = <0x00>;
>                 stacked-memories = <&flash@0 &flash@1>;
>                 spi-max-frequency = <50000000>;
>                 ...
>                         partitions {
>                         compatible = "fixed-partitions";
>                                 concat-partition = <&flash0_partition &flash1_partition>;
>                                 flash0_partition: partition@0 {
>                                         label = "part0_0";
>                                         reg = <0x0 0x800000>;
>                                 }
>                         }
>         }
>         flash@1 {
>                 compatible = "jedec,spi-nor"
>                 reg = <0x01>;
>                 stacked-memories = <&flash@0 &flash@1>;
>                 spi-max-frequency = <50000000>;
>                 ...
>                         partitions {

Same comment as before here.

>                         compatible = "fixed-partitions";
>                                 concat-partition = <&flash0_partition &flash1_partition>;
>                                 flash1_partition: partition@0 {
>                                         label = "part0_1";
>                                         reg = <0x0 0x800000>;
>                                 }
>                         }
>         }
>
> }
>
> parallel-memories binding changes:
> - Remove the size information from the bindings and change the type to
>   boolen.
> - Each flash connected in parallel mode should be identical and will have
>   one flash node for both the flash devices.
> - The “reg” prop will contain the physical CS number for both the connected
>   flashes.
>
> The new layer will double the mtd-> size and register it with the mtd
> layer.

Not so sure about that, you'll need a new mtd device to capture the
whole device. But this is implementation related, not relevant for
binding.

>
> spi@1 {
>         ...
>         flash@3 {
>                 compatible = "jedec,spi-nor"
>                 reg = <0x00 0x01>;
>                 paralle-memories ;

Please fix the typos and the spacing (same above).

>                 spi-max-frequency = <50000000>;
>                 ...
>                         partitions {
>                         compatible = "fixed-partitions";
>                                 flash0_partition: partition@0 {
>                                         label = "part0_0";
>                                         reg = <0x0 0x800000>;
>                                 }
>                         }
>         }
> }
>
> Signed-off-by: Amit Kumar Mahapatra <amit.kumar-mahapatra@amd.com>
> ---
>  .../bindings/spi/spi-controller.yaml          | 23 +++++++++++++++++--
>  .../bindings/spi/spi-peripheral-props.yaml    |  9 +++-----
>  2 files changed, 24 insertions(+), 8 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/spi/spi-controller.yaml b/Documentation/devicetree/bindings/spi/spi-controller.yaml
> index 093150c0cb87..2d300f98dd72 100644
> --- a/Documentation/devicetree/bindings/spi/spi-controller.yaml
> +++ b/Documentation/devicetree/bindings/spi/spi-controller.yaml
> @@ -185,7 +185,26 @@ examples:
>          flash@2 {
>              compatible = "jedec,spi-nor";
>              spi-max-frequency = <50000000>;
> -            reg = <2>, <3>;
> -            stacked-memories = /bits/ 64 <0x10000000 0x10000000>;
> +            reg = <2>;
> +            stacked-memories = <&flash0 &flash1>;
>          };

I'm sorry but this is not what you've talked about in this series.
Either you have flash0 and flash1 and use the stacked-memories property
in both of them (which is what you described) or you create a third
virtual device which points to two other flashes. This example allows
for an easier use of the partitions mechanism on top of a virtual mtd
device but, heh, you're now describing a virtual mtd device, which is
not a physical device as it "should" be.

Thanks,
Miquèl

WARNING: multiple messages have this Message-ID (diff)
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Amit Kumar Mahapatra <amit.kumar-mahapatra@amd.com>
Cc: alexandre.belloni@bootlin.com, vigneshr@ti.com,
	amitrkcian2002@gmail.com, linux-mtd@lists.infradead.org,
	claudiu.beznea@tuxon.dev, beanhuo@micron.com, git@amd.com,
	robh@kernel.org, richard@nod.at, tudor.ambarus@linaro.org,
	conor+dt@kernel.org, alsa-devel@alsa-project.org,
	broonie@kernel.org, venkatesh.abbarapu@amd.com,
	michal.simek@amd.com, linux-arm-kernel@lists.infradead.org,
	patches@opensource.cirrus.com, linux-kernel@vger.kernel.org,
	linux-spi@vger.kernel.org, michael@walle.cc, krzk+dt@kernel.org,
	pratyush@kernel.org
Subject: Re: [RFC PATCH 2/2] dt-bindings: spi: Update stacked and parallel bindings
Date: Mon, 18 Nov 2024 14:39:32 +0100	[thread overview]
Message-ID: <87y11gwtij.fsf@bootlin.com> (raw)
In-Reply-To: <20241026075347.580858-3-amit.kumar-mahapatra@amd.com> (Amit Kumar Mahapatra's message of "Sat, 26 Oct 2024 13:23:47 +0530")

Hi Amit,

On 26/10/2024 at 13:23:47 +0530, Amit Kumar Mahapatra <amit.kumar-mahapatra@amd.com> wrote:

> For implementing the proposed solution the current 'stacked-memories' &
> 'parallel-memories' bindings need to be updated as follow.
>
> stacked-memories binding changes:
> - Each flash will have its own flash node. This approach allows flashes of
>   different makes and sizes to be stacked together, as each flash will be
>   probed individually.
> - Each of the flash node will have its own “reg” property that will contain
>   its physical CS.
> - Remove the size information from the bindings as it can be retrived
>   drirectly from the flash.
> - The stacked-memories DT bindings will contain the phandles of the flash
>   nodes connected in stacked mode.
>
> The new layer will update the mtd->size and other mtd_info parameters after
> both the flashes are probed and will call mtd_device_register with the
> combined information.
>
> spi@0 {
>         ...
>         flash@0 {
>                 compatible = "jedec,spi-nor"
>                 reg = <0x00>;
>                 stacked-memories = <&flash@0 &flash@1>;
>                 spi-max-frequency = <50000000>;
>                 ...
>                         partitions {
>                         compatible = "fixed-partitions";
>                                 concat-partition = <&flash0_partition &flash1_partition>;
>                                 flash0_partition: partition@0 {
>                                         label = "part0_0";
>                                         reg = <0x0 0x800000>;
>                                 }
>                         }
>         }
>         flash@1 {
>                 compatible = "jedec,spi-nor"
>                 reg = <0x01>;
>                 stacked-memories = <&flash@0 &flash@1>;
>                 spi-max-frequency = <50000000>;
>                 ...
>                         partitions {

Same comment as before here.

>                         compatible = "fixed-partitions";
>                                 concat-partition = <&flash0_partition &flash1_partition>;
>                                 flash1_partition: partition@0 {
>                                         label = "part0_1";
>                                         reg = <0x0 0x800000>;
>                                 }
>                         }
>         }
>
> }
>
> parallel-memories binding changes:
> - Remove the size information from the bindings and change the type to
>   boolen.
> - Each flash connected in parallel mode should be identical and will have
>   one flash node for both the flash devices.
> - The “reg” prop will contain the physical CS number for both the connected
>   flashes.
>
> The new layer will double the mtd-> size and register it with the mtd
> layer.

Not so sure about that, you'll need a new mtd device to capture the
whole device. But this is implementation related, not relevant for
binding.

>
> spi@1 {
>         ...
>         flash@3 {
>                 compatible = "jedec,spi-nor"
>                 reg = <0x00 0x01>;
>                 paralle-memories ;

Please fix the typos and the spacing (same above).

>                 spi-max-frequency = <50000000>;
>                 ...
>                         partitions {
>                         compatible = "fixed-partitions";
>                                 flash0_partition: partition@0 {
>                                         label = "part0_0";
>                                         reg = <0x0 0x800000>;
>                                 }
>                         }
>         }
> }
>
> Signed-off-by: Amit Kumar Mahapatra <amit.kumar-mahapatra@amd.com>
> ---
>  .../bindings/spi/spi-controller.yaml          | 23 +++++++++++++++++--
>  .../bindings/spi/spi-peripheral-props.yaml    |  9 +++-----
>  2 files changed, 24 insertions(+), 8 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/spi/spi-controller.yaml b/Documentation/devicetree/bindings/spi/spi-controller.yaml
> index 093150c0cb87..2d300f98dd72 100644
> --- a/Documentation/devicetree/bindings/spi/spi-controller.yaml
> +++ b/Documentation/devicetree/bindings/spi/spi-controller.yaml
> @@ -185,7 +185,26 @@ examples:
>          flash@2 {
>              compatible = "jedec,spi-nor";
>              spi-max-frequency = <50000000>;
> -            reg = <2>, <3>;
> -            stacked-memories = /bits/ 64 <0x10000000 0x10000000>;
> +            reg = <2>;
> +            stacked-memories = <&flash0 &flash1>;
>          };

I'm sorry but this is not what you've talked about in this series.
Either you have flash0 and flash1 and use the stacked-memories property
in both of them (which is what you described) or you create a third
virtual device which points to two other flashes. This example allows
for an easier use of the partitions mechanism on top of a virtual mtd
device but, heh, you're now describing a virtual mtd device, which is
not a physical device as it "should" be.

Thanks,
Miquèl


WARNING: multiple messages have this Message-ID (diff)
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Amit Kumar Mahapatra <amit.kumar-mahapatra@amd.com>
Cc: <tudor.ambarus@linaro.org>,  <michael@walle.cc>,
	 <broonie@kernel.org>, <pratyush@kernel.org>,  <richard@nod.at>,
	 <vigneshr@ti.com>, <robh@kernel.org>,  <conor+dt@kernel.org>,
	 <krzk+dt@kernel.org>, <venkatesh.abbarapu@amd.com>,
	 <linux-spi@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	 <linux-mtd@lists.infradead.org>, <nicolas.ferre@microchip.com>,
	 <alexandre.belloni@bootlin.com>, <claudiu.beznea@tuxon.dev>,
	 <michal.simek@amd.com>, <linux-arm-kernel@lists.infradead.org>,
	 <alsa-devel@alsa-project.org>, <patches@opensource.cirrus.com>,
	 <git@amd.com>, <amitrkcian2002@gmail.com>,  <beanhuo@micron.com>
Subject: Re: [RFC PATCH 2/2] dt-bindings: spi: Update stacked and parallel bindings
Date: Mon, 18 Nov 2024 14:39:32 +0100	[thread overview]
Message-ID: <87y11gwtij.fsf@bootlin.com> (raw)
In-Reply-To: <20241026075347.580858-3-amit.kumar-mahapatra@amd.com> (Amit Kumar Mahapatra's message of "Sat, 26 Oct 2024 13:23:47 +0530")

Hi Amit,

On 26/10/2024 at 13:23:47 +0530, Amit Kumar Mahapatra <amit.kumar-mahapatra@amd.com> wrote:

> For implementing the proposed solution the current 'stacked-memories' &
> 'parallel-memories' bindings need to be updated as follow.
>
> stacked-memories binding changes:
> - Each flash will have its own flash node. This approach allows flashes of
>   different makes and sizes to be stacked together, as each flash will be
>   probed individually.
> - Each of the flash node will have its own “reg” property that will contain
>   its physical CS.
> - Remove the size information from the bindings as it can be retrived
>   drirectly from the flash.
> - The stacked-memories DT bindings will contain the phandles of the flash
>   nodes connected in stacked mode.
>
> The new layer will update the mtd->size and other mtd_info parameters after
> both the flashes are probed and will call mtd_device_register with the
> combined information.
>
> spi@0 {
>         ...
>         flash@0 {
>                 compatible = "jedec,spi-nor"
>                 reg = <0x00>;
>                 stacked-memories = <&flash@0 &flash@1>;
>                 spi-max-frequency = <50000000>;
>                 ...
>                         partitions {
>                         compatible = "fixed-partitions";
>                                 concat-partition = <&flash0_partition &flash1_partition>;
>                                 flash0_partition: partition@0 {
>                                         label = "part0_0";
>                                         reg = <0x0 0x800000>;
>                                 }
>                         }
>         }
>         flash@1 {
>                 compatible = "jedec,spi-nor"
>                 reg = <0x01>;
>                 stacked-memories = <&flash@0 &flash@1>;
>                 spi-max-frequency = <50000000>;
>                 ...
>                         partitions {

Same comment as before here.

>                         compatible = "fixed-partitions";
>                                 concat-partition = <&flash0_partition &flash1_partition>;
>                                 flash1_partition: partition@0 {
>                                         label = "part0_1";
>                                         reg = <0x0 0x800000>;
>                                 }
>                         }
>         }
>
> }
>
> parallel-memories binding changes:
> - Remove the size information from the bindings and change the type to
>   boolen.
> - Each flash connected in parallel mode should be identical and will have
>   one flash node for both the flash devices.
> - The “reg” prop will contain the physical CS number for both the connected
>   flashes.
>
> The new layer will double the mtd-> size and register it with the mtd
> layer.

Not so sure about that, you'll need a new mtd device to capture the
whole device. But this is implementation related, not relevant for
binding.

>
> spi@1 {
>         ...
>         flash@3 {
>                 compatible = "jedec,spi-nor"
>                 reg = <0x00 0x01>;
>                 paralle-memories ;

Please fix the typos and the spacing (same above).

>                 spi-max-frequency = <50000000>;
>                 ...
>                         partitions {
>                         compatible = "fixed-partitions";
>                                 flash0_partition: partition@0 {
>                                         label = "part0_0";
>                                         reg = <0x0 0x800000>;
>                                 }
>                         }
>         }
> }
>
> Signed-off-by: Amit Kumar Mahapatra <amit.kumar-mahapatra@amd.com>
> ---
>  .../bindings/spi/spi-controller.yaml          | 23 +++++++++++++++++--
>  .../bindings/spi/spi-peripheral-props.yaml    |  9 +++-----
>  2 files changed, 24 insertions(+), 8 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/spi/spi-controller.yaml b/Documentation/devicetree/bindings/spi/spi-controller.yaml
> index 093150c0cb87..2d300f98dd72 100644
> --- a/Documentation/devicetree/bindings/spi/spi-controller.yaml
> +++ b/Documentation/devicetree/bindings/spi/spi-controller.yaml
> @@ -185,7 +185,26 @@ examples:
>          flash@2 {
>              compatible = "jedec,spi-nor";
>              spi-max-frequency = <50000000>;
> -            reg = <2>, <3>;
> -            stacked-memories = /bits/ 64 <0x10000000 0x10000000>;
> +            reg = <2>;
> +            stacked-memories = <&flash0 &flash1>;
>          };

I'm sorry but this is not what you've talked about in this series.
Either you have flash0 and flash1 and use the stacked-memories property
in both of them (which is what you described) or you create a third
virtual device which points to two other flashes. This example allows
for an easier use of the partitions mechanism on top of a virtual mtd
device but, heh, you're now describing a virtual mtd device, which is
not a physical device as it "should" be.

Thanks,
Miquèl

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

  reply	other threads:[~2024-11-18 13:40 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-26  7:53 [RFC PATCH 0/2] Add support for stacked and parallel memories Amit Kumar Mahapatra
2024-10-26  7:53 ` Amit Kumar Mahapatra
2024-10-26  7:53 ` Amit Kumar Mahapatra
2024-10-26  7:53 ` [RFC PATCH 1/2] dt-bindings: mtd: Add bindings for describing concatinated MTD devices Amit Kumar Mahapatra
2024-10-26  7:53   ` Amit Kumar Mahapatra
2024-10-26  7:53   ` Amit Kumar Mahapatra
2024-10-26 11:13   ` Krzysztof Kozlowski
2024-10-26 11:13     ` Krzysztof Kozlowski
2024-10-26 11:13     ` Krzysztof Kozlowski
2024-10-28  6:41     ` Mahapatra, Amit Kumar
2024-10-28  6:41       ` Mahapatra, Amit Kumar
2024-10-28  6:41       ` Mahapatra, Amit Kumar
2024-11-18 13:27   ` Miquel Raynal
2024-11-18 13:27     ` Miquel Raynal
2024-11-18 13:27     ` Miquel Raynal
2024-11-19 17:02     ` Mahapatra, Amit Kumar
2024-11-19 17:02       ` Mahapatra, Amit Kumar
2024-11-19 17:02       ` Mahapatra, Amit Kumar
2024-11-20  9:52       ` Miquel Raynal
2024-11-20  9:52         ` Miquel Raynal
2024-11-20  9:52         ` Miquel Raynal
2024-11-20 10:08         ` Mahapatra, Amit Kumar
2024-11-20 10:08           ` Mahapatra, Amit Kumar
2024-11-20 10:08           ` Mahapatra, Amit Kumar
2024-10-26  7:53 ` [RFC PATCH 2/2] dt-bindings: spi: Update stacked and parallel bindings Amit Kumar Mahapatra
2024-10-26  7:53   ` Amit Kumar Mahapatra
2024-10-26  7:53   ` Amit Kumar Mahapatra
2024-11-18 13:39   ` Miquel Raynal [this message]
2024-11-18 13:39     ` Miquel Raynal
2024-11-18 13:39     ` Miquel Raynal
2024-11-19 17:02     ` Mahapatra, Amit Kumar
2024-11-19 17:02       ` Mahapatra, Amit Kumar
2024-11-19 17:02       ` Mahapatra, Amit Kumar
2024-11-20  9:58       ` Miquel Raynal
2024-11-20  9:58         ` Miquel Raynal
2024-11-20  9:58         ` Miquel Raynal
2024-11-20 10:57         ` Mahapatra, Amit Kumar
2024-11-20 10:57           ` Mahapatra, Amit Kumar
2024-11-20 10:57           ` Mahapatra, Amit Kumar
     [not found] ` <b025774a-adf6-443f-b795-bb138c490c2b@metux.net>
2024-10-30 12:09   ` [RFC PATCH 0/2] Add support for stacked and parallel memories Mahapatra, Amit Kumar
2024-10-30 12:09     ` Mahapatra, Amit Kumar
2024-10-30 12:09     ` Mahapatra, Amit Kumar
2024-11-08 14:25 ` Mahapatra, Amit Kumar
2024-11-08 14:25   ` Mahapatra, Amit Kumar
2024-11-08 14:25   ` Mahapatra, Amit Kumar
2024-11-25 15:40 ` Pratyush Yadav
2024-11-25 15:40   ` Pratyush Yadav
2024-11-25 15:40   ` Pratyush Yadav
2024-11-25 15:40   ` Pratyush Yadav

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87y11gwtij.fsf@bootlin.com \
    --to=miquel.raynal@bootlin.com \
    --cc=alexandre.belloni@bootlin.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=amit.kumar-mahapatra@amd.com \
    --cc=amitrkcian2002@gmail.com \
    --cc=beanhuo@micron.com \
    --cc=broonie@kernel.org \
    --cc=claudiu.beznea@tuxon.dev \
    --cc=conor+dt@kernel.org \
    --cc=git@amd.com \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=michael@walle.cc \
    --cc=michal.simek@amd.com \
    --cc=nicolas.ferre@microchip.com \
    --cc=patches@opensource.cirrus.com \
    --cc=pratyush@kernel.org \
    --cc=richard@nod.at \
    --cc=robh@kernel.org \
    --cc=tudor.ambarus@linaro.org \
    --cc=venkatesh.abbarapu@amd.com \
    --cc=vigneshr@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.