Jako vývojař HW mám docela dost zásadní připomínku. Na DIMM ani SO-DIMM není vůbec sběrnice SPI!!!
Běžně se využívá SMBus (System Management Bus), což je rozšíření Philipsácké I2C (o jeden signál pro události a timeouty). Nicméně s I2C je zpětně kompatibilní a paměti využívají I2C EEPROM. Resp. standardní řadu 24Cxx, která dovoluje mít na sběrnici až osm těchto pamětí a volí se hardwarově pomocí třech nožiček, který se dávají na Vcc (1) nebo na Gnd (0). To propojení je fyzicky pod každým slotem a dovoluje mít na jednom SMB masteru až osm slotů DIMM. Signály pro select adresy jsou SA[2..0], sama sběrnice má data (SDA) a hodiny (SCL)
Například pro SO-DIMM DDR3 je zapojení pinů:
- SDA na pinu 200,
- SCL na pinu 202.- SA0 na pinu 197,
- SA1 na pinu 201,
- SA2 nevvyeden (natvrdo 0) ,
Oproti tomu signály pro SPI (SCK, MOSI, MISO, #SSn) nikde v JEDEC specifikaci nevidím ani přes fulltext...
SPD na DIMM by spravne melo byt readonly / write protected, takze by tam nic ani nezapsali.
Nastaveni BIOSu je v NVRAM (aka "CMOS"), a to je platform specific kdyz uz resime hw. Jednu historickou dobu to bylo soucasti RTC, pak se pouzivali ruzne i2c/3wire pameti a soucasny trend je bud SPI flash nebo paralelni nor flash.
Jeste jsem nepotkal pametovy modul se zaprotektenou SPD EEPROM, obcas se i hodi mit moznost to prepsat :)
Jinak jak bylo receno, v tom utoku se zapisovalo do SPI Flash s BIOSem.
Jako reseni me napada pridat do RAM cipu nakou inteligenci, ktera po zapnuti napajeni sama zajisti vynulovani bunek.
Jinak uz jsou dostupne procesory s HW sfirovanim RAM (SMEP) - AMD Ryzen Pro, akorat si je u nas bezne nekoupite v obchode (proc po tak dlouhe dobe od uvedeni?)