Home | History | Annotate | Line # | Download | only in ic
spdmemreg.h revision 1.1
      1 /* $NetBSD: spdmemreg.h,v 1.1 2010/03/24 00:31:41 pgoyette Exp $ */
      2 
      3 /*
      4  * Copyright (c) 2007 Paul Goyette
      5  * All rights reserved.
      6  *
      7  * Redistribution and use in source and binary forms, with or without
      8  * modification, are permitted provided that the following conditions
      9  * are met:
     10  * 1. Redistributions of source code must retain the above copyright
     11  *    notice, this list of conditions and the following disclaimer.
     12  * 2. Redistributions in binary form must reproduce the above copyright
     13  *    notice, this list of conditions and the following disclaimer in the
     14  *    documentation and/or other materials provided with the distribution.
     15  * 3. The name of the author may not be used to endorse or promote products
     16  *    derived from this software without specific prior written permission.
     17  *
     18  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS
     19  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
     20  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     21  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
     22  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     23  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     24  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     25  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     26  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     27  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     28  * POSSIBILITY OF SUCH DAMAGE.
     29  */
     30 
     31 /* possible values for the memory type */
     32 #define	SPDMEM_MEMTYPE_FPM		0x01
     33 #define	SPDMEM_MEMTYPE_EDO		0x02
     34 #define	SPDMEM_MEMTYPE_PIPE_NIBBLE	0x03
     35 #define	SPDMEM_MEMTYPE_SDRAM		0x04
     36 #define	SPDMEM_MEMTYPE_ROM		0x05
     37 #define	SPDMEM_MEMTYPE_DDRSGRAM		0x06
     38 #define	SPDMEM_MEMTYPE_DDRSDRAM		0x07
     39 #define	SPDMEM_MEMTYPE_DDR2SDRAM	0x08
     40 #define	SPDMEM_MEMTYPE_FBDIMM		0x09
     41 #define	SPDMEM_MEMTYPE_FBDIMM_PROBE	0x0A
     42 #define	SPDMEM_MEMTYPE_DDR3SDRAM	0x0B
     43 
     44 #define	SPDMEM_MEMTYPE_RAMBUS		0x11
     45 #define	SPDMEM_MEMTYPE_DIRECTRAMBUS	0x01
     46 
     47 /* Encodings of the size used/total byte for certain memory types    */
     48 #define	SPDMEM_SPDSIZE_MASK		0x0F	/* SPD EEPROM Size   */
     49 
     50 #define	SPDMEM_SPDLEN_128		0x00	/* SPD EEPROM Sizes  */
     51 #define	SPDMEM_SPDLEN_176		0x10
     52 #define	SPDMEM_SPDLEN_256		0x20
     53 #define	SPDMEM_SPDLEN_MASK		0x70	/* Bits 4 - 6        */
     54 
     55 #define	SPDMEM_SPDCRC_116		0x80	/* CRC Bytes covered */
     56 #define	SPDMEM_SPDCRC_125		0x00
     57 #define	SPDMEM_SPDCRC_MASK		0x80	/* Bit 7             */
     58 
     59 /* possible values for the supply voltage */
     60 #define	SPDMEM_VOLTAGE_TTL_5V		0x00
     61 #define	SPDMEM_VOLTAGE_TTL_LV		0x01
     62 #define	SPDMEM_VOLTAGE_HSTTL_1_5V	0x02
     63 #define	SPDMEM_VOLTAGE_SSTL_3_3V	0x03
     64 #define	SPDMEM_VOLTAGE_SSTL_2_5V	0x04
     65 #define	SPDMEM_VOLTAGE_SSTL_1_8V	0x05
     66 
     67 /* possible values for module configuration */
     68 #define	SPDMEM_MODCONFIG_PARITY		0x01
     69 #define	SPDMEM_MODCONFIG_ECC		0x02
     70 
     71 /* for DDR2, module configuration is a bit-mask field */
     72 #define	SPDMEM_MODCONFIG_HAS_DATA_PARITY	0x01
     73 #define	SPDMEM_MODCONFIG_HAS_DATA_ECC		0x02
     74 #define	SPDMEM_MODCONFIG_HAS_ADDR_CMD_PARITY	0x04
     75 
     76 /* possible values for the refresh field */
     77 #define	SPDMEM_REFRESH_STD		0x00
     78 #define	SPDMEM_REFRESH_QUARTER		0x01
     79 #define	SPDMEM_REFRESH_HALF		0x02
     80 #define	SPDMEM_REFRESH_TWOX		0x03
     81 #define	SPDMEM_REFRESH_FOURX		0x04
     82 #define	SPDMEM_REFRESH_EIGHTX		0x05
     83 #define	SPDMEM_REFRESH_SELFREFRESH	0x80
     84 
     85 /* superset types */
     86 #define	SPDMEM_SUPERSET_ESDRAM		0x01
     87 #define	SPDMEM_SUPERSET_DDR_ESDRAM	0x02
     88 #define	SPDMEM_SUPERSET_EDO_PEM		0x03
     89 #define	SPDMEM_SUPERSET_SDRAM_PEM	0x04
     90 
     91 /* bit masks for "registered" module attribute */
     92 #define	SPDMEM_SDR_MASK_REG		0x02
     93 #define	SPDMEM_DDR_MASK_REG		0x02
     94 #define	SPDMEM_DDR2_MASK_REG		0x05
     95 
     96 #define	SPDMEM_DDR3_TYPE_RDIMM		0x01
     97 #define	SPDMEM_DDR3_TYPE_UDIMM		0x02
     98 #define	SPDMEM_DDR3_TYPE_SODIMM		0x03
     99 #define	SPDMEM_DDR3_TYPE_MICRODIMM	0x04
    100 #define	SPDMEM_DDR3_TYPE_MINI_RDIMM	0x05
    101 #define	SPDMEM_DDR3_TYPE_MINI_UDIMM	0x06
    102