mirror of
https://github.com/Atmosphere-NX/Atmosphere
synced 2024-12-22 20:31:14 +00:00
ams/fuse: update version numbers, update DramId read logic
This commit is contained in:
parent
8d9e3f2a31
commit
545765d167
3 changed files with 23 additions and 5 deletions
|
@ -39,12 +39,13 @@ namespace ams::fuse {
|
||||||
struct OdmWord4 {
|
struct OdmWord4 {
|
||||||
using HardwareState1 = util::BitPack32::Field<0, 2, int>;
|
using HardwareState1 = util::BitPack32::Field<0, 2, int>;
|
||||||
using HardwareType1 = util::BitPack32::Field<HardwareState1::Next, 1, int>;
|
using HardwareType1 = util::BitPack32::Field<HardwareState1::Next, 1, int>;
|
||||||
using DramId = util::BitPack32::Field<HardwareType1::Next, 5, int>;
|
using DramId1 = util::BitPack32::Field<HardwareType1::Next, 5, int>;
|
||||||
using HardwareType2 = util::BitPack32::Field<DramId::Next, 1, int>;
|
using HardwareType2 = util::BitPack32::Field<DramId1::Next, 1, int>;
|
||||||
using HardwareState2 = util::BitPack32::Field<HardwareType2::Next, 1, int>;
|
using HardwareState2 = util::BitPack32::Field<HardwareType2::Next, 1, int>;
|
||||||
using RetailInteractiveDisplayState = util::BitPack32::Field<HardwareState2::Next, 1, int>;
|
using RetailInteractiveDisplayState = util::BitPack32::Field<HardwareState2::Next, 1, int>;
|
||||||
using FormatVersion = util::BitPack32::Field<RetailInteractiveDisplayState::Next, 1, int>;
|
using FormatVersion = util::BitPack32::Field<RetailInteractiveDisplayState::Next, 1, int>;
|
||||||
using Reserved = util::BitPack32::Field<FormatVersion::Next, 4, int>;
|
using DramId2 = util::BitPack32::Field<FormatVersion::Next, 3, int>;
|
||||||
|
using Reserved = util::BitPack32::Field<DramId2::Next, 1, int>;
|
||||||
using HardwareType3 = util::BitPack32::Field<Reserved::Next, 4, int>;
|
using HardwareType3 = util::BitPack32::Field<Reserved::Next, 4, int>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -71,6 +72,15 @@ namespace ams::fuse {
|
||||||
(odm_word4.Get<OdmWord4::HardwareType3>() << HardwareType3Shift);
|
(odm_word4.Get<OdmWord4::HardwareType3>() << HardwareType3Shift);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
constexpr ALWAYS_INLINE int GetDramIdValue(const util::BitPack32 odm_word4) {
|
||||||
|
constexpr auto DramId1Shift = 0;
|
||||||
|
constexpr auto DramId2Shift = OdmWord4::DramId1::Count + DramId1Shift;
|
||||||
|
|
||||||
|
|
||||||
|
return (odm_word4.Get<OdmWord4::DramId1>() << DramId1Shift) |
|
||||||
|
(odm_word4.Get<OdmWord4::DramId2>() << DramId2Shift);
|
||||||
|
}
|
||||||
|
|
||||||
constinit uintptr_t g_register_address = secmon::MemoryRegionPhysicalDeviceFuses.GetAddress();
|
constinit uintptr_t g_register_address = secmon::MemoryRegionPhysicalDeviceFuses.GetAddress();
|
||||||
|
|
||||||
constinit bool g_checked_for_rcm_bug_patch = false;
|
constinit bool g_checked_for_rcm_bug_patch = false;
|
||||||
|
@ -167,6 +177,7 @@ namespace ams::fuse {
|
||||||
}
|
}
|
||||||
|
|
||||||
constexpr const TargetFirmware FuseVersionIncrementFirmwares[] = {
|
constexpr const TargetFirmware FuseVersionIncrementFirmwares[] = {
|
||||||
|
TargetFirmware_15_0_0,
|
||||||
TargetFirmware_13_2_1,
|
TargetFirmware_13_2_1,
|
||||||
TargetFirmware_12_0_2,
|
TargetFirmware_12_0_2,
|
||||||
TargetFirmware_11_0_0,
|
TargetFirmware_11_0_0,
|
||||||
|
@ -305,7 +316,8 @@ namespace ams::fuse {
|
||||||
}
|
}
|
||||||
|
|
||||||
DramId GetDramId() {
|
DramId GetDramId() {
|
||||||
return static_cast<DramId>(util::BitPack32{GetCommonOdmWord(4)}.Get<OdmWord4::DramId>());
|
/* Get the value. */
|
||||||
|
return static_cast<DramId>(GetDramIdValue(util::BitPack32{GetCommonOdmWord(4)}));
|
||||||
}
|
}
|
||||||
|
|
||||||
HardwareType GetHardwareType() {
|
HardwareType GetHardwareType() {
|
||||||
|
|
|
@ -72,6 +72,8 @@ namespace ams::hos {
|
||||||
Version_14_0_0 = ::ams::TargetFirmware_14_0_0,
|
Version_14_0_0 = ::ams::TargetFirmware_14_0_0,
|
||||||
Version_14_1_0 = ::ams::TargetFirmware_14_1_0,
|
Version_14_1_0 = ::ams::TargetFirmware_14_1_0,
|
||||||
Version_14_1_1 = ::ams::TargetFirmware_14_1_1,
|
Version_14_1_1 = ::ams::TargetFirmware_14_1_1,
|
||||||
|
Version_14_1_2 = ::ams::TargetFirmware_14_1_2,
|
||||||
|
Version_15_0_0 = ::ams::TargetFirmware_15_0_0,
|
||||||
|
|
||||||
Version_Current = ::ams::TargetFirmware_Current,
|
Version_Current = ::ams::TargetFirmware_Current,
|
||||||
|
|
||||||
|
|
|
@ -70,8 +70,10 @@
|
||||||
#define ATMOSPHERE_TARGET_FIRMWARE_14_0_0 ATMOSPHERE_TARGET_FIRMWARE(14, 0, 0)
|
#define ATMOSPHERE_TARGET_FIRMWARE_14_0_0 ATMOSPHERE_TARGET_FIRMWARE(14, 0, 0)
|
||||||
#define ATMOSPHERE_TARGET_FIRMWARE_14_1_0 ATMOSPHERE_TARGET_FIRMWARE(14, 1, 0)
|
#define ATMOSPHERE_TARGET_FIRMWARE_14_1_0 ATMOSPHERE_TARGET_FIRMWARE(14, 1, 0)
|
||||||
#define ATMOSPHERE_TARGET_FIRMWARE_14_1_1 ATMOSPHERE_TARGET_FIRMWARE(14, 1, 1)
|
#define ATMOSPHERE_TARGET_FIRMWARE_14_1_1 ATMOSPHERE_TARGET_FIRMWARE(14, 1, 1)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_14_1_2 ATMOSPHERE_TARGET_FIRMWARE(14, 1, 2)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_15_0_0 ATMOSPHERE_TARGET_FIRMWARE(15, 0, 0)
|
||||||
|
|
||||||
#define ATMOSPHERE_TARGET_FIRMWARE_CURRENT ATMOSPHERE_TARGET_FIRMWARE_14_1_1
|
#define ATMOSPHERE_TARGET_FIRMWARE_CURRENT ATMOSPHERE_TARGET_FIRMWARE_15_0_0
|
||||||
|
|
||||||
#define ATMOSPHERE_TARGET_FIRMWARE_MIN ATMOSPHERE_TARGET_FIRMWARE(0, 0, 0)
|
#define ATMOSPHERE_TARGET_FIRMWARE_MIN ATMOSPHERE_TARGET_FIRMWARE(0, 0, 0)
|
||||||
#define ATMOSPHERE_TARGET_FIRMWARE_MAX ATMOSPHERE_TARGET_FIRMWARE_CURRENT
|
#define ATMOSPHERE_TARGET_FIRMWARE_MAX ATMOSPHERE_TARGET_FIRMWARE_CURRENT
|
||||||
|
@ -134,6 +136,8 @@ namespace ams {
|
||||||
TargetFirmware_14_0_0 = ATMOSPHERE_TARGET_FIRMWARE_14_0_0,
|
TargetFirmware_14_0_0 = ATMOSPHERE_TARGET_FIRMWARE_14_0_0,
|
||||||
TargetFirmware_14_1_0 = ATMOSPHERE_TARGET_FIRMWARE_14_1_0,
|
TargetFirmware_14_1_0 = ATMOSPHERE_TARGET_FIRMWARE_14_1_0,
|
||||||
TargetFirmware_14_1_1 = ATMOSPHERE_TARGET_FIRMWARE_14_1_1,
|
TargetFirmware_14_1_1 = ATMOSPHERE_TARGET_FIRMWARE_14_1_1,
|
||||||
|
TargetFirmware_14_1_2 = ATMOSPHERE_TARGET_FIRMWARE_14_1_2,
|
||||||
|
TargetFirmware_15_0_0 = ATMOSPHERE_TARGET_FIRMWARE_15_0_0,
|
||||||
|
|
||||||
TargetFirmware_Current = ATMOSPHERE_TARGET_FIRMWARE_CURRENT,
|
TargetFirmware_Current = ATMOSPHERE_TARGET_FIRMWARE_CURRENT,
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue