On Tue, Nov 20, 2018 at 12:32 AM <valdis.kletnieks@vt.edu> wrote:
On Tue, 20 Nov 2018 00:04:03 +0200, Ranran said:
That's interesting... I think the name is confusing, because this chips are also writable.
Not only this, but in arm the eeprom (at24) is writable! But in the x86 I am using, it is readonly in kernel code: https://android.googlesource.com/kernel/omap/+/glass-omap-xrr02/drivers/misc... static struct bin_attribute eeprom_attr = { .attr = { .name = "eeprom", .mode = S_IRUGO, }, .size = EEPROM_SIZE, .read = eeprom_read, };
Well, at least in the mainline kernel, we have this at the top of the eeprom.c file:
/* Addresses to scan */ static const unsigned short normal_i2c[] = { 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, I2C_CLIENT_END };
/* Size of EEPROM in bytes */ #define EEPROM_SIZE 256
which is pretty obviously intended for "very small eeprom hanging off an I2C adapter", and thus probably *NOT* the boot ROM that the BIOS lives in.
although I think that in my system it is a flash rom which stores the BIOS, so I really don't know what's the use of the eeprom.... I need a very small amout of data (several bytes) to save some non volatile information in x86 system. I can't use disk for this, but can use any other peripheral or even x86 chip on board. Now it also seems that I can't use the eeprom becuase of the kernel limitation (can I open it for writing if the BIOS is not stored there??) I don't have any idea where I can find such storage. Does x86 include some programmable registers ? Do you have any idea where I can store the data ? Thanks