📄 dramsetup.h
字号:
/* * dramSetup.h * * Prototypes, etc. for the Motorola MPC8220 * embedded cpu chips * * 2004 (c) Freescale, Inc. * Author: TsiChung Liew <Tsi-Chung.Liew@freescale.com> * * See file CREDITS for list of people who contributed to this * project. * * 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; either version 2 of * the License, or (at your option) any later version. * * 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. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA */#ifndef __INCdramsetuph#define __INCdramsetuph#ifndef __ASSEMBLY__/* Where various things are in the SPD */#define LOC_TYPE 2#define LOC_CHECKSUM 63#define LOC_PHYS_BANKS 5#define LOC_LOGICAL_BANKS 17#define LOC_ROWS 3#define LOC_COLS 4#define LOC_WIDTH_HIGH 7#define LOC_WIDTH_LOW 6#define LOC_REFRESH 12#define LOC_BURSTS 16#define LOC_CAS 18#define LOC_CS 19#define LOC_WE 20#define LOC_Tcyc 9#define LOC_Tac 10#define LOC_Trp 27#define LOC_Trrd 28#define LOC_Trcd 29#define LOC_Tras 30#define LOC_Buffered 21/* Types of memory the SPD can tell us about. * We can actually only use SDRAM and DDR. */#define TYPE_DRAM 1 /* plain old dram */#define TYPE_EDO 2 /* EDO dram */#define TYPE_Nibble 3 /* serial nibble memory */#define TYPE_SDR 4 /* SDRAM */#define TYPE_ROM 5 /* */#define TYPE_SGRRAM 6 /* graphics memory */#define TYPE_DDR 7 /* DDR sdram */#define SDRAMDS_MASK 0x3 /* each field is 2 bits wide */#define SDRAMDS_SBE_SHIFT 8 /* Clock enable drive strength */#define SDRAMDS_SBC_SHIFT 6 /* Clocks drive strength */#define SDRAMDS_SBA_SHIFT 4 /* Address drive strength */#define SDRAMDS_SBS_SHIFT 2 /* SDR DQS drive strength */#define SDRAMDS_SBD_SHIFT 0 /* Data and DQS drive strength */#define DRIVE_STRENGTH_HIGH 0#define DRIVE_STRENGTH_MED 1#define DRIVE_STRENGTH_LOW 2#define DRIVE_STRENGTH_OFF 3#define OK 0#define ERROR -1/* Structure to hold information about address muxing. */ typedef struct tagMuxDescriptor { u8 MuxValue; u8 Columns; u8 Rows; u8 MoreColumns;} muxdesc_t;/* Structure to define one physical bank of * memory. Note that dram size in bytes is * (2^^(rows+columns)) * width * banks / 8*/typedef struct tagDramInfo { u32 size; /* size in bytes */ u32 base; /* base address */ u8 ordinal; /* where in the memory map will we put this */ u8 type; u8 rows; u8 cols; u16 width; /* width of each chip in bits */ u8 banks; /* number of chips, aka logical banks */ u8 bursts; /* bit-encoded allowable burst length */ u8 CAS; /* bit-encoded CAS latency values */ u8 CS; /* bit-encoded CS latency values */ u8 WE; /* bit-encoded WE latency values */ u8 Trp; /* bit-encoded row precharge time */ u8 Trcd; /* bit-encoded RAS to CAS delay */ u8 buffered; /* buffered or not */ u8 refresh; /* encoded refresh rate */} draminfo_t;#endif /* __ASSEMBLY__ */#endif /* __INCdramsetuph */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -