Mariko: Add CPU UV

This commit is contained in:
Lightos1
2025-12-09 21:30:56 +01:00
parent 89f91fda14
commit d11afd7c44
6 changed files with 514 additions and 372 deletions

View File

@@ -32,61 +32,52 @@ namespace ams::ldr::oc {
volatile CustomizeTable C = {
.mtcConf = AUTO_ADJ_BL,
.hpMode = ENABLED,
.commonCpuBoostClock = 2397000, // Default boost clock
.commonEmcMemVolt = 1175000, // LPDDR4X JEDEC Specification
.eristaCpuMaxVolt = 1235,
.eristaEmcMaxClock = 1862400, // Maximum HB-MGCH ram rating
.marikoCpuMaxVolt = 1185,
.marikoEmcMaxClock = 2133000, // Hynix NME and Samsung AM-MGCJ Rating (others are 4766MT, 2133MHz)
.marikoEmcMaxClock = 2933000, // Hynix NME and Samsung AM-MGCJ Rating (others are 4766MT, 2133MHz)
.marikoEmcVddqVolt = 640000,
.marikoCpuUV = 0, // No undervolt
.marikoGpuUV = 3,
.eristaCpuUV = 0,
.eristaGpuUV = 3,
.commonGpuVoltOffset = 0,
.emcDvbShift = 10,
// Primary
.t1_tRCD = 0,
.t2_tRP = 0,
.t3_tRAS = 0,
.t1_tRCD = 4,
.t2_tRP = 4,
.t3_tRAS = 8,
// Secondary
.t4_tRRD = 0,
.t5_tRFC = 0,
.t6_tRTW = 0,
.t7_tWTR = 0,
.t8_tREFI = 0,
.t4_tRRD = 5,
.t5_tRFC = 5,
.t6_tRTW = 7,
.t7_tWTR = 8,
.t8_tREFI = 6,
/* Set to 4 read and 2 write for 1866bl. */
/* For 2131bl: 8 read and 4 write. */
.mem_burst_read_latency = 8,
.mem_burst_write_latency = 4,
.marikoCpuHighVmin = 750,
.eristaCpuUV = 0,
.eristaCpuMaxVolt = 1235,
.marikoCpuLowVmin = 680,
.marikoCpuUVLow = 8, // No undervolt
.marikoCpuUVHigh = 1, // No undervolt
.tableConf = AUTO,
.marikoCpuLowVmin = 590,
.marikoCpuHighVmin = 735,
.marikoCpuMaxVolt = 1180,
.commonCpuBoostClock = 2397000, // Default boost clock
.eristaGpuUV = 3,
.eristaGpuVmin = 810,
.marikoGpuUV = 3,
.marikoGpuVmin = 610,
.marikoGpuVmax = 850,
.commonGpuVoltOffset = 0,
/* >1305 GPU unlock. */
/* WARNING! This removes ALL gpu frequency limits and risks permanent hardware damage. */
/* This setting is very dangerous and can damage your pmic, degrade your soc, damage the voltage rails and can cause various other damage. */
@@ -96,34 +87,6 @@ volatile CustomizeTable C = {
// NOTE: These tables should NOT BE USED and are only here as placeholders. Always try and find your own optimal tables.
// Ensure the voltages actually increase or stay the sameot
.marikoGpuVoltArray = {
785 /* 76 */,
785 /* 153 */,
785 /* 230 */,
785 /* 307 */,
785 /* 384 */,
785 /* 460 */,
785 /* 537 */,
785 /* 614 */,
785 /* 691 */,
785 /* 768 */,
785 /* 844 */,
785 /* 921 */,
785 /* 998 */,
785 /* 1075 */,
785 /* 1152 */,
785 /* 1228 */,
800 /* 1267 (Disabled by default) */,
810 /* 1305 (Disabled by default) */,
960 /* 1344 (Disabled by default) */,
960 /* 1382 (Disabled by default) */,
960 /* 1420 (Disabled by default) */,
960 /* 1459 (Disabled by default) */,
0 /* 1497 (Disabled by default) */,
0 /* 1536 (Disabled by default) */,
},
.eristaGpuVoltArray = {
750 /* 76 */,
750 /* 115 */,
@@ -154,7 +117,34 @@ volatile CustomizeTable C = {
0 /* 1075 (Disabled by default) */,
},
/* Advanced Settings:
.marikoGpuVoltArray = {
785 /* 76 */,
785 /* 153 */,
785 /* 230 */,
785 /* 307 */,
785 /* 384 */,
785 /* 460 */,
785 /* 537 */,
785 /* 614 */,
785 /* 691 */,
785 /* 768 */,
785 /* 844 */,
785 /* 921 */,
785 /* 998 */,
785 /* 1075 */,
785 /* 1152 */,
785 /* 1228 */,
800 /* 1267 (Disabled by default) */,
810 /* 1305 (Disabled by default) */,
960 /* 1344 (Disabled by default) */,
960 /* 1382 (Disabled by default) */,
960 /* 1420 (Disabled by default) */,
960 /* 1459 (Disabled by default) */,
0 /* 1497 (Disabled by default) */,
0 /* 1536 (Disabled by default) */,
},
/* Advanced settings:
* - Erista CPU DVFS Table:
*/
.eristaCpuDvfsTable = {
@@ -185,55 +175,140 @@ volatile CustomizeTable C = {
* 2397000 might not work for some SoCs.
*/
.marikoCpuDvfsTable = {
{ 204000, { 721589, -12695, 27 }, {} },
{ 306000, { 747134, -14195, 27 }, {} },
{ 408000, { 776324, -15705, 27 }, {} },
{ 510000, { 809160, -17205, 27 }, {} },
{ 612000, { 845641, -18715, 27 }, {} },
{ 714000, { 885768, -20215, 27 }, {} },
{ 816000, { 929540, -21725, 27 }, {} },
{ 918000, { 976958, -23225, 27 }, {} },
{ 1020000, { 1028021, -24725, 27 }, { 1120000 } },
{ 1122000, { 1082730, -26235, 27 }, { 1120000 } },
{ 1224000, { 1141084, -27735, 27 }, { 1120000 } },
{ 1326000, { 1203084, -29245, 27 }, { 1120000 } },
{ 1428000, { 1268729, -30745, 27 }, { 1120000 } },
{ 1581000, { 1374032, -33005, 27 }, { 1120000 } },
{ 1683000, { 1448791, -34505, 27 }, { 1120000 } },
{ 1785000, { 1527196, -36015, 27 }, { 1120000 } },
{ 1887000, { 1609246, -37515, 27 }, { 1120000 } },
{ 1963500, { 1675751, -38635, 27 }, { 1120000 } },
{ 2091000, { 1716501, -39395, 27 }, { CPU_MAX_MAX_VOLT } },
{ 2193000, { 1775132, -40505, 27 }, { CPU_MAX_MAX_VOLT } },
{ 2295000, { 1866287, -42005, 27 }, { CPU_MAX_MAX_VOLT } },
{ 204000, { 721589, -12695, 27, }, { } },
{ 306000, { 747134, -14195, 27, }, { } },
{ 408000, { 776324, -15705, 27, }, { } },
{ 510000, { 809160, -17205, 27, }, { } },
{ 612000, { 845641, -18715, 27, }, { } },
{ 714000, { 885768, -20215, 27, }, { } },
{ 816000, { 929540, -21725, 27, }, { } },
{ 918000, { 976958, -23225, 27, }, { } },
{ 1020000, { 1028021, -24725, 27, }, { 1120000, } },
{ 1122000, { 1082730, -26235, 27, }, { 1120000, } },
{ 1224000, { 1141084, -27735, 27, }, { 1120000, } },
{ 1326000, { 1203084, -29245, 27, }, { 1120000, } },
{ 1428000, { 1268729, -30745, 27, }, { 1120000, } },
{ 1581000, { 1374032, -33005, 27, }, { 1120000, } },
{ 1683000, { 1448791, -34505, 27, }, { 1120000, } },
{ 1785000, { 1527196, -36015, 27, }, { 1120000, } },
{ 1887000, { 1609246, -37515, 27, }, { 1120000, } },
{ 1963500, { 1675751, -38635, 27, }, { 1120000, } },
{ 2091000, { 1716501, -39395, 27, }, { CPU_MAX_MAX_VOLT, } },
{ 2193000, { 1775132, -40505, 27, }, { CPU_MAX_MAX_VOLT, } },
{ 2295000, { 1866287, -42005, 27, }, { CPU_MAX_MAX_VOLT, } },
{ 2397000, { 1961107, -43506, 27, }, { CPU_MAX_MAX_VOLT, } },
},
.marikoCpuDvfsTableSLT = {
{ 612000, { 853926, -20775, 113 }, {} },
{ 714000, { 889361, -21625, 113 }, {} },
{ 816000, { 926862, -22485, 113 }, {} },
{ 918000, { 966431, -23345, 113 }, {} },
{ 1020000, { 1008066, -24205, 113 }, { 1120000 } },
{ 1122000, { 1051768, -25065, 113 }, { 1120000 } },
{ 1224000, { 1097537, -25925, 113 }, { 1120000 } },
{ 1326000, { 1145373, -26785, 113 }, { 1120000 } },
{ 1428000, { 1195276, -27645, 113 }, { 1120000 } },
{ 1581000, { 1274006, -28935, 113 }, { 1120000 } },
{ 1683000, { 1329076, -29795, 113 }, { 1120000 } },
{ 1785000, { 1386213, -30655, 113 }, { 1120000 } },
{ 1887000, { 1445416, -31515, 113 }, { 1120000 } },
{ 1963500, { 1490873, -32155, 113 }, { 1120000 } },
// Appending table
{ 2091000, { 1580725, -33235, 113 }, { CPU_MAX_MAX_VOLT } },
{ 2193000, { 1580725, -33235, 113 }, { CPU_MAX_MAX_VOLT } },
{ 2295000, { 1635431, -34095, 113 }, { CPU_MAX_MAX_VOLT } },
{ 2397000, { 1702903, -34955, 113 }, { CPU_MAX_MAX_VOLT } },
{ 2499000, { 1754400, -35643, 113 }, { CPU_MAX_MAX_VOLT } },
{ 2601000, { 1805897, -36331, 113 }, { CPU_MAX_MAX_VOLT } },
{ 2703000, { 1857394, -37019, 113 }, { CPU_MAX_MAX_VOLT } },
{ 2805000, { 1908891, -37707, 113 }, { CPU_MAX_MAX_VOLT } },
{ 2907000, { 1960388, -38395, 113 }, { CPU_MAX_MAX_VOLT } },
{ 204000, { 732856, -17335, 113, }, { } },
{ 306000, { 760024, -18195, 113, }, { } },
{ 408000, { 789258, -19055, 113, }, { } },
{ 510000, { 789258, -19055, 113, }, { } },
{ 612000, { 789258, -19055, 113, }, { } },
{ 714000, { 789258, -19055, 113, }, { } },
{ 816000, { 789258, -19055, 113, }, { } },
{ 918000, { 820558, -19055, 113, }, { } },
{ 1020000, { 853926, -20775, 113, }, { 1120000, } },
{ 1122000, { 889361, -21625, 113, }, { 1120000, } },
{ 1224000, { 926862, -22485, 113, }, { 1120000, } },
{ 1326000, { 926862, -22485, 113, }, { 1120000, } },
{ 1428000, { 926862, -22485, 113, }, { 1120000, } },
{ 1581000, { 966431, -23345, 113, }, { 1120000, } },
{ 1683000, { 1097537, -25925, 113, }, { 1120000, } },
{ 1785000, { 1145373, -26785, 113, }, { 1120000, } },
{ 1887000, { 1195276, -27645, 113, }, { 1120000, } },
{ 1963500, { 1274006, -29795, 113, }, { 1120000, } },
{ 2091000, { 1349076, -33235, 113, }, { 1120000, } },
{ 2193000, { 1386213, -33235, 113, }, { CPU_MAX_MAX_VOLT, } },
{ 2295000, { 1445416, -34095, 113, }, { CPU_MAX_MAX_VOLT, } },
{ 2397000, { 1490873, -34955, 113, }, { CPU_MAX_MAX_VOLT, } },
{ 2499000, { 1580725, -35815, 113, }, { CPU_MAX_MAX_VOLT, } },
{ 2601000, { 1702903, -36675, 113, }, { CPU_MAX_MAX_VOLT, } },
{ 2703000, { 1770375, -37515, 113, }, { CPU_MAX_MAX_VOLT, } },
},
.marikoCpuDvfsTable1581Tbreak {
{ 204000, { 732856, -17335, 113, }, { } },
{ 306000, { 760024, -18195, 113, }, { } },
{ 408000, { 789258, -19055, 113, }, { } },
{ 510000, { 789258, -19055, 113, }, { } },
{ 612000, { 853926, -20775, 113, }, { } },
{ 714000, { 889361, -21625, 113, }, { } },
{ 816000, { 926862, -22485, 113, }, { } },
{ 918000, { 966431, -23345, 113, }, { } },
{ 1020000, { 1008066, -24205, 113, }, { 1120000, } },
{ 1122000, { 1008066, -24205, 113, }, { 1120000, } },
{ 1224000, { 1008066, -24205, 113, }, { 1120000, } },
{ 1326000, { 1008066, -24205, 113, }, { 1120000, } },
{ 1428000, { 1008066, -24205, 113, }, { 1120000, } },
{ 1581000, { 1274006, -28935, 113, }, { 1120000, } },
{ 1683000, { 1329076, -29795, 113, }, { 1120000, } },
{ 1785000, { 1386213, -30655, 113, }, { 1120000, } },
{ 1887000, { 1445416, -31515, 113, }, { 1120000, } },
{ 1963500, { 1490873, -32155, 113, }, { 1120000, } },
{ 2091000, { 1580725, -33235, 113, }, { 1120000, } },
{ 2193000, { 1580725, -33235, 113, }, { CPU_MAX_MAX_VOLT, } },
{ 2295000, { 1635431, -34095, 113, }, { CPU_MAX_MAX_VOLT, } },
{ 2397000, { 1702903, -34955, 113, }, { CPU_MAX_MAX_VOLT, } },
{ 2499000, { 1736856, -35286, 113, }, { CPU_MAX_MAX_VOLT, } },
{ 2601000, { 1787838, -35967, 113, }, { CPU_MAX_MAX_VOLT, } },
{ 2703000, { 1838820, -36648, 113, }, { CPU_MAX_MAX_VOLT, } },
},
.marikoCpuDvfsTable1683Tbreak {
{ 204000, { 732856, -17335, 113, }, { } },
{ 306000, { 760024, -18195, 113, }, { } },
{ 408000, { 789258, -19055, 113, }, { } },
{ 510000, { 789258, -19055, 113, }, { } },
{ 612000, { 853926, -20775, 113, }, { } },
{ 714000, { 889361, -21625, 113, }, { } },
{ 816000, { 926862, -22485, 113, }, { } },
{ 918000, { 966431, -23345, 113, }, { } },
{ 1020000, { 1008066, -24205, 113, }, { 1120000, } },
{ 1122000, { 1008066, -24205, 113, }, { 1120000, } },
{ 1224000, { 1008066, -24205, 113, }, { 1120000, } },
{ 1326000, { 1008066, -24205, 113, }, { 1120000, } },
{ 1428000, { 1008066, -24205, 113, }, { 1120000, } },
{ 1581000, { 1008066, -24205, 113, }, { 1120000, } },
{ 1683000, { 1329076, -29795, 113, }, { 1120000, } },
{ 1785000, { 1386213, -30655, 113, }, { 1120000, } },
{ 1887000, { 1445416, -31515, 113, }, { 1120000, } },
{ 1963500, { 1490873, -32155, 113, }, { 1120000, } },
{ 2091000, { 1580725, -33235, 113, }, { 1120000, } },
{ 2193000, { 1580725, -33235, 113, }, { CPU_MAX_MAX_VOLT, } },
{ 2295000, { 1635431, -34095, 113, }, { CPU_MAX_MAX_VOLT, } },
{ 2397000, { 1702903, -34955, 113, }, { CPU_MAX_MAX_VOLT, } },
{ 2499000, { 1736856, -35286, 113, }, { CPU_MAX_MAX_VOLT, } },
{ 2601000, { 1787838, -35967, 113, }, { CPU_MAX_MAX_VOLT, } },
{ 2703000, { 1838820, -36648, 113, }, { CPU_MAX_MAX_VOLT, } },
},
.marikoCpuDvfsTableHelios {
{ 204000, { 732856, -17335, 113, }, { } },
{ 306000, { 760024, -18195, 113, }, { } },
{ 408000, { 789258, -19055, 113, }, { } },
{ 510000, { 789258, -19915, 113, }, { } },
{ 612000, { 789258, -19055, 113, }, { } },
{ 714000, { 820558, -19915, 113, }, { } },
{ 816000, { 853926, -20775, 113, }, { } },
{ 918000, { 889361, -21625, 113, }, { } },
{ 1020000, { 926862, -22485, 113, }, { 1120000, } },
{ 1122000, { 926862, -22485, 113, }, { 1120000, } },
{ 1224000, { 926862, -22485, 113, }, { 1120000, } },
{ 1326000, { 966431, -23345, 113, }, { 1120000, } },
{ 1428000, { 1008066, -24205, 113, }, { 1120000, } },
{ 1581000, { 1051768, -25065, 113, }, { 1120000, } },
{ 1683000, { 1097537, -25925, 113, }, { 1120000, } },
{ 1785000, { 1145373, -26785, 113, }, { 1120000, } },
{ 1887000, { 1195276, -27645, 113, }, { 1120000, } },
{ 1963500, { 1274006, -29795, 113, }, { 1120000, } },
{ 2091000, { 1349076, -33235, 113, }, { 1120000, } },
{ 2193000, { 1386213, -33235, 113, }, { CPU_MAX_MAX_VOLT, } },
{ 2295000, { 1445416, -34095, 113, }, { CPU_MAX_MAX_VOLT, } },
{ 2397000, { 1490873, -34955, 113, }, { CPU_MAX_MAX_VOLT, } },
{ 2499000, { 1580725, -35815, 113, }, { CPU_MAX_MAX_VOLT, } },
{ 2601000, { 1702903, -36675, 113, }, { CPU_MAX_MAX_VOLT, } },
{ 2703000, { 1770375, -37515, 113, }, { CPU_MAX_MAX_VOLT, } },
},
/* - Erista GPU DVFS Table:
@@ -277,8 +352,8 @@ volatile CustomizeTable C = {
{ 307200, { }, { 898077, 8144, -940, 808, -21583, 226 } },
{ 345600, { }, { 939968, 8144, -940, 808, -21583, 226 } },
{ 384000, { }, { 939968, 8144, -940, 808, -21583, 226 } },
{ 422400, { }, { 981860, 8144, -940, 808, -21583, 226 } },
{ 460800, { }, { 981860, 8144, -940, 808, -21583, 226 } },
{ 422400, { }, { 981860, 8144, -940, 808, -21583, 226 } },
{ 460800, { }, { 981860, 8144, -940, 808, -21583, 226 } },
{ 499200, { }, { 1023751, 8144, -940, 808, -21583, 226 } },
{ 537600, { }, { 1023751, 8144, -940, 808, -21583, 226 } },
{ 576000, { }, { 1065642, 8144, -940, 808, -21583, 226 } },
@@ -306,10 +381,10 @@ volatile CustomizeTable C = {
{ 307200, { }, { 856185, 8144, -940, 808, -21583, 226 } },
{ 345600, { }, { 898077, 8144, -940, 808, -21583, 226 } },
{ 384000, { }, { 898077, 8144, -940, 808, -21583, 226 } },
{ 422400, { }, { 939968, 8144, -940, 808, -21583, 226 } },
{ 460800, { }, { 939968, 8144, -940, 808, -21583, 226 } },
{ 499200, { }, { 981860, 8144, -940, 808, -21583, 226 } },
{ 537600, { }, { 981860, 8144, -940, 808, -21583, 226 } },
{ 422400, { }, { 939968, 8144, -940, 808, -21583, 226 } },
{ 460800, { }, { 939968, 8144, -940, 808, -21583, 226 } },
{ 499200, { }, { 981860, 8144, -940, 808, -21583, 226 } },
{ 537600, { }, { 981860, 8144, -940, 808, -21583, 226 } },
{ 576000, { }, { 1023751, 8144, -940, 808, -21583, 226 } },
{ 614400, { }, { 1023751, 8144, -940, 808, -21583, 226 } },
{ 652800, { }, { 1065642, 8144, -940, 808, -21583, 226 } },