SEEPROM(4)

πŸ“¦ version 11.0, in nixpkgs unstable

πŸ’œ seeprom(4) β€” the kernel interfaces manual, bestie edition

okay so this is the page for seeprom, from the Kernel Interfaces Manual β€” it's the driver for the 24-series I2C EEPROMs and honestly it's a whole vibe. tiny little memory chips, big main character energy. let's get into it πŸŽ€


✨ NAME ✨

seeprom β€” the 24-series I2C EEPROM driver. that's it, that's the name, slay.


🌸 SYNOPSIS 🌸

seeprom0 at iic0 addr 0x51: AT24Cxx or compatible EEPROM: size 256
seeprom16 at iic1 addr 0x57: power-supply: size 8192

look at those two lines just existing. first one is your classic EEPROM moment, second one is out here with addr 0x57 and a whole power-supply situation. iconic behavior tbh πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

so the seeprom driver is literally the support system for the ATMEL 24-series of I2C EEPROMs β€” plus all the compatibles, because these chips come from a whole variety of vendors and honestly good for them. the Philips PCF8582 is supported too, since it's compatible with the AT24C02. no cap, it just works 🫢

you get to the contents of the memory through a character device. that's the doorway, that's the access point, that's how we're doing this.

the size of the EEPROM is either read from the firmware, or you can set it yourself using the flags keyword in the kernel configuration. the value of the flag is the EEPROM size in Kbit. and the mapping? absolutely essential, so here it is, do not lose it ✨

  • flags 1 β†’ EEPROM size in bytes: 128
  • flags 2 β†’ EEPROM size in bytes: 256
  • flags 4 β†’ EEPROM size in bytes: 512
  • flags 8 β†’ EEPROM size in bytes: 1024
  • flags 16 β†’ EEPROM size in bytes: 2048
  • flags 32 β†’ EEPROM size in bytes: 4096
  • flags 64 β†’ EEPROM size in bytes: 8192
  • flags 128 β†’ EEPROM size in bytes: 16384
  • flags 256 β†’ EEPROM size in bytes: 32768
  • flags 512 β†’ EEPROM size in bytes: 65536

yes bestie, the flag doubles every time. it's giving powers of two. it's giving math. we love her πŸ’–


🧚 EXAMPLES 🧚

indirect configuration

seeprom* at iic? addr 0x51 flags 0x2

direct configuration

seeprom* at iic? addr?

two ways to do the thing, pick your fighter πŸ”₯


πŸ‘‘ SEE ALSO πŸ‘‘

  • iic(4) β€” go read it, it's the whole I2C bus situation

🌈 HISTORY 🌈

the seeprom device appeared in NetBSD 2.0. vintage. retro. a classic. we stan a legacy icon ⭐


πŸ’€ BUGS πŸ’€

okay listen, we gotta be honest here, not everything is perfect and that's fine:

  • AT24C1024 EEPROM's are not supported. 😭 not me finding out like this
  • Software write protection on the AT34Cxx EEPROMs is not supported. so don't count on it, fr fr
  • the seeprom driver reads and writes one byte at a time to be compatible with all controllers. slow and steady, one byte at a time, that's the whole strategy 🐒
lowkey important: those first two are real limitations, not a vibe β€” don't go planning around features that aren't there. πŸ™ˆ

and that's the page!! mwah πŸ’‹ this one came from Debian, dated October 25, 2013 β€” so yes, she's been around a minute, and she still ate. go forth and read your EEPROMs responsibly πŸŽ€βœ¨

πŸ“¦ where this page comes from