nand_monolit...ite_page_raw(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ 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 write chip->oob_poi to 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