omap_read_page_bch(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

okay bestie, welcome to the Kernel API Manual page for omap_read_page_bch(9) πŸ’…βœ¨


πŸ’– NAME πŸ’–

omap_read_page_bch β€” the BCH ecc based page read function for entire page. she reads the whole page, no cap πŸ“–βœ¨

✨ SYNOPSIS ✨

here's the exact signature, bestie β€” don't retype it from memory:

int omap_read_page_bch (struct nand_chip *chip , uint8_t *buf , int
oob_required , int page );

πŸŽ€ ARGUMENTS πŸŽ€

  • chip β€” nand chip info structure. literally the chip's little info card πŸͺͺ
  • buf β€” buffer to store read data. this is where the read data goes 🧺
  • oob_required β€” caller requires OOB data read to chip->oob_poi. yep, OOB data heads to chip->oob_poi 🫢
  • page β€” page number to read. which page are we reading? this one πŸ”–

πŸ¦‹ DESCRIPTION πŸ¦‹

For the BCH ecc scheme, GPMC is used for syndrome calculation and the ELM module is used for error correction. bestie, it's a whole two-module situation ✨

A custom method evolved to support ELM error correction & multi sector reading. lowkey iconic 🌈

On reading, the page data area is read along with OOB data with the ecc engine enabled. so it's data + OOB together, with the ecc engine on πŸŽ€

The ecc vector is updated after the read of OOB data. periodt πŸ’…

For non error pages, the ecc vector is reported as zero. clean, cute, zero drama ⭐

🌈 SEE ALSO 🌈

The kernel file is ./drivers/mtd/nand/raw/omap2.c, and here's the whole friend group:


this omap_read_page_bch(9) manual page lives under ./drivers/mtd/nand/raw and is dated October 2026 β€” bye bestie, stay slaying πŸ’–πŸŽ€

πŸ“¦ where this page comes from