i2c-tools
and some kernel modules are needed.$ nix-shell -p i2c-tools
$ modprobe i2c-dev
$ modprobe i2c-i801
$ i2cdetect -l
i2c-0 unknown i915 gmbus ssc N/A
i2c-1 unknown i915 gmbus vga N/A
i2c-2 unknown i915 gmbus panel N/A
i2c-3 unknown i915 gmbus dpc N/A
i2c-4 unknown i915 gmbus dpb N/A
i2c-5 unknown i915 gmbus dpd N/A
i2c-6 unknown DPDDC-B N/A
i2c-7 unknown DPDDC-C N/A
i2c-8 unknown DPDDC-D N/A
i2c-9 unknown SMBus I801 adapter at efa0 N/A
i2c-9
.i2c-tools
package even comes with the decode-dimms
for reading RAM information in a readable format. This requires the eeprom
kernel module.$ modprobe eeprom
$ decode-dimms
$ modprobe -r eeprom
Memory Serial Presence Detect Decoder By Philip Edelbrock, Christian Zuckschwerdt, Burkart Lingner, Jean Delvare, Trent Piepho and others Decoding EEPROM: / sys / bus / i2c / drivers / eeprom / 9-0050 Guessing DIMM is in bank 1 --- === SPD EEPROM Information === --- EEPROM CRC of bytes 0-116 OK (0xAEA4) # of bytes written to SDRAM EEPROM 176 Total number of bytes in EEPROM 256 Fundamental Memory type DDR3 SDRAM Module Type SO-DIMM --- === Memory Characteristics === --- Maximum module speed 1333 MHz (PC3-10600) Size 4096 MB Banks x Rows x Columns x Bits 8 x 15 x 10 x 64 Ranks 2 SDRAM Device Width 8 bits Bus Width Extension 0 bits tCL-tRCD-tRP-tRAS 9-9-9-24 Supported CAS Latencies (tCL) 10T, 9T, 8T, 7T, 6T, 5T --- === Timings at Standard Speeds === --- tCL-tRCD-tRP-tRAS as DDR3-1333 9-9-9-24 tCL-tRCD-tRP-tRAS as DDR3-1066 7-7-7-20 tCL-tRCD-tRP-tRAS as DDR3-800 6-6-6-15 --- === Timing Parameters === --- Minimum Cycle Time (tCK) 1.500 ns Minimum CAS Latency Time (tAA) 13.125 ns Minimum Write Recovery time (tWR) 15.000 ns Minimum RAS # to CAS # Delay (tRCD) 13.125 ns Minimum Row Active to Row Active Delay (tRRD) 6.000 ns Minimum Row Precharge Delay (tRP) 13.125 ns Minimum Active to Precharge Delay (tRAS) 36.000 ns Minimum Active to Auto-Refresh Delay (tRC) 49.125 ns Minimum Recovery Delay (tRFC) 160.000 ns Minimum Write to Read CMD Delay (tWTR) 7.500 ns Minimum Read to Pre-charge CMD Delay (tRTP) 7.500 ns Minimum Four Activate Window Delay (tFAW) 30.000 ns --- === Optional Features === --- Operable voltages 1.5V RZQ / 6 supported? No RZQ / 7 supported? Yes DLL Off Mode supported? Yes Operating temperature range 0-95 degrees C Refresh Rate 2X Auto Self-Refresh? Yes On-Die Thermal Sensor readout? No Partial Array Self-Refresh? No Module Thermal Sensor Yes SDRAM Device Type Standard Monolithic --- === Physical Characteristics === --- Module Height 30 mm Module Thickness 2 mm front, 2 mm back Module Width 67.6 mm Module Reference Card F revision 0 Rank 1 Mapping Standard --- === Manufacturer Data === --- Module Manufacturer Micron Technology DRAM Manufacturer Micron Technology Manufacturing Location Code 0x0F Manufacturing Date 2011-W23 Assembly Serial Number 0xFB5C7F1A Part Number 16JSF51264HZ-1G4D1 Revision Code 0x4431
$ i2cdump 9 0x50 No size specified (using byte-data access) WARNING! This program can confuse your I2C bus, cause data loss and worse! I will probe the file / dev / i2c-9, address 0x50, mode byte Continue? [Y / n] 0 1 2 3 4 5 6 7 8 9 abcdef 0123456789abcdef 00: 92 10 0b 03 03 19 00 09 03 52 01 08 0c 00 7e 00 ??????. ?? R ???. ~. 10: 69 78 69 30 69 11 20 89 00 05 3c 3c 00 f0 82 05 ixi0i? ?.? <<. ??? 20: 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00? ............... 30: 00 00 00 00 00 00 00 00 00 00 00 00 0f 11 05 00 ............ ???. 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 70: 00 00 00 00 80 80 2c 0f 11 23 fb 5c 7f 1a a4 ae .....?, ?? #? \ ???? 80: 31 36 4a 53 46 35 31 32 36 34 48 5a 2d 31 47 34 16JSF51264HZ-1G4 90: 44 31 44 31 80 2c 00 00 00 00 00 00 00 00 00 00 D1D1 ?, .......... a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
00:
, in column c
. By the way, its value is also 0x0c or 12. This is a multiple of the average time base (MTB), which is the quotient of dividing the value in 0x0a by the value in 0x0b (in nanoseconds). Here 1⁄8 ns. So 12 MTB corresponds to 1.5 ns.a4 ae
, then went to look for a calculator to calculate. It took me a surprisingly long time to find a workable CRC calculator. I tried several command line tools, but still stopped at the online calculator http://crccalc.com/ . Then I learned that the CRC-16 / XMODEM variant is used here, and the checksum is actually 0xAEA4. Byte order and all that. It should be noted in the issuance of decode-dimms
.y
, pressed Enter for final confirmation and ...$ i2cset 9 0x50 0x0c 0x0f WARNING! This program can confuse your I2C bus, cause data loss and worse! DANGEROUS! Writing to a serial EEPROM on a memory DIMM may render your memory and make your system UNBOOTABLE! I will write to the device file / dev / i2c-9, chip address 0x50, data address 0x0c, data 0x0f, mode byte. Continue? [y / n] y Error: Write failed
97B
, 321
and some other things. Googling, I found out that this is an SE97B chip. I looked through the data table and several times carefully read the write protection section. Using programs, I made several attempts to remove temporary write protection, but failed. The write protection was probably permanent, so I just decided to look for a module that does not have write protection.i2cdetect
does it normally, but launching i2cget 9 0x30 <any-address>
will probably set real write protection, which is really permanent. I did not try to do this.eeprom
kernel module and starting the decode-dimms
module, it looked like a regular 4GB PC3-8500. When I installed it in the MacBook Pro, I finally booted the system with 8 GB of memory.0 1 2 3 4 5 6 7 8 9 abcdef 0123456789abcdef 00: 92 10 0b 03 03 19 00 09 03 52 01 08 0c 00 3e 00 ??????. ?? R ???.>. 10: 69 78 69 30 69 11 20 89 00 05 3c 3c 00 f0 83 01 ixi0i? ?.? <<. ??? 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 30: 00 00 00 00 00 00 00 00 00 00 00 00 0f 11 45 00 ............ ?? E. 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 70: 00 00 00 00 80 ce 02 11 30 b1 5b 13 a1 0e 59 ..... ???? 0? [??? Y 80: 4d 34 37 31 42 35 32 37 33 43 48 30 2d 43 48 39 M471B5273CH0-CH9 90: 20 20 00 00 80 ce 00 00 00 53 31 42 4e 30 30 30 .. ?? ... S1BN000 a0: 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 03??? ............? b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 32 59 00 ............. 2Y. c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0 1 2 3 4 5 6 7 8 9 abcdef 0123456789abcdef 00: 92 10 0b 03 03 19 00 09 03 52 01 08 0f 00 3e 00 ??????. ?? R ???.>. 10: 69 78 69 30 69 11 20 89 00 05 3c 3c 00 f0 83 01 ixi0i? ?.? <<. ??? 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 30: 00 00 00 00 00 00 00 00 00 00 00 00 0f 11 45 00 ............ ?? E. 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 70: 00 00 00 00 80 ce 02 11 30 b1 5b 13 a1 06 54 ..... ???? 0? [??? T 80: 4d 34 37 31 42 35 32 37 33 43 48 30 2d 43 48 39 M471B5273CH0-CH9 90: 20 20 00 00 80 ce 00 00 00 53 31 42 4e 30 30 30 .. ?? ... S1BN000 a0: 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 03??? ............? b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 32 59 00 ............. 2Y. c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
Source: https://habr.com/ru/post/431128/
All Articles