diff --git a/Source/rewrite-hoc-clk/sysmodule/src/board/board.cpp b/Source/rewrite-hoc-clk/sysmodule/src/board/board.cpp index aef555e8..bd384b64 100644 --- a/Source/rewrite-hoc-clk/sysmodule/src/board/board.cpp +++ b/Source/rewrite-hoc-clk/sysmodule/src/board/board.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include "board.hpp" #include "board_fuse.hpp" @@ -193,4 +194,22 @@ namespace board { return gConsoleType; } + u8 GetDramID() { + return dramID; + } + + bool IsDram8GB() { + SecmonArgs args = {}; + args.X[0] = 0xF0000002; + args.X[1] = MC_REGISTER_BASE + MC_EMEM_CFG_0; + svcCallSecureMonitor(&args); + + if (args.X[1] == (MC_REGISTER_BASE + MC_EMEM_CFG_0)) { // if param 1 is identical read failed + writeNotification("Horizon OC\nSecmon read failed!\n This may be a hardware issue!"); + return false; + } + + return args.X[1] == 0x00002000 ? true : false; + } + } diff --git a/Source/rewrite-hoc-clk/sysmodule/src/board/board.hpp b/Source/rewrite-hoc-clk/sysmodule/src/board/board.hpp index 17d755a3..af8a7ff6 100644 --- a/Source/rewrite-hoc-clk/sysmodule/src/board/board.hpp +++ b/Source/rewrite-hoc-clk/sysmodule/src/board/board.hpp @@ -37,5 +37,7 @@ namespace board { void Exit(); SysClkSocType GetSocType(); HorizonOCConsoleType GetConsoleType(); + u8 GetDramID(); + bool isIsDram8GB(); }