| What: /sys/bus/i2c/devices/<busnum>-<primary-addr>/unlock | |
| Date: 2025-07-04 | |
| KernelVersion: 6.17 | |
| Contact: Abd-Alrhman Masalkhi <abd.masalkhi@gmail.com> | |
| Description: | |
| Write-only attribute used to present a password and unlock | |
| access to protected areas of the M24LR chip, including | |
| configuration registers such as the Sector Security Status | |
| (SSS) bytes. A valid password must be written to enable write | |
| access to these regions via the I2C interface. | |
| Format: | |
| - Hexadecimal string representing a 32-bit (4-byte) password | |
| - Accepts 1 to 8 hex digits (e.g., "c", "1F", "a1b2c3d4") | |
| - No "0x" prefix, whitespace, or trailing newline | |
| - Case-insensitive | |
| Behavior: | |
| - If the password matches the internal stored value, | |
| access to protected memory/configuration is granted | |
| - If the password does not match the internally stored value, | |
| it will fail silently | |
| What: /sys/bus/i2c/devices/<busnum>-<primary-addr>/new_pass | |
| Date: 2025-07-04 | |
| KernelVersion: 6.17 | |
| Contact: Abd-Alrhman Masalkhi <abd.masalkhi@gmail.com> | |
| Description: | |
| Write-only attribute used to update the password required to | |
| unlock the M24LR chip. | |
| Format: | |
| - Hexadecimal string representing a new 32-bit password | |
| - Accepts 1 to 8 hex digits (e.g., "1A", "ffff", "c0ffee00") | |
| - No "0x" prefix, whitespace, or trailing newline | |
| - Case-insensitive | |
| Behavior: | |
| - Overwrites the current password stored in the I2C password | |
| register | |
| - Requires the device to be unlocked before changing the | |
| password | |
| - If the device is locked, the write silently fails | |
| What: /sys/bus/i2c/devices/<busnum>-<primary-addr>/uid | |
| Date: 2025-07-04 | |
| KernelVersion: 6.17 | |
| Contact: Abd-Alrhman Masalkhi <abd.masalkhi@gmail.com> | |
| Description: | |
| Read-only attribute that exposes the 8-byte unique identifier | |
| programmed into the M24LR chip at the factory. | |
| Format: | |
| - Lowercase hexadecimal string representing a 64-bit value | |
| - 1 to 16 hex digits (e.g., "e00204f12345678") | |
| - No "0x" prefix | |
| - Includes a trailing newline | |
| What: /sys/bus/i2c/devices/<busnum>-<primary-addr>/total_sectors | |
| Date: 2025-07-04 | |
| KernelVersion: 6.17 | |
| Contact: Abd-Alrhman Masalkhi <abd.masalkhi@gmail.com> | |
| Description: | |
| Read-only attribute that exposes the total number of EEPROM | |
| sectors available in the M24LR chip. | |
| Format: | |
| - 1 to 2 hex digits (e.g. "F") | |
| - No "0x" prefix | |
| - Includes a trailing newline | |
| Notes: | |
| - Value is encoded by the chip and corresponds to the EEPROM | |
| size (e.g., 3 = 4 kbit for M24LR04E-R) | |
| What: /sys/bus/i2c/devices/<busnum>-<primary-addr>/sss | |
| Date: 2025-07-04 | |
| KernelVersion: 6.17 | |
| Contact: Abd-Alrhman Masalkhi <abd.masalkhi@gmail.com> | |
| Description: | |
| Read/write binary attribute representing the Sector Security | |
| Status (SSS) bytes for all EEPROM sectors in STMicroelectronics | |
| M24LR chips. | |
| Each EEPROM sector has one SSS byte, which controls I2C and | |
| RF access through protection bits and optional password | |
| authentication. | |
| Format: | |
| - The file contains one byte per EEPROM sector | |
| - Byte at offset N corresponds to sector N | |
| - Binary access only; use tools like dd, Python, or C that | |
| support byte-level I/O and offset control. | |
| Notes: | |
| - The number of valid bytes in this file is equal to the | |
| value exposed by 'total_sectors' file | |
| - Write access requires prior password authentication in | |
| I2C mode | |
| - Refer to the M24LR datasheet for full SSS bit layout |