From: jassisinghbrar@gmail.com
To: u-boot@lists.denx.de
Cc: ilias.apalodimas@linaro.org, etienne.carriere@linaro.org,
trini@konsulko.com, sjg@chromium.org, sughosh.ganu@linaro.org,
xypron.glpk@gmx.de, patrick.delaunay@foss.st.com,
patrice.chotard@foss.st.com,
Jassi Brar <jaswinder.singh@linaro.org>
Subject: [PATCHv4 0/5] FWU: Handle meta-data in common code
Date: Sat, 4 Feb 2023 21:00:56 -0600 [thread overview]
Message-ID: <20230205030056.61345-1-jassisinghbrar@gmail.com> (raw)
From: Jassi Brar <jaswinder.singh@linaro.org>
The patchset reduces ~400 lines of code, while keeping the functionality same and making
meta-data operations much faster (by using cached structures).
Issue:
meta-data copies (primary and secondary) are being handled by the backend/storage layer
instead of the common core in fwu.c (as also noted by Ilias) that is, gpt_blk.c manages
meta-data and similarly raw_mtd.c will have to do the same when it arrives. The code
could by make smaller, cleaner and optimised.
Basic idea:
Introduce .read_mdata() and .write_mdata() in fwu_mdata_ops that simply read/write
meta-data copy. The core code takes care of integrity and redundancy of the meta-data,
as a result we can get rid of every other callback .get_mdata() .update_mdata()
.get_mdata_part_num() .read_mdata_partition() .write_mdata_partition() and the
corresponding wrapper functions thereby making the code 100s of LOC smaller.
Get rid of fwu_check_mdata_validity() and fwu_mdata_check() which expected underlying
layer to manage and verify mdata copies.
Implement fwu_get_verified_mdata(struct fwu_mdata *mdata) public function that reads,
verifies and, if needed, fixes the meta-data copies.
Verified copy of meta-data is now cached as 'g_mdata' in fwu.c, which avoids multiple
low-level expensive read and parse calls.
gpt meta-data partition numbers are now cached in gpt_blk.c, so that we don't have to do expensive part_get_info() and uid ops.
Changes since v3:
* Fix error log wording
* call fwu_write_mdata() with part & PRIMARY_PART ? true: false
Changes since v2:
* Drop whitespace changes
* Fix missing mdata copy before return
Changes since v1:
* Fix typos and misc cosmetic changes
* Catch error returns
Jassi Brar (5):
fwu: gpt: use cached meta-data partition numbers
fwu: move meta-data management in core
fwu: gpt: implement read_mdata and write_mdata callbacks
fwu: meta-data: switch to management by common code
fwu: rename fwu_get_verified_mdata to fwu_get_mdata
cmd/fwu_mdata.c | 17 +-
drivers/fwu-mdata/fwu-mdata-uclass.c | 151 +-------------
drivers/fwu-mdata/gpt_blk.c | 175 +++++-----------
include/fwu.h | 198 ++----------------
lib/fwu_updates/fwu.c | 294 +++++++++++----------------
5 files changed, 207 insertions(+), 628 deletions(-)
--
2.34.1
next reply other threads:[~2023-02-05 3:01 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-05 3:00 jassisinghbrar [this message]
2023-02-05 3:01 ` [PATCHv4 1/5] fwu: gpt: use cached meta-data partition numbers jassisinghbrar
2023-02-05 3:01 ` [PATCHv4 2/5] fwu: move meta-data management in core jassisinghbrar
2023-02-23 8:35 ` Ilias Apalodimas
2023-02-28 1:52 ` Jassi Brar
2023-02-27 16:30 ` Etienne Carriere
2023-02-27 16:46 ` Jassi Brar
2023-02-27 23:15 ` Etienne Carriere
2023-02-05 3:01 ` [PATCHv4 3/5] fwu: gpt: implement read_mdata and write_mdata callbacks jassisinghbrar
2023-02-05 3:02 ` [PATCHv4 4/5] fwu: meta-data: switch to management by common code jassisinghbrar
2023-02-21 18:23 ` Tom Rini
2023-02-23 8:37 ` Ilias Apalodimas
2023-02-05 3:02 ` [PATCHv4 5/5] fwu: rename fwu_get_verified_mdata to fwu_get_mdata jassisinghbrar
2023-02-06 22:00 ` [PATCHv4 0/5] FWU: Handle meta-data in common code Simon Glass
2023-02-21 20:08 ` Tom Rini
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=20230205030056.61345-1-jassisinghbrar@gmail.com \
--to=jassisinghbrar@gmail.com \
--cc=etienne.carriere@linaro.org \
--cc=ilias.apalodimas@linaro.org \
--cc=jaswinder.singh@linaro.org \
--cc=patrice.chotard@foss.st.com \
--cc=patrick.delaunay@foss.st.com \
--cc=sjg@chromium.org \
--cc=sughosh.ganu@linaro.org \
--cc=trini@konsulko.com \
--cc=u-boot@lists.denx.de \
--cc=xypron.glpk@gmx.de \
/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