STRUCT NAND_ECC_PROPS(9)
๐ struct nand_ecc_props(9) ๐
okay so bestie, welcome to the Kernel API Manual โ yes that's the manual name, we're fancy now ๐ โ and today's main character is struct nand_ecc_props, aka the little struct that holds all your NAND ECC properties. she's giving config-glamour, no cap โจ
๐ธ NAME ๐ธ
struct nand_ecc_props โ NAND ECC properties, literally the vibe check for your error correction ๐
๐ฆ SYNOPSIS ๐ฆ
here's the whole glow-up, copy it exactly bestie, don't touch a single character:
struct nand_ecc_props {
enum nand_ecc_engine_type engine_type;
enum nand_ecc_placement placement;
enum nand_ecc_algo algo;
unsigned int strength;
unsigned int step_size;
unsigned int flags;
};
look at her. six fields. absolutely iconic ๐
โจ Members โจ
okay so let's meet the cast, one by one ๐ซถ
engine_typeโ the ECC engine type, like which engine is driving this whole thing ๐placementโ the OOB placement (if relevant, so don't come for me if it's not) ๐algoโ the ECC algorithm (if relevant โ again, conditional, iykyk) ๐งฎstrengthโ the ECC strength. how strong. ๐ชstep_sizeโ number of bytes per step, so you know how big each step is ๐flagsโ misc properties, the little extras, the garnish of the struct ๐ฟ
๐ฅ SEE ALSO ๐ฅ
the whole extended friend group ๐ first up, the source of truth:
- Kernel file
./include/linux/mtd/nand.h
and then the entourage, in the original order because I would never do them dirty like that ๐ญ
struct nand_memory_organization(9),struct nand_row_converter(9),struct nand_pos(9),enum nand_page_io_req_type(9),struct nand_page_io_req(9)enum nand_ecc_engine_type(9),enum nand_ecc_placement(9),enum nand_ecc_algo(9),struct nand_bbt(9),struct nand_ops(9)struct nand_ecc_context(9),struct nand_ecc_engine_ops(9),enum nand_ecc_engine_integration(9),struct nand_ecc_engine(9),struct nand_ecc_req_tweak_ctx(9)struct nand_ecc(9),struct nand_device(9),struct nand_io_iter(9),mtd_to_nanddev(9),nanddev_to_mtd(9)nanddev_page_size(9),nanddev_per_page_oobsize(9),nanddev_pages_per_eraseblock(9),nanddev_pages_per_target(9)nanddev_eraseblocks_per_lun(9),nanddev_eraseblocks_per_target(9),nanddev_target_size(9),nanddev_neraseblocks(9),nanddev_size(9)nanddev_get_memorg(9),nanddev_get_ecc_conf(9),nanddev_get_ecc_nsteps(9),nanddev_get_ecc_bytes_per_step(9)nanddev_get_ecc_requirements(9),nanddev_set_ecc_requirements(9),nanddev_register(9),nanddev_unregister(9)nanddev_set_of_node(9),nanddev_get_of_node(9),nanddev_offs_to_pos(9),nanddev_pos_cmp(9),nanddev_pos_to_offs(9),nanddev_pos_to_row(9)nanddev_pos_next_target(9),nanddev_pos_next_lun(9),nanddev_pos_next_eraseblock(9),nanddev_pos_next_page(9)nanddev_bbt_pos_to_entry(9),nanddev_bbt_is_initialized(9)
like I said. whole friend group. go say hi ๐ฆ
ok that's the whole page bestie, nothing skipped, every last reference accounted for โ read it, love it, man it ๐
and finally, the cute sign-off: this lil beauty lives in ./include/linux/mtd, dated October 2026, and yes the page title is still struct nand_ecc_props(9) because she's the main character, periodt ๐๐
๐ฆ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms