onenand_lock_user_prot_reg(9)
π onenand_lock_user_prot_reg(9) β a.k.a. the Kernel API Manual glow-up
okay so bestie, welcome to the Kernel API Manual page for onenand_lock_user_prot_reg(9) β yes that's the whole name, it's giving "my parents let me pick my own name and I panicked" energy but we respect it π
β¨ NAME β¨
onenand_lock_user_prot_reg β [MTD Interface] Lock user OTP area π
Like, that's it. That's the whole vibe. It locks the user OTP area. Iconic behaviour honestly.
π¦ SYNOPSIS π¦
int onenand_lock_user_prot_reg (struct mtd_info *mtd , loff_t from ,
size_t len );
Three args, one int coming back at you. Short and slay β¨
π ARGUMENTS π
mtdβ the MTD device structure, i.e. the actual flash boi you're talking to π«Άfromβ the offset to lock. Where the locking starts, periodt.lenβ number of bytes to unlock. Yeah. The page literally says unlock here even though the function is a lock function β I'm not touching it, that's canon, we don't rewrite the source material π
πΈ DESCRIPTION πΈ
Write lock mark on spare area in page 0 in OTP block. That's the whole thing! No cap. It goes and drops a lil lock mark in the spare area, on page 0, inside the OTP block. Little mark, big meaning π
π₯ SEE ALSO π₯
Kernel file ./drivers/mtd/nand/onenand/onenand_base.c β and now, the friend group. The whole entire squad, in order, no one gets left out π:
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_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 page!! mwah π
a tiny sign-off from your girl: this one lives over in ./drivers/mtd/nand/onenand, it's dated October 2026, and it answers to the name onenand_lock_user_prot_reg(9). go lock that user OTP area bestie, you got this πβπ
π¦ 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