aboutsummaryrefslogtreecommitdiff
path: root/src/northbridge/intel/sandybridge/raminit_common.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/northbridge/intel/sandybridge/raminit_common.h')
-rw-r--r--src/northbridge/intel/sandybridge/raminit_common.h102
1 files changed, 102 insertions, 0 deletions
diff --git a/src/northbridge/intel/sandybridge/raminit_common.h b/src/northbridge/intel/sandybridge/raminit_common.h
index 80693bb30e..0aa687da70 100644
--- a/src/northbridge/intel/sandybridge/raminit_common.h
+++ b/src/northbridge/intel/sandybridge/raminit_common.h
@@ -98,6 +98,108 @@ struct iosav_ssq {
} addr_update;
};
+union tc_dbp_reg {
+ struct {
+ u32 tRCD : 4; /* [ 3.. 0] */
+ u32 tRP : 4; /* [ 7.. 4] */
+ u32 tAA : 4; /* [11.. 8] */
+ u32 tCWL : 4; /* [15..12] */
+ u32 tRAS : 8; /* [23..16] */
+ u32 : 8;
+ };
+ u32 raw;
+};
+
+union tc_rap_reg {
+ struct {
+ u32 tRRD : 4; /* [ 3.. 0] */
+ u32 tRTP : 4; /* [ 7.. 4] */
+ u32 tCKE : 4; /* [11.. 8] */
+ u32 tWTR : 4; /* [15..12] */
+ u32 tFAW : 8; /* [23..16] */
+ u32 tWR : 5; /* [28..24] */
+ u32 dis_3st : 1; /* [29..29] */
+ u32 tCMD : 2; /* [31..30] */
+ };
+ u32 raw;
+};
+
+union tc_rwp_reg {
+ struct {
+ u32 tRRDR : 3; /* [ 2.. 0] */
+ u32 : 1;
+ u32 tRRDD : 3; /* [ 6.. 4] */
+ u32 : 1;
+ u32 tWWDR : 3; /* [10.. 8] */
+ u32 : 1;
+ u32 tWWDD : 3; /* [14..12] */
+ u32 : 1;
+ u32 tRWDRDD : 3; /* [18..16] */
+ u32 : 1;
+ u32 tWRDRDD : 3; /* [22..20] */
+ u32 : 1;
+ u32 tRWSR : 3; /* [26..24] */
+ u32 dec_wrd : 1; /* [27..27] */
+ u32 : 4;
+ };
+ u32 raw;
+};
+
+union tc_othp_reg {
+ struct {
+ u32 tXPDLL : 5; /* [ 4.. 0] */
+ u32 tXP : 3; /* [ 7.. 5] */
+ u32 tAONPD : 4; /* [11.. 8] */
+ u32 tCPDED : 2; /* [13..12] */
+ u32 tPRPDEN : 2; /* [15..14] */
+ u32 odt_delay_d0 : 2; /* [17..16] */
+ u32 odt_delay_d1 : 2; /* [19..18] */
+ u32 : 12;
+ };
+ u32 raw;
+};
+
+union tc_dtp_reg {
+ struct {
+ u32 : 12;
+ u32 overclock_tXP : 1; /* [12..12] */
+ u32 overclock_tXPDLL : 1; /* [13..13] */
+ u32 : 18;
+ };
+ u32 raw;
+};
+
+union tc_rfp_reg {
+ struct {
+ u32 oref_ri : 8; /* [ 7.. 0] */
+ u32 refresh_high_wm : 4; /* [11.. 8] */
+ u32 refresh_panic_wm : 4; /* [15..12] */
+ u32 refresh_2x_control : 2; /* [17..16] */
+ u32 : 14;
+ };
+ u32 raw;
+};
+
+union tc_rftp_reg {
+ struct {
+ u32 tREFI : 16; /* [15.. 0] */
+ u32 tRFC : 9; /* [24..16] */
+ u32 tREFIx9 : 7; /* [31..25] */
+ };
+ u32 raw;
+};
+
+union tc_srftp_reg {
+ struct {
+ u32 tXSDLL : 12; /* [11.. 0] */
+ u32 tXS_offset : 4; /* [15..12] */
+ u32 tZQOPER : 10; /* [25..16] */
+ u32 : 2;
+ u32 tMOD : 4; /* [31..28] */
+ };
+ u32 raw;
+};
+
typedef struct ramctr_timing_st ramctr_timing;
void iosav_write_sequence(const int ch, const struct iosav_ssq *seq, const unsigned int length);