nand_monolit...ite_page_raw(9)
π nand_monolithic_write_page_raw(9) π
okay bestie, buckle up π this one's straight out of the Kernel API Manual (section 9, the big-kid section), and it's literally about yeeting a whole page of data at a NAND chip in one go. no cap, she's iconic.
β¨ NAME β¨
nand_monolithic_write_page_raw β the monolithic page write, but in raw mode π«Ά
πΈ SYNOPSIS πΈ
int nand_monolithic_write_page_raw (struct nand_chip *chip , const u8
*buf , int oob_required , int page );
π ARGUMENTS π
chipβ the NAND chip info structure. this is the main character, the chip herself πββοΈbufβ the data buffer you're writing. your payload, your moment β¨oob_requiredβ must writechip->oob_poito OOB. if this is set, bestie, the OOB is coming along whether it likes it or not πpageβ the page number to write. tell her where to go π
π¦ DESCRIPTION π¦
so this is a raw page write, meaning it's giving absolutely zero error detection/correction energy. none. not a single bit of ECC. it's raw, iykyk π
and monolithic? that means we're requesting all the relevant data β the main data plus, eventually, the OOB β to be sent over the bus and effectively programmed into the NAND chip arrays in a single operation. one shot, one vibe, ate π π₯
this is the alternative to nand_write_page_raw, which is built different: that one first sends the main data, then eventually sends the OOB data by latching more data cycles on the NAND bus, and finally sends the program command to synchronyze the NAND chip cache. three-step routine, meanwhile monolith is like "one trip, let's go" β
π friendly reminder: raw mode = no error detection/correction on this write. that's the whole point, but don't forget it, okay? π
π SEE ALSO π
okay so the kernel file for all this lives at ./drivers/mtd/nand/raw/nand_base.c, and the guest list is long β like, the entire NAND family reunion. ngl, they all showed up π
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)
still going, she's not done π
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_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 I said: the whole family. every single one. periodt π
and that's the tea, bestie π this lil' beauty comes from ./drivers/mtd/nand/raw, dated October 2026 β drink water, back up your data, and may your writes always be monolithic ππ§ββοΈ
π¦ 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