fsl_immap.h 5.11 KB
Newer Older
1 2 3
/*
 * Common internal memory map for some Freescale SoCs
 *
4
 * Copyright 2013-2014 Freescale Semiconductor, Inc.
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
 *
 * SPDX-License-Identifier:	GPL-2.0+
 */

#ifndef __FSL_IMMAP_H
#define __FSL_IMMAP_H
/*
 * DDR memory controller registers
 * This structure works for mpc83xx (DDR2 and DDR3), mpc85xx, mpc86xx.
 */
struct ccsr_ddr {
	u32	cs0_bnds;		/* Chip Select 0 Memory Bounds */
	u8	res_04[4];
	u32	cs1_bnds;		/* Chip Select 1 Memory Bounds */
	u8	res_0c[4];
	u32	cs2_bnds;		/* Chip Select 2 Memory Bounds */
	u8	res_14[4];
	u32	cs3_bnds;		/* Chip Select 3 Memory Bounds */
	u8	res_1c[100];
	u32	cs0_config;		/* Chip Select Configuration */
	u32	cs1_config;		/* Chip Select Configuration */
	u32	cs2_config;		/* Chip Select Configuration */
	u32	cs3_config;		/* Chip Select Configuration */
	u8	res_90[48];
	u32	cs0_config_2;		/* Chip Select Configuration 2 */
	u32	cs1_config_2;		/* Chip Select Configuration 2 */
	u32	cs2_config_2;		/* Chip Select Configuration 2 */
	u32	cs3_config_2;		/* Chip Select Configuration 2 */
	u8	res_d0[48];
	u32	timing_cfg_3;		/* SDRAM Timing Configuration 3 */
	u32	timing_cfg_0;		/* SDRAM Timing Configuration 0 */
	u32	timing_cfg_1;		/* SDRAM Timing Configuration 1 */
	u32	timing_cfg_2;		/* SDRAM Timing Configuration 2 */
	u32	sdram_cfg;		/* SDRAM Control Configuration */
	u32	sdram_cfg_2;		/* SDRAM Control Configuration 2 */
	u32	sdram_mode;		/* SDRAM Mode Configuration */
	u32	sdram_mode_2;		/* SDRAM Mode Configuration 2 */
	u32	sdram_md_cntl;		/* SDRAM Mode Control */
	u32	sdram_interval;		/* SDRAM Interval Configuration */
	u32	sdram_data_init;	/* SDRAM Data initialization */
	u8	res_12c[4];
	u32	sdram_clk_cntl;		/* SDRAM Clock Control */
	u8	res_134[20];
	u32	init_addr;		/* training init addr */
	u32	init_ext_addr;		/* training init extended addr */
	u8	res_150[16];
	u32	timing_cfg_4;		/* SDRAM Timing Configuration 4 */
	u32	timing_cfg_5;		/* SDRAM Timing Configuration 5 */
53 54
	u32	timing_cfg_6;		/* SDRAM Timing Configuration 6 */
	u32	timing_cfg_7;		/* SDRAM Timing Configuration 7 */
55 56 57 58 59 60 61 62 63
	u32	ddr_zq_cntl;		/* ZQ calibration control*/
	u32	ddr_wrlvl_cntl;		/* write leveling control*/
	u8	reg_178[4];
	u32	ddr_sr_cntr;		/* self refresh counter */
	u32	ddr_sdram_rcw_1;	/* Control Words 1 */
	u32	ddr_sdram_rcw_2;	/* Control Words 2 */
	u8	reg_188[8];
	u32	ddr_wrlvl_cntl_2;	/* write leveling control 2 */
	u32	ddr_wrlvl_cntl_3;	/* write leveling control 3 */
64 65 66 67 68 69
	u8	res_198[0x1a0-0x198];
	u32	ddr_sdram_rcw_3;
	u32	ddr_sdram_rcw_4;
	u32	ddr_sdram_rcw_5;
	u32	ddr_sdram_rcw_6;
	u8	res_1b0[0x200-0x1b0];
70 71 72 73 74 75
	u32	sdram_mode_3;		/* SDRAM Mode Configuration 3 */
	u32	sdram_mode_4;		/* SDRAM Mode Configuration 4 */
	u32	sdram_mode_5;		/* SDRAM Mode Configuration 5 */
	u32	sdram_mode_6;		/* SDRAM Mode Configuration 6 */
	u32	sdram_mode_7;		/* SDRAM Mode Configuration 7 */
	u32	sdram_mode_8;		/* SDRAM Mode Configuration 8 */
76 77 78 79 80 81 82 83 84 85 86 87 88 89
	u8	res_218[0x220-0x218];
	u32	sdram_mode_9;		/* SDRAM Mode Configuration 9 */
	u32	sdram_mode_10;		/* SDRAM Mode Configuration 10 */
	u32	sdram_mode_11;		/* SDRAM Mode Configuration 11 */
	u32	sdram_mode_12;		/* SDRAM Mode Configuration 12 */
	u32	sdram_mode_13;		/* SDRAM Mode Configuration 13 */
	u32	sdram_mode_14;		/* SDRAM Mode Configuration 14 */
	u32	sdram_mode_15;		/* SDRAM Mode Configuration 15 */
	u32	sdram_mode_16;		/* SDRAM Mode Configuration 16 */
	u8	res_240[0x250-0x240];
	u32	timing_cfg_8;		/* SDRAM Timing Configuration 8 */
	u32	timing_cfg_9;		/* SDRAM Timing Configuration 9 */
	u8	res_258[0x260-0x258];
	u32	sdram_cfg_3;
90
	u8	res_264[0x400-0x264];
91 92 93 94 95
	u32	dq_map_0;
	u32	dq_map_1;
	u32	dq_map_2;
	u32	dq_map_3;
	u8	res_410[0xb20-0x410];
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
	u32	ddr_dsr1;		/* Debug Status 1 */
	u32	ddr_dsr2;		/* Debug Status 2 */
	u32	ddr_cdr1;		/* Control Driver 1 */
	u32	ddr_cdr2;		/* Control Driver 2 */
	u8	res_b30[200];
	u32	ip_rev1;		/* IP Block Revision 1 */
	u32	ip_rev2;		/* IP Block Revision 2 */
	u32	eor;			/* Enhanced Optimization Register */
	u8	res_c04[252];
	u32	mtcr;			/* Memory Test Control Register */
	u8	res_d04[28];
	u32	mtp1;			/* Memory Test Pattern 1 */
	u32	mtp2;			/* Memory Test Pattern 2 */
	u32	mtp3;			/* Memory Test Pattern 3 */
	u32	mtp4;			/* Memory Test Pattern 4 */
	u32	mtp5;			/* Memory Test Pattern 5 */
	u32	mtp6;			/* Memory Test Pattern 6 */
	u32	mtp7;			/* Memory Test Pattern 7 */
	u32	mtp8;			/* Memory Test Pattern 8 */
	u32	mtp9;			/* Memory Test Pattern 9 */
	u32	mtp10;			/* Memory Test Pattern 10 */
	u8	res_d48[184];
	u32	data_err_inject_hi;	/* Data Path Err Injection Mask High */
	u32	data_err_inject_lo;	/* Data Path Err Injection Mask Low */
	u32	ecc_err_inject;		/* Data Path Err Injection Mask ECC */
	u8	res_e0c[20];
	u32	capture_data_hi;	/* Data Path Read Capture High */
	u32	capture_data_lo;	/* Data Path Read Capture Low */
	u32	capture_ecc;		/* Data Path Read Capture ECC */
	u8	res_e2c[20];
	u32	err_detect;		/* Error Detect */
	u32	err_disable;		/* Error Disable */
	u32	err_int_en;
	u32	capture_attributes;	/* Error Attrs Capture */
	u32	capture_address;	/* Error Addr Capture */
	u32	capture_ext_address;	/* Error Extended Addr Capture */
	u32	err_sbe;		/* Single-Bit ECC Error Management */
	u8	res_e5c[164];
134
	u32     debug[64];		/* debug_1 to debug_64 */
135 136
};
#endif /* __FSL_IMMAP_H */