loader: implement emc dvb table shift
This commit is contained in:
@@ -91,6 +91,8 @@ volatile CustomizeTable C = {
|
|||||||
|
|
||||||
.marikoGpuUV = 0,
|
.marikoGpuUV = 0,
|
||||||
|
|
||||||
|
.marikoEmcDvbShift = 0,
|
||||||
|
|
||||||
.ramTimingPresetOne = 0,
|
.ramTimingPresetOne = 0,
|
||||||
|
|
||||||
.ramTimingPresetTwo = 0,
|
.ramTimingPresetTwo = 0,
|
||||||
|
|||||||
@@ -52,9 +52,10 @@ typedef struct CustomizeTable {
|
|||||||
u32 marikoCpuMaxVolt;
|
u32 marikoCpuMaxVolt;
|
||||||
u32 marikoEmcMaxClock;
|
u32 marikoEmcMaxClock;
|
||||||
u32 marikoEmcVddqVolt;
|
u32 marikoEmcVddqVolt;
|
||||||
//advanced config
|
|
||||||
u32 marikoCpuUV;
|
u32 marikoCpuUV;
|
||||||
u32 marikoGpuUV;
|
u32 marikoGpuUV;
|
||||||
|
// advanced config
|
||||||
|
u32 marikoEmcDvbShift;
|
||||||
u32 ramTimingPresetOne;
|
u32 ramTimingPresetOne;
|
||||||
u32 ramTimingPresetTwo;
|
u32 ramTimingPresetTwo;
|
||||||
u32 ramTimingPresetThree;
|
u32 ramTimingPresetThree;
|
||||||
@@ -62,6 +63,7 @@ typedef struct CustomizeTable {
|
|||||||
u32 ramTimingPresetFive;
|
u32 ramTimingPresetFive;
|
||||||
u32 ramTimingPresetSix;
|
u32 ramTimingPresetSix;
|
||||||
u32 ramTimingPresetSeven;
|
u32 ramTimingPresetSeven;
|
||||||
|
//
|
||||||
u32 marikoGpuVoltArray[17];
|
u32 marikoGpuVoltArray[17];
|
||||||
CustomizeCpuDvfsTable eristaCpuDvfsTable;
|
CustomizeCpuDvfsTable eristaCpuDvfsTable;
|
||||||
CustomizeCpuDvfsTable marikoCpuDvfsTable;
|
CustomizeCpuDvfsTable marikoCpuDvfsTable;
|
||||||
|
|||||||
@@ -371,10 +371,10 @@ Result MemFreqDvbTable(u32* ptr) {
|
|||||||
emc_dvb_dvfs_table_t oc_table = { 2131200, { 725, 700, 675, } };
|
emc_dvb_dvfs_table_t oc_table = { 2131200, { 725, 700, 675, } };
|
||||||
std::memcpy(new_start, &oc_table, sizeof(emc_dvb_dvfs_table_t));
|
std::memcpy(new_start, &oc_table, sizeof(emc_dvb_dvfs_table_t));
|
||||||
} else if (C.marikoEmcMaxClock < 2665600){
|
} else if (C.marikoEmcMaxClock < 2665600){
|
||||||
emc_dvb_dvfs_table_t oc_table = { 2400000, { 750, 725, 700, } };
|
emc_dvb_dvfs_table_t oc_table = { 2400000, { 750+25*C.marikoEmcDvbShift, 725+25*C.marikoEmcDvbShift, 700+25*C.marikoEmcDvbShift, } };
|
||||||
std::memcpy(new_start, &oc_table, sizeof(emc_dvb_dvfs_table_t));
|
std::memcpy(new_start, &oc_table, sizeof(emc_dvb_dvfs_table_t));
|
||||||
} else {
|
} else {
|
||||||
emc_dvb_dvfs_table_t oc_table = { 2665600, { 775, 750, 725, } };
|
emc_dvb_dvfs_table_t oc_table = { 2665600, { 775+25*C.marikoEmcDvbShift, 750+25*C.marikoEmcDvbShift, 725+25*C.marikoEmcDvbShift, } };
|
||||||
std::memcpy(new_start, &oc_table, sizeof(emc_dvb_dvfs_table_t));
|
std::memcpy(new_start, &oc_table, sizeof(emc_dvb_dvfs_table_t));
|
||||||
}
|
}
|
||||||
new_start->freq = C.marikoEmcMaxClock;
|
new_start->freq = C.marikoEmcMaxClock;
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ typedef struct CustTable {
|
|||||||
u32 marikoEmcVddqVolt;
|
u32 marikoEmcVddqVolt;
|
||||||
u32 marikoCpuUV;
|
u32 marikoCpuUV;
|
||||||
u32 marikoGpuUV;
|
u32 marikoGpuUV;
|
||||||
|
u32 marikoEmcDvbShift;
|
||||||
u32 ramTimingPresetOne;
|
u32 ramTimingPresetOne;
|
||||||
u32 ramTimingPresetTwo;
|
u32 ramTimingPresetTwo;
|
||||||
u32 ramTimingPresetThree;
|
u32 ramTimingPresetThree;
|
||||||
|
|||||||
@@ -336,6 +336,19 @@ var CustTable: Array<CustEntry> = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
var AdvTable: Array<AdvEntry> = [
|
var AdvTable: Array<AdvEntry> = [
|
||||||
|
new AdvEntry(
|
||||||
|
"marikoEmcDvbShift",
|
||||||
|
"Step up Mariko EMC DVB Table",
|
||||||
|
CustPlatform.Mariko,
|
||||||
|
4,
|
||||||
|
["Might help with stability at higher memory clock",
|
||||||
|
"<b>0</b> : Don't Adjust",
|
||||||
|
"<b>1</b> : Shift one step",
|
||||||
|
"<b>2</b> : Shift two step"],
|
||||||
|
0,
|
||||||
|
[0,2],
|
||||||
|
1,
|
||||||
|
),
|
||||||
new AdvEntry(
|
new AdvEntry(
|
||||||
"ramTimingPresetOne",
|
"ramTimingPresetOne",
|
||||||
"Primary RAM Timing Preset",
|
"Primary RAM Timing Preset",
|
||||||
|
|||||||
Reference in New Issue
Block a user