dram_ctrl.cc (10509:d5554f97c451) dram_ctrl.cc (10561:e1a853349529)
1/*
2 * Copyright (c) 2010-2014 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 101 unchanged lines hidden (view full) ---

110 actTicks[c].resize(activationLimit, 0);
111 }
112
113 // set the bank indices
114 for (int r = 0; r < ranksPerChannel; r++) {
115 for (int b = 0; b < banksPerRank; b++) {
116 banks[r][b].rank = r;
117 banks[r][b].bank = b;
1/*
2 * Copyright (c) 2010-2014 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 101 unchanged lines hidden (view full) ---

110 actTicks[c].resize(activationLimit, 0);
111 }
112
113 // set the bank indices
114 for (int r = 0; r < ranksPerChannel; r++) {
115 for (int b = 0; b < banksPerRank; b++) {
116 banks[r][b].rank = r;
117 banks[r][b].bank = b;
118 // GDDR addressing of banks to BG is linear.
119 // Here we assume that all DRAM generations address bank groups as
120 // follows:
118 if (bankGroupArch) {
119 // Simply assign lower bits to bank group in order to
120 // rotate across bank groups as banks are incremented
121 // e.g. with 4 banks per bank group and 16 banks total:
122 // banks 0,4,8,12 are in bank group 0
123 // banks 1,5,9,13 are in bank group 1
124 // banks 2,6,10,14 are in bank group 2
125 // banks 3,7,11,15 are in bank group 3

--- 93 unchanged lines hidden (view full) ---

219 }
220 // tCCD_L should be greater than minimal, back-to-back burst delay
221 if (tCCD_L <= tBURST) {
222 fatal("tCCD_L (%d) should be larger than tBURST (%d) when "
223 "bank groups per rank (%d) is greater than 1\n",
224 tCCD_L, tBURST, bankGroupsPerRank);
225 }
226 // tRRD_L is greater than minimal, same bank group ACT-to-ACT delay
121 if (bankGroupArch) {
122 // Simply assign lower bits to bank group in order to
123 // rotate across bank groups as banks are incremented
124 // e.g. with 4 banks per bank group and 16 banks total:
125 // banks 0,4,8,12 are in bank group 0
126 // banks 1,5,9,13 are in bank group 1
127 // banks 2,6,10,14 are in bank group 2
128 // banks 3,7,11,15 are in bank group 3

--- 93 unchanged lines hidden (view full) ---

222 }
223 // tCCD_L should be greater than minimal, back-to-back burst delay
224 if (tCCD_L <= tBURST) {
225 fatal("tCCD_L (%d) should be larger than tBURST (%d) when "
226 "bank groups per rank (%d) is greater than 1\n",
227 tCCD_L, tBURST, bankGroupsPerRank);
228 }
229 // tRRD_L is greater than minimal, same bank group ACT-to-ACT delay
227 if (tRRD_L <= tRRD) {
230 // some datasheets might specify it equal to tRRD
231 if (tRRD_L < tRRD) {
228 fatal("tRRD_L (%d) should be larger than tRRD (%d) when "
229 "bank groups per rank (%d) is greater than 1\n",
230 tRRD_L, tRRD, bankGroupsPerRank);
231 }
232 }
233
234}
235

--- 1909 unchanged lines hidden ---
232 fatal("tRRD_L (%d) should be larger than tRRD (%d) when "
233 "bank groups per rank (%d) is greater than 1\n",
234 tRRD_L, tRRD, bankGroupsPerRank);
235 }
236 }
237
238}
239

--- 1909 unchanged lines hidden ---