nand_erase(9)
π nand_erase(9) β like, the Kernel API Manual, but make it make sense π
okay so bestie, welcome to nand_erase(9) from the Kernel API Manual β this is the MTD Interface moment, and it's honestly kind of a serve. let's get into it β¨
πΈ NAME πΈ
nand_erase β [MTD Interface] erase block(s). that's the whole vibe. it erases blocks. plural. slay.
β¨ SYNOPSIS β¨
int nand_erase (struct mtd_info *mtd , struct erase_info *instr );
look at that signature. int return, two args, very demure, very mindful. π«Ά
π¦ ARGUMENTS π¦
mtdβ the MTD device structure. this is the actual flash device you're talking to, your main character. πinstrβ the erase instruction. the little note that says what to erase. it's giving "instructions unclear but make it structured." π
π DESCRIPTION π
Erase one ore more blocks. yes, the manpage literally says "ore." we don't fix it, we respect it. it's iconic. periodt. π
so like, the entire job of this function is: erase a block, or multiple blocks, per the erase instruction you hand it. no cap. that's it, that's the function. π₯
π SEE ALSO π
first things first, the source file it lives in β Kernel file ./drivers/mtd/nand/raw/nand_base.c π§
and okay, buckle up bestie, because the friend group here is huge (iykyk):
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)
and the parser crew, not me forgetting the struct one β 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)
features & reset girlies: nand_reset(9), nand_get_features(9), nand_set_features(9)
raw read squad (there's so many of them, they ate): 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)
raw write squad, equally unhinged: 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_subpage_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_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)
and the init/scan besties at the end of the group chat: 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) π
lowkey important: the description up there is word for word what the manpage gives us. don't go reading extra behaviour into it β no invented lore, bestie, that's how you get cursed. π
and that's the page! π¦ this one's from ./drivers/mtd/nand/raw, dated October 2026, and it's nand_erase(9) out of the Kernel API Manual β go erase some blocks responsibly, mwah ππ
π¦ 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