nand_read_oob_op(9)
π nand_read_oob_op(9) β from the Kernel API Manual, bestie β¨
okay so picture this: you're deep in the raw NAND guts of the kernel (./drivers/mtd/nand/raw, if we're being specific π) and you just need to peek at the out-of-band area of a page. That's this function. That's literally her whole job. Main character energy, zero drama. π¦
β¨ NAME β¨
nand_read_oob_op β bestie, she does a READ OOB operation. That's it. That's the vibe. π
πΈ SYNOPSIS πΈ
int nand_read_oob_op (struct nand_chip *chip , unsigned int page ,
unsigned int offset_in_oob , void *buf , unsigned int len );
like, look at her signature. so clean. so iconic. π
π ARGUMENTS π
chipβ the NAND chip in question π«Ά (yes, THE chip, the one you've been thinking about)pageβ the page you want to read, bestieoffset_in_oobβ where you're starting, but inside the OOB area specifically. very demure, very mindful about boundaries πbufβ the buffer where the data gets stashed πlenβ how long that buffer is. the length. the amount. you get it π
β¨ DESCRIPTION β¨
so this function issues a READ OOB operation. that's the whole thing, no cap.
β οΈ but hear me on this one: this function does not select/unselect the CS line. not her department. you gotta handle that yourself withnand_select_target(9)/nand_deselect_target(9), iykyk. don't come for her when the CS line is doing whatever it wants. π
Returns 0 on success, and a negative error code otherwise. that's the vibe check β non-negative means slay, negative means something went sideways. π
π₯ SEE ALSO π₯
okay this list is LOWKEY enormous and I'm obsessed with it, so buckle up and let's go through every single one, no skipping, periodt:
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_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_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)
like... she knows everybody. the whole NAND friend group. ππ
and that's the page, bestie β¨π«Ά this little gem lives in ./drivers/mtd/nand/raw, dated October 2026 β go read the source, she ate. π
π
π¦ 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