# # This file is part of the coreboot project. # # Copyright (C) 2014 Sage Electronic Engineering, LLC. # Copyright (C) 2015 BAP - Bruhnspace Advanced Projects # (Written by Fabian Kunkel for BAP) # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # BAP ODE E20XX has 2GB ram soldered down on the Q7 # 0 Number of SPD Bytes used / Total SPD Size / CRC Coverage # bits[3:0]: 1 = 128 SPD Bytes Used # bits[6:4]: 1 = 256 SPD Bytes Total # bit7 : 0 = CRC covers bytes 0 ~ 125 92 # 1 SPD Revision - # 0x10 = Revision 1.0 12 # 2 Key Byte / DRAM Device Type # bits[7:0]: 0x0b = DDR3 SDRAM 0B # 3 Key Byte / Module Type # bits[3:0]: 3 = SO-DIMM # bits[7:4]: reserved 03 # 4 SDRAM CHIP Density and Banks # bits[3:0]: 3 = 2 Gigabits Total SDRAM capacity per chip # bits[6:4]: 0 = 3 (8 banks) # bit7 : reserved 04 # 5 SDRAM Addressing # bits[2:0]: 1 = 10 Column Address Bits # bits[5:3]: 2 = 14 Row Address Bits # bits[7:6]: reserved 19 # 6 Module Nominal Voltage, VDD # bit0 : 0 = 1.5 V operable # bit1 : 0 = NOT 1.35 V operable # bit2 : 0 = NOT 1.25 V operable # bits[7:3]: reserved 00 # 7 Module Organization # bits[2:0]: 2 = 16 bits # bits[5:3]: 0 = 1 Rank # bits[7:6]: reserved 02 # 8 Module Memory Bus Width # bits[2:0]: 3 = Primary bus width is 64 bits # bits[4:3]: 0 = 0 bits (no bus width extension) # bits[7:5]: reserved 08 # 9 Fine Timebase (FTB) Dividend / Divisor # bits[3:0]: 0x02 divisor # bits[7:4]: 0x05 dividend # 5/2 = 2.5ps 52 # 10 Medium Timebase (MTB) Dividend # 11 Medium Timebase (MTB) Divisor # 1 / 8 = .125 ns - used for clock freq of 400 through 1066 MHz 01 08 # 12 SDRAM Minimum Cycle Time (tCKmin) # 0x0a = tCKmin of 1.25 ns = DDR3-1600 (800 MHz clock) 0C # 13 Reserved 00 # 14 CAS Latencies Supported, Least Significant Byte # 15 CAS Latencies Supported, Most Significant Byte # Cas Latencies of 11 - 5 are supported 7E 00 # 16 Minimum CAS Latency Time (tAAmin) # 0x6E = 13.75ns - DDR3-1600K 69 # 17 Minimum Write Recovery Time (tWRmin) # 0x78 = tWR of 15ns - All DDR3 speed grades 78 # 18 Minimum RAS# to CAS# Delay Time (tRCDmin) # 0x6E = 13.75ns - DDR3-1600K 69 # 19 Minimum Row Active to Row Active Delay Time (tRRDmin) # 0x3C = 7.5ns 3C # 20 Minimum Row Precharge Delay Time (tRPmin) # 0x6E = 13.75ns - DDR3-1600K 69 # 21 Upper Nibbles for tRAS and tRC # bits[3:0]: tRAS most significant nibble = 1 (see byte 22) # bits[7:4]: tRC most significant nibble = 1 (see byte 23) 11 # 22 Minimum Active to Precharge Delay Time (tRASmin), LSB # 0x118 = 35ns - DDR3-1600 (see byte 21) 20 # 23 Minimum Active to Active/Refresh Delay Time (tRCmin), LSB # 0x186 = 48.75ns - DDR3-1600K 89 # 24 Minimum Refresh Recovery Delay Time (tRFCmin), LSB # 25 Minimum Refresh Recovery Delay Time (tRFCmin), MSB # 0x500 = 160ns - for 2 Gigabit chips 20 08 # 26 Minimum Internal Write to Read Command Delay Time (tWTRmin) # 0x3c = 7.5 ns - All DDR3 SDRAM speed bins 3C # 27 Minimum Internal Read to Precharge Command Delay Time (tRTPmin) # 0x3c = 7.5ns - All DDR3 SDRAM speed bins 3C # 28 Upper Nibble for tFAWmin # 29 Minimum Four Activate Window Delay Time (tFAWmin) # 0x0140 = 40ns - DDR3-1600, 2 KB page size 01 68 # 30 SDRAM Optional Feature # bit0 : 1= RZQ/6 supported # bit1 : 1 = RZQ/7 supported # bits[6:2]: reserved # bit7 : 1 = DLL Off mode supported 83 # 31 SDRAM Thermal and Refresh Options # bit0 : 1 = Temp up to 95c supported # bit1 : 0 = 85-95c uses 2x refresh rate # bit2 : 1 = Auto Self Refresh supported # bit3 : 0 = no on die thermal sensor # bits[6:4]: reserved # bit7 : 0 = partial self refresh supported 01 # 32 Module Thermal Sensor # 0 = Thermal sensor not incorporated onto this assembly 00 # 33 SDRAM Device Type # bits[1:0]: 0 = Signal Loading not specified # bits[3:2]: reserved # bits[6:4]: 0 = Die count not specified # bit7 : 0 = Standard Monolithic DRAM Device 00 # 34 Fine Offset for SDRAM Minimum Cycle Time (tCKmin) # 35 Fine Offset for Minimum CAS Latency Time (tAAmin) # 36 Fine Offset for Minimum RAS# to CAS# Delay Time (tRCDmin) # 37 Fine Offset for Minimum Row Precharge Delay Time (tRPmin) # 38 Fine Offset for Minimum Active to Active/Refresh Delay (tRCmin) 00 00 00 00 00 # 39 - 59 (reserved) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 # 60 Raw Card Extension, Module Nominal Height # bits[4:0]: 0 = <= 15mm tall # bits[7:5]: 0 = raw card revision 0-3 0f # 61 Module Maximum Thickness # bits[3:0]: 0 = thickness front <= 1mm # bits[7:4]: 0 = thinkness back <= 1mm 11 # 62 Reference Raw Card Used # bits[4:0]: 0 = Reference Raw card A used # bits[6:5]: 0 = revision 0 # bit7 : 0 = Reference raw cards A through AL 22 # 63 Address Mapping from Edge Connector to DRAM # bit0 : 0 = standard mapping (not mirrored) # bits[7:1]: reserved 00 # 64 - 116 (reserved) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 # 117 - 118 Module ID: Module Manufacturers JEDEC ID Code # 0x0001 = AMD 80 AD # 119 Module ID: Module Manufacturing Location - oem specified # 120 Module ID: Module Manufacture Year in BCD # 0x13 = 2013 01 00 # 121 Module ID: Module Manufacture week # 0x12 = 12th week 00 # 122 - 125: Module Serial Number 00 00 00 00 # 126 - 127: Cyclical Redundancy Code D4 51 # Coreboot is only interested in the first 128 values #128 - 135 48 4d 54 34 32 35 53 36 #136 - 143 4d 46 52 36 43 2d 48 39 #144 - 151 20 20 4e 30 80 ad 00 00 #152 - 159 00 00 00 00 00 00 00 00 #160 - 167 00 00 00 00 00 00 00 00 #168 - 175 00 00 00 00 00 00 00 00 #176 - 183 00 00 00 00 00 00 00 00 #184 - 191 00 00 00 00 00 00 00 00 #192 - 199 00 00 00 00 00 00 00 00 #200 - 207 00 00 00 00 00 00 00 00 #208 - 215 00 00 00 00 00 00 00 00 #216 - 223 00 00 00 00 00 00 00 00 #224 - 231 00 00 00 00 00 00 00 00 #232 - 239 00 00 00 00 00 00 00 00 #240 - 247 00 00 00 00 00 00 00 00 #248 - 255 00 00 00 00 00 00 00 00