All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rickard Andersson <rickard.andersson@axis.com>
To: <richard@nod.at>, <chengzhihao1@huawei.com>,
	<linux-mtd@lists.infradead.org>, <rickard314.andersson@gmail.com>
Cc: <rickard.andersson@axis.com>, <kernel@axis.com>
Subject: [PATCH 1/2] ubi: Expose interface for detailed erase counters
Date: Mon, 25 Nov 2024 14:48:19 +0100	[thread overview]
Message-ID: <20241125134820.560648-1-rickard.andersson@axis.com> (raw)

Using the ioctl command 'UBI_IOCECNFO' user space can obtain
detailed erase counter information of all blocks of a device.

Signed-off-by: Rickard Andersson <rickard.andersson@axis.com>
---
 include/uapi/mtd/ubi-user.h | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/include/uapi/mtd/ubi-user.h b/include/uapi/mtd/ubi-user.h
index e1571603175e..667680e44ed4 100644
--- a/include/uapi/mtd/ubi-user.h
+++ b/include/uapi/mtd/ubi-user.h
@@ -175,6 +175,8 @@
 #define UBI_IOCRPEB _IOW(UBI_IOC_MAGIC, 4, __s32)
 /* Force scrubbing on the specified PEB */
 #define UBI_IOCSPEB _IOW(UBI_IOC_MAGIC, 5, __s32)
+/* Read detailed device erase counter information */
+#define UBI_IOCECNFO _IOWR(UBI_IOC_MAGIC, 6, struct ubi_ecinfo_req)
 
 /* ioctl commands of the UBI control character device */
 
@@ -470,4 +472,27 @@ struct ubi_blkcreate_req {
 	__s8  padding[128];
 }  __packed;
 
+/**
+ * struct ubi_ecinfo_req - a data structure used in UBI device erase count
+ * information requests and responses.
+ *
+ * @start_ec_req: first erase counter block in range to read
+ * @end_ec_req: last erase counter block in the half-open range
+ * @end_ec_res: last erase counter block that was actually read
+ * @erase_counters: array of erase counter values
+ * @padding: reserved for future, not used, has to be zeroed
+ *
+ * Erase counters are read in range @start_ec_req to @end_ec_req. Range is half-open
+ * i.e erase counter of end_ec_req is not actually included.
+ * The read erase counters are placed in @erase_counters. If a block is bad or if the
+ * erase counter is unknown the value of the block will be set to -1.
+ */
+struct ubi_ecinfo_req {
+	__s32 start_ec_req;
+	__s32 end_ec_req;
+	__s32 end_ec_res;
+	__s32 erase_counters[1000];
+	__s8  padding[84];
+}  __packed;
+
 #endif /* __UBI_USER_H__ */
-- 
2.30.2


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

             reply	other threads:[~2024-11-25 13:48 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-25 13:48 Rickard Andersson [this message]
2024-11-25 13:48 ` [PATCH 2/2] ubi: Implement ioctl for detailed erase counters Rickard Andersson
2024-11-25 15:44 ` [PATCH 1/2] ubi: Expose interface " Richard Weinberger
2024-11-25 15:45   ` Richard Weinberger
2024-11-26  5:09 ` Zhihao Cheng

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=20241125134820.560648-1-rickard.andersson@axis.com \
    --to=rickard.andersson@axis.com \
    --cc=chengzhihao1@huawei.com \
    --cc=kernel@axis.com \
    --cc=linux-mtd@lists.infradead.org \
    --cc=richard@nod.at \
    --cc=rickard314.andersson@gmail.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.