nand_write_subpage_hwecc(9)
π nand_write_subpage_hwecc(9) β like, the hardware ECC based subpage write one π
okay so this page lives in the Kernel API Manual, bestie, and it's literally all about [REPLACEABLE] hardware ECC based subpage write. yes the square brackets are part of the vibe β it means replaceable, iykyk π¦
β¨ SYNOPSIS β¨
int nand_write_subpage_hwecc (struct nand_chip *chip , uint32_t offset ,
uint32_t data_len , const uint8_t *buf , int oob_required , int page );
that's the whole signature, no cap. six args, one int coming back at you π
πΈ ARGUMENTS πΈ
chipβ the nand chip info structure π«Ά like, the whole personality of the flash chip you're writing to.offsetβ the column address of the subpage within the page. so, which slice of the page we're talking about β¨data_lenβ data length, aka how much data. that's it, that's the number πbufβ the data buffer. this is where your actual bytes are chillin' π§oob_requiredβ must writechip->oob_poito OOB. yes, the parameter is literally telling you the OOB has to be written πpageβ the page number to write π main character page energy fr fr
ngl, this one's a callback-style function, so if you're actually calling it yourself, double-check your chip pointer before you do anything feral π
π SEE ALSO π
bestie the cross-reference list here is unhinged in the best way β it's giving "the whole nand subsystem showed up to the group chat". kernel file: ./drivers/mtd/nand/raw/nand_base.c π
nand_extract_bits(9), nand_select_target(9), nand_deselect_target(9), nand_release_device(9), nand_bbm_get_next_page(9), nand_block_bad(9), nand_region_is_secured(9), nand_get_device(9), nand_check_wp(9), nand_fill_oob(9), nand_do_write_oob(9), nand_default_block_markbad(9), nand_markbad_bbm(9), nand_block_markbad_lowlevel(9), nand_block_isreserved(9), nand_block_checkbad(9), nand_soft_waitrdy(9), nand_gpio_waitrdy(9), panic_nand_wait(9), nand_reset_interface(9), nand_setup_interface(9), nand_choose_best_sdr_timings(9), nand_choose_best_nvddr_timings(9), nand_choose_best_timings(9), nand_choose_interface_config(9), nand_fill_column_cycles(9), nand_read_page_op(9), nand_read_param_page_op(9), nand_change_read_column_op(9), nand_read_oob_op(9), nand_prog_page_begin_op(9), nand_prog_page_end_op(9), nand_prog_page_op(9), nand_change_write_column_op(9), nand_readid_op(9), nand_status_op(9), nand_exit_status_op(9), nand_erase_op(9), nand_set_features_op(9), nand_get_features_op(9), nand_reset_op(9), nand_read_data_op(9), nand_write_data_op(9), struct nand_op_parser_ctx(9), nand_op_parser_must_split_instr(9), nand_op_parser_match_pat(9), nand_op_parser_exec_op(9), nand_subop_get_addr_start_off(9), nand_subop_get_num_addr_cyc(9), nand_subop_get_data_start_off(9), nand_subop_get_data_len(9), nand_reset(9), nand_get_features(9), nand_set_features(9), nand_read_page_raw_notsupp(9), nand_read_page_raw(9), nand_monolithic_read_page_raw(9), nand_read_page_raw_syndrome(9), nand_read_page_swecc(9), nand_read_subpage(9), nand_read_page_hwecc(9), nand_read_page_hwecc_oob_first(9), nand_read_page_syndrome(9), nand_transfer_oob(9), nand_setup_read_retry(9), nand_do_read_ops(9), nand_read_oob_std(9), nand_read_oob_syndrome(9), nand_write_oob_std(9), nand_write_oob_syndrome(9), nand_do_read_oob(9), nand_read_oob(9), nand_write_page_raw_notsupp(9), nand_write_page_raw(9), nand_monolithic_write_page_raw(9), nand_write_page_raw_syndrome(9), nand_write_page_swecc(9), nand_write_page_hwecc(9), nand_write_page_syndrome(9), nand_write_page(9), nand_do_write_ops(9), panic_nand_write(9), nand_write_oob(9), nand_erase(9), nand_erase_nand(9), nand_sync(9), nand_block_isbad(9), nand_block_markbad(9), nand_suspend(9), nand_resume(9), nand_shutdown(9), nand_lock(9), nand_unlock(9), rawnand_dt_parse_gpio_cs(9), nand_scan_ident(9), nand_check_ecc_caps(9), nand_match_ecc_req(9), nand_maximize_ecc(9), nand_ecc_choose_conf(9), nand_scan_tail(9), nand_scan_with_ids(9), nand_cleanup(9)
slay, you made it to the end of the list ππ₯
mmm okay that's the whole page !! go read the source, drink some water, and remember: hardware ECC subpage writes are iconic and so are you π
π§ this cutie came out of ./drivers/mtd/nand/raw, dated October 2026, and it's part of the Kernel API Manual β catch you in the next one, bestie π
π¦ 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