Blame view
include/fsl_ddr_dimm_params.h
3.07 KB
58e5e9aff FSL DDR: Rewrite ... |
1 |
/* |
c0c32af0b drivers/ddr/fsl: ... |
2 3 |
* Copyright 2008-2016 Freescale Semiconductor, Inc. * Copyright 2017-2018 NXP Semiconductor |
58e5e9aff FSL DDR: Rewrite ... |
4 |
* |
ac727577f Revert "drivers/d... |
5 |
* SPDX-License-Identifier: GPL-2.0 |
58e5e9aff FSL DDR: Rewrite ... |
6 7 8 9 |
*/ #ifndef DDR2_DIMM_PARAMS_H #define DDR2_DIMM_PARAMS_H |
08b3f7599 powerpc/mpc8xxx: ... |
10 11 12 |
#define EDC_DATA_PARITY 1 #define EDC_ECC 2 #define EDC_AC_PARITY 4 |
34e026f9b driver/ddr/fsl: A... |
13 |
/* Parameters for a DDR dimm computed from the SPD */ |
58e5e9aff FSL DDR: Rewrite ... |
14 15 16 17 18 19 |
typedef struct dimm_params_s { /* DIMM organization parameters */ char mpart[19]; /* guaranteed null terminated */ unsigned int n_ranks; |
c0c32af0b drivers/ddr/fsl: ... |
20 |
unsigned int die_density; |
58e5e9aff FSL DDR: Rewrite ... |
21 22 23 24 25 26 |
unsigned long long rank_density; unsigned long long capacity; unsigned int data_width; unsigned int primary_sdram_width; unsigned int ec_sdram_width; unsigned int registered_dimm; |
c0c32af0b drivers/ddr/fsl: ... |
27 |
unsigned int package_3ds; /* number of dies in 3DS DIMM */ |
b61e06156 powerpc/mpc8xxx: ... |
28 |
unsigned int device_width; /* x4, x8, x16 components */ |
58e5e9aff FSL DDR: Rewrite ... |
29 30 31 32 33 |
/* SDRAM device parameters */ unsigned int n_row_addr; unsigned int n_col_addr; unsigned int edc_config; /* 0 = none, 1 = parity, 2 = ECC */ |
34e026f9b driver/ddr/fsl: A... |
34 35 36 37 |
#ifdef CONFIG_SYS_FSL_DDR4 unsigned int bank_addr_bits; unsigned int bank_group_bits; #else |
58e5e9aff FSL DDR: Rewrite ... |
38 |
unsigned int n_banks_per_sdram_device; |
34e026f9b driver/ddr/fsl: A... |
39 |
#endif |
58e5e9aff FSL DDR: Rewrite ... |
40 |
unsigned int burst_lengths_bitmask; /* BL=4 bit 2, BL=8 = bit 3 */ |
58e5e9aff FSL DDR: Rewrite ... |
41 42 43 |
/* used in computing base address of DIMMs */ unsigned long long base_address; |
c360ceac0 fsl-ddr: add the ... |
44 45 |
/* mirrored DIMMs */ unsigned int mirrored_dimm; /* only for ddr3 */ |
58e5e9aff FSL DDR: Rewrite ... |
46 47 |
/* DIMM timing parameters */ |
34e026f9b driver/ddr/fsl: A... |
48 49 50 51 |
int mtb_ps; /* medium timebase ps */ int ftb_10th_ps; /* fine timebase, in 1/10 ps */ int taa_ps; /* minimum CAS latency time */ int tfaw_ps; /* four active window delay */ |
c360ceac0 fsl-ddr: add the ... |
52 |
|
58e5e9aff FSL DDR: Rewrite ... |
53 54 55 56 |
/* * SDRAM clock periods * The range for these are 1000-10000 so a short should be sufficient */ |
34e026f9b driver/ddr/fsl: A... |
57 58 59 60 |
int tckmin_x_ps; int tckmin_x_minus_1_ps; int tckmin_x_minus_2_ps; int tckmax_ps; |
58e5e9aff FSL DDR: Rewrite ... |
61 62 |
/* SPD-defined CAS latencies */ |
0dd38a35f powerpc: Fix Came... |
63 64 65 |
unsigned int caslat_x; unsigned int caslat_x_minus_1; unsigned int caslat_x_minus_2; |
58e5e9aff FSL DDR: Rewrite ... |
66 67 68 69 |
unsigned int caslat_lowest_derated; /* Derated CAS latency */ /* basic timing parameters */ |
34e026f9b driver/ddr/fsl: A... |
70 71 72 73 74 75 76 77 78 79 80 |
int trcd_ps; int trp_ps; int tras_ps; #ifdef CONFIG_SYS_FSL_DDR4 int trfc1_ps; int trfc2_ps; int trfc4_ps; int trrds_ps; int trrdl_ps; int tccdl_ps; |
c0c32af0b drivers/ddr/fsl: ... |
81 |
int trfc_slr_ps; |
34e026f9b driver/ddr/fsl: A... |
82 83 84 |
#else int twr_ps; /* maximum = 63750 ps */ int trfc_ps; /* max = 255 ns + 256 ns + .75 ns |
58e5e9aff FSL DDR: Rewrite ... |
85 |
= 511750 ps */ |
34e026f9b driver/ddr/fsl: A... |
86 87 88 89 |
int trrd_ps; /* maximum = 63750 ps */ int twtr_ps; /* maximum = 63750 ps */ int trtp_ps; /* byte 38, spd->trtp */ #endif |
58e5e9aff FSL DDR: Rewrite ... |
90 |
|
34e026f9b driver/ddr/fsl: A... |
91 |
int trc_ps; /* maximum = 254 ns + .75 ns = 254750 ps */ |
58e5e9aff FSL DDR: Rewrite ... |
92 |
|
34e026f9b driver/ddr/fsl: A... |
93 94 |
int refresh_rate_ps; int extended_op_srt; |
58e5e9aff FSL DDR: Rewrite ... |
95 |
|
34e026f9b driver/ddr/fsl: A... |
96 97 98 99 100 101 102 103 |
#if defined(CONFIG_SYS_FSL_DDR1) || defined(CONFIG_SYS_FSL_DDR2) int tis_ps; /* byte 32, spd->ca_setup */ int tih_ps; /* byte 33, spd->ca_hold */ int tds_ps; /* byte 34, spd->data_setup */ int tdh_ps; /* byte 35, spd->data_hold */ int tdqsq_max_ps; /* byte 44, spd->tdqsq */ int tqhs_ps; /* byte 45, spd->tqhs */ #endif |
9490ff486 powerpc/8xxx: Ena... |
104 |
|
564e9383e drivers/ddr/fsl: ... |
105 |
/* DDR3 & DDR4 RDIMM */ |
9490ff486 powerpc/8xxx: Ena... |
106 |
unsigned char rcw[16]; /* Register Control Word 0-15 */ |
34e026f9b driver/ddr/fsl: A... |
107 108 109 110 |
#ifdef CONFIG_SYS_FSL_DDR4 unsigned int dq_mapping[18]; unsigned int dq_mapping_ors; #endif |
58e5e9aff FSL DDR: Rewrite ... |
111 |
} dimm_params_t; |
03e664d8f driver/ddr/fsl: A... |
112 |
unsigned int ddr_compute_dimm_parameters(const unsigned int ctrl_num, |
58e5e9aff FSL DDR: Rewrite ... |
113 114 115 116 117 |
const generic_spd_eeprom_t *spd, dimm_params_t *pdimm, unsigned int dimm_number); #endif |