From ac41a498e129a5ee3e9cf35f03327b3522265160 Mon Sep 17 00:00:00 2001 From: souldbminersmwc Date: Tue, 25 Aug 2026 19:19:19 -0400 Subject: [PATCH] fix soctherm-BPMP --- Source/hoc-clk/bpmpfw/out/bpmpfw.bin | Bin 2912 -> 2968 bytes Source/hoc-clk/bpmpfw/source/main.cpp | 3 ++- Source/hoc-clk/sysmodule/src/bpmp/bpmp.cpp | 5 +++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Source/hoc-clk/bpmpfw/out/bpmpfw.bin b/Source/hoc-clk/bpmpfw/out/bpmpfw.bin index 3ac590debb7b3214ac017937e0764872ab8c9476..61766ba1ec27f24d8e81d98268537af1a9222190 100644 GIT binary patch delta 428 zcmX|-y-UMT6vgk0E!HR!La0SLylRCE7E^I>P}<-kxD<*g6rr>fT#CUDa4D@xEw0+3 z9fZEsMThI8>kO6HG(4ZhE`7ub3O5L)e!@; zBO(g(LX>%L2xtaJwwUKEm0cn?#92U=3eKTzXyv?Y=V{R0Ld1wYp^jE8m+@OvPDOJR)% z2a=cvPy*V7ry;|KJfEU0?NhdFYBraQyc<%k#h33dKKuR{s620h1;rRP&~FlpkZ%7| zI+&g*VDLH^3=Z4-a-QVc5Ax1NP!&T3bp^^6!77}cl+TYVr`02RUa4B??Ul>Pu#STa I0C%&+Z?>nUKL7v# delta 354 zcmXw#ze>YU6vj`|7PbE2_O`Sj1#gq3gJRvfnbf7AAXv~fEnTH~fnpLex=5fnNOMP> z`vSU&#H|l-!{rXv7jTOwRENVk-{IqT_|9WP)a{uLt7j}?9ep(czS|J17wn92353fg z>IrHiciSQVM4pyR1}zJIU>cg{IjeXI^bmanl|iden3=E`XD)b9;NvEmEA!c)CO zrP0UU=IQjnryA6xalzB%WUj)iu>dlpB|8+Mz4mSrPZ{Vnku$vv(NCps426z7u*P)F ztoEgerb720N~L+o(;drGL2o3Atw01Vp5}19RF!7#I}Q+5mD5v9$wrjmp&Ij|iPoU^ z>L<(gKeB8EE;zvU+{KgTYMQgyE!=EunV9o4NfH*_mIvB(^j1Er<@w#eALM_q9B`xV Gw(|=sXN61v diff --git a/Source/hoc-clk/bpmpfw/source/main.cpp b/Source/hoc-clk/bpmpfw/source/main.cpp index f604f063..2da95075 100644 --- a/Source/hoc-clk/bpmpfw/source/main.cpp +++ b/Source/hoc-clk/bpmpfw/source/main.cpp @@ -36,7 +36,7 @@ void MainLoop(HocClkBpmpSharedInfo &info) { for (;;) { const u32 temp1 = MMIO32(SocthermBase + SocthermSensorTemp1); const u32 temp2 = MMIO32(SocthermBase + SocthermSensorTemp2); - + info.tempCpu = TranslateSocthermTemp(static_cast(temp1 >> 16)); info.tempGpu = TranslateSocthermTemp(static_cast(temp1)); info.tempMem = TranslateSocthermTemp(static_cast(temp2 >> 16)); @@ -60,6 +60,7 @@ extern "C" void main() { MainLoop(info); printf("[hoc-bpmpfw]: PANIC\n"); + /* Clear the magic so sysmodule knows of a panic */ info.magic = 0x0; diff --git a/Source/hoc-clk/sysmodule/src/bpmp/bpmp.cpp b/Source/hoc-clk/sysmodule/src/bpmp/bpmp.cpp index 35a2a175..bf1824cf 100644 --- a/Source/hoc-clk/sysmodule/src/bpmp/bpmp.cpp +++ b/Source/hoc-clk/sysmodule/src/bpmp/bpmp.cpp @@ -23,6 +23,7 @@ #include "../file/config.hpp" #include "../file/file_utils.hpp" #include "../mapping/mem_map.hpp" +#include "../tsensor/soctherm.hpp" #include "bpmp.hpp" #include "bpmpfw_bin.h" @@ -121,6 +122,10 @@ namespace bpmp { if (R_SUCCEEDED(rc)) { if (state == PscPmState_Awake) { svcSleepThread(500'000'000); // 500ms + + /* I have no clue why this is needed as it wasn't needed before ¯\(ツ)/¯ */ + tsensor::InitializeSoctherm(); + Result wrc = StartBpmfwExecution(); if (R_FAILED(wrc)) { fileUtils::LogLine("[bpmp] restart after wake failed: 0x%x", wrc);