Slightly only. I remained within the limits:
--- edk2-non-osi/Platform/CIX/Sky1/PackageTool/pm_config/opp_config_custom.h 2025-03-29 20:05:37.752470267 +0100
+++ edk2-platforms/Platform/Radxa/Orion/O6/pm_config/opp_config_custom.h 2025-03-29 17:43:37.838172574 +0100
@@ -7,7 +7,7 @@
#include "pm_export_config.h"
#include "opp_config.h"
-#define PM_OPP_TABLE_CONFIG 0
+#define PM_OPP_TABLE_CONFIG 1
#if PM_OPP_TABLE_CONFIG
/* V1.1, DFS */
@@ -48,22 +48,24 @@
};
static domain_opp_config_t dxs_gb0 = {
- .size = 7,
- .sustained_idx = 6,
+ .size = 9,
+ .sustained_idx = 8,
.opp_table = {
{ .level = 800UL, .voltage = 730 },
{ .level = 1200UL, .voltage = 750 },
{ .level = 1500UL, .voltage = 750 },
{ .level = 1800UL, .voltage = 790 },
{ .level = 2200UL, .voltage = 790 },
- { .level = 2300UL, .voltage = 850 },
- { .level = 2400UL, .voltage = 920 }, /* sustained */
+ { .level = 2400UL, .voltage = 850 },
+ { .level = 2800UL, .voltage = 950 }, /* sustained */
+ { .level = 3000UL, .voltage = 950 }, /* sustained */
+ { .level = 3100UL, .voltage = 990 }, /* sustained */
},
};
static domain_opp_config_t dxs_gb1 = {
- .size = 7,
- .sustained_idx = 6,
+ .size = 9,
+ .sustained_idx = 8,
.opp_table = {
{ .level = 800UL, .voltage = 730 },
{ .level = 1200UL, .voltage = 750 },
@@ -71,13 +73,15 @@
{ .level = 1800UL, .voltage = 790 },
{ .level = 2200UL, .voltage = 790 },
{ .level = 2400UL, .voltage = 850 },
- { .level = 2500UL, .voltage = 920 }, /* sustained */
+ { .level = 2800UL, .voltage = 950 }, /* sustained */
+ { .level = 3000UL, .voltage = 950 }, /* sustained */
+ { .level = 3100UL, .voltage = 990 }, /* sustained */
},
};
static domain_opp_config_t dxs_gm0 = {
- .size = 7,
- .sustained_idx = 6,
+ .size = 8,
+ .sustained_idx = 7,
.opp_table = {
{ .level = 800UL, .voltage = 730 },
{ .level = 1200UL, .voltage = 750 },
@@ -85,21 +89,23 @@
{ .level = 1800UL, .voltage = 790 },
{ .level = 2000UL, .voltage = 790 },
{ .level = 2200UL, .voltage = 850 },
- { .level = 2300UL, .voltage = 890 }, /* sustained */
+ { .level = 2400UL, .voltage = 920 }, /* sustained */
+ { .level = 2600UL, .voltage = 950 }, /* sustained */
},
};
static domain_opp_config_t dxs_gm1 = {
- .size = 7,
- .sustained_idx = 6,
+ .size = 8,
+ .sustained_idx = 7,
.opp_table = {
{ .level = 800UL, .voltage = 730 },
{ .level = 1200UL, .voltage = 750 },
{ .level = 1500UL, .voltage = 750 },
{ .level = 1800UL, .voltage = 790 },
{ .level = 2000UL, .voltage = 790 },
- { .level = 2100UL, .voltage = 850 },
- { .level = 2200UL, .voltage = 890 }, /* sustained */
+ { .level = 2200UL, .voltage = 850 },
+ { .level = 2400UL, .voltage = 920 }, /* sustained */
+ { .level = 2600UL, .voltage = 950 }, /* sustained */
},
};
I’ve read that cppc supports “boost” mode on recent kernels >= 5.8, but I don’t know how it needs to be declared in the ACPI tables, all I found is that it’s detected when there’s a difference between a nominal_freq and a maximum_freq, though I found none of these here. This could be useful to reserve some OPP for manual OC and experimentation.
Also, I have not run GB, only some local builds, openssl speed and CPU/DRAM perf tests