diff --git a/exosphere/program/source/smc/secmon_smc_info.cpp b/exosphere/program/source/smc/secmon_smc_info.cpp index 88cdeefe0..8c0710b04 100644 --- a/exosphere/program/source/smc/secmon_smc_info.cpp +++ b/exosphere/program/source/smc/secmon_smc_info.cpp @@ -271,6 +271,9 @@ namespace ams::secmon::smc { std::memcpy(std::addressof(args.r[1]), std::addressof(tmp_hash), sizeof(tmp_hash)); } break; + case ConfigItem::Unknown18: + args.r[1] = GetBootConfig().data.GetUnknown70(); + break; case ConfigItem::ExosphereApiVersion: /* Get information about the current exosphere version. */ if (kern || g_set_true_target_firmware) { diff --git a/exosphere/program/source/smc/secmon_smc_info.hpp b/exosphere/program/source/smc/secmon_smc_info.hpp index 605bbf333..2f81d066d 100644 --- a/exosphere/program/source/smc/secmon_smc_info.hpp +++ b/exosphere/program/source/smc/secmon_smc_info.hpp @@ -38,6 +38,7 @@ namespace ams::secmon::smc { RegulatorType = 15, DeviceUniqueKeyGeneration = 16, Package2Hash = 17, + Unknown18 = 18, /* Extension config items for exosphere. */ ExosphereApiVersion = 65000, diff --git a/libraries/libexosphere/include/exosphere/pkg1/pkg1_boot_config.hpp b/libraries/libexosphere/include/exosphere/pkg1/pkg1_boot_config.hpp index b61fb7e07..f7a67a1ec 100644 --- a/libraries/libexosphere/include/exosphere/pkg1/pkg1_boot_config.hpp +++ b/libraries/libexosphere/include/exosphere/pkg1/pkg1_boot_config.hpp @@ -61,14 +61,15 @@ namespace ams::pkg1 { } struct BootConfigData { - u32 version; - u32 reserved_04; + u64 version; u32 reserved_08; u32 reserved_0C; u8 flags1[0x10]; u8 flags0[0x10]; u64 initial_tsc_value; - u8 padding_38[0x200 - 0x38]; + u8 padding_38[0x38]; + u64 unknown_70; + u8 padding_78[0x200 - 0x78]; constexpr bool IsDevelopmentFunctionEnabled() const { return (this->flags1[0] & (1 << 1)) != 0; @@ -97,13 +98,16 @@ namespace ams::pkg1 { constexpr u64 GetInitialTscValue() const { return this->IsInitialTscValueValid() ? this->initial_tsc_value : 0; } + + constexpr u64 GetUnknown70() const { + return this->unknown_70; + } }; static_assert(util::is_pod::value); static_assert(sizeof(BootConfigData) == 0x200); struct BootConfigSignedData { - u32 version; - u32 reserved_04; + u64 version; u8 flags; u8 reserved_09[0x10 - 9]; u8 ecid[0x10]; diff --git a/libraries/libstratosphere/include/stratosphere/spl/spl_types.hpp b/libraries/libstratosphere/include/stratosphere/spl/spl_types.hpp index 11c80ad48..65c25fe58 100644 --- a/libraries/libstratosphere/include/stratosphere/spl/spl_types.hpp +++ b/libraries/libstratosphere/include/stratosphere/spl/spl_types.hpp @@ -230,6 +230,7 @@ namespace ams::spl { RegulatorType = 15, DeviceUniqueKeyGeneration = 16, Package2Hash = 17, + Unknown18 = 18, /* Extension config items for exosphere. */ ExosphereApiVersion = 65000,