blob: dbc80f2e720ef230450bbc428b9e2cf0608c4daa [file] [log] [blame]
/******************************************************************************
*
* (C)Copyright 2005 - 2011 Marvell. All Rights Reserved.
*
* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MARVELL.
* The copyright notice above does not evidence any actual or intended
* publication of such source code.
* This Module contains Proprietary Information of Marvell and should be
* treated as Confidential.
* The information in this file is provided for the exclusive use of the
* licensees of Marvell.
* Such users have the right to use, modify, and incorporate this code into
* products for purposes authorized by the license agreement provided they
* include this notice and the associated copyright notice with any such
* product.
* The information in this file is provided "AS IS" without warranty.
******************************************************************************/
#ifndef __SDRAM_SPECS_H__
#define __SDRAM_SPECS_H__
// Identifiers for fields that control the timing of the following signals or operations:
// DQM
// DQS
// DQ
// DM
// bank
// activate
// read
// write
// precharge
// precharge-all
// mode
// refresh
typedef enum SDRAM_UNITS_E
{
SDRAM_U_CK, // tCK
SDRAM_U_PS, // pico
SDRAM_U_NS, // nano
SDRAM_U_US, // micro
SDRAM_U_MS // milli
} SDRAM_UNITS_T;
// All values of interest will have a entry in the list below.
// Include categories for:
// Geometry (bank, row, column, etc.)
// Timing
// Misc (burst capability, etc.)
typedef enum SDRAM_SPEC_E
{
//
// Timing info: Timing info: Timing info:
//
SDRAM_S_tCK_Hz, // DCLK Frequency.
SDRAM_S_rCK_Hz, // Refresh Clock frequency.
// misc
SDRAM_S_CL, // tCK, CAS latency
// Clock characteristics
SDRAM_S_tCK, // ns, clock, rising edge to rising edge time,.
SDRAM_S_tDQSCK, // ps, DQS output access time from CK or CK,#
// Data strobe-out
SDRAM_S_tRPRE, // tCK, DQS read preamble time
SDRAM_S_tRPST, // tCK, DQS read postamble
SDRAM_S_tLZ1, // ps, CK/CK# to DQS Low-Z (micron uses 1 postfix)
SDRAM_S_tLZDQS, // ps, CK/CK# to DQS Low-Z (elpida uses DQS postfix)
// Data strobe-in
SDRAM_S_tDQSS, // tCK, DQS rising edge to CK rising edge
SDRAM_S_tDQSH, // tCK, DQS input-high pulse width
SDRAM_S_tDQSL, // tCK, DQS input-low pulse width
SDRAM_S_tDSS, // tCK, DQS falling to CK rising: setup time
SDRAM_S_tDSH, // tCK, DQS falling from CK rising, hold time
SDRAM_S_tWPRES, // ps, Write preamble setup time
SDRAM_S_tWPRE, // tCK, DQS write preamble
SDRAM_S_tWPST, // tCK, DQS write postamble
SDRAM_S_tWCDQSDX, // tCK, WRITE command to first DQS transition (symbol invented)
// Data-out
SDRAM_S_tAC, // ps, DQ output access time from CK/CK#
SDRAM_S_tDQSQ, // ps, DQS-DQ skew, DQS to last DQ valid, per group, per access
SDRAM_S_tQHS, // ps, DQ hold from next DQS strobe
SDRAM_S_tQH, // ps, DQ-DQS hold, DQS to first DQ not valid
SDRAM_S_tHZ, // ps, CK/CK# to DQ, DQS high-Z
SDRAM_S_tLZ2, // ps, CK/CK# to DQ low-z (micron uses 2 postfix)
SDRAM_S_tLZDQ, // ps, CK/CK# to DQ low-z (elpida uses DQ postfix)
SDRAM_S_tDVW, // ns, data valid output window (symbol modified: t prepended)
// Data-in
SDRAM_S_tDS, // ps, DQ and DM input setup time to DQS (elpida symbol not qualified with a or b)
SDRAM_S_tDH, // ps, DQ and DM input hold time to DQS (elpida symbol not qualified with a or b)
SDRAM_S_tDSb, // ps, DQ and DM input setup time to DQS (micron symbol qualified with a or b)
SDRAM_S_tDHb, // ps, DQ and DM input hold time to DQS (micron symbol qualified with a or b)
SDRAM_S_tDSa, // ps, DQ and DM input setup time to DQS (micron symbol qualified with a or b)
SDRAM_S_tDHa, // ps, DQ and DM input hold time to DQS (micron symbol qualified with a or b)
SDRAM_S_tDIPW, // tCK, DQ and DM input pulse width
// Command and Address
SDRAM_S_tIS, // ps, Input setup time (elpida symbol not qualified with a or b)
SDRAM_S_tIH, // ps, Input hold time (elpida symbol not qualified with a or b)
SDRAM_S_tISb, // ps, Input setup time (micron symbol qualified with a or b)
SDRAM_S_tIHb, // ps, Input hold time (micron symbol qualified with a or b)
SDRAM_S_tISa, // ps, Input setup time (micron symbol qualified with a or b)
SDRAM_S_tIHa, // ps, Input hold time (micron symbol qualified with a or b)
SDRAM_S_tIPW, // tCK, Input pulse width
SDRAM_S_tRC, // ns, Activate-to-Activate delay, same bank
SDRAM_S_tRCD, // ns, Activate-to-Read or Write delay
SDRAM_S_tRAS, // ns, Activate-to-Precharege delay
SDRAM_S_tRP, // ns, Precharge period
SDRAM_S_tRPA, // ns, Precharge-all period
SDRAM_S_tRRD, // ns, Activate-to-activate delay, different bank
SDRAM_S_tFAW, // ns, 4 bank activate period
SDRAM_S_tRTP, // ns, Internal read-to-precharge delay
SDRAM_S_tCCD, // tCK, CAS# to CAS# delay
SDRAM_S_tWR, // ns, write recovery time
SDRAM_S_tDAL, // ns, Write AP recovery + precharge time
SDRAM_S_tWTR, // ns, Internal write-to-read delay
SDRAM_S_tMRD, // tCK, LOAD MODE cycle time
// Refresh
SDRAM_S_tRFC, // ns, Refresh-to-activate or to refresh interval
SDRAM_S_tREFI, // us, average periodic refresh
SDRAM_S_tDELAY, // ns, CKE low to CK, CK# uncertainty
// Self refresh
SDRAM_S_tXSNR, // ns, Exit self refresh to non-read command
SDRAM_S_tXSRD, // tCK, Exit self refresh to read command
SDRAM_S_tISXR, // ps, exit self refresh timing reference
// Power down
SDRAM_S_tXARD, // tCK, exit active power down to read command
SDRAM_S_tXARDS, // tCK, exit active power down to read command, slow exit/low power mode (elpida)
SDRAM_S_tXP, // tCK, exit precharge power down to any non-read command
SDRAM_S_tCKE, // tCK, CKE min high/low time
// ODT
SDRAM_S_tANPD, // tCK, ODT to power down entry latency
SDRAM_S_tAXPD, // tCK, ODT power down exit latency
SDRAM_S_tAOND, // tCK, ODT turn on delay
SDRAM_S_tAOFD, // tCK, ODT turn off delay
SDRAM_S_tAON, // ps, ODT turn on
SDRAM_S_tAOF, // ps, ODT turn off
SDRAM_S_tAONPD, // ps, ODT turn on (power down mode)
SDRAM_S_tAOFPD, // ps, ODT turn off (power down mode)
SDRAM_S_tMOD, // ns, ODT enable from MRS command
SDRAM_S_tOIT, // ns, Output impedance test driver delay (elpida)
//
// Geometry info: Geometry info: Geometry info:
//
SDRAM_S_NUMBANKS,
SDRAM_S_NUMROWS,
SDRAM_S_NUMCOLUMNS,
SDRAM_S_MEGABYTES,
//
// Misc info: Misc info: Misc info: Misc info:
//
SDRAM_S_BURSTTYPE, // interleaved vs. sequential
SDRAM_S_BURSTLEN, //
SDRAM_S_SDRTYPE, // SDRAM type (DDR1,DDR2,DDR3,LPDDR1,LPDDR2)
SDRAM_S_DATAWIDTH, // x16, x32, x62
// New values go above here
SDRAM_SPEC_E_MAX
} SDRAM_SPEC_T;
#endif