fix tr2ref and logic error
This commit is contained in:
@@ -51,7 +51,6 @@ volatile CustomizeTable C = {
|
|||||||
.tRC = 60,
|
.tRC = 60,
|
||||||
.tWTR = 10,
|
.tWTR = 10,
|
||||||
.tWR = 18,
|
.tWR = 18,
|
||||||
.tR2REF = 26,
|
|
||||||
.tRCD = 18,
|
.tRCD = 18,
|
||||||
.tREFpb = 488,
|
.tREFpb = 488,
|
||||||
.tMRWCKEL = 14,
|
.tMRWCKEL = 14,
|
||||||
@@ -59,6 +58,7 @@ volatile CustomizeTable C = {
|
|||||||
.tFAW = 40,
|
.tFAW = 40,
|
||||||
|
|
||||||
// --- double fields ---
|
// --- double fields ---
|
||||||
|
.tR2REF = 25.5,
|
||||||
.tDQSCK_min = 1.5,
|
.tDQSCK_min = 1.5,
|
||||||
.tDQSCK_max = 3.5,
|
.tDQSCK_max = 3.5,
|
||||||
.tWPRE = 1.8,
|
.tWPRE = 1.8,
|
||||||
@@ -103,6 +103,8 @@ volatile CustomizeTable C = {
|
|||||||
{ 1887000, { 1235000 }, { 5100873, -279186, 4747 } },
|
{ 1887000, { 1235000 }, { 5100873, -279186, 4747 } },
|
||||||
{ 1963500, { 1235000 }, { 5100873, -279186, 4747 } },
|
{ 1963500, { 1235000 }, { 5100873, -279186, 4747 } },
|
||||||
{ 2091000, { 1235000 }, { 5100873, -279186, 4747 } },
|
{ 2091000, { 1235000 }, { 5100873, -279186, 4747 } },
|
||||||
|
{ 2193000, { 1235000 }, { 5100873, -279186, 4747 } },
|
||||||
|
{ 2295000, { 1235000 }, { 5100873, -279186, 4747 } },
|
||||||
},
|
},
|
||||||
|
|
||||||
/* - Mariko CPU DVFS Table:
|
/* - Mariko CPU DVFS Table:
|
||||||
@@ -160,9 +162,10 @@ volatile CustomizeTable C = {
|
|||||||
{ 2397000, { 1702903, -34955, 113 }, { 1235000 } },
|
{ 2397000, { 1702903, -34955, 113 }, { 1235000 } },
|
||||||
{ 2499000, { 1754400, -35643, 113 }, { 1235000 } },
|
{ 2499000, { 1754400, -35643, 113 }, { 1235000 } },
|
||||||
{ 2601000, { 1805897, -36331, 113 }, { 1235000 } },
|
{ 2601000, { 1805897, -36331, 113 }, { 1235000 } },
|
||||||
{ 2703000, { 1857394, -37019, 113 }, { 1235000 } },
|
{ 2703000, { 1857394, -37019, 113 }, { 1235000 } },
|
||||||
{ 2805000, { 1908891, -37707, 113 }, { 1235000 } },
|
{ 2805000, { 1908891, -37707, 113 }, { 1235000 } },
|
||||||
{ 2907000, { 1960388, -38395, 113 }, { 1235000 } },
|
{ 2907000, { 1960388, -38395, 113 }, { 1235000 } },
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/* - Erista GPU DVFS Table:
|
/* - Erista GPU DVFS Table:
|
||||||
|
|||||||
@@ -80,7 +80,6 @@ typedef struct CustomizeTable {
|
|||||||
u32 tRC;
|
u32 tRC;
|
||||||
u32 tWTR;
|
u32 tWTR;
|
||||||
u32 tWR;
|
u32 tWR;
|
||||||
u32 tR2REF;
|
|
||||||
u32 tRCD;
|
u32 tRCD;
|
||||||
u32 tREFpb;
|
u32 tREFpb;
|
||||||
u32 tMRWCKEL;
|
u32 tMRWCKEL;
|
||||||
@@ -88,6 +87,7 @@ typedef struct CustomizeTable {
|
|||||||
u32 tFAW;
|
u32 tFAW;
|
||||||
|
|
||||||
// RAM timings (double)
|
// RAM timings (double)
|
||||||
|
double tR2REF;
|
||||||
double tDQSCK_min;
|
double tDQSCK_min;
|
||||||
double tDQSCK_max;
|
double tDQSCK_max;
|
||||||
double tWPRE;
|
double tWPRE;
|
||||||
|
|||||||
@@ -66,9 +66,9 @@ namespace ams::ldr::oc {
|
|||||||
// 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;
|
||||||
// Write Latency
|
// Write Latency
|
||||||
const u32 WL = 14 - 2*C.latency;
|
const u32 WL = 14 + C.latency;
|
||||||
// Read Latency
|
// Read Latency
|
||||||
const u32 RL = 32 - 4*C.latency;
|
const u32 RL = 32 + C.latency;
|
||||||
|
|
||||||
// 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(C.tDQSCK_max/tCK_avg) + C.BL/2 - WL + C.tWPRE + FLOOR(C.tRPST));
|
const u32 R2W = CEIL (RL + CEIL(C.tDQSCK_max/tCK_avg) + C.BL/2 - WL + C.tWPRE + FLOOR(C.tRPST));
|
||||||
|
|||||||
@@ -318,9 +318,6 @@ namespace ams::ldr::oc::pcv
|
|||||||
case 2:
|
case 2:
|
||||||
customize_table = const_cast<cvb_entry_t *>(C.marikoGpuDvfsTableHiOPT);
|
customize_table = const_cast<cvb_entry_t *>(C.marikoGpuDvfsTableHiOPT);
|
||||||
break;
|
break;
|
||||||
case 3:
|
|
||||||
customize_table = const_cast<cvb_entry_t *>(C.marikoGpuDvfsTableUv3);
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
customize_table = const_cast<cvb_entry_t *>(C.marikoGpuDvfsTable);
|
customize_table = const_cast<cvb_entry_t *>(C.marikoGpuDvfsTable);
|
||||||
break;
|
break;
|
||||||
@@ -350,10 +347,10 @@ namespace ams::ldr::oc::pcv
|
|||||||
cvb_entry_t *entry = static_cast<cvb_entry_t *>(gpu_cvb_table_head);
|
cvb_entry_t *entry = static_cast<cvb_entry_t *>(gpu_cvb_table_head);
|
||||||
for (size_t i = 0; i < customize_entry_count; i++)
|
for (size_t i = 0; i < customize_entry_count; i++)
|
||||||
{
|
{
|
||||||
if (!(C.marikoGpuVoltArray[i] < C.gpuVmin))
|
if (C.marikoGpuVoltArray[i] < C.gpuVmin)
|
||||||
{
|
{
|
||||||
u32 patched_voltage = C.marikoGpuVoltArray[i];
|
u32 patched_voltage = C.marikoGpuVoltArray[i];
|
||||||
if(!C.gpuVmax) {
|
if(C.gpuVmax) {
|
||||||
if(patched_voltage > C.gpuVmax) {
|
if(patched_voltage > C.gpuVmax) {
|
||||||
patched_voltage = C.gpuVmax;
|
patched_voltage = C.gpuVmax;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user