nand_scan_ident(9)
π NAME π
nand_scan_ident β scan for the NAND device π
Ok so this page is nand_scan_ident(9) from the Kernel API Manual, and yeah the title up top is literally the function name twice, that's just how these pages roll, iykyk π«Ά
β¨ SYNOPSIS β¨
int nand_scan_ident (struct nand_chip *chip , unsigned int maxchips ,
struct nand_flash_dev *table );
π ARGUMENTS π
chipβ the NAND chip object itself. your main character struct πmaxchipsβ how many chips we're scanning for. like, the headcount.tableβ an alternative NAND ID table, for when you wanna look things up somewhere else πΈ
π¦ DESCRIPTION π¦
So here's the tea β: this is the first phase of the normal nand_scan function. It reads the flash ID and sets up the MTD fields accordingly. That's the whole job. No cap. π₯
Now the lore π§ β this helper used to be called directly from controller drivers that needed to tweak some ECC-related parameters before nand_scan_tail. This separation prevented dynamic allocations during this phase, which was, and I quote, unconvenient π and has been banned for the benefit of the ->init_ecc/cleanup_ecc hooks. So like... don't do that anymore bestie, the hooks ate and left no crumbs π
fr fr: no dynamic allocation during this phase. it's not a suggestion, it's banned. periodt. π
π SEE ALSO π
The kernel file is ./drivers/mtd/nand/raw/nand_base.c β and now the friend-group roll call, in order, bestie, all of them, don't skip π«Ά
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_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(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_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)
That's the whole page, bestie, you ate that π
This cutie came out of ./drivers/mtd/nand/raw in October 2026, and it's filed under nand_scan_ident(9) β go read it again if you forgot something, no shame πβ¨
π¦ 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