adjustments for rl/wl
This commit is contained in:
@@ -44,7 +44,7 @@ volatile CustomizeTable C = {
|
|||||||
* Value should be divided evenly by 12'500.
|
* Value should be divided evenly by 12'500.
|
||||||
* Not enabled by default.
|
* Not enabled by default.
|
||||||
*/
|
*/
|
||||||
.commonEmcMemVolt = 0,
|
.commonEmcMemVolt = 1175000,
|
||||||
|
|
||||||
/* Erista CPU:
|
/* Erista CPU:
|
||||||
* - Max Voltage in mV
|
* - Max Voltage in mV
|
||||||
@@ -60,7 +60,7 @@ volatile CustomizeTable C = {
|
|||||||
* - System instabilities
|
* - System instabilities
|
||||||
* - NAND corruption
|
* - NAND corruption
|
||||||
*/
|
*/
|
||||||
.eristaEmcMaxClock = 1862400,
|
.eristaEmcMaxClock = 2131200,
|
||||||
|
|
||||||
/* Mariko CPU:
|
/* Mariko CPU:
|
||||||
* - Max Voltage in mV:
|
* - Max Voltage in mV:
|
||||||
|
|||||||
@@ -103,15 +103,15 @@ namespace ams::ldr::oc {
|
|||||||
namespace pcv::erista {
|
namespace pcv::erista {
|
||||||
// tCK_avg (average clock period) in ns
|
// tCK_avg (average clock period) in ns
|
||||||
const double tCK_avg = 1000'000. / C.eristaEmcMaxClock;
|
const double tCK_avg = 1000'000. / C.eristaEmcMaxClock;
|
||||||
const u32 WL = !TIMING_PRESET_SEVEN ? (C.eristaEmcMaxClock <= 2131200 ? 12 : 14) : tWL_values[TIMING_PRESET_SEVEN-1]; //?
|
const u32 WL = 16 - 2*TIMING_PRESET_SEVEN; //?
|
||||||
const u32 RL = !TIMING_PRESET_SEVEN ? (C.eristaEmcMaxClock <= 2131200 ? 24 : 28) : WL*2; //?
|
const u32 RL = 36 - 4*TIMING_PRESET_SEVEN; //?
|
||||||
|
|
||||||
// minimum number of cycles from any read command to any write command, irrespective of bank
|
// minimum number of cycles from any read command to any write command, irrespective of bank
|
||||||
const u32 R2W = CEIL (RL + CEIL(tDQSCK_max/tCK_avg) + BL/2 - WL + tWPRE + FLOOR(tRPST));
|
const u32 R2W = CEIL (RL + CEIL(tDQSCK_max/tCK_avg) + BL/2 - WL + tWPRE + FLOOR(tRPST)) + 6;
|
||||||
// Delay Time From WRITE-to-READ
|
// Delay Time From WRITE-to-READ
|
||||||
const u32 W2R = WL + BL/2 + 1 + CEIL(tWTR/tCK_avg);
|
const u32 W2R = WL + BL/2 + 1 + CEIL(tWTR/tCK_avg) - 6;
|
||||||
// write-to-precharge time for commands to the same bank in cycles
|
// write-to-precharge time for commands to the same bank in cycles
|
||||||
const u32 WTP = WL + BL/2 + 1 + CEIL(tWR/tCK_avg);
|
const u32 WTP = WL + BL/2 + 1 + CEIL(tWR/tCK_avg) - 8;
|
||||||
// #_of_rows per die for 8Gb density
|
// #_of_rows per die for 8Gb density
|
||||||
const u32 numOfRows = 65536;
|
const u32 numOfRows = 65536;
|
||||||
// {REFRESH, REFRESH_LO} = max[(tREF/#_of_rows) / (emc_clk_period) - 64, (tREF/#_of_rows) / (emc_clk_period) * 97%]
|
// {REFRESH, REFRESH_LO} = max[(tREF/#_of_rows) / (emc_clk_period) - 64, (tREF/#_of_rows) / (emc_clk_period) * 97%]
|
||||||
@@ -131,8 +131,8 @@ namespace ams::ldr::oc {
|
|||||||
namespace pcv::mariko {
|
namespace pcv::mariko {
|
||||||
// tCK_avg (average clock period) in ns
|
// tCK_avg (average clock period) in ns
|
||||||
const double tCK_avg = 1000'000. / C.marikoEmcMaxClock;
|
const double tCK_avg = 1000'000. / C.marikoEmcMaxClock;
|
||||||
const u32 WL = !TIMING_PRESET_SEVEN ? (C.marikoEmcMaxClock <= 2131200 ? 12 : 14) : tWL_values[TIMING_PRESET_SEVEN-1]; //?
|
const u32 WL = 14 - 2*TIMING_PRESET_SEVEN; //?
|
||||||
const u32 RL = !TIMING_PRESET_SEVEN ? (C.marikoEmcMaxClock <= 2131200 ? 24 : 28) : WL*2; //?
|
const u32 RL = 28 - 4*TIMING_PRESET_SEVEN; //?
|
||||||
|
|
||||||
// minimum number of cycles from any read command to any write command, irrespective of bank
|
// minimum number of cycles from any read command to any write command, irrespective of bank
|
||||||
const u32 R2W = CEIL (RL + CEIL(tDQSCK_max/tCK_avg) + BL/2 - WL + tWPRE + FLOOR(tRPST));
|
const u32 R2W = CEIL (RL + CEIL(tDQSCK_max/tCK_avg) + BL/2 - WL + tWPRE + FLOOR(tRPST));
|
||||||
|
|||||||
@@ -325,7 +325,7 @@ var AdvTable: Array<AdvEntry> = [
|
|||||||
"<b>5</b> : 12 - 4",
|
"<b>5</b> : 12 - 4",
|
||||||
"<b>6</b> : 8 - 4",],
|
"<b>6</b> : 8 - 4",],
|
||||||
1,
|
1,
|
||||||
[0,5],
|
[0,6],
|
||||||
1,
|
1,
|
||||||
),
|
),
|
||||||
new AdvEntry(
|
new AdvEntry(
|
||||||
@@ -385,19 +385,19 @@ var AdvTable: Array<AdvEntry> = [
|
|||||||
),
|
),
|
||||||
new AdvEntry(
|
new AdvEntry(
|
||||||
"ramTimingPresetSeven",
|
"ramTimingPresetSeven",
|
||||||
"Secondary RAM Timing Preset",
|
"Latency Decrement",
|
||||||
CustPlatform.Mariko,
|
CustPlatform.Mariko,
|
||||||
4,
|
4,
|
||||||
["WARNING: Unstable timings can corrupt your nand",
|
["WARNING: Unstable timings can corrupt your nand",
|
||||||
"Secondary Timing Preset for both AUTO_ADJ and CUSTOM_ADJ",
|
"Latency decrement for both AUTO_ADJ and CUSTOM_ADJ",
|
||||||
"Values are : WL - RL",
|
"Values are : WL - RL",
|
||||||
"<b>0</b> : Do Not Adjust (2400Mhz: ??) (CUST_ADJ only)",
|
"<b>0</b> : Default Latency",
|
||||||
"<b>1</b> : 14 - 28",
|
"<b>1</b> : -2 - -4",
|
||||||
"<b>2</b> : 12 - 24",
|
"<b>2</b> : -4 - -8",
|
||||||
"<b>3</b> : 10 - 20",
|
"<b>3</b> : -6 - -12",
|
||||||
"<b>4</b> : 8 - 16",
|
"<b>4</b> : -8 - -16",
|
||||||
"<b>5</b> : 6 - 12",
|
"<b>5</b> : -10 - -20",
|
||||||
"<b>6</b> : 4 - 8",],
|
"<b>6</b> : -12 - -24",],
|
||||||
1,
|
1,
|
||||||
[0,6],
|
[0,6],
|
||||||
1,
|
1,
|
||||||
|
|||||||
Reference in New Issue
Block a user