onenand_wait(9)
π onenand_wait(9) β the Kernel API Manual glow-up π
okay so this is onenand_wait(9) straight out of the Kernel API Manual bestie, and it's literally the "wait for the vibe to finish" function. β¨
πΈ NAME πΈ
onenand_wait β [DEFAULT] wait until the command is done
π¦ SYNOPSIS π¦
int onenand_wait (struct mtd_info *mtd , int state );
π ARGUMENTS π
mtdβ the MTD device structure. that's your device babe, the whole thing πstateβ the state you pass in to select the max. timeout value. yes queen, it picks how long we're willing to wait π«Ά
β¨ DESCRIPTION β¨
so basically you're waiting for the command to be done. that's it, that's the function. and this applies to all OneNAND commands, no exceptions π«‘
as for how long the wait can drag on, according to general OneNAND specs: Read can take up to 30us, erase up to 2ms, and program up to 350us. like, tiny numbers but the drama is real π
ngl these are spec numbers, so don't come for me if your hardware has main character energy and takes longer π
π SEE ALSO π
Kernel file ./drivers/mtd/nand/onenand/onenand_base.c, plus literally the entire friend group:
onenand_readw(9)onenand_writew(9)onenand_block_address(9)onenand_bufferram_address(9)onenand_page_address(9)onenand_buffer_address(9)flexonenand_block(9)flexonenand_addr(9)onenand_get_density(9)flexonenand_region(9)onenand_command(9)onenand_read_ecc(9)onenand_bufferram_offset(9)onenand_read_bufferram(9)onenand_sync_read_bufferram(9)onenand_write_bufferram(9)onenand_get_2x_blockpage(9)onenand_check_bufferram(9)onenand_update_bufferram(9)onenand_invalidate_bufferram(9)onenand_get_device(9)onenand_release_device(9)onenand_transfer_auto_oob(9)onenand_recover_lsb(9)onenand_mlc_read_ops_nolock(9)onenand_read_ops_nolock(9)onenand_read_oob_nolock(9)onenand_read_oob(9)onenand_bbt_wait(9)onenand_bbt_read_oob(9)onenand_verify_oob(9)onenand_verify(9)onenand_panic_write(9)onenand_fill_auto_oob(9)onenand_write_ops_nolock(9)onenand_write_oob_nolock(9)onenand_write_oob(9)onenand_block_isbad_nolock(9)onenand_multiblock_erase(9)onenand_block_by_block_erase(9)onenand_erase(9)onenand_sync(9)onenand_block_isbad(9)onenand_default_block_markbad(9)onenand_block_markbad(9)onenand_do_lock_cmd(9)onenand_lock(9)onenand_unlock(9)onenand_check_lock_status(9)onenand_unlock_all(9)onenand_otp_command(9)onenand_otp_write_oob_nolock(9)do_otp_read(9)do_otp_write(9)do_otp_lock(9)onenand_otp_walk(9)onenand_get_fact_prot_info(9)onenand_read_fact_prot_reg(9)onenand_get_user_prot_info(9)onenand_read_user_prot_reg(9)onenand_write_user_prot_reg(9)onenand_lock_user_prot_reg(9)onenand_check_features(9)onenand_print_device_info(9)onenand_check_maf(9)flexonenand_get_boundary(9)flexonenand_get_size(9)flexonenand_check_blocks_erased(9)onenand_chip_probe(9)onenand_probe(9)onenand_suspend(9)onenand_resume(9)onenand_scan(9)onenand_release(9)
and that's the whole page bestie, mwah π this lil masterpiece lives in ./drivers/mtd/nand/onenand and it's dated October 2026 β yes, the future, she's ahead of her time βπ
π¦ 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