flexonenand...locks_erased(9)
πΈ NAME πΈ
okay bestie, welcome to the Kernel API Manual page for flexonenand...locks_erased(9). The function we're hyping up is flexonenand_check_blocks_erased β check if blocks are erased. π
β¨ SYNOPSIS β¨
the signature, verbatim, no cap:
int flexonenand_check_blocks_erased (struct mtd_info *mtd , int start ,
int end );
π ARGUMENTS π
mtdβ the mtd info structure.startβ the first erase block to check.endβ the last erase block to check.
π DESCRIPTION π
okay so picture this: converting an unerased block from MLC to SLC causes byte values to change. and because both the data and its ECC have changed, reads on the block give an uncorrectable error π. that might lead to the block being detected as bad, which is literally not the vibe.
avoid all that by ensuring that the block to be converted is erased. periodt. π«Ά
π SEE ALSO π
the kernel file to peek at is ./drivers/mtd/nand/onenand/onenand_base.c, and here's the whole 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_wait(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),onenand_chip_probe(9),onenand_probe(9),onenand_suspend(9),onenand_resume(9),onenand_scan(9),onenand_release(9)
okay that's the whole page π source is ./drivers/mtd/nand/onenand, dated October 2026, and the page is flexonenand...locks_erased(9) β slay. π
β¨
π¦ 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