LINUX.ORG.RU

История изменений

Исправление mittorn, (текущая версия) :

в ddr4 eeprom 512байтный и информация о производителе чипа во второй половине. По идее должен поддерживаться драйвером ee1004, но у меня оно не работало и пришлось читать напрямую через i2c
Исходя из этого:
https://github.com/torvalds/linux/blob/master/drivers/misc/eeprom/ee1004.c#L107
1. выгружаем драйвер eeprom чтобы освободить доступ к i2c устройству
2. Ищем память на i2c (обычно это один из smbus) путём i2cdump по адресам 0x50-0x54, там будут еепромы с разных плашек
3. когда дамп что-то выдаст - это будут первые 256 байт eeprom. Чтобы считать вторую страницу - нужно записать 0 на эту же шину по адресу 0x37 (можно через i2cset)
Чтобы снова прочитать первую страницу записать 0 по адресу 0x36
Считывал через i2cdump, потом самописным скриптом конвертил из hex в бинарь
Осторожно, я не знаю есть ли защита от записи в памяти. Вполне вероятно что разным экспериментами с i2c память можно и убить

Полученный бинарь можно скормтить скрипту decode-dimms (который почти ничего пока не умеет узнавать) или лучше виндовым утилитам для разбора eeprom ddr4, которые прекрасно работают и под wine если подсунуть bin файлик

Исходная версия mittorn, :

в ddr4 eeprom 512байтный и информация о производителе чипа во второй половине. По идее должен поддерживаться драйвером ee1004, но у меня оно не работало и пришлось читать напрямую через i2c
Исходя из этого:
https://github.com/torvalds/linux/blob/master/drivers/misc/eeprom/ee1004.c#L107
1. выгружаем драйвер eeprom чтобы освободить доступ к i2c устройству
2. Ищем память на i2c (обычно это один из smbus) путём i2cdump по адресам 0x50-0x54, там будут еепромы с разных плашек
3. когда дамп что-то выдаст - это будут первые 256 байт eeprom. Чтобы считать вторую страницу - нужно записать 0 на эту же шину по адресу 0x37 (можно через i2cset)
Чтобы снова прочитать первую страницу записать 0 по адресу 0x36
Считывал через i2cdump, потом самописным скриптом конвертил из hex в бинарь
Осторожно, я не знаю есть ли защита от записи в памяти. Вполне вероятно что разным экспериментами с i2c память можно и убить

Полученный бинарь можно скормтить скрипту decode-dimms (который почти ничего пока не умеет узнавать) или лучше виндовым утилитам для разбора eeprom, которые прекрасно работают и под wine если подсунуть bin файлик