From: Christian Marangi <ansuelsmth@gmail.com>
To: "Jens Axboe" <axboe@kernel.dk>,
"Jonathan Corbet" <corbet@lwn.net>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Ulf Hansson" <ulf.hansson@linaro.org>,
"Miquel Raynal" <miquel.raynal@bootlin.com>,
"Richard Weinberger" <richard@nod.at>,
"Vignesh Raghavendra" <vigneshr@ti.com>,
"Christian Marangi" <ansuelsmth@gmail.com>,
"Simon Glass" <sjg@chromium.org>,
"INAGAKI Hiroshi" <musashino.open@gmail.com>,
"Daniel Golle" <daniel@makrotopia.org>,
"Al Viro" <viro@zeniv.linux.org.uk>,
"Christian Brauner" <brauner@kernel.org>,
"Li Lingfeng" <lilingfeng3@huawei.com>,
"Christian Heusel" <christian@heusel.eu>,
"Rafał Miłecki" <rafal@milecki.pl>,
linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
linux-mmc@vger.kernel.org, linux-mtd@lists.infradead.org,
"Lorenzo Bianconi" <lorenzo@kernel.org>
Subject: [RFC PATCH v2 0/5] block: partition table OF support
Date: Wed, 25 Sep 2024 23:45:20 +0200 [thread overview]
Message-ID: <20240925214544.6114-1-ansuelsmth@gmail.com> (raw)
Hi,
this is an initial proposal to complete support for manually defining
partition table.
Some background on this. Many OEM on embedded device (modem, router...)
are starting to migrate from NOR/NAND flash to eMMC. The reason for this
is that OEM are starting to require more and more space for the firmware
and price difference is becoming so little that using eMMC is only benefits
and no cons.
Given these reason, OEM are also using very custom way to provide a
partition table and doesn't relay on common method like writing a table
on the eMMC.
One way that is commonly used is to hardcode the partition table and
pass it to the system via various way (cmdline, special glue driver,
block2mtd...)
This way is also used on Android where the partition table
is passed from the bootloader via cmdline.
One reason to use this method is to save space on the device and to
permit more flexibility on partition handling.
What this series does is complete support for this feature.
It's possible to use the cmdline to define a partition table similar
to how it's done for MTD but this is problematic for a number of device
where tweaking the cmdline is not possible. This series adds OF support
to make it possible to define a partition table in the Device Tree.
We implement a similar schema to the MTD fixed-partition, where we define
a "label" and a "reg" with "offset" and "size".
A new block partition parser is introduced that check if the block device
have an OF node attached and check if a fixed-partition table is defined.
If a correct node is found, then partition table is filled. cmdline will
still have priority to this new parser.
Some block device also implement boot1 and boot2 additional disk. Similar
to the cmdline parser, these disk can have OF support using the
"partitions-boot0" and "partitions-boot1" additional node.
It's also completed support for declaring partition as read-only as this
feature was introduced but never finished in the cmdline parser.
Posting as RFC for any comments or additional checks on OF parser code.
I hope this solution is better accepted as downstream this is becoming
a real problem with a growing number of strange solution for the simple
task of providing a fixed partition table.
Changes v2:
- Reference bytes in DT instead of Sector Size
- Validate offset and size after Sector Size conversion
- Limit boot0 and boot1 to eMMC and add comments about JEDEC spec
- Generalize MTD partition schema and introduce block partitions schema
- Add missing code to actually attach the OF parser to block partition core
- Add reviewed by tag for read-only patch
Christian Marangi (5):
block: add support for defining read-only partitions
docs: block: Document support for read-only partition in cmdline part
block: add support for partition table defined in OF
dt-bindings: block: Generalize and introduce property for partitions
dt-bindings: mmc: Document support for partition table in mmc-card
Documentation/block/cmdline-partition.rst | 5 +-
.../bindings/block/partitions/partition.yaml | 33 ++++
.../bindings/block/partitions/partitions.yaml | 27 ++++
.../devicetree/bindings/mmc/mmc-card.yaml | 57 +++++++
.../bindings/mtd/partitions/partition.yaml | 10 +-
block/blk.h | 1 +
block/partitions/Kconfig | 8 +
block/partitions/Makefile | 1 +
block/partitions/check.h | 1 +
block/partitions/cmdline.c | 3 +
block/partitions/core.c | 6 +
block/partitions/of.c | 144 ++++++++++++++++++
12 files changed, 287 insertions(+), 9 deletions(-)
create mode 100644 Documentation/devicetree/bindings/block/partitions/partition.yaml
create mode 100644 Documentation/devicetree/bindings/block/partitions/partitions.yaml
create mode 100644 block/partitions/of.c
--
2.45.2
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
next reply other threads:[~2024-09-25 21:46 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-25 21:45 Christian Marangi [this message]
2024-09-25 21:45 ` [RFC PATCH v2 1/5] block: add support for defining read-only partitions Christian Marangi
2024-09-25 21:45 ` [RFC PATCH v2 2/5] docs: block: Document support for read-only partition in cmdline part Christian Marangi
2024-09-25 21:45 ` [RFC PATCH v2 3/5] block: add support for partition table defined in OF Christian Marangi
2024-09-25 21:45 ` [RFC PATCH v2 4/5] dt-bindings: block: Generalize and introduce property for partitions Christian Marangi
2024-09-26 14:03 ` Rob Herring
2024-09-25 21:45 ` [RFC PATCH v2 5/5] dt-bindings: mmc: Document support for partition table in mmc-card Christian Marangi
2024-09-26 14:15 ` Rob Herring
2024-09-29 13:13 ` Christian Marangi
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=20240925214544.6114-1-ansuelsmth@gmail.com \
--to=ansuelsmth@gmail.com \
--cc=axboe@kernel.dk \
--cc=brauner@kernel.org \
--cc=christian@heusel.eu \
--cc=conor+dt@kernel.org \
--cc=corbet@lwn.net \
--cc=daniel@makrotopia.org \
--cc=devicetree@vger.kernel.org \
--cc=krzk+dt@kernel.org \
--cc=lilingfeng3@huawei.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mmc@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=lorenzo@kernel.org \
--cc=miquel.raynal@bootlin.com \
--cc=musashino.open@gmail.com \
--cc=rafal@milecki.pl \
--cc=richard@nod.at \
--cc=robh@kernel.org \
--cc=sjg@chromium.org \
--cc=ulf.hansson@linaro.org \
--cc=vigneshr@ti.com \
--cc=viro@zeniv.linux.org.uk \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox