T6x T61/T60: SPD EEPROM Zugriff mit Linux

jal2

Active member
Themenstarter
Registriert
7 Sep. 2010
Beiträge
3.709
Hallo,

ich habe mal nachgesehen, warum man auf dem T61 keinen Zugriff auf die EEPROM der SO-DIMM bekommt, wie es hier erwaehnt wird.
Laut Schaltplan des T61 (42W7622) wird der Zugriff auf die SPD EEPROM vom GPIO42 des ICH8 gesteuert.

Vorsicht bei der folgenden Anleitung: das Schalten von GPIO kann zu Hardwareschaeden fuehren!
Ich uebernehme keine Verantwortung fuer solche Schaeden!


  • Kernel Sourcen(z.B. 3.2.6 von http://www.kernel.org) mit dem i801_gpio Treiber von Jean Delvare patchen. Die Zeile im Makefile muss von Hand eingefuegt werden.
  • den I801 GPIO Treiber als Module konfigurieren (make menuconfig) - in .config muss
    Code:
    CONFIG_GPIO_I801=m
    stehen.
  • Kernel uebersetzen und installieren (z.B. wie hier beschrieben fuer Linux Mint 12 (Lisa).
  • ein File /etc/modprobe.d/i801_gpio.conf mit dem Inhalt
    Code:
    options i801_gpio force=1
    anlegen.
  • den neuen Kernel booten
  • unter /sys/class/gpio sollte es jetzt einen Eintrag gpiochip192 geben.
  • das GPIO42 exportieren und als Output mit dem Wert 1 konfigurieren:
Code:
cd /sys/class/gpio
echo 234 > export
echo high > gpio234/direction
  • die notwendigen Treiber fuer den Zugriff auf die SPD EEPROM laden:
Code:
modprobe i2c-dev
modprobe i2c-i801
modprobe eeprom
  • decode-dimms aus dem Paket i2c-tools aufrufen:
Code:
T61SSD gpio # decode-dimms 
# decode-dimms version 5733 (2009-06-09 13:13:41 +0200)

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/15-0050
Guessing DIMM is in                             bank 1

---=== SPD EEPROM Information ===---
EEPROM Checksum of bytes 0-62                   OK (0x15)
# of bytes written to SDRAM EEPROM              128
Total number of bytes in EEPROM                 256
Fundamental Memory type                         DDR2 SDRAM
SPD Revision                                    1.2

---=== Memory Characteristics ===---
Maximum module speed                            666MHz (PC2-5300)
Size                                            2048 MB
Banks x Rows x Columns x Bits                   8 x 14 x 10 x 64
Ranks                                           2
SDRAM Device Width                              8 bits
Module Height                                   30.0 mm
Module Type                                     SO-DIMM (67.6 mm)
DRAM Package                                    Planar
Voltage Interface Level                         SSTL 1.8V
Refresh Rate                                    Reduced (7.8 us) - Self Refresh
Supported Burst Lengths                         4, 8
tCL-tRCD-tRP-tRAS                               5-5-5-15
Supported CAS Latencies (tCL)                   5T, 4T, 3T
Minimum Cycle Time                              3.00 ns at CAS 5 (tCK min)
                                                3.75 ns at CAS 4
                                                5.00 ns at CAS 3
Maximum Access Time                             0.45 ns at CAS 5 (tAC)
                                                0.50 ns at CAS 4
                                                0.60 ns at CAS 3
Maximum Cycle Time (tCK max)                    8.00 ns

---=== Timing Parameters ===---
Address/Command Setup Time Before Clock (tIS)   0.20 ns
Address/Command Hold Time After Clock (tIH)     0.27 ns
Data Input Setup Time Before Strobe (tDS)       0.10 ns
Data Input Hold Time After Strobe (tDH)         0.17 ns
Minimum Row Precharge Delay (tRP)               15.00 ns
Minimum Row Active to Row Active Delay (tRRD)   7.50 ns
Minimum RAS# to CAS# Delay (tRCD)               15.00 ns
Minimum RAS# Pulse Width (tRAS)                 45.00 ns
Write Recovery Time (tWR)                       15.00 ns
Minimum Write to Read CMD Delay (tWTR)          7.50 ns
Minimum Read to Pre-charge CMD Delay (tRTP)     7.50 ns
Minimum Active to Auto-refresh Delay (tRC)      60.00 ns
Minimum Recovery Delay (tRFC)                   127.50 ns
Maximum DQS to DQ Skew (tDQSQ)                  0.24 ns
Maximum Read Data Hold Skew (tQHS)              0.34 ns

---=== Manufacturing Information ===---
Manufacturer                                    Elpida
Manufacturing Location Code                     J
Part Number                                     EBE21UE8ACUA-6E-E 
Revision Code                                   0x3020
Manufacturing Date                              2008-W46
Assembly Serial Number                          0x5A06326A


Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/15-0051
Guessing DIMM is in                             bank 2

---=== SPD EEPROM Information ===---
EEPROM Checksum of bytes 0-62                   OK (0x15)
# of bytes written to SDRAM EEPROM              128
Total number of bytes in EEPROM                 256
Fundamental Memory type                         DDR2 SDRAM
SPD Revision                                    1.2

---=== Memory Characteristics ===---
Maximum module speed                            666MHz (PC2-5300)
Size                                            2048 MB
Banks x Rows x Columns x Bits                   8 x 14 x 10 x 64
Ranks                                           2
SDRAM Device Width                              8 bits
Module Height                                   30.0 mm
Module Type                                     SO-DIMM (67.6 mm)
DRAM Package                                    Planar
Voltage Interface Level                         SSTL 1.8V
Refresh Rate                                    Reduced (7.8 us) - Self Refresh
Supported Burst Lengths                         4, 8
tCL-tRCD-tRP-tRAS                               5-5-5-15
Supported CAS Latencies (tCL)                   5T, 4T, 3T
Minimum Cycle Time                              3.00 ns at CAS 5 (tCK min)
                                                3.75 ns at CAS 4
                                                5.00 ns at CAS 3
Maximum Access Time                             0.45 ns at CAS 5 (tAC)
                                                0.50 ns at CAS 4
                                                0.60 ns at CAS 3
Maximum Cycle Time (tCK max)                    8.00 ns

---=== Timing Parameters ===---
Address/Command Setup Time Before Clock (tIS)   0.20 ns
Address/Command Hold Time After Clock (tIH)     0.27 ns
Data Input Setup Time Before Strobe (tDS)       0.10 ns
Data Input Hold Time After Strobe (tDH)         0.17 ns
Minimum Row Precharge Delay (tRP)               15.00 ns
Minimum Row Active to Row Active Delay (tRRD)   7.50 ns
Minimum RAS# to CAS# Delay (tRCD)               15.00 ns
Minimum RAS# Pulse Width (tRAS)                 45.00 ns
Write Recovery Time (tWR)                       15.00 ns
Minimum Write to Read CMD Delay (tWTR)          7.50 ns
Minimum Read to Pre-charge CMD Delay (tRTP)     7.50 ns
Minimum Active to Auto-refresh Delay (tRC)      60.00 ns
Minimum Recovery Delay (tRFC)                   127.50 ns
Maximum DQS to DQ Skew (tDQSQ)                  0.24 ns
Maximum Read Data Hold Skew (tQHS)              0.34 ns

---=== Manufacturing Information ===---
Manufacturer                                    Elpida
Manufacturing Location Code                     J
Part Number                                     EBE21UE8ACUA-6E-E 
Revision Code                                   0x3020
Manufacturing Date                              2008-W46
Assembly Serial Number                          0x5A06339C


Number of SDRAM DIMMs detected and decoded: 2

Ich habe das unter Mint 12 (Lisa) mit einem plain vanilla 3.2.6 (amd64) auf einem T61 probiert. Ob es aehnlich auch auf dem X61 geht, weiss ich nicht, habe keines.
Das GPIO42 schaltet neben dem Zugriff auf die SPD EEPROM auch den Zugriff auf den ICS954309 (Taktgenerator?) und den PCA24S08D (EEPROM, wofuer ist der?) frei.

Frohes Hacken!
jal2
 
Zuletzt bearbeitet:
T60: SPD EEPROM Zugriff

Jean Delvare hat mir beim T60 geholfen. Dort wird der Zugriff auf die SPD EEPROM mit dem GPIO03 der LPC Bridge PC87382 kontrolliert.

Ich übernehme keine Verantwortung für Hardware Schäden, wie z.B. BIOS CRC Fehler, weil jemand aus Versehen im Passwort EEPROM geschrieben hat!


  • Mit Hilfe des superiotools testen, ob das Gerät einen PC87382 hat und an welcher Adresse (bei mir 0x164e):
    Code:
    t60 ~ # superiotool 
    superiotool r6637
    Found NSC PC87382 (sid=0xf4, srid=0x04) at 0x164e
  • Die Basis-I/O-Adresse des PC87382 findet man in der Ausgabe des folgenden Befehls bei Offset 0x60,0x61:
    Code:
    t60 ~ # isadump 0x164e 0x164f 7 0x07
    WARNING! Running this program can cause system crashes, data loss and worse!
    I will probe address register 0x164e and data register 0x164f.
    Probing bank 7 using bank register 0x07.
    Continue? [Y/n] Y
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00: 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 
    10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    20: f4 11 63 00 00 00 00 04 00 b0 00 00 00 00 00 00 
    30: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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: 16 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    70: 00 03 00 00 04 04 00 00 00 00 00 00 00 00 00 00 
    80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    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: 23 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    In meinem Fall 0x1680.
  • Run-time Register der Bridge dumpen:
    Code:
    isadump -f 0x1680 16
    WARNING! Running this program can cause system crashes, data loss and worse!
    I will probe address range 0x1680 to 0x168f.
    Continue? [Y/n] 
           0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    1680: f6 f6 00 08 ff ff 00 00 1f 17 00 00 00 00 00 00
  • Der erste Wert sind die Output Werte für die GPIO Pins 00 bis 04. GPI03 sollte LOW sein, d.h. das Bit 3 ist 0. Wir müssen es auf 1 setzen, um die SPD EEPROM erreichen zu können. Also 8 zum Wert addieren (in meinem Fall 0xf6 + 8 = 0xfe) und den neuen Wert schreiben:
    Code:
    isaset -f 0x1680 0xfe
  • Dann sollte man die SPD EEPROM lesen können:
Code:
# modprobe eeprom
# decode-dimms
# decode-dimms version 5733 (2009-06-09 13:13:41 +0200)

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/0-0050
Guessing DIMM is in                             bank 1

---=== SPD EEPROM Information ===---
EEPROM Checksum of bytes 0-62                   OK (0x69)
# of bytes written to SDRAM EEPROM              128
Total number of bytes in EEPROM                 256
Fundamental Memory type                         DDR2 SDRAM
SPD Revision                                    1.2

---=== Memory Characteristics ===---
Maximum module speed                            666MHz (PC2-5300)
Size                                            512 MB
Banks x Rows x Columns x Bits                   4 x 13 x 10 x 64
Ranks                                           2
SDRAM Device Width                              16 bits
Module Height                                   30.0 mm
Module Type                                     SO-DIMM (67.6 mm)
DRAM Package                                    Planar
Voltage Interface Level                         SSTL 1.8V
Refresh Rate                                    Reduced (7.8 us)
Supported Burst Lengths                         4, 8
tCL-tRCD-tRP-tRAS                               5-5-5-15
Supported CAS Latencies (tCL)                   5T, 4T, 3T
Minimum Cycle Time                              3.00 ns at CAS 5 (tCK min)
                                                3.75 ns at CAS 4
                                                5.00 ns at CAS 3
Maximum Access Time                             0.45 ns at CAS 5 (tAC)
                                                0.50 ns at CAS 4
                                                0.60 ns at CAS 3
Maximum Cycle Time (tCK max)                    8.00 ns

---=== Timing Parameters ===---
Address/Command Setup Time Before Clock (tIS)   0.20 ns
Address/Command Hold Time After Clock (tIH)     0.27 ns
Data Input Setup Time Before Strobe (tDS)       0.10 ns
Data Input Hold Time After Strobe (tDH)         0.17 ns
Minimum Row Precharge Delay (tRP)               15.00 ns
Minimum Row Active to Row Active Delay (tRRD)   10.00 ns
Minimum RAS# to CAS# Delay (tRCD)               15.00 ns
Minimum RAS# Pulse Width (tRAS)                 45.00 ns
Write Recovery Time (tWR)                       15.00 ns
Minimum Write to Read CMD Delay (tWTR)          7.50 ns
Minimum Read to Pre-charge CMD Delay (tRTP)     7.50 ns
Minimum Active to Auto-refresh Delay (tRC)      60.00 ns
Minimum Recovery Delay (tRFC)                   105.00 ns
Maximum DQS to DQ Skew (tDQSQ)                  0.24 ns
Maximum Read Data Hold Skew (tQHS)              0.34 ns

---=== Manufacturing Information ===---
Manufacturer                                    Hyundai Electronics
Manufacturing Location Code                     0x01
Part Number                                     HYMP564S64BP6-Y5  
Revision Code                                   0x4141
Manufacturing Date                              2007-W24
Assembly Serial Number                          0x04008242


Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/0-0051
Guessing DIMM is in                             bank 2

---=== SPD EEPROM Information ===---
EEPROM Checksum of bytes 0-62                   OK (0x69)
# of bytes written to SDRAM EEPROM              128
Total number of bytes in EEPROM                 256
Fundamental Memory type                         DDR2 SDRAM
SPD Revision                                    1.2

---=== Memory Characteristics ===---
Maximum module speed                            666MHz (PC2-5300)
Size                                            512 MB
Banks x Rows x Columns x Bits                   4 x 13 x 10 x 64
Ranks                                           2
SDRAM Device Width                              16 bits
Module Height                                   30.0 mm
Module Type                                     SO-DIMM (67.6 mm)
DRAM Package                                    Planar
Voltage Interface Level                         SSTL 1.8V
Refresh Rate                                    Reduced (7.8 us)
Supported Burst Lengths                         4, 8
tCL-tRCD-tRP-tRAS                               5-5-5-15
Supported CAS Latencies (tCL)                   5T, 4T, 3T
Minimum Cycle Time                              3.00 ns at CAS 5 (tCK min)
                                                3.75 ns at CAS 4
                                                5.00 ns at CAS 3
Maximum Access Time                             0.45 ns at CAS 5 (tAC)
                                                0.50 ns at CAS 4
                                                0.60 ns at CAS 3
Maximum Cycle Time (tCK max)                    8.00 ns

---=== Timing Parameters ===---
Address/Command Setup Time Before Clock (tIS)   0.20 ns
Address/Command Hold Time After Clock (tIH)     0.27 ns
Data Input Setup Time Before Strobe (tDS)       0.10 ns
Data Input Hold Time After Strobe (tDH)         0.17 ns
Minimum Row Precharge Delay (tRP)               15.00 ns
Minimum Row Active to Row Active Delay (tRRD)   10.00 ns
Minimum RAS# to CAS# Delay (tRCD)               15.00 ns
Minimum RAS# Pulse Width (tRAS)                 45.00 ns
Write Recovery Time (tWR)                       15.00 ns
Minimum Write to Read CMD Delay (tWTR)          7.50 ns
Minimum Read to Pre-charge CMD Delay (tRTP)     7.50 ns
Minimum Active to Auto-refresh Delay (tRC)      60.00 ns
Minimum Recovery Delay (tRFC)                   105.00 ns
Maximum DQS to DQ Skew (tDQSQ)                  0.24 ns
Maximum Read Data Hold Skew (tQHS)              0.34 ns

---=== Manufacturing Information ===---
Manufacturer                                    Hyundai Electronics
Manufacturing Location Code                     0x01
Part Number                                     HYMP564S64BP6-Y5  
Revision Code                                   0x4141
Manufacturing Date                              2007-W24
Assembly Serial Number                          0x04004205


Number of SDRAM DIMMs detected and decoded: 2
Jetzt fehlt noch ein Tool, um die SPD unter Linux schreiben zu können.

EDIT: Das Beispiel oben mit Linux Mint Debian (XFCE, 32bit), die Pakete i2c-tools und superiotool wurde aus den Repos nachinstalliert.
 
Zuletzt bearbeitet:
X61: SPD EEPROM Lesen/Beschreiben

:thumbup:

Bestätigt! Beim X61 ist es wie beim T61:
(getestet auf 3.2.6er Kernel x86_64)

Code:
root@x61:~# cd /sys/class/gpio
root@x61:/sys/class/gpio# echo 234 > export
root@x61:/sys/class/gpio# echo high > gpio234/direction
root@x61:/sys/class/gpio# modprobe i2c-dev
root@x61:/sys/class/gpio# modprobe i2c-i801
root@x61:/sys/class/gpio# modprobe eeprom
root@x61:/sys/class/gpio# decode-dimms 
# decode-dimms version 5929 (2011-02-16 14:58:38 +0100)


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/14-0050
Guessing DIMM is in                             bank 1


---=== SPD EEPROM Information ===---
EEPROM Checksum of bytes 0-62                   OK (0x13)
# of bytes written to SDRAM EEPROM              128
Total number of bytes in EEPROM                 256
Fundamental Memory type                         DDR2 SDRAM
SPD Revision                                    1.2


---=== Memory Characteristics ===---
Maximum module speed                            666MHz (PC2-5300)
Size                                            2048 MB
Banks x Rows x Columns x Bits                   8 x 14 x 10 x 64
Ranks                                           2
SDRAM Device Width                              8 bits
Module Height                                   30.0 mm
Module Type                                     SO-DIMM (67.6 mm)
DRAM Package                                    Planar
Voltage Interface Level                         SSTL 1.8V
Refresh Rate                                    Reduced (7.8 us) - Self Refresh
Supported Burst Lengths                         4, 8
tCL-tRCD-tRP-tRAS                               5-5-5-15
Supported CAS Latencies (tCL)                   5T, 4T, 3T
Minimum Cycle Time                              3.00 ns at CAS 5 (tCK min)
                                                3.75 ns at CAS 4
                                                5.00 ns at CAS 3
Maximum Access Time                             0.45 ns at CAS 5 (tAC)
                                                0.50 ns at CAS 4
                                                0.60 ns at CAS 3
Maximum Cycle Time (tCK max)                    8.00 ns


---=== Timing Parameters ===---
Address/Command Setup Time Before Clock (tIS)   0.20 ns
Address/Command Hold Time After Clock (tIH)     0.27 ns
Data Input Setup Time Before Strobe (tDS)       0.10 ns
Data Input Hold Time After Strobe (tDH)         0.17 ns
Minimum Row Precharge Delay (tRP)               15.00 ns
Minimum Row Active to Row Active Delay (tRRD)   7.50 ns
Minimum RAS# to CAS# Delay (tRCD)               15.00 ns
Minimum RAS# Pulse Width (tRAS)                 45.00 ns
Write Recovery Time (tWR)                       15.00 ns
Minimum Write to Read CMD Delay (tWTR)          7.50 ns
Minimum Read to Pre-charge CMD Delay (tRTP)     7.50 ns
Minimum Active to Auto-refresh Delay (tRC)      54.00 ns
Minimum Recovery Delay (tRFC)                   127.50 ns
Maximum DQS to DQ Skew (tDQSQ)                  0.24 ns
Maximum Read Data Hold Skew (tQHS)              0.34 ns


---=== Manufacturing Information ===---
Manufacturer                                    Corsair
Manufacturing Location Code                     0x01
Part Number                                     VS2GSDS667D2      
Revision Code                                   0x2020




Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/14-0051
Guessing DIMM is in                             bank 2


---=== SPD EEPROM Information ===---
EEPROM Checksum of bytes 0-62                   OK (0x96)
# of bytes written to SDRAM EEPROM              128
Total number of bytes in EEPROM                 256
Fundamental Memory type                         DDR2 SDRAM
SPD Revision                                    1.2


---=== Memory Characteristics ===---
Maximum module speed                            533MHz (PC2-4200)
Size                                            2048 MB
Banks x Rows x Columns x Bits                   8 x 14 x 10 x 64
Ranks                                           2
SDRAM Device Width                              8 bits
Module Height                                   30.0 mm
Module Type                                     SO-DIMM (67.6 mm)
DRAM Package                                    Planar
Voltage Interface Level                         SSTL 1.8V
Refresh Rate                                    Reduced (7.8 us) - Self Refresh
Supported Burst Lengths                         4, 8
tCL-tRCD-tRP-tRAS                               6-6-6-18
Supported CAS Latencies (tCL)                   6T
Minimum Cycle Time                              3.75 ns at CAS 6 (tCK min)
Maximum Access Time                             0.40 ns at CAS 6 (tAC)
Maximum Cycle Time (tCK max)                    8.00 ns


---=== Timing Parameters ===---
Address/Command Setup Time Before Clock (tIS)   0.17 ns
Address/Command Hold Time After Clock (tIH)     0.25 ns
Data Input Setup Time Before Strobe (tDS)       0.05 ns
Data Input Hold Time After Strobe (tDH)         0.12 ns
Minimum Row Precharge Delay (tRP)               22.50 ns
Minimum Row Active to Row Active Delay (tRRD)   11.25 ns
Minimum RAS# to CAS# Delay (tRCD)               22.50 ns
Minimum RAS# Pulse Width (tRAS)                 67.00 ns
Write Recovery Time (tWR)                       22.50 ns
Minimum Write to Read CMD Delay (tWTR)          11.25 ns
Minimum Read to Pre-charge CMD Delay (tRTP)     11.25 ns
Minimum Active to Auto-refresh Delay (tRC)      90.00 ns
Minimum Recovery Delay (tRFC)                   127.50 ns
Maximum DQS to DQ Skew (tDQSQ)                  0.20 ns
Maximum Read Data Hold Skew (tQHS)              0.30 ns


---=== Manufacturing Information ===---
Manufacturer                                    Samsung
Manufacturing Location Code                     0x02
Part Number                                     M4 70T5663EH3-CF7 
Revision Code                                   0x3345
Manufacturing Date                              2009-W08
Assembly Serial Number                          0x9561C979




Number of SDRAM DIMMs detected and decoded: 2



X61: EEPROM-Inhalt schreiben

Wie im Eingangspost beschrieben, müssen die Kernel-Module geladen und das GPIO exportiert werden.
Code:
modprobe i2c-dev
modprobe i2c-i801
cd /sys/class/gpio
echo 234 > export
echo high > gpio234/direction
Danach kann man sich die Inhalte der SPD-EEPROMS mit i2cdump (aus dem i2c-tools-Paket) in der Konsole anzeigen lassen. Die Adresse des des Chips im ersten Ram-Slot ist 0x50, die des zweiten 0x51.
Die Nummer des Devices bekommt man z.B. durch einen Aufruf von i2cdetect -l heraus, in meinem Fall ist das die 14.

Beispiel (das ist der Samsung-Riegel, s.o.):
Code:
root@x61:/sys/class/gpio# i2cdump -y 14 0x51 b
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 80 08 08 0e 0a 61 40 00 05 3d 40 00 82 08 00 00    ?????a@.?=@.??..
10: 0c 08 40 01 04 00 07 3d 45 3d 50 5a 2d 5a 43 01    ??@??.?=E=PZ-ZC?
20: 17 25 05 12 5a 2d 2d 00 06 5a 7f 80 14 1e 00 00    ?%??Z--.?Z????..
30: 00 03 00 00 00 00 00 00 00 00 00 00 00 00 12 96    .?............??
40: ce 00 00 00 00 00 00 00 02 4d 34 20 37 30 54 35    ?.......?M4 70T5
50: 36 36 33 45 48 33 2d 43 46 37 20 33 45 09 08 95    663EH3-CF7 3E???
60: 61 c9 79 00 55 47 44 41 43 30 43 00 00 00 00 00    a?y.UGDAC0C.....
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
80: 00 63 43 21 20 00 36 66 fe e0 46 31 01 52 10 00    .cC! .6f??F1?R?.
90: 00 63 43 21 20 00 36 66 f0 00 46 32 00 13 0d 00    .cC! .6f?.F2.??.
a0: 00 63 43 21 20 00 36 66 fe e0 46 31 01 06 03 00    .cC! .6f??F1???.
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: 4b 4f 4d ff ff ff ff ff ff ff ff ff ff ff ff ff    KOM.............
f0: 01 ff ff ff ff ff ff ff ff ff ff ff ff ff ff 06    ?..............?


Das Beschreiben des EEPROMS geht z.B. mit dem Tool eeprog, das auch bei den i2c-tools dabei ist.
Leider hat das Programm einen Bug und mir beim Schreiben immer das erste Zeichen gefressen, so dass man den Dump evtl. noch modifizieren muss. Bitte nach dem Schreibvorgang unbedingt prüfen!

Die neueste Version kann man sich hier herunterladen, kompilieren geht jeweils durch einen Aufruf von make
Code:
svn checkout http://lm-sensors.org/svn/i2c-tools/trunk i2c-tools
cd i2c-tools/eepromer/
make

Eeprom-Inhalt aus Bank0 in Datei sichern
Code:
 ./eeprog -8 /dev/i2c-14 0x50 -r 0x0:256 > dump_bank0.spd

Eeprom-Inhalt in Bank0 zurückschreiben (auf eigene Verantwortung!)
Solange der Bug existiert, muss man an den Dump vorne ein Zeichen anhängen:
Code:
 xxd dump.spd | xxd -r -s 1 > dump_modified.spd

Anschauen des modifizierten Dumps in der Konsole, sicher ist sicher...
Code:
 xxd dump_modified.spd

EEPROM beschreiben
Code:
 ./eeprog -8 /dev/i2c-14 0x50 -w 0x0 < dump_modified.spd

.. und nochmal überprüfen
Code:
i2cdump -y 14 0x50 b
 
Zuletzt bearbeitet:
Geniale Sache. Das spart mir viel Zeit beim Suchen. Danke für den Tipp. :-)
 
Zuletzt bearbeitet:
Moin,

ich möchte bald ebenfalls 2 ram-riegel umflashen und habe keine Windows Laptops mehr hier. Leider hatte ich bisher keine Gelegenheit, mir so tiefgreifende Linuxkenntnisse anzueignen, dass mir die obigen Zeilen ausreichend weiterhelfen. Und wenn ich mir die Mühe schon mache will ich, dass auch andere was davon haben.

Wie wäre es also, wenn man fürs X6x ein linux image für usb sticks vorbereitet, das neben dem nötigen kernel und programmen auch gleich skripte beinhaltet, die alles richtig machen.

Wer hilft mir dabei?
 
Da würd ich an Deiner Stelle die Finger weg lassen wenn nicht Profi, das sieht nicht gut aus hier:

# modprobe eeprom

Code:
May  9 20:52:50 xxx kernel: [43313.504062] [drm] GMBUS timed out, falling back to bit banging on pin 0 [i915 gmbus disabled]
May  9 20:52:51  xxx kernel: [43314.120068] [drm] GMBUS timed out, falling back to bit banging on pin 6 [i915 gmbus reserved]

Hoffentlich hats jetzt nix verbrannt.
 
Zuletzt bearbeitet:
Da würd ich an Eurer Stelle die Finger weg lassen wenn nicht Profi, das sieht nicht gut aus hier:

# modprobe eeprom

Code:
May  9 20:52:50 xxx kernel: [43313.504062] [drm] GMBUS timed out, falling back to bit banging on pin 0 [i915 gmbus disabled]
May  9 20:52:51  xxx kernel: [43314.120068] [drm] GMBUS timed out, falling back to bit banging on pin 6 [i915 gmbus reserved]

Hoffentlich hats jetzt nix verbrannt.

Welches Gerät, welche Kernelversion, welche Architektur? Siehe auch hier.
 
Welches Gerät, welche Kernelversion, welche Architektur? Siehe auch hier.

1. -> Meine Signatur, 2. debian stable mit letztem vanilla 2.6 stable kernel, 3. Nichtssagender upstream bugreport und Dein Fullqoute ist out of date.

Die Warnungen vor Experimenten mit eeprom und i2c-tools/lm-sensors auf laptops sind seit min. 5 Jahren bekannt.
 
Zuletzt bearbeitet:
1. -> Meine Signatur
Ist das ein R61 mit Intel Grafik (CTO)?

2. debian stable mit letztem vanilla 2.6 stable kernel
32 oder 64 bit (das meinte ich mit Architektur)?

3. Nichtssagender upstream bugreport und Dein Fullqoute ist out of date.
Du bist ja ein umgänglicher Zeitgenosse. Was hast Du herausgefunden - was verursacht die Fehler, die Du gepostet hast und wie behebt man sie?


Die Warnungen vor Experimenten mit eeprom und i2c-tools/lm-sensors auf laptops sind seit min. 5 Jahren bekannt.
Die Ursache dafür, die ich kenne, war der AT24RF08, der aufs Proben seltsam reagierte. Welche anderen sind Dir bekannt?
 
Ist das ein R61 mit Intel Grafik (CTO)?
32 oder 64 bit (das meinte ich mit Architektur)?
Die Ursache dafür, die ich kenne, war der AT24RF08, der aufs Proben seltsam reagierte. Welche anderen sind Dir bekannt?

-Auch die "Architektur" ist meiner Signatur zu entnehmen, oder gibt es R61 mit 686er- Architektur oder fährst Du 64Bit- Systeme mit 32Bit- Kerneln ?
-So ziemlich alle Systeme in der Welt dürften aufs Falschansteuern mittels mehr oder weniger begründetem "Proben" auch falsch reagieren.

Und wenn Dir jeder "unumgänglich" ist der nicht Deiner Meinung ist oder Dich fachlich kritisiert ist das Dein Problem, Entschuldigung.
 
Zuletzt bearbeitet:
Die Prozedur aus #1 funktioniert auch auf dem X301. Habe es gerade mit Linux Mint14, selbst uebersetzter Kernel 3.5.7.7 probiert.
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben