onenand_recover_lsb(9)
π onenand_recover_lsb β the Flex-OneNAND LSB page glow-up π
Okay so this is onenand_recover_lsb(9) from the Kernel API Manual, and bestie, it's a whole rescue mission arc. Buckle up π
β¨ NAME β¨
onenand_recover_lsb β [Flex-OneNAND] Recover LSB page data. That's it, that's the vibe. She recovers. She's the recovery friend. π«Ά
πΈ SYNOPSIS πΈ
int onenand_recover_lsb (struct mtd_info *mtd , loff_t addr , int status
);
Yes the formatting is a little chaotic, no we are not fixing it, she's iconic as she is π
π¦ ARGUMENTS π¦
mtdβ the MTD device structure. The whole device. The main character, honestly πaddrβ the address you wanna recover. Like, the exact spot. Not a general area, the spot πstatusβ the return value fromonenand_wait/onenand_bbt_wait. Basically the receipts from whoever waited on this thing π
π DESCRIPTION π
Okay so here's the lore πβ¨
MLC NAND Flash cells have paired pages β there's an LSB page and an MSB page, and they're literally besties. They're paired. The LSB page has the lower page address and the MSB page has the higher page address within those paired pages. The way that they're arranged... it's giving matched set π
So here's the tragic part π If power off happens during MSB page program, the paired LSB page data can become corrupt. Like, not even the LSB page's fault, she just got caught in it. Collateral damage, fr fr π
LSB page recovery read is the way to read the LSB page even though the page data are corrupted. She reads through the chaos. Main character energy π
And the actual rule: when an uncorrectable error occurs as a result of an LSB page read after power up, you issue an LSB page recovery read. That's it. That's the whole move. No cap π₯
Bestie pls note: this isn't a "just do it whenever" situation β it's specifically for that uncorrectable error on LSB page read after power up scenario. Read the room π
π SEE ALSO π
Kernel file ./drivers/mtd/nand/onenand/onenand_base.c β that's where the source lives, go say hi to her π
And the whole extended friend group, in order, no skips, no cuts π:
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_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)
That's the whole group chat and yes you're expected to know all of them πβ¨
Okay bye bestie, that's the page π«Ά This one lives in ./drivers/mtd/nand/onenand, dated October 2026, and it's the onenand_recover_lsb(9) entry in the Kernel API Manual β slay, go recover some pages π
β¨π
π¦ 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