diff options
author | Thomas Gleixner <tglx@cruncher.tec.linutronix.de> | 2006-05-29 18:37:34 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@cruncher.tec.linutronix.de> | 2006-05-29 18:37:34 -0400 |
commit | f1a28c02843efcfcc41982149880bac3ac180234 (patch) | |
tree | b15ca1a140e463ef3cde6b9a8591e7be172ee1f1 /include | |
parent | 9a1fcdfd4bee27c418424cac47abf7c049541297 (diff) |
[MTD] NAND Expose the new raw mode function and status info to userspace
The raw read/write access to NAND (without ECC) has been changed in the
NAND rework. Expose the new way - setting the file mode via ioctl - to
userspace. Also allow to read out the ecc statistics information so userspace
tools can see that bitflips happened and whether errors where correctable
or not. Also expose the number of bad blocks for the partition, so nandwrite
can check if the data fits into the parition before writing to it.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/mtd/mtd.h | 11 | ||||
-rw-r--r-- | include/mtd/mtd-abi.h | 27 |
2 files changed, 27 insertions, 11 deletions
diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h index e75bb584e80b..9536567d041b 100644 --- a/include/linux/mtd/mtd.h +++ b/include/linux/mtd/mtd.h | |||
@@ -56,17 +56,6 @@ struct mtd_erase_region_info { | |||
56 | u_int32_t numblocks; /* Number of blocks of erasesize in this region */ | 56 | u_int32_t numblocks; /* Number of blocks of erasesize in this region */ |
57 | }; | 57 | }; |
58 | 58 | ||
59 | /** | ||
60 | * struct mtd_ecc_stats - error correction status | ||
61 | * | ||
62 | * @corrected: number of corrected bits | ||
63 | * @failed: number of uncorrectable errors | ||
64 | */ | ||
65 | struct mtd_ecc_stats { | ||
66 | unsigned long corrected; | ||
67 | unsigned long failed; | ||
68 | }; | ||
69 | |||
70 | /* | 59 | /* |
71 | * oob operation modes | 60 | * oob operation modes |
72 | * | 61 | * |
diff --git a/include/mtd/mtd-abi.h b/include/mtd/mtd-abi.h index 54c673f9648d..c11a589bdedf 100644 --- a/include/mtd/mtd-abi.h +++ b/include/mtd/mtd-abi.h | |||
@@ -99,6 +99,8 @@ struct otp_info { | |||
99 | #define OTPGETREGIONINFO _IOW('M', 15, struct otp_info) | 99 | #define OTPGETREGIONINFO _IOW('M', 15, struct otp_info) |
100 | #define OTPLOCK _IOR('M', 16, struct otp_info) | 100 | #define OTPLOCK _IOR('M', 16, struct otp_info) |
101 | #define ECCGETLAYOUT _IOR('M', 17, struct nand_ecclayout) | 101 | #define ECCGETLAYOUT _IOR('M', 17, struct nand_ecclayout) |
102 | #define ECCGETSTATS _IOR('M', 18, struct mtd_ecc_stats) | ||
103 | #define MTDFILEMODE _IO('M', 19) | ||
102 | 104 | ||
103 | /* | 105 | /* |
104 | * Obsolete legacy interface. Keep it in order not to break userspace | 106 | * Obsolete legacy interface. Keep it in order not to break userspace |
@@ -128,4 +130,29 @@ struct nand_ecclayout { | |||
128 | struct nand_oobfree oobfree[MTD_MAX_OOBFREE_ENTRIES]; | 130 | struct nand_oobfree oobfree[MTD_MAX_OOBFREE_ENTRIES]; |
129 | }; | 131 | }; |
130 | 132 | ||
133 | /** | ||
134 | * struct mtd_ecc_stats - error correction status | ||
135 | * | ||
136 | * @corrected: number of corrected bits | ||
137 | * @failed: number of uncorrectable errors | ||
138 | * @badblocks: number of bad blocks in this partition | ||
139 | * @bbtblocks: number of blocks reserved for bad block tables | ||
140 | */ | ||
141 | struct mtd_ecc_stats { | ||
142 | uint32_t corrected; | ||
143 | uint32_t failed; | ||
144 | uint32_t badblocks; | ||
145 | uint32_t bbtblocks; | ||
146 | }; | ||
147 | |||
148 | /* | ||
149 | * Read/write file modes for access to MTD | ||
150 | */ | ||
151 | enum mtd_file_modes { | ||
152 | MTD_MODE_NORMAL = MTD_OTP_OFF, | ||
153 | MTD_MODE_OTP_FACTORY = MTD_OTP_FACTORY, | ||
154 | MTD_MODE_OTP_USER = MTD_OTP_USER, | ||
155 | MTD_MODE_RAW, | ||
156 | }; | ||
157 | |||
131 | #endif /* __MTD_ABI_H__ */ | 158 | #endif /* __MTD_ABI_H__ */ |