diff --git a/fusee_cpp/program/sdram_params/lz/sdram_params_erista_2.lz4 b/fusee_cpp/program/sdram_params/lz/sdram_params_erista_0_1.lz4 similarity index 94% rename from fusee_cpp/program/sdram_params/lz/sdram_params_erista_2.lz4 rename to fusee_cpp/program/sdram_params/lz/sdram_params_erista_0_1.lz4 index a8ee8d010..5aa1ea39b 100644 Binary files a/fusee_cpp/program/sdram_params/lz/sdram_params_erista_2.lz4 and b/fusee_cpp/program/sdram_params/lz/sdram_params_erista_0_1.lz4 differ diff --git a/fusee_cpp/program/sdram_params/lz/sdram_params_erista_1.lz4 b/fusee_cpp/program/sdram_params/lz/sdram_params_erista_1.lz4 deleted file mode 100644 index 6e0171879..000000000 Binary files a/fusee_cpp/program/sdram_params/lz/sdram_params_erista_1.lz4 and /dev/null differ diff --git a/fusee_cpp/program/sdram_params/lz/sdram_params_erista_0.lz4 b/fusee_cpp/program/sdram_params/lz/sdram_params_erista_2_3.lz4 similarity index 95% rename from fusee_cpp/program/sdram_params/lz/sdram_params_erista_0.lz4 rename to fusee_cpp/program/sdram_params/lz/sdram_params_erista_2_3.lz4 index a8ee8d010..2a47d2537 100644 Binary files a/fusee_cpp/program/sdram_params/lz/sdram_params_erista_0.lz4 and b/fusee_cpp/program/sdram_params/lz/sdram_params_erista_2_3.lz4 differ diff --git a/fusee_cpp/program/sdram_params/lz/sdram_params_erista_3.lz4 b/fusee_cpp/program/sdram_params/lz/sdram_params_erista_3.lz4 deleted file mode 100644 index 2147f1de1..000000000 Binary files a/fusee_cpp/program/sdram_params/lz/sdram_params_erista_3.lz4 and /dev/null differ diff --git a/fusee_cpp/program/sdram_params/lz/sdram_params_erista_4.lz4 b/fusee_cpp/program/sdram_params/lz/sdram_params_erista_4_5.lz4 similarity index 87% rename from fusee_cpp/program/sdram_params/lz/sdram_params_erista_4.lz4 rename to fusee_cpp/program/sdram_params/lz/sdram_params_erista_4_5.lz4 index d19f02d46..9e22b4421 100644 Binary files a/fusee_cpp/program/sdram_params/lz/sdram_params_erista_4.lz4 and b/fusee_cpp/program/sdram_params/lz/sdram_params_erista_4_5.lz4 differ diff --git a/fusee_cpp/program/sdram_params/lz/sdram_params_erista_5.lz4 b/fusee_cpp/program/sdram_params/lz/sdram_params_erista_5.lz4 deleted file mode 100644 index b3ba64c39..000000000 Binary files a/fusee_cpp/program/sdram_params/lz/sdram_params_erista_5.lz4 and /dev/null differ diff --git a/fusee_cpp/program/sdram_params/lz/sdram_params_erista_6.lz4 b/fusee_cpp/program/sdram_params/lz/sdram_params_erista_6_7.lz4 similarity index 96% rename from fusee_cpp/program/sdram_params/lz/sdram_params_erista_6.lz4 rename to fusee_cpp/program/sdram_params/lz/sdram_params_erista_6_7.lz4 index 6658a6129..b0402b601 100644 Binary files a/fusee_cpp/program/sdram_params/lz/sdram_params_erista_6.lz4 and b/fusee_cpp/program/sdram_params/lz/sdram_params_erista_6_7.lz4 differ diff --git a/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_0.lz4 b/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_0_1.lz4 similarity index 90% rename from fusee_cpp/program/sdram_params/lz/sdram_params_mariko_0.lz4 rename to fusee_cpp/program/sdram_params/lz/sdram_params_mariko_0_1.lz4 index c2e27cdd6..2ff9fd5fd 100644 Binary files a/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_0.lz4 and b/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_0_1.lz4 differ diff --git a/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_1.lz4 b/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_1.lz4 deleted file mode 100644 index 9bf1a22c0..000000000 Binary files a/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_1.lz4 and /dev/null differ diff --git a/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_10.lz4 b/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_10_11.lz4 similarity index 78% rename from fusee_cpp/program/sdram_params/lz/sdram_params_mariko_10.lz4 rename to fusee_cpp/program/sdram_params/lz/sdram_params_mariko_10_11.lz4 index f5df3c449..d0f54db21 100644 Binary files a/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_10.lz4 and b/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_10_11.lz4 differ diff --git a/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_11.lz4 b/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_11.lz4 deleted file mode 100644 index d57af5838..000000000 Binary files a/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_11.lz4 and /dev/null differ diff --git a/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_12.lz4 b/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_12_13.lz4 similarity index 96% rename from fusee_cpp/program/sdram_params/lz/sdram_params_mariko_12.lz4 rename to fusee_cpp/program/sdram_params/lz/sdram_params_mariko_12_13.lz4 index a0ac152f2..ebc0d3029 100644 Binary files a/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_12.lz4 and b/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_12_13.lz4 differ diff --git a/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_2.lz4 b/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_2_3.lz4 similarity index 84% rename from fusee_cpp/program/sdram_params/lz/sdram_params_mariko_2.lz4 rename to fusee_cpp/program/sdram_params/lz/sdram_params_mariko_2_3.lz4 index 852d46d6c..d3cd2126c 100644 Binary files a/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_2.lz4 and b/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_2_3.lz4 differ diff --git a/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_3.lz4 b/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_3.lz4 deleted file mode 100644 index 9bf1a22c0..000000000 Binary files a/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_3.lz4 and /dev/null differ diff --git a/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_4.lz4 b/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_4_5.lz4 similarity index 91% rename from fusee_cpp/program/sdram_params/lz/sdram_params_mariko_4.lz4 rename to fusee_cpp/program/sdram_params/lz/sdram_params_mariko_4_5.lz4 index 9262ace6f..7392208b6 100644 Binary files a/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_4.lz4 and b/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_4_5.lz4 differ diff --git a/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_5.lz4 b/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_5.lz4 deleted file mode 100644 index 5185b6350..000000000 Binary files a/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_5.lz4 and /dev/null differ diff --git a/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_6.lz4 b/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_6_7.lz4 similarity index 87% rename from fusee_cpp/program/sdram_params/lz/sdram_params_mariko_6.lz4 rename to fusee_cpp/program/sdram_params/lz/sdram_params_mariko_6_7.lz4 index dec50df95..a1aa66a4c 100644 Binary files a/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_6.lz4 and b/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_6_7.lz4 differ diff --git a/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_7.lz4 b/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_7.lz4 deleted file mode 100644 index 3e1bbe7ee..000000000 Binary files a/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_7.lz4 and /dev/null differ diff --git a/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_8.lz4 b/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_8_9.lz4 similarity index 87% rename from fusee_cpp/program/sdram_params/lz/sdram_params_mariko_8.lz4 rename to fusee_cpp/program/sdram_params/lz/sdram_params_mariko_8_9.lz4 index 03ed21baf..287d51c75 100644 Binary files a/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_8.lz4 and b/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_8_9.lz4 differ diff --git a/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_9.lz4 b/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_9.lz4 deleted file mode 100644 index 93b6869f7..000000000 Binary files a/fusee_cpp/program/sdram_params/lz/sdram_params_mariko_9.lz4 and /dev/null differ diff --git a/fusee_cpp/program/source/fusee_sdram.cpp b/fusee_cpp/program/source/fusee_sdram.cpp index 8f0cbd970..c5817743b 100644 --- a/fusee_cpp/program/source/fusee_sdram.cpp +++ b/fusee_cpp/program/source/fusee_sdram.cpp @@ -39,17 +39,24 @@ namespace ams::nxboot { #include "fusee_sdram_params.inc" + #include "fusee_sdram_params_lp0_erista.inc" + #include "fusee_sdram_params_lp0_mariko.inc" + void *GetSdramParams(fuse::SocType soc_type) { /* Get DRAM Id. */ const auto dram_id = fuse::GetDramId(); /* Extract to work buffer. */ - void *sdram_params_work_buffer = reinterpret_cast(0x4003D000); + void *sdram_params_work_buffer; if (soc_type == fuse::SocType_Erista) { - #define HANDLE_DRAM_CASE(_DRAM_ID_, _INDEX_) \ - case _DRAM_ID_: \ - Uncompress(sdram_params_work_buffer, sizeof(BootSdramParams), SdramParamsErista##_INDEX_, sizeof(SdramParamsErista##_INDEX_)); \ + sdram_params_work_buffer = reinterpret_cast(0x4003E000 - 2 * sizeof(BootSdramParams)); + #define HANDLE_DRAM_CASE(_DRAM_ID_, _INDEX_) \ + case _DRAM_ID_: \ + Uncompress(sdram_params_work_buffer, 2 * sizeof(BootSdramParams), SdramParamsErista##_INDEX_, SdramParamsSizeErista##_INDEX_); \ + if (_INDEX_ & 1) { \ + sdram_params_work_buffer = reinterpret_cast(reinterpret_cast(sdram_params_work_buffer) + sizeof(BootSdramParams)); \ + } \ break; switch (dram_id) { HANDLE_DRAM_CASE(0, 0) @@ -66,9 +73,13 @@ namespace ams::nxboot { return static_cast *>(sdram_params_work_buffer); } else /* if (soc_type == fuse::SocType_Mariko) */ { - #define HANDLE_DRAM_CASE(_DRAM_ID_, _INDEX_) \ - case _DRAM_ID_: \ - Uncompress(sdram_params_work_buffer, sizeof(BootSdramParams), SdramParamsMariko##_INDEX_, sizeof(SdramParamsMariko##_INDEX_)); \ + sdram_params_work_buffer = reinterpret_cast(0x4003E000 - 2 * sizeof(BootSdramParams)); + #define HANDLE_DRAM_CASE(_DRAM_ID_, _INDEX_) \ + case _DRAM_ID_: \ + Uncompress(sdram_params_work_buffer, 2 * sizeof(BootSdramParams), SdramParamsMariko##_INDEX_, SdramParamsSizeMariko##_INDEX_); \ + if (_INDEX_ & 1) { \ + sdram_params_work_buffer = reinterpret_cast(reinterpret_cast(sdram_params_work_buffer) + sizeof(BootSdramParams)); \ + } \ break; switch (dram_id) { HANDLE_DRAM_CASE( 3, 12) @@ -913,9 +924,132 @@ namespace ams::nxboot { } } + consteval u32 GetBitMask32(u32 range) { + if (range == BITSIZEOF(u32)) { + return 0xFFFFFFFF; + } else { + return (1u << range) - 1; + } + } + template void SaveSdramParamsToScratch(BootSdramParams *params) { - /* TODO */ + /* Clear the carveout parameters. */ + params->McGeneralizedCarveout1Cfg0 = 0; + params->McGeneralizedCarveout2Cfg0 = 0; + params->McGeneralizedCarveout3Cfg0 = 0; + params->McGeneralizedCarveout4Cfg0 = 0; + params->McGeneralizedCarveout5Cfg0 = 0; + + /* Patch spare write. */ + { + /* TODO: Clean this up? */ + u32 t0 = params->EmcSwizzleRank0Byte0 << 5 >> 29 > params->EmcSwizzleRank0Byte0 << 1 >> 29; + u32 t1 = (t0 & 0xFFFFFFEF) | ((params->EmcSwizzleRank1Byte0 << 5 >> 29 > params->EmcSwizzleRank1Byte0 << 1 >> 29) << 4); + u32 t2 = (t1 & 0xFFFFFFFD) | ((params->EmcSwizzleRank0Byte1 << 5 >> 29 > params->EmcSwizzleRank0Byte1 << 1 >> 29) << 1); + u32 t3 = (t2 & 0xFFFFFFDF) | ((params->EmcSwizzleRank1Byte1 << 5 >> 29 > params->EmcSwizzleRank1Byte1 << 1 >> 29) << 5); + u32 t4 = (t3 & 0xFFFFFFFB) | ((params->EmcSwizzleRank0Byte2 << 5 >> 29 > params->EmcSwizzleRank0Byte2 << 1 >> 29) << 2); + u32 t5 = (t4 & 0xFFFFFFBF) | ((params->EmcSwizzleRank1Byte2 << 5 >> 29 > params->EmcSwizzleRank1Byte2 << 1 >> 29) << 6); + u32 t6 = (t5 & 0xFFFFFFF7) | ((params->EmcSwizzleRank0Byte3 << 5 >> 29 > params->EmcSwizzleRank0Byte3 << 1 >> 29) << 3); + u32 t7 = (t6 & 0xFFFFFF7F) | ((params->EmcSwizzleRank1Byte3 << 5 >> 29 > params->EmcSwizzleRank1Byte3 << 1 >> 29) << 7); + + params->SwizzleRankByteEncode = t7; + + params->EmcBctSpare2 = 0x40000DD8; + params->EmcBctSpare3 = params->SwizzleRankByteEncode; + } + + /* Save parameters to scratch. */ + { + u32 cur_reg_offset = APBDEV_PMC_SCRATCH6; + u32 cur_reg_value = reg::Read(PMC + cur_reg_offset); + + #define RANGE_HIGH(RANGE) (1 ? RANGE) + #define RANGE_LOW(RANGE) (0 ? RANGE) + + static_assert(RANGE_HIGH(31:0) - RANGE_LOW(31:0) + 1 == BITSIZEOF(u32)); + + #define PROCESS_IMPL(PARAM, SCRATCH, SRC_RANGE, DST_RANGE, DO_READ) \ + { \ + constexpr u32 RegisterOffset = APBDEV_PMC_##SCRATCH; \ + \ + if (RegisterOffset != cur_reg_offset) { \ + reg::Write(PMC + cur_reg_offset, cur_reg_value); \ + cur_reg_offset = RegisterOffset; \ + if constexpr (DO_READ) { \ + cur_reg_value = reg::Read(PMC + RegisterOffset); \ + } else { \ + cur_reg_value = 0; \ + } \ + } \ + \ + constexpr u32 SrcRange = RANGE_HIGH(SRC_RANGE) - RANGE_LOW(SRC_RANGE) + 1; \ + constexpr u32 DstRange = RANGE_HIGH(DST_RANGE) - RANGE_LOW(DST_RANGE) + 1; \ + static_assert(SrcRange == DstRange); \ + static_assert(SrcRange <= BITSIZEOF(u32)); \ + \ + const u32 src_value = params->PARAM; \ + if constexpr (SrcRange == BITSIZEOF(u32)) { \ + cur_reg_value = src_value; \ + } else if constexpr (SrcRange < BITSIZEOF(u32)) { \ + constexpr u32 Mask = GetBitMask32(SrcRange) << RANGE_LOW(DST_RANGE); \ + \ + constexpr u32 SrcLow = RANGE_LOW(SRC_RANGE); \ + constexpr u32 DstLow = RANGE_LOW(DST_RANGE); \ + \ + cur_reg_value &= ~Mask; \ + if constexpr (SrcLow == DstLow) { \ + cur_reg_value |= (src_value & Mask); \ + } else if constexpr (SrcLow < DstLow) { \ + cur_reg_value |= ((src_value << (DstLow - SrcLow)) & Mask); \ + } else { \ + cur_reg_value |= ((src_value >> (SrcLow - DstLow)) & Mask); \ + } \ + } \ + } + + #define PROCESS_SCRATCH(PARAM, S, SRC_RANGE, DST_RANGE) PROCESS_IMPL(PARAM, SCRATCH##S, SRC_RANGE, DST_RANGE, true) + #define PROCESS_SECURE_SCRATCH(PARAM, S, SRC_RANGE, DST_RANGE) PROCESS_IMPL(PARAM, SECURE_SCRATCH##S, SRC_RANGE, DST_RANGE, true) + + #define PROCESS_COMMON_SCRATCH(PARAM, S, SRC_RANGE, DST_RANGE) PROCESS_IMPL(PARAM, SCRATCH##S, SRC_RANGE, DST_RANGE, false) + + if constexpr (SocType == fuse::SocType_Erista) { + FOREACH_SDRAM_SCRATCH_REGISTER_ERISTA(PROCESS_SCRATCH); + FOREACH_SDRAM_SECURE_SCRATCH_REGISTER_ERISTA(PROCESS_SECURE_SCRATCH); + } else /* if constexpr (SocType == fuse::SocType_Mariko) */ { + FOREACH_SDRAM_SCRATCH_REGISTER_MARIKO(PROCESS_SCRATCH); + FOREACH_SDRAM_SECURE_SCRATCH_REGISTER_MARIKO(PROCESS_SECURE_SCRATCH); + } + + /* Manually process final fields. */ + PROCESS_COMMON_SCRATCH(PllMInputDivider, 2, 7:0, 7:0); + PROCESS_COMMON_SCRATCH(PllMFeedbackDivider, 2, 7:0, 15:8); + PROCESS_COMMON_SCRATCH(PllMPostDivider, 2, 4:0, 20:16); + PROCESS_COMMON_SCRATCH(PllMKVCO, 2, 0:0, 17:17); + PROCESS_COMMON_SCRATCH(PllMKCP, 2, 1:0, 19:18); + + PROCESS_COMMON_SCRATCH(PllMSetupControl, 35, 15:0, 15:0); + + PROCESS_COMMON_SCRATCH(PllMInputDivider, 3, 7:0, 7:0); + cur_reg_value |= 0x3E << 8; + PROCESS_COMMON_SCRATCH(PllMKVCO, 3, 0:0, 21:21); + PROCESS_COMMON_SCRATCH(PllMKCP, 3, 1:0, 23:22); + + PROCESS_COMMON_SCRATCH(PllMSetupControl, 36, 23:0, 23:0); + + PROCESS_COMMON_SCRATCH(PllMStableTime, 4, 9:0, 9:0); + PROCESS_COMMON_SCRATCH(PllMStableTime, 4, 21:0, 31:10); + + /* Write the final field value. */ + reg::Write(PMC + cur_reg_offset, cur_reg_value); + + #undef PROCESS_COMMON_SCRATCH + #undef PROCESS_SECURE_SCRATCH + #undef PROCESS_SCRATCH + #undef PROCESS_IMPL + #undef RANGE_LOW + #undef RANGE_HIGH + } } template diff --git a/fusee_cpp/program/source/fusee_sdram_params.inc b/fusee_cpp/program/source/fusee_sdram_params.inc index 6fbf35e83..84a31418d 100644 --- a/fusee_cpp/program/source/fusee_sdram_params.inc +++ b/fusee_cpp/program/source/fusee_sdram_params.inc @@ -14,7 +14,7 @@ * along with this program. If not, see . */ -constexpr inline const u8 SdramParamsErista0[0x3AC] = { +constexpr inline const u8 SdramParamsErista0_1[0x3CB] = { 0xFF, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x2C, 0x01, 0x00, 0x01, 0x00, 0x0E, 0xFC, 0x05, 0x68, 0xBC, 0x01, 0x70, 0x0A, 0x00, 0x00, 0x00, 0x04, 0xB4, 0x01, 0x70, 0x01, 0x32, 0x54, 0x76, 0xC8, 0xE6, 0x00, 0x70, 0x24, 0x00, 0xC8, 0x34, 0x00, 0x00, @@ -73,72 +73,18 @@ constexpr inline const u8 SdramParamsErista0[0x3AC] = { 0x02, 0x01, 0x05, 0x34, 0x00, 0x0F, 0x3A, 0x00, 0x04, 0x38, 0x7E, 0x16, 0x40, 0x9F, 0x05, 0x0F, 0x38, 0x00, 0x17, 0x3F, 0x1E, 0x40, 0x04, 0xA8, 0x00, 0x08, 0x2F, 0x00, 0xC0, 0x55, 0x00, 0x04, 0x3F, 0x46, 0x24, 0x00, 0x38, 0x00, 0x0A, 0x0F, 0x01, 0x00, 0x05, 0x22, 0x46, 0x2C, 0x38, 0x00, - 0x2F, 0xEC, 0x00, 0x3C, 0x01, 0x02, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2F, 0xEC, 0x00, 0x3C, 0x01, 0x07, 0x0F, 0x68, 0x07, 0xF9, 0x1F, 0x0D, 0x68, 0x07, 0x4C, 0x03, + 0x5F, 0x01, 0x1F, 0x80, 0x68, 0x07, 0xFF, 0xFF, 0xFF, 0x71, 0x1F, 0x02, 0x68, 0x07, 0xB7, 0x1F, + 0x05, 0x68, 0x07, 0xFF, 0x90, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, }; -constexpr inline const u8 SdramParamsErista1[0x3AC] = { - 0xFF, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x2C, 0x01, - 0x00, 0x01, 0x00, 0x0E, 0xFC, 0x05, 0x68, 0xBC, 0x01, 0x70, 0x0A, 0x00, 0x00, 0x00, 0x04, 0xB4, - 0x01, 0x70, 0x01, 0x32, 0x54, 0x76, 0xC8, 0xE6, 0x00, 0x70, 0x24, 0x00, 0xC8, 0x34, 0x00, 0x00, - 0x00, 0x02, 0x80, 0x18, 0x40, 0x00, 0x00, 0x00, 0x40, 0x18, 0x00, 0xFF, 0x01, 0xFF, 0xFF, 0x1F, - 0x00, 0xD8, 0x51, 0x1A, 0xA0, 0x00, 0x00, 0x50, 0x05, 0x00, 0x00, 0x77, 0x00, 0x04, 0x00, 0x01, - 0xD3, 0xA6, 0xA6, 0xAF, 0xB3, 0x3C, 0x9E, 0x00, 0x00, 0x03, 0x03, 0xE0, 0xC1, 0x04, 0x01, 0x00, - 0x00, 0x3C, 0x00, 0x19, 0x1F, 0x01, 0x00, 0x42, 0x00, 0x00, 0x04, 0x08, 0x46, 0x00, 0x57, 0xA1, - 0x01, 0x00, 0x00, 0x32, 0x64, 0x00, 0x00, 0xC3, 0x00, 0x13, 0x02, 0x0C, 0x00, 0x13, 0x03, 0x04, - 0x00, 0xD7, 0x1E, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x13, 0x2C, - 0x00, 0x10, 0x09, 0xC8, 0x00, 0x07, 0x10, 0x00, 0x13, 0x0D, 0x04, 0x00, 0x53, 0x08, 0x00, 0x00, - 0x00, 0x0B, 0x1C, 0x00, 0x57, 0x20, 0x00, 0x00, 0x00, 0x06, 0x04, 0x00, 0x13, 0x03, 0x2C, 0x00, - 0x13, 0x04, 0x10, 0x00, 0x17, 0x02, 0x10, 0x00, 0x13, 0x08, 0x40, 0x00, 0x13, 0x05, 0x1C, 0x00, - 0x04, 0x58, 0x00, 0x13, 0x02, 0x18, 0x00, 0x03, 0x5F, 0x01, 0x10, 0x80, 0x0A, 0x00, 0xB5, 0x12, - 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x0C, 0x00, 0x01, 0x58, 0x01, 0x03, - 0x61, 0x00, 0x13, 0xC1, 0x50, 0x00, 0x17, 0x08, 0xC8, 0x00, 0x13, 0x03, 0x28, 0x00, 0x17, 0x05, - 0x54, 0x00, 0x13, 0x27, 0x04, 0x00, 0x13, 0x05, 0x04, 0x00, 0x13, 0x04, 0xD8, 0x00, 0x08, 0x0C, - 0x00, 0xA0, 0x1C, 0x03, 0x00, 0x00, 0x0D, 0xA0, 0x60, 0x91, 0xBF, 0x3B, 0x5A, 0x00, 0xF1, 0x28, - 0xF3, 0x0C, 0x04, 0x05, 0x1B, 0x06, 0x02, 0x03, 0x07, 0x1C, 0x23, 0x25, 0x25, 0x05, 0x08, 0x1D, - 0x09, 0x0A, 0x24, 0x0B, 0x1E, 0x0D, 0x0C, 0x26, 0x26, 0x03, 0x02, 0x1B, 0x1C, 0x23, 0x03, 0x04, - 0x07, 0x05, 0x06, 0x25, 0x25, 0x02, 0x0A, 0x0B, 0x1D, 0x0D, 0x08, 0x0C, 0x09, 0x1E, 0x24, 0x26, - 0x26, 0x08, 0x24, 0x06, 0x07, 0x9A, 0x12, 0xC1, 0x01, 0x2C, 0x00, 0xFF, 0xEC, 0x01, 0xB0, 0x04, - 0x00, 0x01, 0x08, 0x00, 0x00, 0x02, 0x08, 0x00, 0x00, 0x0D, 0xAB, 0x00, 0xD0, 0xC0, 0x71, 0x71, - 0x03, 0x08, 0x00, 0x00, 0x0B, 0x08, 0x72, 0x72, 0x0E, 0x0C, 0x20, 0x00, 0xC2, 0x08, 0x08, 0x0D, - 0x0C, 0x00, 0x00, 0x0D, 0x0C, 0x14, 0x14, 0x16, 0x08, 0x2C, 0x00, 0x2C, 0x11, 0x08, 0x67, 0x02, - 0x70, 0x15, 0x00, 0xCC, 0x00, 0x0A, 0x00, 0x33, 0x6E, 0x01, 0x94, 0xF3, 0x05, 0x08, 0x11, 0x00, - 0xFF, 0x0F, 0xFF, 0x0F, 0xCC, 0x01, 0x80, 0x01, 0x03, 0x00, 0x70, 0x00, 0x0C, 0x00, 0x01, 0x0C, - 0x00, 0xC0, 0x08, 0x44, 0x00, 0x10, 0x04, 0x04, 0x00, 0x06, 0x13, 0x07, 0x00, 0x80, 0x10, 0x00, - 0x62, 0xA0, 0x00, 0x2C, 0x00, 0x01, 0x37, 0x52, 0x01, 0x01, 0x6C, 0x00, 0xC3, 0x00, 0x04, 0x00, - 0x1F, 0x22, 0x20, 0x80, 0x0F, 0xF4, 0x20, 0x02, 0x28, 0x01, 0x00, 0x13, 0x11, 0x01, 0x00, 0x10, - 0xBE, 0xBF, 0x00, 0x12, 0x0F, 0x02, 0x00, 0x1F, 0x00, 0x01, 0x00, 0x2C, 0x7F, 0x14, 0x00, 0x12, - 0x00, 0x10, 0x00, 0x14, 0x18, 0x00, 0x06, 0xF3, 0x02, 0x30, 0x00, 0x2E, 0x00, 0x33, 0x00, 0x30, - 0x00, 0x33, 0x00, 0x35, 0x00, 0x30, 0x00, 0x32, 0x00, 0x05, 0x20, 0x00, 0x0F, 0x18, 0x00, 0x05, - 0x1F, 0x28, 0x02, 0x00, 0x0C, 0x11, 0x14, 0x5A, 0x00, 0x00, 0x5C, 0x00, 0x11, 0x10, 0x0C, 0x00, - 0x0C, 0x7A, 0x00, 0x05, 0x50, 0x01, 0xA4, 0x40, 0x06, 0x00, 0xCC, 0x00, 0x09, 0x00, 0x4F, 0x00, - 0x51, 0x18, 0x00, 0x00, 0x28, 0x01, 0x23, 0x40, 0x01, 0x3C, 0x02, 0x54, 0xAB, 0x00, 0x0A, 0x04, - 0x11, 0x58, 0x01, 0x03, 0x04, 0x00, 0x0F, 0xEC, 0x00, 0x0D, 0x17, 0x02, 0x0C, 0x00, 0x17, 0x03, - 0x60, 0x03, 0x02, 0xA1, 0x01, 0x7B, 0x22, 0x04, 0xFF, 0xFF, 0xAF, 0x4F, 0x01, 0x28, 0x00, 0x00, - 0x01, 0x00, 0x32, 0x8B, 0xFF, 0x07, 0x84, 0x00, 0xF0, 0x10, 0x32, 0x54, 0x76, 0x10, 0x47, 0x32, - 0x65, 0x10, 0x34, 0x76, 0x25, 0x01, 0x34, 0x67, 0x25, 0x01, 0x75, 0x64, 0x32, 0x01, 0x72, 0x56, - 0x34, 0x10, 0x23, 0x74, 0x56, 0x01, 0x45, 0x32, 0x67, 0x24, 0x00, 0x31, 0x49, 0x92, 0x24, 0x04, - 0x00, 0x0C, 0x01, 0x00, 0x13, 0x1B, 0x04, 0x00, 0x0C, 0x94, 0x00, 0x80, 0x2F, 0x41, 0x13, 0x1F, - 0x14, 0x00, 0x01, 0x00, 0x7C, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x7F, 0x0B, 0xD7, 0x06, 0x40, 0x82, - 0x00, 0xB2, 0x08, 0x08, 0x03, 0x00, 0x00, 0x5C, 0x01, 0x00, 0x10, 0x10, 0x10, 0x59, 0x03, 0x0B, - 0x94, 0x04, 0x13, 0x37, 0x72, 0x01, 0x21, 0x10, 0x02, 0x8D, 0x01, 0x31, 0x00, 0x11, 0x01, 0xB9, - 0x02, 0x00, 0x1F, 0x00, 0x13, 0x0A, 0xA9, 0x04, 0x17, 0x10, 0x77, 0x03, 0x05, 0x12, 0x00, 0x00, - 0x04, 0x04, 0xCF, 0x81, 0x10, 0x09, 0x28, 0x93, 0x32, 0xA5, 0x44, 0x5B, 0x8A, 0x67, 0x76, 0x2C, - 0x01, 0x05, 0x53, 0xFF, 0xEF, 0xFF, 0xEF, 0xC0, 0x01, 0x00, 0x57, 0xDC, 0xDC, 0xDC, 0xDC, 0x0A, - 0x01, 0x00, 0x01, 0x24, 0x01, 0x21, 0x03, 0x07, 0x04, 0x00, 0xF1, 0x03, 0x00, 0x24, 0xFF, 0xFF, - 0x00, 0x44, 0x57, 0x6E, 0x00, 0x28, 0x72, 0x39, 0x00, 0x10, 0x9C, 0x4B, 0x00, 0x10, 0x58, 0x01, - 0xB2, 0x08, 0x4C, 0x00, 0x00, 0x80, 0x20, 0x10, 0x0A, 0x00, 0x28, 0x10, 0xE0, 0x02, 0x0C, 0x74, - 0x01, 0x04, 0x08, 0x00, 0x17, 0x05, 0x10, 0x00, 0x08, 0xF8, 0x03, 0xE4, 0x01, 0x00, 0x02, 0x02, - 0x01, 0x02, 0x03, 0x00, 0x04, 0x05, 0xC3, 0x71, 0x0F, 0x0F, 0x98, 0x05, 0x14, 0x1F, 0xD8, 0x00, - 0x01, 0xC0, 0x03, 0x14, 0x01, 0xDD, 0x00, 0x14, 0x80, 0xB6, 0x00, 0x15, 0xF0, 0xD4, 0x03, 0x68, - 0x43, 0xC3, 0xBA, 0xE4, 0xD3, 0x1E, 0xD2, 0x00, 0x2F, 0xF0, 0xFF, 0xEC, 0x00, 0x05, 0x19, 0x08, - 0x0E, 0x00, 0x14, 0x30, 0xAB, 0x00, 0x0F, 0x2C, 0x00, 0x02, 0x4F, 0x76, 0x0C, 0x00, 0x04, 0x50, - 0x02, 0x01, 0x05, 0x34, 0x00, 0x0F, 0x3A, 0x00, 0x04, 0x38, 0x7E, 0x16, 0x40, 0x9F, 0x05, 0x0F, - 0x38, 0x00, 0x17, 0x3F, 0x1E, 0x40, 0x04, 0xA8, 0x00, 0x08, 0x2F, 0x00, 0xC0, 0x55, 0x00, 0x04, - 0x3F, 0x46, 0x24, 0x00, 0x38, 0x00, 0x0A, 0x0F, 0x01, 0x00, 0x05, 0x22, 0x46, 0x2C, 0x38, 0x00, - 0x2F, 0xEC, 0x00, 0x3C, 0x01, 0x02, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, -}; +constexpr inline const u8 * const SdramParamsErista0 = SdramParamsErista0_1; +constexpr inline const size_t SdramParamsSizeErista0 = sizeof(SdramParamsErista0_1); -constexpr inline const u8 SdramParamsErista2[0x3AC] = { +constexpr inline const u8 * const SdramParamsErista1 = SdramParamsErista0_1; +constexpr inline const size_t SdramParamsSizeErista1 = sizeof(SdramParamsErista0_1); + +constexpr inline const u8 SdramParamsErista2_3[0x3C7] = { 0xFF, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x2C, 0x01, 0x00, 0x01, 0x00, 0x0E, 0xFC, 0x05, 0x68, 0xBC, 0x01, 0x70, 0x0A, 0x00, 0x00, 0x00, 0x04, 0xB4, 0x01, 0x70, 0x01, 0x32, 0x54, 0x76, 0xC8, 0xE6, 0x00, 0x70, 0x24, 0x00, 0xC8, 0x34, 0x00, 0x00, @@ -197,72 +143,18 @@ constexpr inline const u8 SdramParamsErista2[0x3AC] = { 0x02, 0x01, 0x05, 0x34, 0x00, 0x0F, 0x3A, 0x00, 0x04, 0x38, 0x7E, 0x16, 0x40, 0x9F, 0x05, 0x0F, 0x38, 0x00, 0x17, 0x3F, 0x1E, 0x40, 0x04, 0xA8, 0x00, 0x08, 0x2F, 0x00, 0xC0, 0x55, 0x00, 0x04, 0x3F, 0x46, 0x24, 0x00, 0x38, 0x00, 0x0A, 0x0F, 0x01, 0x00, 0x05, 0x22, 0x46, 0x2C, 0x38, 0x00, - 0x2F, 0xEC, 0x00, 0x3C, 0x01, 0x02, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2F, 0xEC, 0x00, 0x3C, 0x01, 0x07, 0x0F, 0x68, 0x07, 0xFF, 0x9E, 0x1F, 0x12, 0x68, 0x07, 0x18, + 0x1F, 0x03, 0x68, 0x07, 0xFF, 0xFF, 0xAE, 0x13, 0x12, 0x04, 0x00, 0x0F, 0x68, 0x07, 0xFF, 0xFF, + 0xAE, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, }; -constexpr inline const u8 SdramParamsErista3[0x3B0] = { - 0xFF, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x2C, 0x01, - 0x00, 0x01, 0x00, 0x0E, 0xFC, 0x05, 0x68, 0xBC, 0x01, 0x70, 0x0A, 0x00, 0x00, 0x00, 0x04, 0xB4, - 0x01, 0x70, 0x01, 0x32, 0x54, 0x76, 0xC8, 0xE6, 0x00, 0x70, 0x24, 0x00, 0xC8, 0x34, 0x00, 0x00, - 0x00, 0x02, 0x80, 0x18, 0x40, 0x00, 0x00, 0x00, 0x40, 0x18, 0x00, 0xFF, 0x01, 0xFF, 0xFF, 0x1F, - 0x00, 0xD8, 0x51, 0x1A, 0xA0, 0x00, 0x00, 0x50, 0x05, 0x00, 0x00, 0x77, 0x00, 0x04, 0x00, 0x01, - 0xD3, 0xA6, 0xA6, 0xAF, 0xB3, 0x3C, 0x9E, 0x00, 0x00, 0x03, 0x03, 0xE0, 0xC1, 0x04, 0x01, 0x00, - 0x00, 0x3C, 0x00, 0x19, 0x1F, 0x01, 0x00, 0x42, 0x00, 0x00, 0x04, 0x08, 0x46, 0x00, 0x57, 0xA1, - 0x01, 0x00, 0x00, 0x32, 0x64, 0x00, 0x00, 0xC3, 0x00, 0x13, 0x02, 0x0C, 0x00, 0x13, 0x03, 0x04, - 0x00, 0xD7, 0x1E, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x13, 0x2C, - 0x00, 0x10, 0x09, 0xC8, 0x00, 0x07, 0x10, 0x00, 0x13, 0x0B, 0x28, 0x00, 0x13, 0x08, 0x0C, 0x00, - 0x00, 0x1C, 0x00, 0x57, 0x20, 0x00, 0x00, 0x00, 0x06, 0x04, 0x00, 0x13, 0x03, 0x2C, 0x00, 0x13, - 0x04, 0x10, 0x00, 0x17, 0x02, 0x10, 0x00, 0x13, 0x08, 0x40, 0x00, 0x13, 0x05, 0x1C, 0x00, 0x04, - 0x58, 0x00, 0x13, 0x02, 0x18, 0x00, 0x04, 0x64, 0x00, 0x00, 0xA6, 0x00, 0xB5, 0x12, 0x00, 0x00, - 0x00, 0x14, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x0C, 0x00, 0x01, 0x58, 0x01, 0x03, 0x61, 0x00, - 0x13, 0xC1, 0x50, 0x00, 0x17, 0x08, 0xC8, 0x00, 0x13, 0x03, 0x2C, 0x00, 0x17, 0x05, 0x54, 0x00, - 0x13, 0x27, 0x04, 0x00, 0x13, 0x05, 0x04, 0x00, 0x13, 0x04, 0xD8, 0x00, 0x13, 0x05, 0x30, 0x00, - 0x00, 0x0C, 0x00, 0xA0, 0x1C, 0x03, 0x00, 0x00, 0x0D, 0xA0, 0x60, 0x91, 0xBF, 0x3B, 0x5A, 0x00, - 0xF1, 0x28, 0xF3, 0x0C, 0x04, 0x05, 0x1B, 0x06, 0x02, 0x03, 0x07, 0x1C, 0x23, 0x25, 0x25, 0x05, - 0x08, 0x1D, 0x09, 0x0A, 0x24, 0x0B, 0x1E, 0x0D, 0x0C, 0x26, 0x26, 0x03, 0x02, 0x1B, 0x1C, 0x23, - 0x03, 0x04, 0x07, 0x05, 0x06, 0x25, 0x25, 0x02, 0x0A, 0x0B, 0x1D, 0x0D, 0x08, 0x0C, 0x09, 0x1E, - 0x24, 0x26, 0x26, 0x08, 0x24, 0x06, 0x07, 0x9A, 0x12, 0xC1, 0x01, 0x2C, 0x00, 0xFF, 0xEC, 0x01, - 0xB0, 0x04, 0x00, 0x01, 0x08, 0x00, 0x00, 0x02, 0x08, 0x00, 0x00, 0x0D, 0xAB, 0x00, 0xD0, 0xC0, - 0x71, 0x71, 0x03, 0x08, 0x00, 0x00, 0x0B, 0x08, 0x72, 0x72, 0x0E, 0x0C, 0x20, 0x00, 0xC2, 0x08, - 0x08, 0x0D, 0x0C, 0x00, 0x00, 0x0D, 0x0C, 0x14, 0x14, 0x16, 0x08, 0x2C, 0x00, 0x2C, 0x11, 0x08, - 0x67, 0x02, 0x70, 0x15, 0x00, 0xCC, 0x00, 0x0A, 0x00, 0x33, 0x6E, 0x01, 0x94, 0xF3, 0x05, 0x08, - 0x11, 0x00, 0xFF, 0x0F, 0xFF, 0x0F, 0xCC, 0x01, 0x80, 0x01, 0x03, 0x00, 0x70, 0x00, 0x0C, 0x00, - 0x01, 0x0C, 0x00, 0xC0, 0x08, 0x44, 0x00, 0x10, 0x04, 0x04, 0x00, 0x06, 0x13, 0x07, 0x00, 0x80, - 0x10, 0x00, 0xA2, 0xA0, 0x00, 0x2C, 0x00, 0x01, 0x37, 0x00, 0x00, 0x00, 0x80, 0x48, 0x00, 0xD3, - 0x08, 0x00, 0x04, 0x00, 0x1F, 0x22, 0x20, 0x80, 0x0F, 0xF4, 0x20, 0x02, 0x28, 0x01, 0x00, 0x13, - 0x11, 0x01, 0x00, 0x10, 0xBE, 0xBF, 0x00, 0x12, 0x0F, 0x02, 0x00, 0x1F, 0x00, 0x01, 0x00, 0x2C, - 0x7F, 0x14, 0x00, 0x12, 0x00, 0x10, 0x00, 0x14, 0x18, 0x00, 0x06, 0xF3, 0x02, 0x30, 0x00, 0x2E, - 0x00, 0x33, 0x00, 0x30, 0x00, 0x33, 0x00, 0x35, 0x00, 0x30, 0x00, 0x32, 0x00, 0x05, 0x20, 0x00, - 0x0F, 0x18, 0x00, 0x05, 0x1F, 0x28, 0x02, 0x00, 0x0C, 0x11, 0x14, 0x5A, 0x00, 0x00, 0x5C, 0x00, - 0x11, 0x10, 0x0C, 0x00, 0x0C, 0x7A, 0x00, 0x05, 0x50, 0x01, 0xA4, 0x40, 0x06, 0x00, 0xCC, 0x00, - 0x09, 0x00, 0x4F, 0x00, 0x51, 0x18, 0x00, 0x00, 0x28, 0x01, 0x23, 0x40, 0x01, 0x0C, 0x02, 0x54, - 0xAB, 0x00, 0x0A, 0x04, 0x11, 0x58, 0x01, 0x03, 0x04, 0x00, 0x0F, 0xEC, 0x00, 0x0D, 0x17, 0x02, - 0x0C, 0x00, 0x17, 0x03, 0x60, 0x03, 0x02, 0xA1, 0x01, 0x7B, 0x22, 0x04, 0xFF, 0xFF, 0xAF, 0x4F, - 0x01, 0x28, 0x00, 0x00, 0x01, 0x00, 0x32, 0x8B, 0xFF, 0x07, 0x84, 0x00, 0xF0, 0x10, 0x32, 0x54, - 0x76, 0x10, 0x47, 0x32, 0x65, 0x10, 0x34, 0x76, 0x25, 0x01, 0x34, 0x67, 0x25, 0x01, 0x75, 0x64, - 0x32, 0x01, 0x72, 0x56, 0x34, 0x10, 0x23, 0x74, 0x56, 0x01, 0x45, 0x32, 0x67, 0x24, 0x00, 0x31, - 0x49, 0x92, 0x24, 0x04, 0x00, 0x0C, 0x01, 0x00, 0x13, 0x12, 0x04, 0x00, 0x0C, 0x94, 0x00, 0x80, - 0x2F, 0x41, 0x13, 0x1F, 0x14, 0x00, 0x01, 0x00, 0x7C, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x7F, 0x0B, - 0xD7, 0x06, 0x40, 0x82, 0x00, 0xB2, 0x08, 0x08, 0x03, 0x00, 0x00, 0x5C, 0x01, 0x00, 0x10, 0x10, - 0x10, 0x59, 0x03, 0x0B, 0x94, 0x04, 0x13, 0x37, 0x72, 0x01, 0x12, 0x10, 0x8D, 0x01, 0x31, 0x00, - 0x11, 0x01, 0xB9, 0x02, 0x00, 0x1F, 0x00, 0x13, 0x0A, 0xA9, 0x04, 0x17, 0x10, 0x77, 0x03, 0x05, - 0x12, 0x00, 0x00, 0x04, 0x04, 0xCF, 0x81, 0x10, 0x09, 0x28, 0x93, 0x32, 0xA5, 0x44, 0x5B, 0x8A, - 0x67, 0x76, 0x2C, 0x01, 0x05, 0x53, 0xFF, 0xEF, 0xFF, 0xEF, 0xC0, 0x01, 0x00, 0x57, 0xDC, 0xDC, - 0xDC, 0xDC, 0x0A, 0x01, 0x00, 0x01, 0x24, 0x01, 0x21, 0x03, 0x07, 0x04, 0x00, 0xF1, 0x03, 0x00, - 0x24, 0xFF, 0xFF, 0x00, 0x44, 0x57, 0x6E, 0x00, 0x28, 0x72, 0x39, 0x00, 0x10, 0x9C, 0x4B, 0x00, - 0x10, 0x58, 0x01, 0xB2, 0x08, 0x4C, 0x00, 0x00, 0x80, 0x20, 0x10, 0x0A, 0x00, 0x28, 0x10, 0xE0, - 0x02, 0x0C, 0x74, 0x01, 0x04, 0x08, 0x00, 0x17, 0x05, 0x10, 0x00, 0x17, 0x04, 0xF8, 0x03, 0xE4, - 0x01, 0x00, 0x02, 0x02, 0x01, 0x02, 0x03, 0x00, 0x04, 0x05, 0xC3, 0x71, 0x0F, 0x0F, 0x98, 0x05, - 0x15, 0x1F, 0xF3, 0x00, 0x00, 0xC0, 0x03, 0x14, 0x01, 0xDD, 0x00, 0x14, 0x80, 0xB6, 0x00, 0x15, - 0xF0, 0xD4, 0x03, 0x68, 0x43, 0xC3, 0xBA, 0xE4, 0xD3, 0x1E, 0xD2, 0x00, 0x2F, 0xF0, 0xFF, 0xEC, - 0x00, 0x05, 0x19, 0x08, 0x0E, 0x00, 0x14, 0x30, 0xAB, 0x00, 0x0F, 0x2C, 0x00, 0x02, 0x4F, 0x76, - 0x0C, 0x00, 0x04, 0x50, 0x02, 0x01, 0x05, 0x34, 0x00, 0x0F, 0x3A, 0x00, 0x04, 0x38, 0x7E, 0x16, - 0x40, 0x9F, 0x05, 0x0F, 0x38, 0x00, 0x17, 0x3F, 0x1E, 0x40, 0x04, 0xA8, 0x00, 0x08, 0x2F, 0x00, - 0xC0, 0x55, 0x00, 0x04, 0x3F, 0x46, 0x24, 0x00, 0x38, 0x00, 0x0A, 0x0F, 0x01, 0x00, 0x05, 0x22, - 0x46, 0x2C, 0x38, 0x00, 0x2F, 0xEC, 0x00, 0x3C, 0x01, 0x02, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, -}; +constexpr inline const u8 * const SdramParamsErista2 = SdramParamsErista2_3; +constexpr inline const size_t SdramParamsSizeErista2 = sizeof(SdramParamsErista2_3); -constexpr inline const u8 SdramParamsErista4[0x3AC] = { +constexpr inline const u8 * const SdramParamsErista3 = SdramParamsErista2_3; +constexpr inline const size_t SdramParamsSizeErista3 = sizeof(SdramParamsErista2_3); + +constexpr inline const u8 SdramParamsErista4_5[0x418] = { 0xFF, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x2C, 0x01, 0x00, 0x01, 0x00, 0x0E, 0xFC, 0x05, 0x68, 0xBC, 0x01, 0x70, 0x0A, 0x00, 0x00, 0x00, 0x04, 0xB4, 0x01, 0x70, 0x01, 0x32, 0x54, 0x76, 0xC8, 0xE6, 0x00, 0x70, 0x24, 0x00, 0xC8, 0x34, 0x00, 0x00, @@ -321,72 +213,23 @@ constexpr inline const u8 SdramParamsErista4[0x3AC] = { 0x02, 0x01, 0x05, 0x34, 0x00, 0x0F, 0x3A, 0x00, 0x04, 0x38, 0x7E, 0x16, 0x40, 0x9F, 0x05, 0x0F, 0x38, 0x00, 0x17, 0x3F, 0x1E, 0x40, 0x04, 0xA8, 0x00, 0x08, 0x2F, 0x00, 0xC0, 0x55, 0x00, 0x04, 0x3F, 0x46, 0x24, 0x00, 0x38, 0x00, 0x0A, 0x0F, 0x01, 0x00, 0x05, 0x22, 0x46, 0x2C, 0x38, 0x00, - 0x2F, 0xEC, 0x00, 0x3C, 0x01, 0x02, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2F, 0xEC, 0x00, 0x3C, 0x01, 0x07, 0x0F, 0x68, 0x07, 0xF9, 0x1F, 0x0D, 0x68, 0x07, 0x4C, 0x03, + 0x5F, 0x01, 0x1F, 0x80, 0x68, 0x07, 0x29, 0x1F, 0x12, 0x68, 0x07, 0x18, 0x1F, 0x03, 0x68, 0x07, + 0xFF, 0x45, 0x11, 0x15, 0xF6, 0x06, 0x1F, 0x16, 0x18, 0x00, 0x06, 0xF5, 0x00, 0x32, 0x00, 0x2F, + 0x00, 0x32, 0x00, 0x31, 0x00, 0x34, 0x00, 0x36, 0x00, 0x2F, 0x00, 0x33, 0x0C, 0x02, 0x0E, 0x18, + 0x00, 0x0F, 0x68, 0x07, 0x13, 0x13, 0x15, 0x5A, 0x00, 0x02, 0x5E, 0x00, 0x3F, 0x16, 0x00, 0x15, + 0x68, 0x07, 0xD4, 0x13, 0x12, 0x04, 0x00, 0x0F, 0x68, 0x07, 0x3E, 0x1F, 0x02, 0x68, 0x07, 0x65, + 0x11, 0x07, 0x04, 0x00, 0x0D, 0x68, 0x07, 0x1F, 0x10, 0x68, 0x07, 0x27, 0x1F, 0x05, 0x68, 0x07, + 0xFF, 0x90, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, }; -constexpr inline const u8 SdramParamsErista5[0x3B0] = { - 0xFF, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x2C, 0x01, - 0x00, 0x01, 0x00, 0x0E, 0xFC, 0x05, 0x68, 0xBC, 0x01, 0x70, 0x0A, 0x00, 0x00, 0x00, 0x04, 0xB4, - 0x01, 0x70, 0x01, 0x32, 0x54, 0x76, 0xC8, 0xE6, 0x00, 0x70, 0x24, 0x00, 0xC8, 0x34, 0x00, 0x00, - 0x00, 0x02, 0x80, 0x18, 0x40, 0x00, 0x00, 0x00, 0x40, 0x18, 0x00, 0xFF, 0x01, 0xFF, 0xFF, 0x1F, - 0x00, 0xD8, 0x51, 0x1A, 0xA0, 0x00, 0x00, 0x50, 0x05, 0x00, 0x00, 0x77, 0x00, 0x04, 0x00, 0x01, - 0xD3, 0xA6, 0xA6, 0xAF, 0xB3, 0x3C, 0x9E, 0x00, 0x00, 0x03, 0x03, 0xE0, 0xC1, 0x04, 0x01, 0x00, - 0x00, 0x3C, 0x00, 0x19, 0x1F, 0x01, 0x00, 0x42, 0x00, 0x00, 0x04, 0x08, 0x46, 0x00, 0x57, 0xA1, - 0x01, 0x00, 0x00, 0x32, 0x64, 0x00, 0x00, 0xC3, 0x00, 0x13, 0x02, 0x0C, 0x00, 0x13, 0x03, 0x04, - 0x00, 0xD7, 0x1E, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x13, 0x2C, - 0x00, 0x10, 0x09, 0xC8, 0x00, 0x07, 0x10, 0x00, 0x13, 0x0D, 0x04, 0x00, 0x53, 0x08, 0x00, 0x00, - 0x00, 0x0B, 0x1C, 0x00, 0x57, 0x20, 0x00, 0x00, 0x00, 0x06, 0x04, 0x00, 0x13, 0x03, 0x2C, 0x00, - 0x13, 0x04, 0x10, 0x00, 0x17, 0x02, 0x10, 0x00, 0x13, 0x08, 0x40, 0x00, 0x13, 0x05, 0x1C, 0x00, - 0x04, 0x58, 0x00, 0x13, 0x02, 0x18, 0x00, 0x03, 0x5F, 0x01, 0x10, 0x80, 0x0A, 0x00, 0xB5, 0x12, - 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x0C, 0x00, 0x01, 0x58, 0x01, 0x03, - 0x61, 0x00, 0x13, 0xC1, 0x50, 0x00, 0x17, 0x08, 0xC8, 0x00, 0x13, 0x03, 0x2C, 0x00, 0x17, 0x05, - 0x54, 0x00, 0x13, 0x27, 0x04, 0x00, 0x13, 0x05, 0x04, 0x00, 0x13, 0x04, 0xD8, 0x00, 0x13, 0x05, - 0x30, 0x00, 0x00, 0x0C, 0x00, 0xA0, 0x1C, 0x03, 0x00, 0x00, 0x0D, 0xA0, 0x60, 0x91, 0xBF, 0x3B, - 0x5A, 0x00, 0xF1, 0x28, 0xF3, 0x0C, 0x04, 0x05, 0x1B, 0x06, 0x02, 0x03, 0x07, 0x1C, 0x23, 0x25, - 0x25, 0x05, 0x08, 0x1D, 0x09, 0x0A, 0x24, 0x0B, 0x1E, 0x0D, 0x0C, 0x26, 0x26, 0x03, 0x02, 0x1B, - 0x1C, 0x23, 0x03, 0x04, 0x07, 0x05, 0x06, 0x25, 0x25, 0x02, 0x0A, 0x0B, 0x1D, 0x0D, 0x08, 0x0C, - 0x09, 0x1E, 0x24, 0x26, 0x26, 0x08, 0x24, 0x06, 0x07, 0x9A, 0x12, 0xC1, 0x01, 0x2C, 0x00, 0xFF, - 0xEC, 0x01, 0xB0, 0x04, 0x00, 0x01, 0x08, 0x00, 0x00, 0x02, 0x08, 0x00, 0x00, 0x0D, 0xAB, 0x00, - 0xD0, 0xC0, 0x71, 0x71, 0x03, 0x08, 0x00, 0x00, 0x0B, 0x08, 0x72, 0x72, 0x0E, 0x0C, 0x20, 0x00, - 0xC2, 0x08, 0x08, 0x0D, 0x0C, 0x00, 0x00, 0x0D, 0x0C, 0x14, 0x14, 0x16, 0x08, 0x2C, 0x00, 0x2C, - 0x11, 0x08, 0x67, 0x02, 0x70, 0x15, 0x00, 0xCC, 0x00, 0x0A, 0x00, 0x33, 0x6E, 0x01, 0x94, 0xF3, - 0x05, 0x08, 0x11, 0x00, 0xFF, 0x0F, 0xFF, 0x0F, 0xCC, 0x01, 0x80, 0x01, 0x03, 0x00, 0x70, 0x00, - 0x0C, 0x00, 0x01, 0x0C, 0x00, 0xC0, 0x08, 0x44, 0x00, 0x10, 0x04, 0x04, 0x00, 0x06, 0x13, 0x07, - 0x00, 0x80, 0x10, 0x00, 0x62, 0xA0, 0x00, 0x2C, 0x00, 0x01, 0x37, 0x52, 0x01, 0x01, 0x6C, 0x00, - 0xC3, 0x00, 0x04, 0x00, 0x1F, 0x22, 0x20, 0x80, 0x0F, 0xF4, 0x20, 0x02, 0x28, 0x01, 0x00, 0x13, - 0x11, 0x01, 0x00, 0x10, 0xBE, 0xBF, 0x00, 0x12, 0x0F, 0x02, 0x00, 0x1F, 0x00, 0x01, 0x00, 0x2C, - 0x7F, 0x15, 0x00, 0x12, 0x00, 0x12, 0x00, 0x16, 0x18, 0x00, 0x06, 0xF5, 0x00, 0x32, 0x00, 0x2F, - 0x00, 0x32, 0x00, 0x31, 0x00, 0x34, 0x00, 0x36, 0x00, 0x2F, 0x00, 0x33, 0x0C, 0x02, 0x0F, 0x18, - 0x00, 0x05, 0x1F, 0x28, 0x02, 0x00, 0x0C, 0x13, 0x15, 0x5A, 0x00, 0x02, 0x5E, 0x00, 0x3B, 0x16, - 0x00, 0x15, 0x78, 0x00, 0x05, 0x50, 0x01, 0xA4, 0x40, 0x06, 0x00, 0xCC, 0x00, 0x09, 0x00, 0x4F, - 0x00, 0x51, 0x18, 0x00, 0x00, 0x28, 0x01, 0x23, 0x40, 0x01, 0x0C, 0x02, 0x54, 0xAB, 0x00, 0x0A, - 0x04, 0x11, 0x58, 0x01, 0x03, 0x04, 0x00, 0x0F, 0xEC, 0x00, 0x0D, 0x17, 0x02, 0x0C, 0x00, 0x17, - 0x03, 0x60, 0x03, 0x02, 0xA1, 0x01, 0x7B, 0x22, 0x04, 0xFF, 0xFF, 0xAF, 0x4F, 0x01, 0x28, 0x00, - 0x00, 0x01, 0x00, 0x32, 0x8B, 0xFF, 0x07, 0x84, 0x00, 0xF0, 0x10, 0x32, 0x54, 0x76, 0x10, 0x47, - 0x32, 0x65, 0x10, 0x34, 0x76, 0x25, 0x01, 0x34, 0x67, 0x25, 0x01, 0x75, 0x64, 0x32, 0x01, 0x72, - 0x56, 0x34, 0x10, 0x23, 0x74, 0x56, 0x01, 0x45, 0x32, 0x67, 0x24, 0x00, 0x31, 0x49, 0x92, 0x24, - 0x04, 0x00, 0x0C, 0x01, 0x00, 0x13, 0x12, 0x04, 0x00, 0x0C, 0x94, 0x00, 0x80, 0x2F, 0x41, 0x13, - 0x1F, 0x14, 0x00, 0x01, 0x00, 0x7C, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x7F, 0x0B, 0xD7, 0x06, 0x40, - 0x82, 0x00, 0xB2, 0x08, 0x08, 0x03, 0x00, 0x00, 0x5C, 0x01, 0x00, 0x10, 0x10, 0x10, 0x59, 0x03, - 0x0B, 0x94, 0x04, 0x11, 0x37, 0x16, 0x03, 0x30, 0x00, 0x00, 0x10, 0xAD, 0x00, 0x51, 0x30, 0x00, - 0x00, 0x11, 0x01, 0xB9, 0x02, 0x00, 0x1F, 0x00, 0x13, 0x0A, 0xA9, 0x04, 0x17, 0x10, 0x77, 0x03, - 0x05, 0x12, 0x00, 0x00, 0x04, 0x04, 0xCF, 0x81, 0x10, 0x09, 0x28, 0x93, 0x32, 0xA5, 0x44, 0x5B, - 0x8A, 0x67, 0x76, 0x2C, 0x01, 0x05, 0x53, 0xFF, 0xEF, 0xFF, 0xEF, 0xC0, 0x01, 0x00, 0x57, 0xDC, - 0xDC, 0xDC, 0xDC, 0x0A, 0x01, 0x00, 0x01, 0x24, 0x01, 0x21, 0x03, 0x07, 0x04, 0x00, 0xF1, 0x03, - 0x00, 0x24, 0xFF, 0xFF, 0x00, 0x44, 0x57, 0x6E, 0x00, 0x28, 0x72, 0x39, 0x00, 0x10, 0x9C, 0x4B, - 0x00, 0x10, 0x58, 0x01, 0xB2, 0x08, 0x4C, 0x00, 0x00, 0x80, 0x20, 0x10, 0x0A, 0x00, 0x28, 0x10, - 0xE0, 0x02, 0x0C, 0x74, 0x01, 0x04, 0x08, 0x00, 0x17, 0x05, 0x10, 0x00, 0x08, 0xF8, 0x03, 0xE4, - 0x01, 0x00, 0x02, 0x02, 0x01, 0x02, 0x03, 0x00, 0x04, 0x05, 0xC3, 0x71, 0x0F, 0x0F, 0x98, 0x05, - 0x14, 0x1F, 0xD8, 0x00, 0x01, 0xC0, 0x03, 0x14, 0x01, 0xDD, 0x00, 0x14, 0x80, 0xB6, 0x00, 0x15, - 0xF0, 0xD4, 0x03, 0x68, 0x43, 0xC3, 0xBA, 0xE4, 0xD3, 0x1E, 0xD2, 0x00, 0x2F, 0xF0, 0xFF, 0xEC, - 0x00, 0x05, 0x19, 0x08, 0x0E, 0x00, 0x14, 0x30, 0xAB, 0x00, 0x0F, 0x2C, 0x00, 0x02, 0x4F, 0x76, - 0x0C, 0x00, 0x04, 0x50, 0x02, 0x01, 0x05, 0x34, 0x00, 0x0F, 0x3A, 0x00, 0x04, 0x38, 0x7E, 0x16, - 0x40, 0x9F, 0x05, 0x0F, 0x38, 0x00, 0x17, 0x3F, 0x1E, 0x40, 0x04, 0xA8, 0x00, 0x08, 0x2F, 0x00, - 0xC0, 0x55, 0x00, 0x04, 0x3F, 0x46, 0x24, 0x00, 0x38, 0x00, 0x0A, 0x0F, 0x01, 0x00, 0x05, 0x22, - 0x46, 0x2C, 0x38, 0x00, 0x2F, 0xEC, 0x00, 0x3C, 0x01, 0x02, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, -}; +constexpr inline const u8 * const SdramParamsErista4 = SdramParamsErista4_5; +constexpr inline const size_t SdramParamsSizeErista4 = sizeof(SdramParamsErista4_5); -constexpr inline const u8 SdramParamsErista6[0x3B3] = { +constexpr inline const u8 * const SdramParamsErista5 = SdramParamsErista4_5; +constexpr inline const size_t SdramParamsSizeErista5 = sizeof(SdramParamsErista4_5); + +constexpr inline const u8 SdramParamsErista6_7[0x3BD] = { 0xFF, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x2C, 0x01, 0x00, 0x01, 0x00, 0x0E, 0xFC, 0x05, 0x68, 0xBC, 0x01, 0x70, 0x0A, 0x00, 0x00, 0x00, 0x04, 0xB4, 0x01, 0x70, 0x01, 0x32, 0x54, 0x76, 0xC8, 0xE6, 0x00, 0x70, 0x24, 0x00, 0xC8, 0x34, 0x00, 0x00, @@ -445,11 +288,17 @@ constexpr inline const u8 SdramParamsErista6[0x3B3] = { 0x02, 0x4F, 0x76, 0x0C, 0x00, 0x04, 0x50, 0x02, 0x01, 0x05, 0x34, 0x00, 0x0F, 0x3A, 0x00, 0x04, 0x38, 0x7E, 0x16, 0x40, 0x9F, 0x05, 0x0F, 0x38, 0x00, 0x17, 0x3F, 0x1E, 0x40, 0x04, 0xA8, 0x00, 0x08, 0x2F, 0x00, 0xC0, 0x55, 0x00, 0x04, 0x3F, 0x46, 0x24, 0x00, 0x38, 0x00, 0x0A, 0x0F, 0x01, - 0x00, 0x05, 0x22, 0x46, 0x2C, 0x38, 0x00, 0x2F, 0xEC, 0x00, 0x3C, 0x01, 0x02, 0x50, 0x00, 0x00, - 0x00, 0x00, 0x00, + 0x00, 0x05, 0x22, 0x46, 0x2C, 0x38, 0x00, 0x2E, 0xEC, 0x00, 0x3C, 0x01, 0x0F, 0x01, 0x00, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x5F, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, }; -constexpr inline const u8 SdramParamsMariko0[0x3A9] = { +constexpr inline const u8 * const SdramParamsErista6 = SdramParamsErista6_7; +constexpr inline const size_t SdramParamsSizeErista6 = sizeof(SdramParamsErista6_7); + +constexpr inline const u8 * const SdramParamsErista7 = SdramParamsErista6_7; +constexpr inline const size_t SdramParamsSizeErista7 = sizeof(SdramParamsErista6_7); + +constexpr inline const u8 SdramParamsMariko0_1[0x3EE] = { 0xFF, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x2C, 0x01, 0x00, 0x01, 0x00, 0x96, 0x88, 0x02, 0x80, 0x18, 0x40, 0x00, 0x00, 0x00, 0x40, 0x14, 0x00, 0x82, 0xFF, 0xFF, 0x1F, 0x00, 0xD8, 0x51, 0x1A, 0xA0, 0x0E, 0x00, 0x11, 0x88, 0x04, 0x00, 0x26, 0x20, @@ -508,72 +357,20 @@ constexpr inline const u8 SdramParamsMariko0[0x3A9] = { 0x00, 0x0F, 0x3A, 0x00, 0x04, 0x38, 0x7E, 0x16, 0x40, 0x03, 0x06, 0x0F, 0x38, 0x00, 0x17, 0x3F, 0x1E, 0x40, 0x04, 0xA8, 0x00, 0x08, 0x2F, 0x00, 0xC0, 0x55, 0x00, 0x04, 0x3F, 0x46, 0x24, 0x00, 0x38, 0x00, 0x0A, 0x0F, 0x01, 0x00, 0x05, 0x22, 0x46, 0x2C, 0x38, 0x00, 0x19, 0xEC, 0x16, 0x00, - 0x0D, 0x3C, 0x01, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0x3C, 0x01, 0x03, 0x0F, 0x38, 0x08, 0xFF, 0xFF, 0xFF, 0x9C, 0x7F, 0x16, 0x00, 0x0D, 0x00, + 0x0B, 0x00, 0x17, 0x18, 0x00, 0x06, 0xF1, 0x02, 0x43, 0x00, 0x45, 0x00, 0x45, 0x00, 0x43, 0x00, + 0x46, 0x00, 0x47, 0x00, 0x41, 0x00, 0x46, 0x00, 0x0C, 0xBA, 0x01, 0x1F, 0x0D, 0x18, 0x00, 0x06, + 0x0F, 0x38, 0x08, 0x0D, 0x11, 0x16, 0x5A, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x5E, 0x00, 0x3F, 0x17, + 0x00, 0x16, 0x38, 0x08, 0xFF, 0xFF, 0xFF, 0xF6, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, }; -constexpr inline const u8 SdramParamsMariko1[0x3AA] = { - 0xFF, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x2C, 0x01, - 0x00, 0x01, 0x00, 0x96, 0x88, 0x02, 0x80, 0x18, 0x40, 0x00, 0x00, 0x00, 0x40, 0x14, 0x00, 0x82, - 0xFF, 0xFF, 0x1F, 0x00, 0xD8, 0x51, 0x1A, 0xA0, 0x0E, 0x00, 0x11, 0x88, 0x04, 0x00, 0x26, 0x20, - 0x12, 0x0C, 0x00, 0x02, 0x04, 0x00, 0xF7, 0x00, 0x00, 0x00, 0xBC, 0xBC, 0xC5, 0xB3, 0x3C, 0x9E, - 0x00, 0x00, 0x02, 0x03, 0xE0, 0xC1, 0x04, 0x01, 0x00, 0x17, 0x3F, 0x01, 0x00, 0x00, 0x38, 0x00, - 0xD0, 0x04, 0x08, 0x00, 0x00, 0x50, 0x50, 0x50, 0x00, 0xA1, 0x01, 0x00, 0x00, 0x30, 0x39, 0x00, - 0x62, 0x10, 0x00, 0x16, 0x00, 0x10, 0x90, 0x80, 0x00, 0x03, 0x74, 0x00, 0x13, 0x03, 0x04, 0x00, - 0xD7, 0x1E, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x1D, 0x94, 0x00, - 0x57, 0x09, 0x00, 0x00, 0x00, 0x04, 0x10, 0x00, 0x13, 0x0B, 0x28, 0x00, 0x13, 0x08, 0x0C, 0x00, - 0x00, 0x1C, 0x00, 0x53, 0x17, 0x00, 0x00, 0x00, 0x15, 0x08, 0x00, 0x13, 0x1B, 0x28, 0x00, 0x57, - 0x20, 0x00, 0x00, 0x00, 0x06, 0x04, 0x00, 0x13, 0x03, 0x18, 0x00, 0x13, 0x04, 0x10, 0x00, 0x17, - 0x02, 0x10, 0x00, 0x00, 0x4C, 0x00, 0x53, 0x0E, 0x00, 0x00, 0x00, 0x05, 0x1C, 0x00, 0x05, 0x24, - 0x01, 0x03, 0x6C, 0x00, 0x03, 0xD7, 0x01, 0x10, 0x80, 0x0A, 0x00, 0x00, 0x0F, 0x01, 0x93, 0x18, - 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x16, 0x0C, 0x00, 0x10, 0x0A, 0x48, 0x00, 0x03, 0x61, - 0x00, 0x13, 0xC1, 0x50, 0x00, 0x13, 0x08, 0x74, 0x00, 0x13, 0x0A, 0x08, 0x00, 0x13, 0x14, 0x60, - 0x00, 0x04, 0x54, 0x00, 0x13, 0x3B, 0x04, 0x00, 0x13, 0x05, 0x04, 0x00, 0x13, 0x04, 0xEC, 0x00, - 0x08, 0x0C, 0x00, 0x90, 0x1C, 0x03, 0x00, 0x00, 0x0D, 0xA0, 0x60, 0x91, 0x3F, 0x15, 0x01, 0xF1, - 0x28, 0x00, 0xF3, 0x0C, 0x04, 0x05, 0x1B, 0x06, 0x02, 0x03, 0x07, 0x1C, 0x23, 0x25, 0x25, 0x05, - 0x08, 0x1D, 0x09, 0x0A, 0x24, 0x0B, 0x1E, 0x0D, 0x0C, 0x26, 0x26, 0x03, 0x02, 0x1B, 0x1C, 0x23, - 0x03, 0x04, 0x07, 0x05, 0x06, 0x25, 0x25, 0x02, 0x0A, 0x0B, 0x1D, 0x0D, 0x08, 0x0C, 0x09, 0x1E, - 0x24, 0x26, 0x26, 0x08, 0x24, 0x06, 0x07, 0x9A, 0xBF, 0x01, 0x3C, 0xFF, 0x00, 0xFF, 0x00, 0x02, - 0xB0, 0x04, 0x00, 0x01, 0x88, 0x00, 0x00, 0x02, 0x88, 0x00, 0x00, 0x0D, 0xD5, 0x01, 0xF2, 0x0E, - 0xC0, 0x31, 0x31, 0x03, 0x88, 0x00, 0x00, 0x0B, 0x88, 0x5D, 0x5D, 0x0E, 0x8C, 0x5D, 0x5D, 0x0C, - 0x88, 0x08, 0x08, 0x0D, 0x8C, 0x00, 0x00, 0x0D, 0x8C, 0x16, 0x16, 0x16, 0x88, 0x2C, 0x00, 0x2C, - 0x11, 0x08, 0xDF, 0x02, 0x70, 0x10, 0x00, 0xCC, 0x00, 0x0A, 0x00, 0x33, 0x6E, 0x01, 0x40, 0xF3, - 0x25, 0x08, 0x11, 0x69, 0x00, 0x23, 0x0F, 0x00, 0x30, 0x01, 0x80, 0x01, 0x03, 0x00, 0x70, 0x00, - 0x0C, 0x00, 0x01, 0x0C, 0x00, 0xA2, 0x08, 0x44, 0x00, 0x10, 0x04, 0x04, 0x00, 0x06, 0x13, 0x07, - 0x1C, 0x00, 0x71, 0xA0, 0x00, 0x2C, 0x00, 0x01, 0x37, 0x0F, 0x52, 0x01, 0x00, 0x10, 0x01, 0xDB, - 0x0C, 0x00, 0x04, 0x00, 0x1F, 0x22, 0x20, 0x80, 0x0F, 0xF4, 0x20, 0x02, 0x29, 0x01, 0x00, 0x12, - 0x78, 0x9A, 0x02, 0x1F, 0x0F, 0xF4, 0x02, 0x31, 0x7F, 0x16, 0x00, 0x0D, 0x00, 0x0B, 0x00, 0x17, - 0x18, 0x00, 0x06, 0xF1, 0x02, 0x43, 0x00, 0x45, 0x00, 0x45, 0x00, 0x43, 0x00, 0x46, 0x00, 0x47, - 0x00, 0x41, 0x00, 0x46, 0x00, 0x0C, 0xBA, 0x01, 0x1F, 0x0D, 0x18, 0x00, 0x06, 0x1F, 0x28, 0x02, - 0x00, 0x0C, 0x11, 0x16, 0x5A, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x5E, 0x00, 0x3F, 0x17, 0x00, 0x16, - 0x94, 0x00, 0x00, 0x05, 0x54, 0x01, 0xB3, 0x40, 0x06, 0x00, 0xCC, 0x00, 0x09, 0x00, 0x4F, 0x00, - 0x51, 0x80, 0x18, 0x00, 0x04, 0x08, 0x00, 0x01, 0x6E, 0x00, 0x54, 0xAB, 0x00, 0x0A, 0x04, 0x11, - 0x5C, 0x01, 0x03, 0x04, 0x00, 0x0F, 0xE4, 0x03, 0x0E, 0x07, 0x0C, 0x00, 0x04, 0xA8, 0x04, 0x01, - 0x14, 0x00, 0x8B, 0x01, 0x22, 0x04, 0xFF, 0x9F, 0xAF, 0x4F, 0x01, 0x24, 0x00, 0x00, 0x01, 0x00, - 0x32, 0x9F, 0xFF, 0x37, 0x98, 0x00, 0xF0, 0x10, 0x32, 0x54, 0x76, 0x10, 0x47, 0x32, 0x65, 0x10, - 0x34, 0x76, 0x25, 0x01, 0x34, 0x67, 0x25, 0x01, 0x75, 0x64, 0x32, 0x01, 0x72, 0x56, 0x34, 0x10, - 0x23, 0x74, 0x56, 0x01, 0x45, 0x32, 0x67, 0x24, 0x00, 0x31, 0x49, 0x92, 0x24, 0x04, 0x00, 0x0C, - 0x01, 0x00, 0x13, 0x12, 0x04, 0x00, 0x0C, 0x90, 0x00, 0x80, 0x20, 0x41, 0x13, 0x1F, 0x14, 0x00, - 0x01, 0x00, 0x7C, 0x00, 0x85, 0xFF, 0xFF, 0xFF, 0x7F, 0x1F, 0xD7, 0x36, 0x40, 0xE6, 0x03, 0x24, - 0x34, 0x10, 0x0A, 0x00, 0x0F, 0xCC, 0x00, 0x02, 0x31, 0x03, 0x00, 0x05, 0x2B, 0x03, 0x22, 0x10, - 0x02, 0xDD, 0x03, 0x13, 0x21, 0x15, 0x04, 0x14, 0x40, 0x8B, 0x02, 0x07, 0x01, 0x00, 0x71, 0x80, - 0x00, 0x40, 0x00, 0x04, 0x10, 0x80, 0x04, 0x04, 0xDF, 0x81, 0x10, 0x09, 0x28, 0x93, 0x32, 0xA5, - 0x44, 0x5B, 0x8A, 0x67, 0x76, 0x00, 0x01, 0x00, 0x4C, 0x22, 0x10, 0x10, 0x04, 0x00, 0x44, 0x00, - 0xEF, 0x00, 0xEF, 0x14, 0x00, 0x4D, 0x1C, 0x1C, 0x1C, 0x1C, 0x98, 0x01, 0x21, 0x03, 0x08, 0x04, - 0x00, 0xF1, 0x03, 0x00, 0x24, 0xFF, 0xFF, 0x00, 0x44, 0x57, 0x6E, 0x00, 0x28, 0x72, 0x39, 0x00, - 0x10, 0x9C, 0x4B, 0x00, 0x10, 0xA4, 0x01, 0xEF, 0x08, 0x4C, 0x00, 0x00, 0x80, 0x20, 0x10, 0x0A, - 0x00, 0x28, 0x10, 0x00, 0x80, 0x01, 0xC0, 0x01, 0x00, 0x04, 0x08, 0x00, 0x17, 0x05, 0x0C, 0x02, - 0x13, 0x04, 0x10, 0x00, 0x12, 0x07, 0x62, 0x00, 0xD2, 0x02, 0x01, 0x02, 0x03, 0x00, 0x04, 0x05, - 0xA3, 0x72, 0x0F, 0x0F, 0x00, 0x70, 0x42, 0x00, 0x16, 0x1F, 0x28, 0x01, 0x43, 0xFF, 0x00, 0xFF, - 0x01, 0xA4, 0x04, 0x24, 0x00, 0x80, 0x96, 0x00, 0x15, 0xF0, 0x24, 0x04, 0x68, 0x43, 0xC3, 0xBA, - 0xE4, 0xD3, 0x1E, 0x0B, 0x05, 0x2F, 0xF0, 0xFF, 0xF4, 0x00, 0x05, 0x19, 0x08, 0x0E, 0x00, 0x01, - 0xE6, 0x05, 0x1F, 0x03, 0x2C, 0x00, 0x05, 0x10, 0x76, 0xE9, 0x03, 0x0F, 0x9C, 0x02, 0x00, 0x05, - 0x34, 0x00, 0x0F, 0x3A, 0x00, 0x04, 0x38, 0x7E, 0x16, 0x40, 0x03, 0x06, 0x0F, 0x38, 0x00, 0x17, - 0x3F, 0x1E, 0x40, 0x04, 0xA8, 0x00, 0x08, 0x2F, 0x00, 0xC0, 0x55, 0x00, 0x04, 0x3F, 0x46, 0x24, - 0x00, 0x38, 0x00, 0x0A, 0x0F, 0x01, 0x00, 0x05, 0x22, 0x46, 0x2C, 0x38, 0x00, 0x19, 0xEC, 0x16, - 0x00, 0x0D, 0x3C, 0x01, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, -}; +constexpr inline const u8 * const SdramParamsMariko0 = SdramParamsMariko0_1; +constexpr inline const size_t SdramParamsSizeMariko0 = sizeof(SdramParamsMariko0_1); -constexpr inline const u8 SdramParamsMariko2[0x3B3] = { +constexpr inline const u8 * const SdramParamsMariko1 = SdramParamsMariko0_1; +constexpr inline const size_t SdramParamsSizeMariko1 = sizeof(SdramParamsMariko0_1); + +constexpr inline const u8 SdramParamsMariko2_3[0x449] = { 0xFF, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x2C, 0x01, 0x00, 0x01, 0x00, 0x96, 0x88, 0x02, 0x80, 0x18, 0x40, 0x00, 0x00, 0x00, 0x40, 0x14, 0x00, 0xF0, 0x01, 0xFF, 0xFF, 0x1F, 0x00, 0xD8, 0x51, 0x1A, 0xA0, 0x00, 0x00, 0x50, 0x05, 0x00, 0x00, 0x88, @@ -632,73 +429,26 @@ constexpr inline const u8 SdramParamsMariko2[0x3B3] = { 0x10, 0x76, 0xE9, 0x03, 0x0F, 0x9C, 0x02, 0x00, 0x05, 0x34, 0x00, 0x0F, 0x3A, 0x00, 0x04, 0x38, 0x7E, 0x16, 0x40, 0x03, 0x06, 0x0F, 0x38, 0x00, 0x17, 0x3F, 0x1E, 0x40, 0x04, 0xA8, 0x00, 0x08, 0x2F, 0x00, 0xC0, 0x55, 0x00, 0x04, 0x3F, 0x46, 0x24, 0x00, 0x38, 0x00, 0x0A, 0x0F, 0x01, 0x00, - 0x05, 0x22, 0x46, 0x2C, 0x38, 0x00, 0x19, 0xEC, 0x16, 0x00, 0x0D, 0x3C, 0x01, 0x50, 0x00, 0x00, - 0x00, 0x00, 0x00, + 0x05, 0x22, 0x46, 0x2C, 0x38, 0x00, 0x19, 0xEC, 0x16, 0x00, 0x0F, 0x3C, 0x01, 0x03, 0x0F, 0x38, + 0x08, 0xC3, 0x2F, 0x00, 0x00, 0x38, 0x08, 0x0B, 0x2F, 0xC5, 0xB3, 0x38, 0x08, 0x29, 0x1F, 0x00, + 0x38, 0x08, 0x84, 0x13, 0x05, 0x1C, 0x00, 0x08, 0xDC, 0x02, 0x1F, 0x0D, 0x38, 0x08, 0xC7, 0x93, + 0x88, 0x00, 0x00, 0x02, 0x88, 0x00, 0x00, 0x0D, 0x88, 0x38, 0x08, 0xF2, 0x0A, 0x88, 0x00, 0x00, + 0x0B, 0x88, 0x5D, 0x5D, 0x0E, 0x8C, 0x5D, 0x5D, 0x0C, 0x88, 0x08, 0x08, 0x0D, 0x8C, 0x00, 0x00, + 0x0D, 0x8C, 0x16, 0x16, 0x16, 0x88, 0x2C, 0x00, 0x0F, 0x38, 0x08, 0x43, 0x1B, 0x02, 0x38, 0x08, + 0x04, 0x30, 0x08, 0x0F, 0x38, 0x08, 0x91, 0x1F, 0x28, 0x02, 0x00, 0x0C, 0x0F, 0x38, 0x08, 0x24, + 0x14, 0x80, 0x38, 0x08, 0x04, 0x20, 0x00, 0x0F, 0x38, 0x08, 0xFF, 0x1E, 0x7F, 0x80, 0x00, 0x40, + 0x00, 0x04, 0x10, 0x80, 0x38, 0x08, 0x82, 0x1F, 0x00, 0x38, 0x08, 0x09, 0x1F, 0x10, 0x38, 0x08, + 0x1F, 0x1F, 0x01, 0x38, 0x08, 0x00, 0x1F, 0x00, 0x38, 0x08, 0x36, 0x0E, 0x1C, 0x00, 0x0F, 0x38, + 0x08, 0xFF, 0x31, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, }; -constexpr inline const u8 SdramParamsMariko3[0x3AA] = { - 0xFF, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x2C, 0x01, - 0x00, 0x01, 0x00, 0x96, 0x88, 0x02, 0x80, 0x18, 0x40, 0x00, 0x00, 0x00, 0x40, 0x14, 0x00, 0x82, - 0xFF, 0xFF, 0x1F, 0x00, 0xD8, 0x51, 0x1A, 0xA0, 0x0E, 0x00, 0x11, 0x88, 0x04, 0x00, 0x26, 0x20, - 0x12, 0x0C, 0x00, 0x02, 0x04, 0x00, 0xF7, 0x00, 0x00, 0x00, 0xBC, 0xBC, 0xC5, 0xB3, 0x3C, 0x9E, - 0x00, 0x00, 0x02, 0x03, 0xE0, 0xC1, 0x04, 0x01, 0x00, 0x17, 0x3F, 0x01, 0x00, 0x00, 0x38, 0x00, - 0xD0, 0x04, 0x08, 0x00, 0x00, 0x50, 0x50, 0x50, 0x00, 0xA1, 0x01, 0x00, 0x00, 0x30, 0x39, 0x00, - 0x62, 0x10, 0x00, 0x16, 0x00, 0x10, 0x90, 0x80, 0x00, 0x03, 0x74, 0x00, 0x13, 0x03, 0x04, 0x00, - 0xD7, 0x1E, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x1D, 0x94, 0x00, - 0x57, 0x09, 0x00, 0x00, 0x00, 0x04, 0x10, 0x00, 0x13, 0x0B, 0x28, 0x00, 0x13, 0x08, 0x0C, 0x00, - 0x00, 0x1C, 0x00, 0x53, 0x17, 0x00, 0x00, 0x00, 0x15, 0x08, 0x00, 0x13, 0x1B, 0x28, 0x00, 0x57, - 0x20, 0x00, 0x00, 0x00, 0x06, 0x04, 0x00, 0x13, 0x03, 0x18, 0x00, 0x13, 0x04, 0x10, 0x00, 0x17, - 0x02, 0x10, 0x00, 0x00, 0x4C, 0x00, 0x53, 0x0E, 0x00, 0x00, 0x00, 0x05, 0x1C, 0x00, 0x05, 0x24, - 0x01, 0x03, 0x6C, 0x00, 0x03, 0xD7, 0x01, 0x10, 0x80, 0x0A, 0x00, 0x00, 0x0F, 0x01, 0x93, 0x18, - 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x16, 0x0C, 0x00, 0x10, 0x0A, 0x48, 0x00, 0x03, 0x61, - 0x00, 0x13, 0xC1, 0x50, 0x00, 0x13, 0x08, 0x74, 0x00, 0x13, 0x0A, 0x08, 0x00, 0x13, 0x14, 0x60, - 0x00, 0x04, 0x54, 0x00, 0x13, 0x3B, 0x04, 0x00, 0x13, 0x05, 0x04, 0x00, 0x13, 0x04, 0xEC, 0x00, - 0x08, 0x0C, 0x00, 0x90, 0x1C, 0x03, 0x00, 0x00, 0x0D, 0xA0, 0x60, 0x91, 0x3F, 0x15, 0x01, 0xF1, - 0x28, 0x00, 0xF3, 0x0C, 0x04, 0x05, 0x1B, 0x06, 0x02, 0x03, 0x07, 0x1C, 0x23, 0x25, 0x25, 0x05, - 0x08, 0x1D, 0x09, 0x0A, 0x24, 0x0B, 0x1E, 0x0D, 0x0C, 0x26, 0x26, 0x03, 0x02, 0x1B, 0x1C, 0x23, - 0x03, 0x04, 0x07, 0x05, 0x06, 0x25, 0x25, 0x02, 0x0A, 0x0B, 0x1D, 0x0D, 0x08, 0x0C, 0x09, 0x1E, - 0x24, 0x26, 0x26, 0x08, 0x24, 0x06, 0x07, 0x9A, 0xBF, 0x01, 0x3C, 0xFF, 0x00, 0xFF, 0x00, 0x02, - 0xB0, 0x04, 0x00, 0x01, 0x88, 0x00, 0x00, 0x02, 0x88, 0x00, 0x00, 0x0D, 0xD5, 0x01, 0xF2, 0x0E, - 0xC0, 0x31, 0x31, 0x03, 0x88, 0x00, 0x00, 0x0B, 0x88, 0x5D, 0x5D, 0x0E, 0x8C, 0x5D, 0x5D, 0x0C, - 0x88, 0x08, 0x08, 0x0D, 0x8C, 0x00, 0x00, 0x0D, 0x8C, 0x16, 0x16, 0x16, 0x88, 0x2C, 0x00, 0x2C, - 0x11, 0x08, 0xDF, 0x02, 0x70, 0x10, 0x00, 0xCC, 0x00, 0x0A, 0x00, 0x33, 0x6E, 0x01, 0x40, 0xF3, - 0x25, 0x08, 0x11, 0x69, 0x00, 0x23, 0x0F, 0x00, 0x30, 0x01, 0x80, 0x01, 0x03, 0x00, 0x70, 0x00, - 0x0C, 0x00, 0x01, 0x0C, 0x00, 0xA2, 0x08, 0x44, 0x00, 0x10, 0x04, 0x04, 0x00, 0x06, 0x13, 0x07, - 0x1C, 0x00, 0x71, 0xA0, 0x00, 0x2C, 0x00, 0x01, 0x37, 0x0F, 0x52, 0x01, 0x00, 0x10, 0x01, 0xDB, - 0x0C, 0x00, 0x04, 0x00, 0x1F, 0x22, 0x20, 0x80, 0x0F, 0xF4, 0x20, 0x02, 0x29, 0x01, 0x00, 0x12, - 0x78, 0x9A, 0x02, 0x1F, 0x0F, 0xF4, 0x02, 0x31, 0x7F, 0x16, 0x00, 0x0D, 0x00, 0x0B, 0x00, 0x17, - 0x18, 0x00, 0x06, 0xF1, 0x02, 0x43, 0x00, 0x45, 0x00, 0x45, 0x00, 0x43, 0x00, 0x46, 0x00, 0x47, - 0x00, 0x41, 0x00, 0x46, 0x00, 0x0C, 0xBA, 0x01, 0x1F, 0x0D, 0x18, 0x00, 0x06, 0x1F, 0x28, 0x02, - 0x00, 0x0C, 0x11, 0x16, 0x5A, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x5E, 0x00, 0x3F, 0x17, 0x00, 0x16, - 0x94, 0x00, 0x00, 0x05, 0x54, 0x01, 0xB3, 0x40, 0x06, 0x00, 0xCC, 0x00, 0x09, 0x00, 0x4F, 0x00, - 0x51, 0x80, 0x18, 0x00, 0x04, 0x08, 0x00, 0x01, 0x6E, 0x00, 0x54, 0xAB, 0x00, 0x0A, 0x04, 0x11, - 0x5C, 0x01, 0x03, 0x04, 0x00, 0x0F, 0xE4, 0x03, 0x0E, 0x07, 0x0C, 0x00, 0x04, 0xA8, 0x04, 0x01, - 0x14, 0x00, 0x8B, 0x01, 0x22, 0x04, 0xFF, 0x9F, 0xAF, 0x4F, 0x01, 0x24, 0x00, 0x00, 0x01, 0x00, - 0x32, 0x9F, 0xFF, 0x37, 0x98, 0x00, 0xF0, 0x10, 0x32, 0x54, 0x76, 0x10, 0x47, 0x32, 0x65, 0x10, - 0x34, 0x76, 0x25, 0x01, 0x34, 0x67, 0x25, 0x01, 0x75, 0x64, 0x32, 0x01, 0x72, 0x56, 0x34, 0x10, - 0x23, 0x74, 0x56, 0x01, 0x45, 0x32, 0x67, 0x24, 0x00, 0x31, 0x49, 0x92, 0x24, 0x04, 0x00, 0x0C, - 0x01, 0x00, 0x13, 0x12, 0x04, 0x00, 0x0C, 0x90, 0x00, 0x80, 0x20, 0x41, 0x13, 0x1F, 0x14, 0x00, - 0x01, 0x00, 0x7C, 0x00, 0x85, 0xFF, 0xFF, 0xFF, 0x7F, 0x1F, 0xD7, 0x36, 0x40, 0xE6, 0x03, 0x24, - 0x34, 0x10, 0x0A, 0x00, 0x0F, 0xCC, 0x00, 0x02, 0x31, 0x03, 0x00, 0x05, 0x2B, 0x03, 0x22, 0x10, - 0x02, 0xDD, 0x03, 0x13, 0x21, 0x15, 0x04, 0x14, 0x40, 0x8B, 0x02, 0x07, 0x01, 0x00, 0x71, 0x80, - 0x00, 0x40, 0x00, 0x04, 0x10, 0x80, 0x04, 0x04, 0xDF, 0x81, 0x10, 0x09, 0x28, 0x93, 0x32, 0xA5, - 0x44, 0x5B, 0x8A, 0x67, 0x76, 0x00, 0x01, 0x00, 0x4C, 0x22, 0x10, 0x10, 0x04, 0x00, 0x44, 0x00, - 0xEF, 0x00, 0xEF, 0x14, 0x00, 0x4D, 0x1C, 0x1C, 0x1C, 0x1C, 0x98, 0x01, 0x21, 0x03, 0x08, 0x04, - 0x00, 0xF1, 0x03, 0x00, 0x24, 0xFF, 0xFF, 0x00, 0x44, 0x57, 0x6E, 0x00, 0x28, 0x72, 0x39, 0x00, - 0x10, 0x9C, 0x4B, 0x00, 0x10, 0xA4, 0x01, 0xEF, 0x08, 0x4C, 0x00, 0x00, 0x80, 0x20, 0x10, 0x0A, - 0x00, 0x28, 0x10, 0x00, 0x80, 0x01, 0xC0, 0x01, 0x00, 0x04, 0x08, 0x00, 0x17, 0x05, 0x0C, 0x02, - 0x13, 0x04, 0x10, 0x00, 0x12, 0x07, 0x62, 0x00, 0xD2, 0x02, 0x01, 0x02, 0x03, 0x00, 0x04, 0x05, - 0xA3, 0x72, 0x0F, 0x0F, 0x00, 0x70, 0x42, 0x00, 0x16, 0x1F, 0x28, 0x01, 0x43, 0xFF, 0x00, 0xFF, - 0x01, 0xA4, 0x04, 0x24, 0x00, 0x80, 0x96, 0x00, 0x15, 0xF0, 0x24, 0x04, 0x68, 0x43, 0xC3, 0xBA, - 0xE4, 0xD3, 0x1E, 0x0B, 0x05, 0x2F, 0xF0, 0xFF, 0xF4, 0x00, 0x05, 0x19, 0x08, 0x0E, 0x00, 0x01, - 0xE6, 0x05, 0x1F, 0x03, 0x2C, 0x00, 0x05, 0x10, 0x76, 0xE9, 0x03, 0x0F, 0x9C, 0x02, 0x00, 0x05, - 0x34, 0x00, 0x0F, 0x3A, 0x00, 0x04, 0x38, 0x7E, 0x16, 0x40, 0x03, 0x06, 0x0F, 0x38, 0x00, 0x17, - 0x3F, 0x1E, 0x40, 0x04, 0xA8, 0x00, 0x08, 0x2F, 0x00, 0xC0, 0x55, 0x00, 0x04, 0x3F, 0x46, 0x24, - 0x00, 0x38, 0x00, 0x0A, 0x0F, 0x01, 0x00, 0x05, 0x22, 0x46, 0x2C, 0x38, 0x00, 0x19, 0xEC, 0x16, - 0x00, 0x0D, 0x3C, 0x01, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, -}; +constexpr inline const u8 * const SdramParamsMariko2 = SdramParamsMariko2_3; +constexpr inline const size_t SdramParamsSizeMariko2 = sizeof(SdramParamsMariko2_3); -constexpr inline const u8 SdramParamsMariko4[0x3B4] = { +constexpr inline const u8 * const SdramParamsMariko3 = SdramParamsMariko2_3; +constexpr inline const size_t SdramParamsSizeMariko3 = sizeof(SdramParamsMariko2_3); + +constexpr inline const u8 SdramParamsMariko4_5[0x3F7] = { 0xFF, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x2C, 0x01, 0x00, 0x01, 0x00, 0x96, 0x88, 0x02, 0x80, 0x18, 0x40, 0x00, 0x00, 0x00, 0x40, 0x14, 0x00, 0xF0, 0x01, 0xFF, 0xFF, 0x1F, 0x00, 0xD8, 0x51, 0x1A, 0xA0, 0x00, 0x00, 0x50, 0x05, 0x00, 0x00, 0x88, @@ -757,74 +507,21 @@ constexpr inline const u8 SdramParamsMariko4[0x3B4] = { 0x05, 0x10, 0x76, 0xE9, 0x03, 0x0F, 0x9C, 0x02, 0x00, 0x05, 0x34, 0x00, 0x0F, 0x3A, 0x00, 0x04, 0x38, 0x7E, 0x16, 0x40, 0x03, 0x06, 0x0F, 0x38, 0x00, 0x17, 0x3F, 0x1E, 0x40, 0x04, 0xA8, 0x00, 0x08, 0x2F, 0x00, 0xC0, 0x55, 0x00, 0x04, 0x3F, 0x46, 0x24, 0x00, 0x38, 0x00, 0x0A, 0x0F, 0x01, - 0x00, 0x05, 0x22, 0x46, 0x2C, 0x38, 0x00, 0x19, 0xEC, 0x16, 0x00, 0x0D, 0x3C, 0x01, 0x50, 0x00, - 0x00, 0x00, 0x00, 0x00, + 0x00, 0x05, 0x22, 0x46, 0x2C, 0x38, 0x00, 0x19, 0xEC, 0x16, 0x00, 0x0F, 0x3C, 0x01, 0x03, 0x0F, + 0x38, 0x08, 0xFF, 0xFF, 0xFF, 0x40, 0x13, 0x32, 0x01, 0x00, 0x0F, 0x38, 0x08, 0x41, 0x3E, 0x18, + 0x00, 0x0F, 0x38, 0x08, 0x07, 0x18, 0x00, 0x93, 0x48, 0x00, 0x44, 0x00, 0x45, 0x00, 0x44, 0x00, + 0x47, 0x20, 0x08, 0x11, 0x0D, 0x8E, 0x01, 0x1F, 0x0D, 0x18, 0x00, 0x06, 0x1F, 0x78, 0x02, 0x00, + 0x0C, 0x11, 0x18, 0x5A, 0x00, 0x15, 0x0F, 0x38, 0x08, 0x1F, 0x18, 0x38, 0x08, 0xFF, 0xFF, 0xFF, + 0xF6, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, }; -constexpr inline const u8 SdramParamsMariko5[0x3B8] = { - 0xFF, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x2C, 0x01, - 0x00, 0x01, 0x00, 0x96, 0x88, 0x02, 0x80, 0x18, 0x40, 0x00, 0x00, 0x00, 0x40, 0x14, 0x00, 0xF0, - 0x01, 0xFF, 0xFF, 0x1F, 0x00, 0xD8, 0x51, 0x1A, 0xA0, 0x00, 0x00, 0x50, 0x05, 0x00, 0x00, 0x88, - 0x00, 0x04, 0x00, 0x20, 0x20, 0x12, 0x1A, 0x00, 0x17, 0x88, 0x04, 0x00, 0xF7, 0x00, 0x00, 0x00, - 0xBC, 0xBC, 0xAF, 0xC9, 0x3C, 0x9E, 0x00, 0x00, 0x02, 0x03, 0xE0, 0xC1, 0x04, 0x01, 0x00, 0x17, - 0x3F, 0x01, 0x00, 0x00, 0x38, 0x00, 0xD0, 0x04, 0x08, 0x00, 0x00, 0x50, 0x50, 0x50, 0x00, 0xA1, - 0x01, 0x00, 0x00, 0x30, 0x39, 0x00, 0x62, 0x10, 0x00, 0x16, 0x00, 0x10, 0x90, 0x80, 0x00, 0x03, - 0x74, 0x00, 0x13, 0x03, 0x04, 0x00, 0xD7, 0x1E, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x3A, - 0x00, 0x00, 0x00, 0x1D, 0x94, 0x00, 0x57, 0x09, 0x00, 0x00, 0x00, 0x04, 0x10, 0x00, 0x13, 0x0B, - 0x28, 0x00, 0x13, 0x08, 0x0C, 0x00, 0x00, 0x1C, 0x00, 0x53, 0x17, 0x00, 0x00, 0x00, 0x15, 0x08, - 0x00, 0x13, 0x1B, 0x28, 0x00, 0x57, 0x20, 0x00, 0x00, 0x00, 0x06, 0x04, 0x00, 0x13, 0x03, 0x18, - 0x00, 0x13, 0x04, 0x10, 0x00, 0x17, 0x02, 0x10, 0x00, 0x00, 0x4C, 0x00, 0x53, 0x0E, 0x00, 0x00, - 0x00, 0x05, 0x1C, 0x00, 0x05, 0x24, 0x01, 0x03, 0x6C, 0x00, 0x03, 0xD7, 0x01, 0x10, 0x80, 0x0A, - 0x00, 0x00, 0x0F, 0x01, 0x93, 0x18, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x16, 0x0C, 0x00, - 0x10, 0x0A, 0x48, 0x00, 0x03, 0x61, 0x00, 0x13, 0xC1, 0x50, 0x00, 0x13, 0x08, 0x74, 0x00, 0x13, - 0x0A, 0x08, 0x00, 0x13, 0x14, 0x60, 0x00, 0x04, 0x54, 0x00, 0x13, 0x3B, 0x04, 0x00, 0x13, 0x05, - 0x04, 0x00, 0x13, 0x04, 0xEC, 0x00, 0x08, 0x0C, 0x00, 0x90, 0x1C, 0x03, 0x00, 0x00, 0x0D, 0xA0, - 0x60, 0x91, 0x3F, 0x15, 0x01, 0xF1, 0x28, 0x00, 0xF3, 0x0C, 0x04, 0x05, 0x1B, 0x06, 0x02, 0x03, - 0x07, 0x1C, 0x23, 0x25, 0x25, 0x05, 0x08, 0x1D, 0x09, 0x0A, 0x24, 0x0B, 0x1E, 0x0D, 0x0C, 0x26, - 0x26, 0x03, 0x02, 0x1B, 0x1C, 0x23, 0x03, 0x04, 0x07, 0x05, 0x06, 0x25, 0x25, 0x02, 0x0A, 0x0B, - 0x1D, 0x0D, 0x08, 0x0C, 0x09, 0x1E, 0x24, 0x26, 0x26, 0x08, 0x24, 0x06, 0x07, 0x9A, 0xBF, 0x01, - 0x3C, 0xFF, 0x00, 0xFF, 0x00, 0x02, 0xB0, 0x04, 0x00, 0x01, 0x88, 0x00, 0x00, 0x02, 0x88, 0x00, - 0x00, 0x0D, 0xD5, 0x01, 0xF2, 0x0E, 0xC0, 0x31, 0x31, 0x03, 0x88, 0x00, 0x00, 0x0B, 0x88, 0x5D, - 0x5D, 0x0E, 0x8C, 0x5D, 0x5D, 0x0C, 0x88, 0x08, 0x08, 0x0D, 0x8C, 0x00, 0x00, 0x0D, 0x8C, 0x14, - 0x14, 0x16, 0x88, 0x2C, 0x00, 0x2C, 0x11, 0x08, 0xDF, 0x02, 0x70, 0x10, 0x00, 0xCC, 0x00, 0x0A, - 0x00, 0x33, 0x6E, 0x01, 0x40, 0xF3, 0x25, 0x08, 0x11, 0x69, 0x00, 0x23, 0x0F, 0x00, 0x30, 0x01, - 0x80, 0x01, 0x03, 0x00, 0x70, 0x00, 0x0C, 0x00, 0x01, 0x0C, 0x00, 0xC0, 0x08, 0x44, 0x00, 0x10, - 0x04, 0x04, 0x00, 0x06, 0x13, 0x07, 0x00, 0x80, 0x10, 0x00, 0x71, 0xA0, 0x00, 0x2C, 0x00, 0x01, - 0x37, 0x0F, 0x52, 0x01, 0x00, 0x10, 0x01, 0xD3, 0x0C, 0x00, 0x04, 0x00, 0x1F, 0x22, 0x20, 0x80, - 0x0F, 0xF4, 0x20, 0x02, 0x32, 0x01, 0x00, 0x13, 0x29, 0x01, 0x00, 0x12, 0x78, 0x9A, 0x02, 0x1F, - 0x0F, 0xF4, 0x02, 0x31, 0x7F, 0x18, 0x00, 0x0F, 0x00, 0x0B, 0x00, 0x17, 0x18, 0x00, 0x06, 0xF1, - 0x02, 0x48, 0x00, 0x44, 0x00, 0x45, 0x00, 0x44, 0x00, 0x47, 0x00, 0x47, 0x00, 0x41, 0x00, 0x46, - 0x00, 0x0D, 0x8E, 0x01, 0x1F, 0x0D, 0x18, 0x00, 0x06, 0x1F, 0x78, 0x02, 0x00, 0x0C, 0x11, 0x18, - 0x5A, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x5E, 0x00, 0x3F, 0x17, 0x00, 0x18, 0x94, 0x00, 0x00, 0x05, - 0x54, 0x01, 0xB3, 0x40, 0x06, 0x00, 0xCC, 0x00, 0x09, 0x00, 0x4F, 0x00, 0x51, 0x80, 0x18, 0x00, - 0x04, 0x08, 0x00, 0x01, 0x40, 0x02, 0x54, 0xAB, 0x00, 0x0A, 0x04, 0x11, 0x5C, 0x01, 0x03, 0x04, - 0x00, 0x0F, 0xE4, 0x03, 0x0E, 0x07, 0x0C, 0x00, 0x04, 0xA8, 0x04, 0x01, 0x14, 0x00, 0x8B, 0x01, - 0x22, 0x04, 0xFF, 0x9F, 0xAF, 0x4F, 0x01, 0x24, 0x00, 0x00, 0x01, 0x00, 0x32, 0x9F, 0xFF, 0x37, - 0x98, 0x00, 0xF0, 0x10, 0x32, 0x54, 0x76, 0x10, 0x47, 0x32, 0x65, 0x10, 0x34, 0x76, 0x25, 0x01, - 0x34, 0x67, 0x25, 0x01, 0x75, 0x64, 0x32, 0x01, 0x72, 0x56, 0x34, 0x10, 0x23, 0x74, 0x56, 0x01, - 0x45, 0x32, 0x67, 0x24, 0x00, 0x31, 0x49, 0x92, 0x24, 0x04, 0x00, 0x0C, 0x01, 0x00, 0x13, 0x12, - 0x04, 0x00, 0x0C, 0x90, 0x00, 0x80, 0x20, 0x41, 0x13, 0x1F, 0x14, 0x00, 0x01, 0x00, 0x7C, 0x00, - 0x85, 0xFF, 0xFF, 0xFF, 0x7F, 0x1F, 0xD7, 0x36, 0x40, 0xE6, 0x03, 0x24, 0x34, 0x10, 0x0A, 0x00, - 0x0F, 0xCC, 0x00, 0x02, 0x31, 0x03, 0x00, 0x05, 0x2B, 0x03, 0x22, 0x10, 0x02, 0xDD, 0x03, 0x13, - 0x21, 0x15, 0x04, 0x14, 0x40, 0x8B, 0x02, 0x07, 0x01, 0x00, 0x71, 0x80, 0x00, 0x40, 0x00, 0x04, - 0x10, 0x80, 0x04, 0x04, 0xDF, 0x81, 0x10, 0x09, 0x28, 0x93, 0x32, 0xA5, 0x44, 0x5B, 0x8A, 0x67, - 0x76, 0x00, 0x01, 0x00, 0x4C, 0x22, 0x10, 0x10, 0x04, 0x00, 0x44, 0x00, 0xEF, 0x00, 0xEF, 0x14, - 0x00, 0x4D, 0x1C, 0x1C, 0x1C, 0x1C, 0x98, 0x01, 0x21, 0x03, 0x08, 0x04, 0x00, 0xF1, 0x03, 0x00, - 0x24, 0xFF, 0xFF, 0x00, 0x44, 0x57, 0x6E, 0x00, 0x28, 0x72, 0x39, 0x00, 0x10, 0x9C, 0x4B, 0x00, - 0x10, 0xA4, 0x01, 0xB2, 0x08, 0x4C, 0x00, 0x00, 0x80, 0x20, 0x10, 0x0A, 0x00, 0x28, 0x10, 0x30, - 0x03, 0x0C, 0xC0, 0x01, 0x04, 0x08, 0x00, 0x17, 0x05, 0x0C, 0x02, 0x13, 0x04, 0x10, 0x00, 0x12, - 0x07, 0x62, 0x00, 0xD2, 0x02, 0x01, 0x02, 0x03, 0x00, 0x04, 0x05, 0xA3, 0x72, 0x0F, 0x0F, 0x00, - 0x70, 0x42, 0x00, 0x16, 0x1F, 0x28, 0x01, 0x43, 0xFF, 0x00, 0xFF, 0x01, 0xA4, 0x04, 0x24, 0x00, - 0x80, 0x96, 0x00, 0x15, 0xF0, 0x24, 0x04, 0x60, 0x43, 0xC3, 0xBA, 0xE4, 0xD3, 0x1E, 0x0B, 0x05, - 0x3B, 0x80, 0x2A, 0x02, 0x1C, 0x00, 0x0C, 0xF4, 0x00, 0x19, 0x08, 0x0E, 0x00, 0x01, 0xE6, 0x05, - 0x1F, 0x03, 0x2C, 0x00, 0x05, 0x10, 0x76, 0xE9, 0x03, 0x0F, 0x9C, 0x02, 0x00, 0x05, 0x34, 0x00, - 0x0F, 0x3A, 0x00, 0x04, 0x38, 0x7E, 0x16, 0x40, 0x03, 0x06, 0x0F, 0x38, 0x00, 0x17, 0x3F, 0x1E, - 0x40, 0x04, 0xA8, 0x00, 0x08, 0x2F, 0x00, 0xC0, 0x55, 0x00, 0x04, 0x3F, 0x46, 0x24, 0x00, 0x38, - 0x00, 0x0A, 0x0F, 0x01, 0x00, 0x05, 0x22, 0x46, 0x2C, 0x38, 0x00, 0x19, 0xEC, 0x16, 0x00, 0x0D, - 0x3C, 0x01, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, -}; +constexpr inline const u8 * const SdramParamsMariko4 = SdramParamsMariko4_5; +constexpr inline const size_t SdramParamsSizeMariko4 = sizeof(SdramParamsMariko4_5); -constexpr inline const u8 SdramParamsMariko6[0x3B3] = { +constexpr inline const u8 * const SdramParamsMariko5 = SdramParamsMariko4_5; +constexpr inline const size_t SdramParamsSizeMariko5 = sizeof(SdramParamsMariko4_5); + +constexpr inline const u8 SdramParamsMariko6_7[0x427] = { 0xFF, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x2C, 0x01, 0x00, 0x01, 0x00, 0x96, 0x88, 0x02, 0x80, 0x18, 0x40, 0x00, 0x00, 0x00, 0x40, 0x14, 0x00, 0xF0, 0x01, 0xFF, 0xFF, 0x1F, 0x00, 0xD8, 0x51, 0x1A, 0xA0, 0x00, 0x00, 0x50, 0x05, 0x00, 0x00, 0x88, @@ -883,74 +580,24 @@ constexpr inline const u8 SdramParamsMariko6[0x3B3] = { 0x10, 0x76, 0xE9, 0x03, 0x0F, 0x9C, 0x02, 0x00, 0x05, 0x34, 0x00, 0x0F, 0x3A, 0x00, 0x04, 0x38, 0x7E, 0x16, 0x40, 0x03, 0x06, 0x0F, 0x38, 0x00, 0x17, 0x3F, 0x1E, 0x40, 0x04, 0xA8, 0x00, 0x08, 0x2F, 0x00, 0xC0, 0x55, 0x00, 0x04, 0x3F, 0x46, 0x24, 0x00, 0x38, 0x00, 0x0A, 0x0F, 0x01, 0x00, - 0x05, 0x22, 0x46, 0x2C, 0x38, 0x00, 0x19, 0xEC, 0x16, 0x00, 0x0D, 0x3C, 0x01, 0x50, 0x00, 0x00, - 0x00, 0x00, 0x00, + 0x05, 0x22, 0x46, 0x2C, 0x38, 0x00, 0x19, 0xEC, 0x16, 0x00, 0x0F, 0x3C, 0x01, 0x03, 0x0F, 0x38, + 0x08, 0xFF, 0x22, 0x1F, 0x01, 0x38, 0x08, 0xFF, 0x05, 0x1F, 0x08, 0x38, 0x08, 0x5B, 0x93, 0x08, + 0x00, 0x00, 0x02, 0x08, 0x00, 0x00, 0x0D, 0x08, 0x38, 0x08, 0xF2, 0x0A, 0x08, 0x00, 0x00, 0x0B, + 0x08, 0x5D, 0x5D, 0x0E, 0x0C, 0x5D, 0x5D, 0x0C, 0x08, 0x08, 0x08, 0x0D, 0x0C, 0x00, 0x00, 0x0D, + 0x0C, 0x14, 0x14, 0x16, 0x08, 0x2C, 0x00, 0x0F, 0x38, 0x08, 0x32, 0x1C, 0x00, 0x38, 0x08, 0x1F, + 0x00, 0x38, 0x08, 0xFF, 0x00, 0x04, 0x18, 0x00, 0x00, 0x34, 0x06, 0x1F, 0x40, 0x38, 0x08, 0xFF, + 0x22, 0x04, 0x12, 0x00, 0x0F, 0x38, 0x08, 0x81, 0x1F, 0x01, 0x38, 0x08, 0x09, 0x1F, 0x20, 0x38, + 0x08, 0x0F, 0x1B, 0x01, 0x38, 0x08, 0x1F, 0x02, 0x38, 0x08, 0x00, 0x1F, 0x01, 0x38, 0x08, 0xFF, + 0x8C, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, }; -constexpr inline const u8 SdramParamsMariko7[0x3B4] = { - 0xFF, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x2C, 0x01, - 0x00, 0x01, 0x00, 0x96, 0x88, 0x02, 0x80, 0x18, 0x40, 0x00, 0x00, 0x00, 0x40, 0x14, 0x00, 0xF0, - 0x01, 0xFF, 0xFF, 0x1F, 0x00, 0xD8, 0x51, 0x1A, 0xA0, 0x00, 0x00, 0x50, 0x05, 0x00, 0x00, 0x88, - 0x00, 0x04, 0x00, 0x20, 0x20, 0x12, 0x1A, 0x00, 0x17, 0x88, 0x04, 0x00, 0xF7, 0x00, 0x00, 0x00, - 0xBC, 0xBC, 0xAF, 0xC9, 0x3C, 0x9E, 0x00, 0x00, 0x02, 0x03, 0xE0, 0xC1, 0x04, 0x01, 0x00, 0x17, - 0x3F, 0x01, 0x00, 0x00, 0x38, 0x00, 0xD0, 0x04, 0x08, 0x00, 0x00, 0x50, 0x50, 0x50, 0x00, 0xA1, - 0x01, 0x00, 0x00, 0x30, 0x39, 0x00, 0x61, 0x10, 0x00, 0x16, 0x00, 0x10, 0x90, 0x30, 0x01, 0x13, - 0x02, 0x74, 0x00, 0x13, 0x03, 0x04, 0x00, 0xD7, 0x1E, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, - 0x3A, 0x00, 0x00, 0x00, 0x1D, 0x94, 0x00, 0x57, 0x09, 0x00, 0x00, 0x00, 0x04, 0x10, 0x00, 0x13, - 0x0B, 0x28, 0x00, 0x13, 0x08, 0x0C, 0x00, 0x00, 0x1C, 0x00, 0x53, 0x17, 0x00, 0x00, 0x00, 0x15, - 0x08, 0x00, 0x13, 0x1B, 0x28, 0x00, 0x57, 0x20, 0x00, 0x00, 0x00, 0x06, 0x04, 0x00, 0x13, 0x03, - 0x18, 0x00, 0x13, 0x04, 0x10, 0x00, 0x17, 0x02, 0x10, 0x00, 0x00, 0x4C, 0x00, 0x13, 0x0E, 0x18, - 0x00, 0x17, 0x05, 0x6C, 0x00, 0x00, 0x34, 0x00, 0x13, 0x0C, 0xE0, 0x01, 0x40, 0x00, 0x00, 0x00, - 0x80, 0x0A, 0x00, 0x00, 0x0F, 0x01, 0x93, 0x18, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x16, - 0x0C, 0x00, 0x10, 0x0A, 0x48, 0x00, 0x03, 0x61, 0x00, 0x13, 0xC1, 0x50, 0x00, 0x13, 0x08, 0x40, - 0x00, 0x13, 0x0A, 0x08, 0x00, 0x13, 0x14, 0x5C, 0x00, 0x13, 0x02, 0xC0, 0x00, 0x13, 0x3B, 0x04, - 0x00, 0x13, 0x05, 0x04, 0x00, 0x04, 0x88, 0x00, 0x04, 0x0C, 0x00, 0x00, 0xF8, 0x00, 0x90, 0x1C, - 0x03, 0x00, 0x00, 0x0D, 0xA0, 0x60, 0x91, 0x3F, 0x15, 0x01, 0xF1, 0x28, 0x00, 0xF3, 0x0C, 0x04, - 0x05, 0x1B, 0x06, 0x02, 0x03, 0x07, 0x1C, 0x23, 0x25, 0x25, 0x05, 0x08, 0x1D, 0x09, 0x0A, 0x24, - 0x0B, 0x1E, 0x0D, 0x0C, 0x26, 0x26, 0x03, 0x02, 0x1B, 0x1C, 0x23, 0x03, 0x04, 0x07, 0x05, 0x06, - 0x25, 0x25, 0x02, 0x0A, 0x0B, 0x1D, 0x0D, 0x08, 0x0C, 0x09, 0x1E, 0x24, 0x26, 0x26, 0x08, 0x24, - 0x06, 0x07, 0x9A, 0xBF, 0x01, 0x3C, 0xFF, 0x00, 0xFF, 0x00, 0x02, 0xB0, 0x04, 0x00, 0x01, 0x08, - 0x00, 0x00, 0x02, 0x08, 0x00, 0x00, 0x0D, 0x77, 0x00, 0xF2, 0x0E, 0xC0, 0x31, 0x31, 0x03, 0x08, - 0x00, 0x00, 0x0B, 0x08, 0x5D, 0x5D, 0x0E, 0x0C, 0x5D, 0x5D, 0x0C, 0x08, 0x08, 0x08, 0x0D, 0x0C, - 0x00, 0x00, 0x0D, 0x0C, 0x14, 0x14, 0x16, 0x08, 0x2C, 0x00, 0x2C, 0x11, 0x08, 0xDF, 0x02, 0x70, - 0x10, 0x00, 0xCC, 0x00, 0x0A, 0x00, 0x33, 0x6E, 0x01, 0x40, 0xF3, 0x25, 0x08, 0x11, 0x69, 0x00, - 0x23, 0x0F, 0x00, 0x30, 0x01, 0x80, 0x01, 0x03, 0x00, 0x70, 0x00, 0x0C, 0x00, 0x01, 0x0C, 0x00, - 0xA2, 0x08, 0x44, 0x00, 0x10, 0x04, 0x04, 0x00, 0x06, 0x13, 0x07, 0x1C, 0x00, 0x71, 0xA0, 0x00, - 0x2C, 0x00, 0x01, 0x37, 0x0F, 0x52, 0x01, 0x11, 0x00, 0x64, 0x01, 0xBB, 0x04, 0x00, 0x1F, 0x22, - 0x20, 0x80, 0x0F, 0xF4, 0x20, 0x02, 0x29, 0x01, 0x00, 0x12, 0x78, 0x9A, 0x02, 0x1F, 0x0F, 0xF4, - 0x02, 0x31, 0x7F, 0x16, 0x00, 0x0D, 0x00, 0x0B, 0x00, 0x17, 0x18, 0x00, 0x06, 0xF1, 0x02, 0x43, - 0x00, 0x45, 0x00, 0x45, 0x00, 0x43, 0x00, 0x46, 0x00, 0x47, 0x00, 0x41, 0x00, 0x46, 0x00, 0x0C, - 0xBA, 0x01, 0x1F, 0x0D, 0x18, 0x00, 0x06, 0x1F, 0x28, 0x02, 0x00, 0x0C, 0x11, 0x16, 0x5A, 0x00, - 0x00, 0x5C, 0x00, 0x00, 0x5E, 0x00, 0x3F, 0x17, 0x00, 0x16, 0x94, 0x00, 0x00, 0x05, 0x54, 0x01, - 0xA4, 0x40, 0x06, 0x00, 0xCC, 0x00, 0x09, 0x00, 0x4F, 0x00, 0x51, 0x18, 0x00, 0x63, 0x80, 0x01, - 0x00, 0x00, 0x40, 0x01, 0x40, 0x02, 0x54, 0xAB, 0x00, 0x0A, 0x04, 0x11, 0x5C, 0x01, 0x03, 0x04, - 0x00, 0x0F, 0xE4, 0x03, 0x0E, 0x0B, 0xCC, 0x02, 0x05, 0x78, 0x03, 0x8B, 0x01, 0x22, 0x04, 0xFF, - 0x9F, 0xAF, 0x4F, 0x01, 0x24, 0x00, 0x00, 0x01, 0x00, 0x32, 0x9F, 0xFF, 0x37, 0x80, 0x00, 0xF0, - 0x10, 0x32, 0x54, 0x76, 0x10, 0x47, 0x32, 0x65, 0x10, 0x34, 0x76, 0x25, 0x01, 0x34, 0x67, 0x25, - 0x01, 0x75, 0x64, 0x32, 0x01, 0x72, 0x56, 0x34, 0x10, 0x23, 0x74, 0x56, 0x01, 0x45, 0x32, 0x67, - 0x24, 0x00, 0x31, 0x49, 0x92, 0x24, 0x04, 0x00, 0x0C, 0x01, 0x00, 0x13, 0x12, 0x04, 0x00, 0x0C, - 0x90, 0x00, 0x80, 0x20, 0x41, 0x13, 0x1F, 0x14, 0x00, 0x01, 0x00, 0x7C, 0x00, 0x85, 0xFF, 0xFF, - 0xFF, 0x7F, 0x1F, 0xD7, 0x36, 0x40, 0xE6, 0x03, 0x24, 0x34, 0x10, 0x0A, 0x00, 0x0F, 0xCC, 0x00, - 0x02, 0x31, 0x03, 0x00, 0x05, 0x2B, 0x03, 0x22, 0x10, 0x02, 0xDD, 0x03, 0x13, 0x21, 0x15, 0x04, - 0x14, 0x40, 0x8B, 0x02, 0x1D, 0x00, 0x9D, 0x02, 0x01, 0x04, 0x04, 0xDF, 0x81, 0x10, 0x09, 0x28, - 0x93, 0x32, 0xA5, 0x44, 0x5B, 0x8A, 0x67, 0x76, 0x00, 0x01, 0x00, 0x4C, 0x22, 0x10, 0x10, 0x04, - 0x00, 0x44, 0x00, 0xEF, 0x00, 0xEF, 0x14, 0x00, 0x4C, 0x1C, 0x1C, 0x1C, 0x1C, 0xF0, 0x01, 0x31, - 0x02, 0x03, 0x08, 0x04, 0x00, 0xF1, 0x03, 0x00, 0x24, 0xFF, 0xFF, 0x00, 0x44, 0x57, 0x6E, 0x00, - 0x28, 0x72, 0x39, 0x00, 0x10, 0x9C, 0x4B, 0x00, 0x20, 0x20, 0x00, 0xB1, 0x08, 0x4C, 0x00, 0x00, - 0x80, 0x20, 0x10, 0x0A, 0x00, 0x28, 0x10, 0x04, 0x02, 0x09, 0xC0, 0x01, 0x17, 0x01, 0xC8, 0x01, - 0x04, 0x50, 0x04, 0x13, 0x01, 0x34, 0x04, 0x00, 0x10, 0x00, 0x11, 0x07, 0x10, 0x00, 0xE2, 0x02, - 0x02, 0x01, 0x02, 0x03, 0x00, 0x04, 0x05, 0xA3, 0x72, 0x0F, 0x0F, 0x00, 0x70, 0x42, 0x00, 0x16, - 0x1F, 0x28, 0x01, 0x43, 0xFF, 0x00, 0xFF, 0x01, 0x70, 0x04, 0x04, 0x84, 0x03, 0x35, 0x00, 0x00, - 0xF0, 0x24, 0x04, 0x60, 0x43, 0xC3, 0xBA, 0xE4, 0xD3, 0x1E, 0x0F, 0x05, 0x3B, 0x80, 0x2A, 0x02, - 0x1C, 0x00, 0x0C, 0xF4, 0x00, 0x19, 0x08, 0x0E, 0x00, 0x01, 0xE6, 0x05, 0x1F, 0x03, 0x2C, 0x00, - 0x05, 0x10, 0x76, 0xE9, 0x03, 0x0F, 0x9C, 0x02, 0x00, 0x05, 0x34, 0x00, 0x0F, 0x3A, 0x00, 0x04, - 0x38, 0x7E, 0x16, 0x40, 0x03, 0x06, 0x0F, 0x38, 0x00, 0x17, 0x3F, 0x1E, 0x40, 0x04, 0xA8, 0x00, - 0x08, 0x2F, 0x00, 0xC0, 0x55, 0x00, 0x04, 0x3F, 0x46, 0x24, 0x00, 0x38, 0x00, 0x0A, 0x0F, 0x01, - 0x00, 0x05, 0x22, 0x46, 0x2C, 0x38, 0x00, 0x19, 0xEC, 0x16, 0x00, 0x0D, 0x3C, 0x01, 0x50, 0x00, - 0x00, 0x00, 0x00, 0x00, -}; +constexpr inline const u8 * const SdramParamsMariko6 = SdramParamsMariko6_7; +constexpr inline const size_t SdramParamsSizeMariko6 = sizeof(SdramParamsMariko6_7); -constexpr inline const u8 SdramParamsMariko8[0x3B7] = { +constexpr inline const u8 * const SdramParamsMariko7 = SdramParamsMariko6_7; +constexpr inline const size_t SdramParamsSizeMariko7 = sizeof(SdramParamsMariko6_7); + +constexpr inline const u8 SdramParamsMariko8_9[0x428] = { 0xFF, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x2C, 0x01, 0x00, 0x01, 0x00, 0x96, 0x88, 0x02, 0x80, 0x18, 0x40, 0x00, 0x00, 0x00, 0x40, 0x14, 0x00, 0xF0, 0x01, 0xFF, 0xFF, 0x1F, 0x00, 0xD8, 0x51, 0x1A, 0xA0, 0x00, 0x00, 0x50, 0x05, 0x00, 0x00, 0x88, @@ -1009,74 +656,24 @@ constexpr inline const u8 SdramParamsMariko8[0x3B7] = { 0x03, 0x2C, 0x00, 0x05, 0x10, 0x76, 0xE9, 0x03, 0x0F, 0x9C, 0x02, 0x00, 0x05, 0x34, 0x00, 0x0F, 0x3A, 0x00, 0x04, 0x38, 0x7E, 0x16, 0x40, 0x03, 0x06, 0x0F, 0x38, 0x00, 0x17, 0x3F, 0x1E, 0x40, 0x04, 0xA8, 0x00, 0x08, 0x2F, 0x00, 0xC0, 0x55, 0x00, 0x04, 0x3F, 0x46, 0x24, 0x00, 0x38, 0x00, - 0x0A, 0x0F, 0x01, 0x00, 0x05, 0x22, 0x46, 0x2C, 0x38, 0x00, 0x19, 0xEC, 0x16, 0x00, 0x0D, 0x3C, - 0x01, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0A, 0x0F, 0x01, 0x00, 0x05, 0x22, 0x46, 0x2C, 0x38, 0x00, 0x19, 0xEC, 0x16, 0x00, 0x0F, 0x3C, + 0x01, 0x03, 0x0F, 0x38, 0x08, 0xFF, 0x22, 0x1F, 0x01, 0x38, 0x08, 0xFF, 0x74, 0x93, 0x08, 0x00, + 0x00, 0x02, 0x08, 0x00, 0x00, 0x0D, 0x08, 0x38, 0x08, 0xF2, 0x0A, 0x08, 0x00, 0x00, 0x0B, 0x08, + 0x5D, 0x5D, 0x0E, 0x0C, 0x5D, 0x5D, 0x0C, 0x08, 0x08, 0x08, 0x0D, 0x0C, 0x00, 0x00, 0x0D, 0x0C, + 0x14, 0x14, 0x16, 0x08, 0x2C, 0x00, 0x0F, 0x38, 0x08, 0x32, 0x1C, 0x00, 0x38, 0x08, 0x1B, 0x00, + 0x38, 0x08, 0x13, 0x32, 0x01, 0x00, 0x0F, 0x38, 0x08, 0xE8, 0x04, 0x18, 0x00, 0x00, 0x34, 0x06, + 0x1F, 0x40, 0x38, 0x08, 0xFF, 0x22, 0x04, 0x12, 0x00, 0x0F, 0x38, 0x08, 0x81, 0x1F, 0x01, 0x38, + 0x08, 0x09, 0x1F, 0x20, 0x38, 0x08, 0x1F, 0x1F, 0x02, 0x38, 0x08, 0x00, 0x1F, 0x01, 0x38, 0x08, + 0xFF, 0x8C, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, }; -constexpr inline const u8 SdramParamsMariko9[0x3BA] = { - 0xFF, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x2C, 0x01, - 0x00, 0x01, 0x00, 0x96, 0x88, 0x02, 0x80, 0x18, 0x40, 0x00, 0x00, 0x00, 0x40, 0x14, 0x00, 0xF0, - 0x01, 0xFF, 0xFF, 0x1F, 0x00, 0xD8, 0x51, 0x1A, 0xA0, 0x00, 0x00, 0x50, 0x05, 0x00, 0x00, 0x88, - 0x00, 0x04, 0x00, 0x20, 0x20, 0x12, 0x1A, 0x00, 0x17, 0x88, 0x04, 0x00, 0xF7, 0x00, 0x00, 0x00, - 0xBC, 0xBC, 0xAF, 0xC9, 0x3C, 0x9E, 0x00, 0x00, 0x02, 0x03, 0xE0, 0xC1, 0x04, 0x01, 0x00, 0x17, - 0x3F, 0x01, 0x00, 0x00, 0x38, 0x00, 0xD0, 0x04, 0x08, 0x00, 0x00, 0x50, 0x50, 0x50, 0x00, 0xA1, - 0x01, 0x00, 0x00, 0x30, 0x39, 0x00, 0x61, 0x10, 0x00, 0x16, 0x00, 0x10, 0x90, 0x30, 0x01, 0x13, - 0x02, 0x74, 0x00, 0x13, 0x03, 0x04, 0x00, 0xD7, 0x1E, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, - 0x3A, 0x00, 0x00, 0x00, 0x1D, 0x94, 0x00, 0x57, 0x09, 0x00, 0x00, 0x00, 0x04, 0x10, 0x00, 0x13, - 0x0B, 0x28, 0x00, 0x13, 0x08, 0x0C, 0x00, 0x00, 0x1C, 0x00, 0x53, 0x17, 0x00, 0x00, 0x00, 0x15, - 0x08, 0x00, 0x13, 0x1B, 0x28, 0x00, 0x57, 0x20, 0x00, 0x00, 0x00, 0x06, 0x04, 0x00, 0x13, 0x03, - 0x18, 0x00, 0x13, 0x04, 0x10, 0x00, 0x17, 0x02, 0x10, 0x00, 0x00, 0x4C, 0x00, 0x53, 0x0E, 0x00, - 0x00, 0x00, 0x05, 0x1C, 0x00, 0x05, 0x24, 0x01, 0x03, 0x6C, 0x00, 0x03, 0xD7, 0x01, 0x10, 0x80, - 0x0A, 0x00, 0x00, 0x0F, 0x01, 0x93, 0x18, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x16, 0x0C, - 0x00, 0x10, 0x0A, 0x48, 0x00, 0x03, 0x61, 0x00, 0x13, 0xC1, 0x50, 0x00, 0x13, 0x08, 0x74, 0x00, - 0x13, 0x0A, 0x08, 0x00, 0x13, 0x14, 0x60, 0x00, 0x04, 0x54, 0x00, 0x13, 0x3B, 0x04, 0x00, 0x13, - 0x05, 0x04, 0x00, 0x04, 0x88, 0x00, 0x04, 0x0C, 0x00, 0x00, 0xF8, 0x00, 0x90, 0x1C, 0x03, 0x00, - 0x00, 0x0D, 0xA0, 0x60, 0x91, 0x3F, 0x15, 0x01, 0xF1, 0x28, 0x00, 0xF3, 0x0C, 0x04, 0x05, 0x1B, - 0x06, 0x02, 0x03, 0x07, 0x1C, 0x23, 0x25, 0x25, 0x05, 0x08, 0x1D, 0x09, 0x0A, 0x24, 0x0B, 0x1E, - 0x0D, 0x0C, 0x26, 0x26, 0x03, 0x02, 0x1B, 0x1C, 0x23, 0x03, 0x04, 0x07, 0x05, 0x06, 0x25, 0x25, - 0x02, 0x0A, 0x0B, 0x1D, 0x0D, 0x08, 0x0C, 0x09, 0x1E, 0x24, 0x26, 0x26, 0x08, 0x24, 0x06, 0x07, - 0x9A, 0xBF, 0x01, 0x3C, 0xFF, 0x00, 0xFF, 0x00, 0x02, 0xB0, 0x04, 0x00, 0x01, 0x08, 0x00, 0x00, - 0x02, 0x08, 0x00, 0x00, 0x0D, 0x77, 0x00, 0xF2, 0x0E, 0xC0, 0x31, 0x31, 0x03, 0x08, 0x00, 0x00, - 0x0B, 0x08, 0x5D, 0x5D, 0x0E, 0x0C, 0x5D, 0x5D, 0x0C, 0x08, 0x08, 0x08, 0x0D, 0x0C, 0x00, 0x00, - 0x0D, 0x0C, 0x14, 0x14, 0x16, 0x08, 0x2C, 0x00, 0x2C, 0x11, 0x08, 0xDF, 0x02, 0x70, 0x10, 0x00, - 0xCC, 0x00, 0x0A, 0x00, 0x33, 0x6E, 0x01, 0x40, 0xF3, 0x25, 0x08, 0x11, 0x69, 0x00, 0x23, 0x0F, - 0x00, 0x30, 0x01, 0x80, 0x01, 0x03, 0x00, 0x70, 0x00, 0x0C, 0x00, 0x01, 0x0C, 0x00, 0xA2, 0x08, - 0x44, 0x00, 0x10, 0x04, 0x04, 0x00, 0x06, 0x13, 0x07, 0x1C, 0x00, 0x71, 0xA0, 0x00, 0x2C, 0x00, - 0x01, 0x37, 0x0F, 0x52, 0x01, 0x00, 0x48, 0x00, 0xD3, 0x0C, 0x00, 0x04, 0x00, 0x1F, 0x22, 0x20, - 0x80, 0x0F, 0xF4, 0x20, 0x02, 0x32, 0x01, 0x00, 0x13, 0x29, 0x01, 0x00, 0x12, 0x78, 0x9A, 0x02, - 0x1F, 0x0F, 0xF4, 0x02, 0x31, 0x7F, 0x18, 0x00, 0x0F, 0x00, 0x0B, 0x00, 0x17, 0x18, 0x00, 0x06, - 0xF1, 0x02, 0x48, 0x00, 0x44, 0x00, 0x45, 0x00, 0x44, 0x00, 0x47, 0x00, 0x47, 0x00, 0x41, 0x00, - 0x46, 0x00, 0x0D, 0x8E, 0x01, 0x1F, 0x0D, 0x18, 0x00, 0x06, 0x1F, 0x28, 0x02, 0x00, 0x0C, 0x11, - 0x18, 0x5A, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x5E, 0x00, 0x3F, 0x17, 0x00, 0x18, 0x94, 0x00, 0x00, - 0x05, 0x54, 0x01, 0xA4, 0x40, 0x06, 0x00, 0xCC, 0x00, 0x09, 0x00, 0x4F, 0x00, 0x51, 0x18, 0x00, - 0x63, 0x80, 0x01, 0x00, 0x00, 0x40, 0x01, 0x40, 0x02, 0x54, 0xAB, 0x00, 0x0A, 0x04, 0x11, 0x5C, - 0x01, 0x03, 0x04, 0x00, 0x0F, 0xE4, 0x03, 0x0E, 0x07, 0x0C, 0x00, 0x04, 0xA8, 0x04, 0x01, 0x78, - 0x03, 0x8B, 0x01, 0x22, 0x04, 0xFF, 0x9F, 0xAF, 0x4F, 0x01, 0x24, 0x00, 0x00, 0x01, 0x00, 0x32, - 0x9F, 0xFF, 0x37, 0x80, 0x00, 0xF0, 0x10, 0x32, 0x54, 0x76, 0x10, 0x47, 0x32, 0x65, 0x10, 0x34, - 0x76, 0x25, 0x01, 0x34, 0x67, 0x25, 0x01, 0x75, 0x64, 0x32, 0x01, 0x72, 0x56, 0x34, 0x10, 0x23, - 0x74, 0x56, 0x01, 0x45, 0x32, 0x67, 0x24, 0x00, 0x31, 0x49, 0x92, 0x24, 0x04, 0x00, 0x0C, 0x01, - 0x00, 0x13, 0x12, 0x04, 0x00, 0x0C, 0x90, 0x00, 0x80, 0x20, 0x41, 0x13, 0x1F, 0x14, 0x00, 0x01, - 0x00, 0x7C, 0x00, 0x85, 0xFF, 0xFF, 0xFF, 0x7F, 0x1F, 0xD7, 0x36, 0x40, 0xE6, 0x03, 0x24, 0x34, - 0x10, 0x0A, 0x00, 0x0F, 0xCC, 0x00, 0x02, 0x31, 0x03, 0x00, 0x05, 0x2B, 0x03, 0x22, 0x10, 0x02, - 0xDD, 0x03, 0x13, 0x21, 0x15, 0x04, 0x14, 0x40, 0x8B, 0x02, 0x1D, 0x00, 0x9D, 0x02, 0x01, 0x04, - 0x04, 0xDF, 0x81, 0x10, 0x09, 0x28, 0x93, 0x32, 0xA5, 0x44, 0x5B, 0x8A, 0x67, 0x76, 0x00, 0x01, - 0x00, 0x4C, 0x22, 0x10, 0x10, 0x04, 0x00, 0x44, 0x00, 0xEF, 0x00, 0xEF, 0x14, 0x00, 0x4C, 0x1C, - 0x1C, 0x1C, 0x1C, 0xF0, 0x01, 0x31, 0x02, 0x03, 0x08, 0x04, 0x00, 0xF1, 0x03, 0x00, 0x24, 0xFF, - 0xFF, 0x00, 0x44, 0x57, 0x6E, 0x00, 0x28, 0x72, 0x39, 0x00, 0x10, 0x9C, 0x4B, 0x00, 0x20, 0x20, - 0x00, 0xB1, 0x08, 0x4C, 0x00, 0x00, 0x80, 0x20, 0x10, 0x0A, 0x00, 0x28, 0x10, 0x04, 0x02, 0x09, - 0xC0, 0x01, 0x17, 0x01, 0xC8, 0x01, 0x04, 0x50, 0x04, 0x13, 0x01, 0x34, 0x04, 0x00, 0x10, 0x00, - 0x11, 0x07, 0x10, 0x00, 0xE2, 0x02, 0x02, 0x01, 0x02, 0x03, 0x00, 0x04, 0x05, 0xA3, 0x72, 0x0F, - 0x0F, 0x00, 0x70, 0x42, 0x00, 0x16, 0x1F, 0x28, 0x01, 0x43, 0xFF, 0x00, 0xFF, 0x01, 0x70, 0x04, - 0x04, 0x84, 0x03, 0x35, 0x00, 0x00, 0xF0, 0x24, 0x04, 0x60, 0x43, 0xC3, 0xBA, 0xE4, 0xD3, 0x1E, - 0x0B, 0x05, 0x3B, 0x80, 0x2A, 0x02, 0x1C, 0x00, 0x0C, 0xF4, 0x00, 0x19, 0x08, 0x0E, 0x00, 0x01, - 0xE6, 0x05, 0x1F, 0x03, 0x2C, 0x00, 0x05, 0x10, 0x76, 0xE9, 0x03, 0x0F, 0x9C, 0x02, 0x00, 0x05, - 0x34, 0x00, 0x0F, 0x3A, 0x00, 0x04, 0x38, 0x7E, 0x16, 0x40, 0x03, 0x06, 0x0F, 0x38, 0x00, 0x17, - 0x3F, 0x1E, 0x40, 0x04, 0xA8, 0x00, 0x08, 0x2F, 0x00, 0xC0, 0x55, 0x00, 0x04, 0x3F, 0x46, 0x24, - 0x00, 0x38, 0x00, 0x0A, 0x0F, 0x01, 0x00, 0x05, 0x22, 0x46, 0x2C, 0x38, 0x00, 0x19, 0xEC, 0x16, - 0x00, 0x0D, 0x3C, 0x01, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, -}; +constexpr inline const u8 * const SdramParamsMariko8 = SdramParamsMariko8_9; +constexpr inline const size_t SdramParamsSizeMariko8 = sizeof(SdramParamsMariko8_9); -constexpr inline const u8 SdramParamsMariko10[0x3BB] = { +constexpr inline const u8 * const SdramParamsMariko9 = SdramParamsMariko8_9; +constexpr inline const size_t SdramParamsSizeMariko9 = sizeof(SdramParamsMariko8_9); + +constexpr inline const u8 SdramParamsMariko10_11[0x4A3] = { 0xFF, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x2C, 0x01, 0x00, 0x01, 0x00, 0x96, 0x88, 0x02, 0x80, 0x18, 0x40, 0x00, 0x00, 0x00, 0x40, 0x14, 0x00, 0xF0, 0x01, 0xFF, 0xFF, 0x1F, 0x00, 0xD8, 0x51, 0x1A, 0xA0, 0x00, 0x00, 0x50, 0x05, 0x00, 0x00, 0x88, @@ -1136,73 +733,31 @@ constexpr inline const u8 SdramParamsMariko10[0x3BB] = { 0x05, 0x34, 0x00, 0x0F, 0x3A, 0x00, 0x04, 0x38, 0x7E, 0x16, 0x40, 0x03, 0x06, 0x0F, 0x38, 0x00, 0x17, 0x3F, 0x1E, 0x40, 0x04, 0xA8, 0x00, 0x08, 0x2F, 0x00, 0xC0, 0x55, 0x00, 0x04, 0x3F, 0x46, 0x24, 0x00, 0x38, 0x00, 0x0A, 0x0F, 0x01, 0x00, 0x05, 0x22, 0x46, 0x2C, 0x38, 0x00, 0x19, 0x9C, - 0x16, 0x00, 0x0D, 0x3C, 0x01, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x0F, 0x3C, 0x01, 0x03, 0x0F, 0x38, 0x08, 0xFF, 0xBA, 0x13, 0x06, 0x7C, 0x03, 0x08, + 0xDC, 0x01, 0x1F, 0x0C, 0x38, 0x08, 0x78, 0xFF, 0x25, 0x04, 0x05, 0x1B, 0x06, 0x02, 0x03, 0x07, + 0x1C, 0x23, 0x25, 0x25, 0x05, 0x08, 0x1D, 0x09, 0x0A, 0x24, 0x0B, 0x1E, 0x0D, 0x0C, 0x26, 0x26, + 0x03, 0x02, 0x1B, 0x1C, 0x23, 0x03, 0x04, 0x07, 0x05, 0x06, 0x25, 0x25, 0x02, 0x0A, 0x0B, 0x1D, + 0x0D, 0x08, 0x0C, 0x09, 0x1E, 0x24, 0x26, 0x26, 0x08, 0x24, 0x06, 0x07, 0x9A, 0x38, 0x08, 0xF9, + 0x7F, 0x16, 0x00, 0x0D, 0x00, 0x0B, 0x00, 0x17, 0x18, 0x00, 0x06, 0xF1, 0x02, 0x43, 0x00, 0x45, + 0x00, 0x45, 0x00, 0x43, 0x00, 0x46, 0x00, 0x47, 0x00, 0x41, 0x00, 0x46, 0x00, 0x0C, 0xBA, 0x01, + 0x1F, 0x0D, 0x18, 0x00, 0x06, 0x0F, 0x38, 0x08, 0x0D, 0x11, 0x16, 0x5A, 0x00, 0x11, 0x0D, 0x38, + 0x08, 0x5F, 0x17, 0x00, 0x17, 0x00, 0x16, 0x38, 0x08, 0x76, 0x5F, 0x22, 0x04, 0xFF, 0x9F, 0xAF, + 0x38, 0x08, 0x0A, 0xFF, 0x11, 0x01, 0x32, 0x54, 0x76, 0x10, 0x47, 0x32, 0x65, 0x10, 0x34, 0x76, + 0x25, 0x01, 0x34, 0x67, 0x25, 0x01, 0x75, 0x64, 0x32, 0x01, 0x72, 0x56, 0x34, 0x10, 0x23, 0x74, + 0x56, 0x01, 0x45, 0x32, 0x67, 0x38, 0x08, 0x2B, 0x12, 0xAF, 0x38, 0x08, 0x2F, 0xD7, 0x36, 0x38, + 0x08, 0x41, 0x92, 0x00, 0x80, 0x00, 0x40, 0x00, 0x04, 0x10, 0x80, 0x00, 0x38, 0x08, 0xBF, 0x09, + 0x28, 0x93, 0x32, 0xA5, 0x44, 0x5B, 0x8A, 0x67, 0x76, 0x00, 0x38, 0x08, 0xFF, 0x16, 0x5F, 0xC3, + 0xBA, 0xE4, 0xD3, 0x1E, 0x38, 0x08, 0xFF, 0x28, 0x1F, 0xEC, 0x38, 0x08, 0x0B, 0x50, 0x00, 0x00, + 0x00, 0x00, 0x00, }; -constexpr inline const u8 SdramParamsMariko11[0x3B6] = { - 0xFF, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x2C, 0x01, - 0x00, 0x01, 0x00, 0x96, 0x88, 0x02, 0x80, 0x18, 0x40, 0x00, 0x00, 0x00, 0x40, 0x14, 0x00, 0xF0, - 0x01, 0xFF, 0xFF, 0x1F, 0x00, 0xD8, 0x51, 0x1A, 0xA0, 0x00, 0x00, 0x50, 0x05, 0x00, 0x00, 0x88, - 0x00, 0x04, 0x00, 0x20, 0x20, 0x12, 0x1A, 0x00, 0x17, 0x88, 0x04, 0x00, 0xF7, 0x00, 0x00, 0x00, - 0xBC, 0xBC, 0xAF, 0xC9, 0x3C, 0x9E, 0x00, 0x00, 0x02, 0x03, 0xE0, 0xC1, 0x04, 0x01, 0x00, 0x17, - 0x3F, 0x01, 0x00, 0x00, 0x38, 0x00, 0xD0, 0x04, 0x08, 0x00, 0x00, 0x50, 0x50, 0x50, 0x00, 0xA1, - 0x01, 0x00, 0x00, 0x30, 0x39, 0x00, 0x62, 0x10, 0x00, 0x16, 0x00, 0x10, 0x90, 0x80, 0x00, 0x03, - 0x74, 0x00, 0x13, 0x03, 0x04, 0x00, 0xD7, 0x1E, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x3A, - 0x00, 0x00, 0x00, 0x1D, 0x94, 0x00, 0x57, 0x09, 0x00, 0x00, 0x00, 0x04, 0x10, 0x00, 0x13, 0x0B, - 0x28, 0x00, 0x13, 0x08, 0x0C, 0x00, 0x00, 0x1C, 0x00, 0x53, 0x17, 0x00, 0x00, 0x00, 0x15, 0x08, - 0x00, 0x13, 0x1B, 0x28, 0x00, 0x57, 0x20, 0x00, 0x00, 0x00, 0x06, 0x04, 0x00, 0x13, 0x03, 0x18, - 0x00, 0x13, 0x04, 0x10, 0x00, 0x17, 0x02, 0x10, 0x00, 0x00, 0x4C, 0x00, 0x13, 0x0E, 0x18, 0x00, - 0x17, 0x05, 0x6C, 0x00, 0x00, 0x34, 0x00, 0x13, 0x0C, 0xE0, 0x01, 0x40, 0x00, 0x00, 0x00, 0x80, - 0x0A, 0x00, 0x00, 0x0F, 0x01, 0x93, 0x18, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x16, 0x0C, - 0x00, 0x10, 0x0A, 0x48, 0x00, 0x03, 0x61, 0x00, 0x13, 0xC1, 0x50, 0x00, 0x13, 0x08, 0x40, 0x00, - 0x13, 0x0A, 0x08, 0x00, 0x13, 0x14, 0x5C, 0x00, 0x13, 0x02, 0xC0, 0x00, 0x13, 0x3B, 0x04, 0x00, - 0x13, 0x05, 0x04, 0x00, 0x04, 0x88, 0x00, 0x04, 0x0C, 0x00, 0x00, 0xF8, 0x00, 0x90, 0x1C, 0x03, - 0x00, 0x00, 0x0D, 0xA0, 0x60, 0x91, 0x3F, 0x15, 0x01, 0xF1, 0x28, 0x00, 0xF3, 0x0C, 0x04, 0x05, - 0x1B, 0x06, 0x02, 0x03, 0x07, 0x1C, 0x23, 0x25, 0x25, 0x05, 0x08, 0x1D, 0x09, 0x0A, 0x24, 0x0B, - 0x1E, 0x0D, 0x0C, 0x26, 0x26, 0x03, 0x02, 0x1B, 0x1C, 0x23, 0x03, 0x04, 0x07, 0x05, 0x06, 0x25, - 0x25, 0x02, 0x0A, 0x0B, 0x1D, 0x0D, 0x08, 0x0C, 0x09, 0x1E, 0x24, 0x26, 0x26, 0x08, 0x24, 0x06, - 0x07, 0x9A, 0xBF, 0x01, 0x3C, 0xFF, 0x00, 0xFF, 0x00, 0x02, 0xB0, 0x04, 0x00, 0x01, 0x88, 0x00, - 0x00, 0x02, 0x88, 0x00, 0x00, 0x0D, 0xD5, 0x01, 0xF2, 0x0E, 0xC0, 0x31, 0x31, 0x03, 0x88, 0x00, - 0x00, 0x0B, 0x88, 0x5D, 0x5D, 0x0E, 0x8C, 0x5D, 0x5D, 0x0C, 0x88, 0x08, 0x08, 0x0D, 0x8C, 0x00, - 0x00, 0x0D, 0x8C, 0x14, 0x14, 0x16, 0x88, 0x2C, 0x00, 0x2C, 0x11, 0x08, 0xDF, 0x02, 0x70, 0x10, - 0x00, 0xCC, 0x00, 0x0A, 0x00, 0x33, 0x6E, 0x01, 0x40, 0xF3, 0x25, 0x08, 0x11, 0x69, 0x00, 0x23, - 0x0F, 0x00, 0x30, 0x01, 0x80, 0x01, 0x03, 0x00, 0x70, 0x00, 0x0C, 0x00, 0x01, 0x0C, 0x00, 0xC0, - 0x08, 0x44, 0x00, 0x10, 0x04, 0x04, 0x00, 0x06, 0x13, 0x07, 0x00, 0x80, 0x10, 0x00, 0x71, 0xA0, - 0x00, 0x2C, 0x00, 0x01, 0x37, 0x0F, 0x52, 0x01, 0x11, 0x02, 0x64, 0x01, 0xBB, 0x04, 0x00, 0x1F, - 0x22, 0x20, 0x80, 0x0F, 0xF4, 0x20, 0x02, 0x29, 0x01, 0x00, 0x12, 0x78, 0x9A, 0x02, 0x1F, 0x0F, - 0xF4, 0x02, 0x31, 0x7F, 0x16, 0x00, 0x0D, 0x00, 0x0B, 0x00, 0x17, 0x18, 0x00, 0x06, 0xF1, 0x02, - 0x43, 0x00, 0x45, 0x00, 0x45, 0x00, 0x43, 0x00, 0x46, 0x00, 0x47, 0x00, 0x41, 0x00, 0x46, 0x00, - 0x0C, 0xBA, 0x01, 0x1F, 0x0D, 0x18, 0x00, 0x06, 0x1F, 0x28, 0x02, 0x00, 0x0C, 0x11, 0x16, 0x5A, - 0x00, 0x00, 0x5C, 0x00, 0x00, 0x5E, 0x00, 0x3F, 0x17, 0x00, 0x16, 0x94, 0x00, 0x00, 0x05, 0x54, - 0x01, 0xB3, 0x40, 0x06, 0x00, 0xCC, 0x00, 0x09, 0x00, 0x4F, 0x00, 0x51, 0x80, 0x18, 0x00, 0x04, - 0x08, 0x00, 0x01, 0x6E, 0x00, 0x54, 0xAB, 0x00, 0x0A, 0x04, 0x11, 0x5C, 0x01, 0x03, 0x04, 0x00, - 0x0F, 0xE4, 0x03, 0x0E, 0x0B, 0xCC, 0x02, 0x14, 0x01, 0x14, 0x00, 0x8B, 0x01, 0x22, 0x04, 0xFF, - 0x9F, 0xAF, 0x4F, 0x01, 0x24, 0x00, 0x00, 0x01, 0x00, 0x32, 0x9F, 0xFF, 0x37, 0x98, 0x00, 0xF0, - 0x10, 0x32, 0x54, 0x76, 0x10, 0x47, 0x32, 0x65, 0x10, 0x34, 0x76, 0x25, 0x01, 0x34, 0x67, 0x25, - 0x01, 0x75, 0x64, 0x32, 0x01, 0x72, 0x56, 0x34, 0x10, 0x23, 0x74, 0x56, 0x01, 0x45, 0x32, 0x67, - 0x24, 0x00, 0x31, 0x49, 0x92, 0x24, 0x04, 0x00, 0x0C, 0x01, 0x00, 0x13, 0x12, 0x04, 0x00, 0x0C, - 0x90, 0x00, 0x80, 0x20, 0x41, 0x13, 0x1F, 0x14, 0x00, 0x01, 0x00, 0x7C, 0x00, 0x85, 0xFF, 0xFF, - 0xFF, 0x7F, 0x1F, 0xD7, 0x36, 0x40, 0xE6, 0x03, 0x24, 0x34, 0x10, 0x0A, 0x00, 0x0F, 0xCC, 0x00, - 0x02, 0x31, 0x03, 0x00, 0x05, 0x2B, 0x03, 0x22, 0x10, 0x02, 0xDD, 0x03, 0x13, 0x21, 0x15, 0x04, - 0x14, 0x40, 0x8B, 0x02, 0x07, 0x01, 0x00, 0x71, 0x80, 0x00, 0x40, 0x00, 0x04, 0x10, 0x80, 0x04, - 0x04, 0xDF, 0x81, 0x10, 0x09, 0x28, 0x93, 0x32, 0xA5, 0x44, 0x5B, 0x8A, 0x67, 0x76, 0x00, 0x01, - 0x00, 0x4C, 0x22, 0x10, 0x10, 0x04, 0x00, 0x44, 0x00, 0xEF, 0x00, 0xEF, 0x14, 0x00, 0x4D, 0x1C, - 0x1C, 0x1C, 0x1C, 0x98, 0x01, 0x21, 0x03, 0x08, 0x04, 0x00, 0xF1, 0x03, 0x00, 0x24, 0xFF, 0xFF, - 0x00, 0x44, 0x57, 0x6E, 0x00, 0x28, 0x72, 0x39, 0x00, 0x10, 0x9C, 0x4B, 0x00, 0x10, 0xA4, 0x01, - 0xB2, 0x08, 0x4C, 0x00, 0x00, 0x80, 0x20, 0x10, 0x0A, 0x00, 0x28, 0x10, 0x30, 0x03, 0x08, 0xC0, - 0x01, 0x17, 0x01, 0xC8, 0x01, 0x17, 0x05, 0x10, 0x00, 0x13, 0x04, 0x10, 0x00, 0x12, 0x07, 0x62, - 0x00, 0xD2, 0x02, 0x01, 0x02, 0x03, 0x00, 0x04, 0x05, 0xA3, 0x72, 0x0F, 0x0F, 0x00, 0x70, 0x42, - 0x00, 0x16, 0x1F, 0x28, 0x01, 0x43, 0xFF, 0x00, 0xFF, 0x01, 0x70, 0x04, 0x24, 0x00, 0x80, 0x96, - 0x00, 0x15, 0xF0, 0x24, 0x04, 0x60, 0x43, 0xC3, 0xBA, 0xE4, 0xD3, 0x1E, 0x0F, 0x05, 0x3B, 0x80, - 0x2A, 0x02, 0x1C, 0x00, 0x0C, 0xF4, 0x00, 0x19, 0x08, 0x0E, 0x00, 0x01, 0xE6, 0x05, 0x1F, 0x03, - 0x2C, 0x00, 0x05, 0x10, 0x76, 0xE9, 0x03, 0x0F, 0x9C, 0x02, 0x00, 0x05, 0x34, 0x00, 0x0F, 0x3A, - 0x00, 0x04, 0x38, 0x7E, 0x16, 0x40, 0x03, 0x06, 0x0F, 0x38, 0x00, 0x17, 0x3F, 0x1E, 0x40, 0x04, - 0xA8, 0x00, 0x08, 0x2F, 0x00, 0xC0, 0x55, 0x00, 0x04, 0x3F, 0x46, 0x24, 0x00, 0x38, 0x00, 0x0A, - 0x0F, 0x01, 0x00, 0x05, 0x22, 0x46, 0x2C, 0x38, 0x00, 0x19, 0xEC, 0x16, 0x00, 0x0D, 0x3C, 0x01, - 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, -}; +constexpr inline const u8 * const SdramParamsMariko10 = SdramParamsMariko10_11; +constexpr inline const size_t SdramParamsSizeMariko10 = sizeof(SdramParamsMariko10_11); -constexpr inline const u8 SdramParamsMariko12[0x3B6] = { +constexpr inline const u8 * const SdramParamsMariko11 = SdramParamsMariko10_11; +constexpr inline const size_t SdramParamsSizeMariko11 = sizeof(SdramParamsMariko10_11); + +constexpr inline const u8 SdramParamsMariko12_13[0x3C2] = { 0xFF, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x2C, 0x01, 0x00, 0x01, 0x00, 0x96, 0x88, 0x02, 0x80, 0x18, 0x40, 0x00, 0x00, 0x00, 0x40, 0x14, 0x00, 0xF0, 0x01, 0xFF, 0xFF, 0x1F, 0x00, 0xD8, 0x51, 0x1A, 0xA0, 0x00, 0x00, 0x50, 0x05, 0x00, 0x00, 0x88, @@ -1261,7 +816,14 @@ constexpr inline const u8 SdramParamsMariko12[0x3B6] = { 0x2C, 0x00, 0x05, 0x10, 0x76, 0xE9, 0x03, 0x0F, 0x9C, 0x02, 0x00, 0x05, 0x34, 0x00, 0x0F, 0x3A, 0x00, 0x04, 0x38, 0x7E, 0x16, 0x40, 0x03, 0x06, 0x0F, 0x38, 0x00, 0x17, 0x3F, 0x1E, 0x40, 0x04, 0xA8, 0x00, 0x08, 0x2F, 0x00, 0xC0, 0x55, 0x00, 0x04, 0x3F, 0x46, 0x24, 0x00, 0x38, 0x00, 0x0A, - 0x0F, 0x01, 0x00, 0x05, 0x22, 0x46, 0x2C, 0x38, 0x00, 0x19, 0xEC, 0x16, 0x00, 0x0D, 0x3C, 0x01, - 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0x01, 0x00, 0x05, 0x22, 0x46, 0x2C, 0x38, 0x00, 0x19, 0xEC, 0x16, 0x00, 0x0E, 0x3C, 0x01, + 0x0F, 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2C, 0x50, 0x00, 0x00, 0x00, + 0x00, 0x00, }; +constexpr inline const u8 * const SdramParamsMariko12 = SdramParamsMariko12_13; +constexpr inline const size_t SdramParamsSizeMariko12 = sizeof(SdramParamsMariko12_13); + +constexpr inline const u8 * const SdramParamsMariko13 = SdramParamsMariko12_13; +constexpr inline const size_t SdramParamsSizeMariko13 = sizeof(SdramParamsMariko12_13); + diff --git a/fusee_cpp/program/source/fusee_sdram_params_lp0_erista.inc b/fusee_cpp/program/source/fusee_sdram_params_lp0_erista.inc new file mode 100644 index 000000000..53c5dacf3 --- /dev/null +++ b/fusee_cpp/program/source/fusee_sdram_params_lp0_erista.inc @@ -0,0 +1,947 @@ +/* + * Copyright (c) 2018-2020 AtmosphÃre-NX + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#define FOREACH_SDRAM_SCRATCH_REGISTER_ERISTA(HANDLER) \ + /* PMC SCRATCH fields. */ \ + HANDLER(EmcClockSource, 6, 7:0, 15:8) \ + HANDLER(EmcClockSourceDll, 6, 7:0, 23:16) \ + HANDLER(EmcClockSource, 6, 31:29, 26:24) \ + HANDLER(EmcClockSourceDll, 6, 31:29, 29:27) \ + HANDLER(EmcClockSourceDll, 6, 11:10, 31:30) \ + HANDLER(ClkRstControllerPllmMisc2Override, 7, 9:8, 1:0) \ + HANDLER(ClkRstControllerPllmMisc2Override, 7, 2:1, 3:2) \ + HANDLER(EmcZqCalLpDdr4WarmBoot, 7, 31:30, 5:4) \ + HANDLER(EmcClockSource, 7, 15:15, 6:6) \ + HANDLER(EmcClockSource, 7, 26:26, 7:7) \ + HANDLER(EmcClockSource, 7, 20:20, 8:8) \ + HANDLER(EmcClockSource, 7, 19:19, 9:9) \ + HANDLER(ClkRstControllerPllmMisc2Override, 7, 13:13, 10:10) \ + HANDLER(ClkRstControllerPllmMisc2Override, 7, 12:12, 11:11) \ + HANDLER(ClkRstControllerPllmMisc2Override, 7, 11:11, 12:12) \ + HANDLER(ClkRstControllerPllmMisc2Override, 7, 10:10, 13:13) \ + HANDLER(ClkRstControllerPllmMisc2Override, 7, 5:5, 14:14) \ + HANDLER(ClkRstControllerPllmMisc2Override, 7, 4:4, 15:15) \ + HANDLER(ClkRstControllerPllmMisc2Override, 7, 3:3, 16:16) \ + HANDLER(ClkRstControllerPllmMisc2Override, 7, 0:0, 17:17) \ + HANDLER(EmcZqCalLpDdr4WarmBoot, 7, 1:0, 19:18) \ + HANDLER(EmcZqCalLpDdr4WarmBoot, 7, 4:4, 20:20) \ + HANDLER(EmcOdtWrite, 7, 5:0, 26:21) \ + HANDLER(EmcOdtWrite, 7, 11:8, 30:27) \ + HANDLER(EmcOdtWrite, 7, 31:31, 31:31) \ + HANDLER(EmcFdpdCtrlCmdNoRamp, 13, 0:0, 30:30) \ + HANDLER(EmcCfgPipeClk, 13, 0:0, 31:31) \ + HANDLER(McEmemArbMisc2, 14, 0:0, 30:30) \ + HANDLER(McDaCfg0, 14, 0:0, 31:31) \ + HANDLER(EmcQRst, 15, 6:0, 26:20) \ + HANDLER(EmcQRst, 15, 20:16, 31:27) \ + HANDLER(EmcPmacroCmdTxDrv, 16, 5:0, 25:20) \ + HANDLER(EmcPmacroCmdTxDrv, 16, 13:8, 31:26) \ + HANDLER(EmcPmacroAutocalCfg0, 17, 2:0, 22:20) \ + HANDLER(EmcPmacroAutocalCfg0, 17, 10:8, 25:23) \ + HANDLER(EmcPmacroAutocalCfg0, 17, 18:16, 28:26) \ + HANDLER(EmcPmacroAutocalCfg0, 17, 26:24, 31:29) \ + HANDLER(EmcPmacroAutocalCfg1, 18, 2:0, 22:20) \ + HANDLER(EmcPmacroAutocalCfg1, 18, 10:8, 25:23) \ + HANDLER(EmcPmacroAutocalCfg1, 18, 18:16, 28:26) \ + HANDLER(EmcPmacroAutocalCfg1, 18, 26:24, 31:29) \ + HANDLER(EmcPmacroAutocalCfg2, 19, 2:0, 22:20) \ + HANDLER(EmcPmacroAutocalCfg2, 19, 10:8, 25:23) \ + HANDLER(EmcPmacroAutocalCfg2, 19, 18:16, 28:26) \ + HANDLER(EmcPmacroAutocalCfg2, 19, 26:24, 31:29) \ + HANDLER(EmcCfgRsv, 22, 31:0, 31:0) \ + HANDLER(EmcAutoCalConfig, 23, 31:0, 31:0) \ + HANDLER(EmcAutoCalVrefSel0, 24, 31:0, 31:0) \ + HANDLER(EmcPmacroBrickCtrlRfu1, 25, 31:0, 31:0) \ + HANDLER(EmcPmacroBrickCtrlRfu2, 26, 31:0, 31:0) \ + HANDLER(EmcPmcScratch1, 27, 31:0, 31:0) \ + HANDLER(EmcPmcScratch2, 28, 31:0, 31:0) \ + HANDLER(EmcPmcScratch3, 29, 31:0, 31:0) \ + HANDLER(McEmemArbDaTurns, 30, 31:0, 31:0) \ + HANDLER(EmcFbioSpare, 58, 31:24, 7:0) \ + HANDLER(EmcFbioSpare, 58, 23:16, 15:8) \ + HANDLER(EmcFbioSpare, 58, 15:8, 23:16) \ + HANDLER(EmcFbioSpare, 58, 7:2, 29:24) \ + HANDLER(EmcFbioSpare, 58, 0:0, 30:30) \ + HANDLER(EmcDllCfg0, 59, 29:0, 29:0) \ + HANDLER(EmcPmacroDdllBypass, 60, 11:0, 11:0) \ + HANDLER(EmcPmacroDdllBypass, 60, 27:13, 26:12) \ + HANDLER(EmcPmacroDdllBypass, 60, 31:29, 29:27) \ + HANDLER(McEmemArbMisc0, 61, 14:0, 14:0) \ + HANDLER(McEmemArbMisc0, 61, 30:16, 29:15) \ + HANDLER(EmcFdpdCtrlCmd, 62, 16:0, 16:0) \ + HANDLER(EmcFdpdCtrlCmd, 62, 31:20, 28:17) \ + HANDLER(EmcAutoCalConfig2, 63, 27:0, 27:0) \ + HANDLER(EmcBurstRefreshNum, 63, 3:0, 31:28) \ + HANDLER(EmcPmacroZctrl, 64, 27:0, 27:0) \ + HANDLER(EmcTppd, 64, 3:0, 31:28) \ + HANDLER(EmcCfgDigDll, 65, 10:0, 10:0) \ + HANDLER(EmcCfgDigDll, 65, 25:12, 24:11) \ + HANDLER(EmcCfgDigDll, 65, 27:27, 25:25) \ + HANDLER(EmcCfgDigDll, 65, 31:30, 27:26) \ + HANDLER(EmcR2r, 65, 3:0, 31:28) \ + HANDLER(EmcFdpdCtrlDq, 66, 16:0, 16:0) \ + HANDLER(EmcFdpdCtrlDq, 66, 28:20, 25:17) \ + HANDLER(EmcFdpdCtrlDq, 66, 31:30, 27:26) \ + HANDLER(EmcW2w, 66, 3:0, 31:28) \ + HANDLER(EmcPmacroTxPwrd4, 67, 13:0, 13:0) \ + HANDLER(EmcPmacroTxPwrd4, 67, 29:16, 27:14) \ + HANDLER(EmcPmacroCommonPadTxCtrl, 67, 3:0, 31:28) \ + HANDLER(EmcPmacroTxPwrd5, 68, 13:0, 13:0) \ + HANDLER(EmcPmacroTxPwrd5, 68, 29:16, 27:14) \ + HANDLER(EmcPmacroDdllPwrd0, 69, 4:0, 4:0) \ + HANDLER(EmcPmacroDdllPwrd0, 69, 12:6, 11:5) \ + HANDLER(EmcPmacroDdllPwrd0, 69, 20:14, 18:12) \ + HANDLER(EmcPmacroDdllPwrd0, 69, 28:22, 25:19) \ + HANDLER(EmcPmacroDdllPwrd0, 69, 31:30, 27:26) \ + HANDLER(EmcCfg, 69, 4:4, 31:31) \ + HANDLER(EmcPmacroDdllPwrd1, 70, 4:0, 4:0) \ + HANDLER(EmcPmacroDdllPwrd1, 70, 12:6, 11:5) \ + HANDLER(EmcPmacroDdllPwrd1, 70, 20:14, 18:12) \ + HANDLER(EmcPmacroDdllPwrd1, 70, 28:22, 25:19) \ + HANDLER(EmcPmacroDdllPwrd1, 70, 31:30, 27:26) \ + HANDLER(EmcCfg, 70, 5:5, 31:31) \ + HANDLER(EmcPmacroDdllPwrd2, 71, 4:0, 4:0) \ + HANDLER(EmcPmacroDdllPwrd2, 71, 12:6, 11:5) \ + HANDLER(EmcPmacroDdllPwrd2, 71, 20:14, 18:12) \ + HANDLER(EmcPmacroDdllPwrd2, 71, 28:22, 25:19) \ + HANDLER(EmcPmacroDdllPwrd2, 71, 31:30, 27:26) \ + HANDLER(EmcFbioCfg5, 71, 23:20, 31:28) \ + HANDLER(EmcPmacroIbVrefDq_0, 72, 6:0, 6:0) \ + HANDLER(EmcPmacroIbVrefDq_0, 72, 14:8, 13:7) \ + HANDLER(EmcPmacroIbVrefDq_0, 72, 22:16, 20:14) \ + HANDLER(EmcPmacroIbVrefDq_0, 72, 30:24, 27:21) \ + HANDLER(EmcFbioCfg5, 72, 15:13, 30:28) \ + HANDLER(EmcCfg, 72, 6:6, 31:31) \ + HANDLER(EmcPmacroIbVrefDq_1, 73, 6:0, 6:0) \ + HANDLER(EmcPmacroIbVrefDq_1, 73, 14:8, 13:7) \ + HANDLER(EmcPmacroIbVrefDq_1, 73, 22:16, 20:14) \ + HANDLER(EmcPmacroIbVrefDq_1, 73, 30:24, 27:21) \ + HANDLER(EmcCfg2, 73, 5:3, 30:28) \ + HANDLER(EmcCfg, 73, 7:7, 31:31) \ + HANDLER(EmcPmacroIbVrefDqs_0, 74, 6:0, 6:0) \ + HANDLER(EmcPmacroIbVrefDqs_0, 74, 14:8, 13:7) \ + HANDLER(EmcPmacroIbVrefDqs_0, 74, 22:16, 20:14) \ + HANDLER(EmcPmacroIbVrefDqs_0, 74, 30:24, 27:21) \ + HANDLER(EmcCfg, 74, 17:16, 29:28) \ + HANDLER(EmcFbioCfg5, 74, 1:0, 31:30) \ + HANDLER(EmcPmacroIbVrefDqs_1, 75, 6:0, 6:0) \ + HANDLER(EmcPmacroIbVrefDqs_1, 75, 14:8, 13:7) \ + HANDLER(EmcPmacroIbVrefDqs_1, 75, 22:16, 20:14) \ + HANDLER(EmcPmacroIbVrefDqs_1, 75, 30:24, 27:21) \ + HANDLER(EmcFbioCfg5, 75, 3:2, 29:28) \ + HANDLER(EmcCfg2, 75, 27:26, 31:30) \ + HANDLER(EmcPmacroDdllShortCmd_0, 76, 6:0, 6:0) \ + HANDLER(EmcPmacroDdllShortCmd_0, 76, 14:8, 13:7) \ + HANDLER(EmcPmacroDdllShortCmd_0, 76, 22:16, 20:14) \ + HANDLER(EmcPmacroDdllShortCmd_0, 76, 30:24, 27:21) \ + HANDLER(EmcPmacroCmdPadTxCtrl, 76, 3:2, 29:28) \ + HANDLER(EmcPmacroCmdPadTxCtrl, 76, 7:6, 31:30) \ + HANDLER(EmcPmacroDdllShortCmd_1, 77, 6:0, 6:0) \ + HANDLER(EmcPmacroDdllShortCmd_1, 77, 14:8, 13:7) \ + HANDLER(EmcPmacroDdllShortCmd_1, 77, 22:16, 20:14) \ + HANDLER(EmcPmacroDdllShortCmd_1, 77, 30:24, 27:21) \ + HANDLER(EmcPmacroCmdPadTxCtrl, 77, 11:10, 29:28) \ + HANDLER(EmcPmacroCmdPadTxCtrl, 77, 15:14, 31:30) \ + HANDLER(EmcAutoCalChannel, 78, 5:0, 5:0) \ + HANDLER(EmcAutoCalChannel, 78, 11:8, 9:6) \ + HANDLER(EmcAutoCalChannel, 78, 27:16, 21:10) \ + HANDLER(EmcAutoCalChannel, 78, 31:29, 24:22) \ + HANDLER(EmcConfigSampleDelay, 78, 6:0, 31:25) \ + HANDLER(EmcPmacroRxTerm, 79, 5:0, 5:0) \ + HANDLER(EmcPmacroRxTerm, 79, 13:8, 11:6) \ + HANDLER(EmcPmacroRxTerm, 79, 21:16, 17:12) \ + HANDLER(EmcPmacroRxTerm, 79, 29:24, 23:18) \ + HANDLER(EmcRc, 79, 7:0, 31:24) \ + HANDLER(EmcPmacroDqTxDrv, 80, 5:0, 5:0) \ + HANDLER(EmcPmacroDqTxDrv, 80, 13:8, 11:6) \ + HANDLER(EmcPmacroDqTxDrv, 80, 21:16, 17:12) \ + HANDLER(EmcPmacroDqTxDrv, 80, 29:24, 23:18) \ + HANDLER(EmcSelDpdCtrl, 80, 5:2, 27:24) \ + HANDLER(EmcSelDpdCtrl, 80, 8:8, 28:28) \ + HANDLER(EmcSelDpdCtrl, 80, 18:16, 31:29) \ + HANDLER(EmcPmacroCaTxDrv, 81, 5:0, 5:0) \ + HANDLER(EmcPmacroCaTxDrv, 81, 13:8, 11:6) \ + HANDLER(EmcPmacroCaTxDrv, 81, 21:16, 17:12) \ + HANDLER(EmcPmacroCaTxDrv, 81, 29:24, 23:18) \ + HANDLER(EmcObdly, 81, 5:0, 29:24) \ + HANDLER(EmcObdly, 81, 29:28, 31:30) \ + HANDLER(EmcZcalInterval, 82, 23:10, 13:0) \ + HANDLER(EmcZcalInterval, 82, 9:0, 23:14) \ + HANDLER(EmcPmacroCmdRxTermMode, 82, 1:0, 25:24) \ + HANDLER(EmcPmacroCmdRxTermMode, 82, 5:4, 27:26) \ + HANDLER(EmcPmacroCmdRxTermMode, 82, 9:8, 29:28) \ + HANDLER(EmcPmacroCmdRxTermMode, 82, 13:12, 31:30) \ + HANDLER(EmcDataBrlshft0, 83, 23:0, 23:0) \ + HANDLER(EmcPmacroDataRxTermMode, 83, 1:0, 25:24) \ + HANDLER(EmcPmacroDataRxTermMode, 83, 5:4, 27:26) \ + HANDLER(EmcPmacroDataRxTermMode, 83, 9:8, 29:28) \ + HANDLER(EmcPmacroDataRxTermMode, 83, 13:12, 31:30) \ + HANDLER(EmcDataBrlshft1, 84, 23:0, 23:0) \ + HANDLER(McEmemArbTimingRc, 84, 7:0, 31:24) \ + HANDLER(EmcDqsBrlshft0, 85, 23:0, 23:0) \ + HANDLER(McEmemArbRsv, 85, 7:0, 31:24) \ + HANDLER(EmcDqsBrlshft1, 86, 23:0, 23:0) \ + HANDLER(EmcCfgPipe2, 87, 11:0, 11:0) \ + HANDLER(EmcCfgPipe2, 87, 27:16, 23:12) \ + HANDLER(EmcCfgPipe1, 88, 11:0, 11:0) \ + HANDLER(EmcCfgPipe1, 88, 27:16, 23:12) \ + HANDLER(EmcPmacroCmdCtrl0, 89, 5:0, 5:0) \ + HANDLER(EmcPmacroCmdCtrl0, 89, 13:8, 11:6) \ + HANDLER(EmcPmacroCmdCtrl0, 89, 21:16, 17:12) \ + HANDLER(EmcPmacroCmdCtrl0, 89, 29:24, 23:18) \ + HANDLER(EmcPmacroCmdCtrl1, 90, 5:0, 5:0) \ + HANDLER(EmcPmacroCmdCtrl1, 90, 13:8, 11:6) \ + HANDLER(EmcPmacroCmdCtrl1, 90, 21:16, 17:12) \ + HANDLER(EmcPmacroCmdCtrl1, 90, 29:24, 23:18) \ + HANDLER(EmcRas, 90, 6:0, 30:24) \ + HANDLER(EmcCfg, 90, 8:8, 31:31) \ + HANDLER(EmcPmacroVttgenCtrl2, 91, 23:0, 23:0) \ + HANDLER(EmcW2p, 91, 6:0, 30:24) \ + HANDLER(EmcCfg, 91, 9:9, 31:31) \ + HANDLER(EmcPmacroCmdPadRxCtrl, 92, 2:0, 2:0) \ + HANDLER(EmcPmacroCmdPadRxCtrl, 92, 5:4, 4:3) \ + HANDLER(EmcPmacroCmdPadRxCtrl, 92, 10:8, 7:5) \ + HANDLER(EmcPmacroCmdPadRxCtrl, 92, 22:12, 18:8) \ + HANDLER(EmcPmacroCmdPadRxCtrl, 92, 28:24, 23:19) \ + HANDLER(EmcQSafe, 92, 6:0, 30:24) \ + HANDLER(EmcCfg, 92, 18:18, 31:31) \ + HANDLER(EmcPmacroDataPadRxCtrl, 93, 2:0, 2:0) \ + HANDLER(EmcPmacroDataPadRxCtrl, 93, 5:4, 4:3) \ + HANDLER(EmcPmacroDataPadRxCtrl, 93, 10:8, 7:5) \ + HANDLER(EmcPmacroDataPadRxCtrl, 93, 22:12, 18:8) \ + HANDLER(EmcPmacroDataPadRxCtrl, 93, 28:24, 23:19) \ + HANDLER(EmcRdv, 93, 6:0, 30:24) \ + HANDLER(EmcCfg, 93, 21:21, 31:31) \ + HANDLER(McEmemArbDaCovers, 94, 23:0, 23:0) \ + HANDLER(EmcRw2Pden, 94, 6:0, 30:24) \ + HANDLER(EmcCfg, 94, 22:22, 31:31) \ + HANDLER(EmcPmacroCmdCtrl2, 95, 5:0, 5:0) \ + HANDLER(EmcPmacroCmdCtrl2, 95, 13:9, 10:6) \ + HANDLER(EmcPmacroCmdCtrl2, 95, 21:16, 16:11) \ + HANDLER(EmcPmacroCmdCtrl2, 95, 29:24, 22:17) \ + HANDLER(EmcRfcPb, 95, 8:0, 31:23) \ + HANDLER(EmcPmacroQuseDdllRank0_0, 96, 10:0, 10:0) \ + HANDLER(EmcPmacroQuseDdllRank0_0, 96, 26:16, 21:11) \ + HANDLER(EmcCfgUpdate, 96, 2:0, 24:22) \ + HANDLER(EmcCfgUpdate, 96, 10:8, 27:25) \ + HANDLER(EmcCfgUpdate, 96, 31:28, 31:28) \ + HANDLER(EmcPmacroQuseDdllRank0_1, 97, 10:0, 10:0) \ + HANDLER(EmcPmacroQuseDdllRank0_1, 97, 26:16, 21:11) \ + HANDLER(EmcRfc, 97, 9:0, 31:22) \ + HANDLER(EmcPmacroQuseDdllRank0_2, 98, 10:0, 10:0) \ + HANDLER(EmcPmacroQuseDdllRank0_2, 98, 26:16, 21:11) \ + HANDLER(EmcTxsr, 98, 9:0, 31:22) \ + HANDLER(EmcPmacroQuseDdllRank0_3, 99, 10:0, 10:0) \ + HANDLER(EmcPmacroQuseDdllRank0_3, 99, 26:16, 21:11) \ + HANDLER(EmcMc2EmcQ, 99, 2:0, 24:22) \ + HANDLER(EmcMc2EmcQ, 99, 10:8, 27:25) \ + HANDLER(EmcMc2EmcQ, 99, 27:24, 31:28) \ + HANDLER(EmcPmacroQuseDdllRank0_4, 100, 10:0, 10:0) \ + HANDLER(EmcPmacroQuseDdllRank0_4, 100, 26:16, 21:11) \ + HANDLER(McEmemArbRing1Throttle, 100, 4:0, 26:22) \ + HANDLER(McEmemArbRing1Throttle, 100, 20:16, 31:27) \ + HANDLER(EmcPmacroQuseDdllRank0_5, 101, 10:0, 10:0) \ + HANDLER(EmcPmacroQuseDdllRank0_5, 101, 26:16, 21:11) \ + HANDLER(EmcPmacroQuseDdllRank1_0, 102, 10:0, 10:0) \ + HANDLER(EmcPmacroQuseDdllRank1_0, 102, 26:16, 21:11) \ + HANDLER(EmcAr2Pden, 102, 8:0, 30:22) \ + HANDLER(EmcCfg, 102, 23:23, 31:31) \ + HANDLER(EmcPmacroQuseDdllRank1_1, 103, 10:0, 10:0) \ + HANDLER(EmcPmacroQuseDdllRank1_1, 103, 26:16, 21:11) \ + HANDLER(EmcRfcSlr, 103, 8:0, 30:22) \ + HANDLER(EmcCfg, 103, 24:24, 31:31) \ + HANDLER(EmcPmacroQuseDdllRank1_2, 104, 10:0, 10:0) \ + HANDLER(EmcPmacroQuseDdllRank1_2, 104, 26:16, 21:11) \ + HANDLER(EmcIbdly, 104, 6:0, 28:22) \ + HANDLER(EmcIbdly, 104, 29:28, 30:29) \ + HANDLER(EmcCfg, 104, 25:25, 31:31) \ + HANDLER(EmcPmacroQuseDdllRank1_3, 105, 10:0, 10:0) \ + HANDLER(EmcPmacroQuseDdllRank1_3, 105, 26:16, 21:11) \ + HANDLER(McEmemArbTimingRFCPB, 105, 8:0, 30:22) \ + HANDLER(EmcCfg, 105, 26:26, 31:31) \ + HANDLER(EmcPmacroQuseDdllRank1_4, 106, 10:0, 10:0) \ + HANDLER(EmcPmacroQuseDdllRank1_4, 106, 26:16, 21:11) \ + HANDLER(EmcTfaw, 106, 6:0, 28:22) \ + HANDLER(EmcPmacroDataPadTxCtrl, 106, 3:2, 30:29) \ + HANDLER(EmcCfg, 106, 28:28, 31:31) \ + HANDLER(EmcPmacroQuseDdllRank1_5, 107, 10:0, 10:0) \ + HANDLER(EmcPmacroQuseDdllRank1_5, 107, 26:16, 21:11) \ + HANDLER(EmcTClkStable, 107, 6:0, 28:22) \ + HANDLER(EmcPmacroDataPadTxCtrl, 107, 7:6, 30:29) \ + HANDLER(EmcCfg, 107, 29:29, 31:31) \ + HANDLER(EmcPmacroObDdllLongDqRank0_0, 108, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqRank0_0, 108, 26:16, 21:11) \ + HANDLER(EmcPdex2Mrr, 108, 6:0, 28:22) \ + HANDLER(EmcPmacroDataPadTxCtrl, 108, 11:10, 30:29) \ + HANDLER(EmcCfg, 108, 30:30, 31:31) \ + HANDLER(EmcPmacroObDdllLongDqRank0_1, 109, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqRank0_1, 109, 26:16, 21:11) \ + HANDLER(EmcRdvMask, 109, 6:0, 28:22) \ + HANDLER(EmcPmacroDataPadTxCtrl, 109, 15:14, 30:29) \ + HANDLER(EmcCfg, 109, 31:31, 31:31) \ + HANDLER(EmcPmacroObDdllLongDqRank0_2, 110, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqRank0_2, 110, 26:16, 21:11) \ + HANDLER(EmcRdvEarlyMask, 110, 6:0, 28:22) \ + HANDLER(EmcFbioCfg5, 110, 4:4, 29:29) \ + HANDLER(EmcFbioCfg5, 110, 8:8, 30:30) \ + HANDLER(EmcFbioCfg5, 110, 10:10, 31:31) \ + HANDLER(EmcPmacroObDdllLongDqRank0_3, 111, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqRank0_3, 111, 26:16, 21:11) \ + HANDLER(EmcRdvEarly, 111, 6:0, 28:22) \ + HANDLER(EmcFbioCfg5, 111, 12:12, 29:29) \ + HANDLER(EmcFbioCfg5, 111, 25:24, 31:30) \ + HANDLER(EmcPmacroObDdllLongDqRank0_4, 112, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqRank0_4, 112, 26:16, 21:11) \ + HANDLER(EmcPmacroDdllShortCmd_2, 112, 6:0, 28:22) \ + HANDLER(EmcFbioCfg5, 112, 28:26, 31:29) \ + HANDLER(EmcPmacroObDdllLongDqRank0_5, 113, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqRank0_5, 113, 26:16, 21:11) \ + HANDLER(McEmemArbTimingRp, 113, 6:0, 28:22) \ + HANDLER(EmcFbioCfg5, 113, 31:30, 30:29) \ + HANDLER(EmcCfg2, 113, 0:0, 31:31) \ + HANDLER(EmcPmacroObDdllLongDqRank1_0, 114, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqRank1_0, 114, 26:16, 21:11) \ + HANDLER(McEmemArbTimingRas, 114, 6:0, 28:22) \ + HANDLER(EmcCfg2, 114, 2:1, 30:29) \ + HANDLER(EmcCfg2, 114, 7:7, 31:31) \ + HANDLER(EmcPmacroObDdllLongDqRank1_1, 115, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqRank1_1, 115, 26:16, 21:11) \ + HANDLER(McEmemArbTimingFaw, 115, 6:0, 28:22) \ + HANDLER(EmcCfg2, 115, 11:10, 30:29) \ + HANDLER(EmcCfg2, 115, 14:14, 31:31) \ + HANDLER(EmcPmacroObDdllLongDqRank1_2, 123, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqRank1_2, 123, 26:16, 21:11) \ + HANDLER(McEmemArbTimingRap2Pre, 123, 6:0, 28:22) \ + HANDLER(EmcCfg2, 123, 16:15, 30:29) \ + HANDLER(EmcCfg2, 123, 20:20, 31:31) \ + HANDLER(EmcPmacroObDdllLongDqRank1_3, 124, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqRank1_3, 124, 26:16, 21:11) \ + HANDLER(McEmemArbTimingWap2Pre, 124, 6:0, 28:22) \ + HANDLER(EmcCfg2, 124, 24:22, 31:29) \ + HANDLER(EmcPmacroObDdllLongDqRank1_4, 125, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqRank1_4, 125, 26:16, 21:11) \ + HANDLER(McEmemArbTimingR2W, 125, 6:0, 28:22) \ + HANDLER(EmcCfg2, 125, 25:25, 29:29) \ + HANDLER(EmcCfg2, 125, 29:28, 31:30) \ + HANDLER(EmcPmacroObDdllLongDqRank1_5, 126, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqRank1_5, 126, 26:16, 21:11) \ + HANDLER(McEmemArbTimingW2R, 126, 6:0, 28:22) \ + HANDLER(EmcCfg2, 126, 31:30, 30:29) \ + HANDLER(EmcCfgPipe, 126, 0:0, 31:31) \ + HANDLER(EmcPmacroObDdllLongDqsRank0_0, 127, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqsRank0_0, 127, 26:16, 21:11) \ + HANDLER(EmcRp, 127, 5:0, 27:22) \ + HANDLER(EmcCfgPipe, 127, 4:1, 31:28) \ + HANDLER(EmcPmacroObDdllLongDqsRank0_1, 128, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqsRank0_1, 128, 26:16, 21:11) \ + HANDLER(EmcR2w, 128, 5:0, 27:22) \ + HANDLER(EmcCfgPipe, 128, 8:5, 31:28) \ + HANDLER(EmcPmacroObDdllLongDqsRank0_2, 129, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqsRank0_2, 129, 26:16, 21:11) \ + HANDLER(EmcW2r, 129, 5:0, 27:22) \ + HANDLER(EmcCfgPipe, 129, 11:9, 30:28) \ + HANDLER(EmcCfgPipe, 129, 16:16, 31:31) \ + HANDLER(EmcPmacroObDdllLongDqsRank0_3, 130, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqsRank0_3, 130, 26:16, 21:11) \ + HANDLER(EmcR2p, 130, 5:0, 27:22) \ + HANDLER(EmcCfgPipe, 130, 20:17, 31:28) \ + HANDLER(EmcPmacroObDdllLongDqsRank0_4, 131, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqsRank0_4, 131, 26:16, 21:11) \ + HANDLER(EmcCcdmw, 131, 5:0, 27:22) \ + HANDLER(EmcCfgPipe, 131, 24:21, 31:28) \ + HANDLER(EmcPmacroObDdllLongDqsRank0_5, 132, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqsRank0_5, 132, 26:16, 21:11) \ + HANDLER(EmcRdRcd, 132, 5:0, 27:22) \ + HANDLER(EmcCfgPipe, 132, 27:25, 30:28) \ + HANDLER(EmcPmacroTxPwrd0, 132, 0:0, 31:31) \ + HANDLER(EmcPmacroObDdllLongDqsRank1_0, 133, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqsRank1_0, 133, 26:16, 21:11) \ + HANDLER(EmcWrRcd, 133, 5:0, 27:22) \ + HANDLER(EmcPmacroTxPwrd0, 133, 4:1, 31:28) \ + HANDLER(EmcPmacroObDdllLongDqsRank1_1, 134, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqsRank1_1, 134, 26:16, 21:11) \ + HANDLER(EmcWdv, 134, 5:0, 27:22) \ + HANDLER(EmcPmacroTxPwrd0, 134, 8:5, 31:28) \ + HANDLER(EmcPmacroObDdllLongDqsRank1_2, 135, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqsRank1_2, 135, 26:16, 21:11) \ + HANDLER(EmcQUse, 135, 5:0, 27:22) \ + HANDLER(EmcPmacroTxPwrd0, 135, 12:9, 31:28) \ + HANDLER(EmcPmacroObDdllLongDqsRank1_3, 136, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqsRank1_3, 136, 26:16, 21:11) \ + HANDLER(EmcPdEx2Wr, 136, 5:0, 27:22) \ + HANDLER(EmcPmacroTxPwrd0, 136, 13:13, 28:28) \ + HANDLER(EmcPmacroTxPwrd0, 136, 18:16, 31:29) \ + HANDLER(EmcPmacroObDdllLongDqsRank1_4, 137, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqsRank1_4, 137, 26:16, 21:11) \ + HANDLER(EmcPdEx2Rd, 137, 5:0, 27:22) \ + HANDLER(EmcPmacroTxPwrd0, 137, 22:19, 31:28) \ + HANDLER(EmcPmacroObDdllLongDqsRank1_5, 138, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqsRank1_5, 138, 26:16, 21:11) \ + HANDLER(EmcPdex2Cke, 138, 5:0, 27:22) \ + HANDLER(EmcPmacroTxPwrd0, 138, 26:23, 31:28) \ + HANDLER(EmcPmacroIbDdllLongDqsRank0_0, 139, 10:0, 10:0) \ + HANDLER(EmcPmacroIbDdllLongDqsRank0_0, 139, 26:16, 21:11) \ + HANDLER(EmcPChg2Pden, 139, 5:0, 27:22) \ + HANDLER(EmcPmacroTxPwrd0, 139, 29:27, 30:28) \ + HANDLER(EmcPmacroTxPwrd1, 139, 0:0, 31:31) \ + HANDLER(EmcPmacroIbDdllLongDqsRank0_1, 140, 10:0, 10:0) \ + HANDLER(EmcPmacroIbDdllLongDqsRank0_1, 140, 26:16, 21:11) \ + HANDLER(EmcAct2Pden, 140, 5:0, 27:22) \ + HANDLER(EmcPmacroTxPwrd1, 140, 4:1, 31:28) \ + HANDLER(EmcPmacroIbDdllLongDqsRank0_2, 141, 10:0, 10:0) \ + HANDLER(EmcPmacroIbDdllLongDqsRank0_2, 141, 26:16, 21:11) \ + HANDLER(EmcCke2Pden, 141, 5:0, 27:22) \ + HANDLER(EmcPmacroTxPwrd1, 141, 8:5, 31:28) \ + HANDLER(EmcPmacroIbDdllLongDqsRank0_3, 142, 10:0, 10:0) \ + HANDLER(EmcPmacroIbDdllLongDqsRank0_3, 142, 26:16, 21:11) \ + HANDLER(EmcTcke, 142, 5:0, 27:22) \ + HANDLER(EmcPmacroTxPwrd1, 142, 12:9, 31:28) \ + HANDLER(EmcPmacroIbDdllLongDqsRank1_0, 143, 10:0, 10:0) \ + HANDLER(EmcPmacroIbDdllLongDqsRank1_0, 143, 26:16, 21:11) \ + HANDLER(EmcTrpab, 143, 5:0, 27:22) \ + HANDLER(EmcPmacroTxPwrd1, 143, 13:13, 28:28) \ + HANDLER(EmcPmacroTxPwrd1, 143, 18:16, 31:29) \ + HANDLER(EmcPmacroIbDdllLongDqsRank1_1, 144, 10:0, 10:0) \ + HANDLER(EmcPmacroIbDdllLongDqsRank1_1, 144, 26:16, 21:11) \ + HANDLER(EmcClkenOverride, 144, 3:1, 24:22) \ + HANDLER(EmcClkenOverride, 144, 8:6, 27:25) \ + HANDLER(EmcPmacroTxPwrd1, 144, 22:19, 31:28) \ + HANDLER(EmcPmacroIbDdllLongDqsRank1_2, 145, 10:0, 10:0) \ + HANDLER(EmcPmacroIbDdllLongDqsRank1_2, 145, 26:16, 21:11) \ + HANDLER(EmcEInput, 145, 5:0, 27:22) \ + HANDLER(EmcPmacroTxPwrd1, 145, 26:23, 31:28) \ + HANDLER(EmcPmacroIbDdllLongDqsRank1_3, 146, 10:0, 10:0) \ + HANDLER(EmcPmacroIbDdllLongDqsRank1_3, 146, 26:16, 21:11) \ + HANDLER(EmcEInputDuration, 146, 5:0, 27:22) \ + HANDLER(EmcPmacroTxPwrd1, 146, 29:27, 30:28) \ + HANDLER(EmcPmacroTxPwrd2, 146, 0:0, 31:31) \ + HANDLER(EmcPmacroDdllLongCmd_0, 147, 10:0, 10:0) \ + HANDLER(EmcPmacroDdllLongCmd_0, 147, 26:16, 21:11) \ + HANDLER(EmcPutermExtra, 147, 5:0, 27:22) \ + HANDLER(EmcPmacroTxPwrd2, 147, 4:1, 31:28) \ + HANDLER(EmcPmacroDdllLongCmd_1, 148, 10:0, 10:0) \ + HANDLER(EmcPmacroDdllLongCmd_1, 148, 26:16, 21:11) \ + HANDLER(EmcTckesr, 148, 5:0, 27:22) \ + HANDLER(EmcPmacroTxPwrd2, 148, 8:5, 31:28) \ + HANDLER(EmcPmacroDdllLongCmd_2, 149, 10:0, 10:0) \ + HANDLER(EmcPmacroDdllLongCmd_2, 149, 26:16, 21:11) \ + HANDLER(EmcTpd, 149, 5:0, 27:22) \ + HANDLER(EmcPmacroTxPwrd2, 149, 12:9, 31:28) \ + HANDLER(EmcPmacroDdllLongCmd_3, 150, 10:0, 10:0) \ + HANDLER(EmcPmacroDdllLongCmd_3, 150, 26:16, 21:11) \ + HANDLER(EmcWdvMask, 150, 5:0, 27:22) \ + HANDLER(EmcPmacroTxPwrd2, 150, 13:13, 28:28) \ + HANDLER(EmcPmacroTxPwrd2, 150, 18:16, 31:29) \ + HANDLER(McEmemArbCfg, 151, 8:0, 8:0) \ + HANDLER(McEmemArbCfg, 151, 20:16, 13:9) \ + HANDLER(McEmemArbCfg, 151, 31:24, 21:14) \ + HANDLER(EmcWdvChk, 151, 5:0, 27:22) \ + HANDLER(EmcPmacroTxPwrd2, 151, 22:19, 31:28) \ + HANDLER(McEmemArbMisc1, 152, 12:0, 12:0) \ + HANDLER(McEmemArbMisc1, 152, 25:21, 17:13) \ + HANDLER(McEmemArbMisc1, 152, 31:28, 21:18) \ + HANDLER(EmcCmdBrlshft0, 152, 5:0, 27:22) \ + HANDLER(EmcPmacroTxPwrd2, 152, 26:23, 31:28) \ + HANDLER(EmcMrsWaitCnt2, 153, 9:0, 9:0) \ + HANDLER(EmcMrsWaitCnt2, 153, 26:16, 20:10) \ + HANDLER(EmcPmacroIbRxrt, 153, 10:0, 31:21) \ + HANDLER(EmcMrsWaitCnt, 154, 9:0, 9:0) \ + HANDLER(EmcMrsWaitCnt, 154, 26:16, 20:10) \ + HANDLER(EmcPmacroDdllLongCmd_4, 154, 10:0, 31:21) \ + HANDLER(EmcAutoCalInterval, 155, 20:0, 20:0) \ + HANDLER(McEmemArbOutstandingReq, 155, 8:0, 29:21) \ + HANDLER(McEmemArbOutstandingReq, 155, 31:30, 31:30) \ + HANDLER(McEmemArbRefpbHpCtrl, 156, 6:0, 6:0) \ + HANDLER(McEmemArbRefpbHpCtrl, 156, 14:8, 13:7) \ + HANDLER(McEmemArbRefpbHpCtrl, 156, 22:16, 20:14) \ + HANDLER(EmcCmdBrlshft1, 156, 5:0, 26:21) \ + HANDLER(EmcRrd, 156, 4:0, 31:27) \ + HANDLER(EmcQuseBrlshft0, 157, 19:0, 19:0) \ + HANDLER(EmcFbioCfg8, 157, 27:16, 31:20) \ + HANDLER(EmcQuseBrlshft1, 158, 19:0, 19:0) \ + HANDLER(EmcTxsrDll, 158, 11:0, 31:20) \ + HANDLER(EmcQuseBrlshft2, 159, 19:0, 19:0) \ + HANDLER(EmcTxdsrvttgen, 159, 11:0, 31:20) \ + HANDLER(EmcQuseBrlshft3, 160, 19:0, 19:0) \ + HANDLER(EmcPmacroVttgenCtrl0, 160, 3:0, 23:20) \ + HANDLER(EmcPmacroVttgenCtrl0, 160, 11:8, 27:24) \ + HANDLER(EmcPmacroVttgenCtrl0, 160, 19:16, 31:28) \ + HANDLER(EmcPmacroVttgenCtrl1, 161, 19:0, 19:0) \ + HANDLER(EmcCmdBrlshft2, 161, 5:0, 25:20) \ + HANDLER(EmcCmdBrlshft3, 161, 5:0, 31:26) \ + HANDLER(EmcAutoCalConfig3, 162, 5:0, 5:0) \ + HANDLER(EmcAutoCalConfig3, 162, 13:8, 11:6) \ + HANDLER(EmcAutoCalConfig3, 162, 18:16, 14:12) \ + HANDLER(EmcAutoCalConfig3, 162, 22:20, 17:15) \ + HANDLER(EmcTRefBw, 162, 13:0, 31:18) \ + HANDLER(EmcAutoCalConfig4, 163, 5:0, 5:0) \ + HANDLER(EmcAutoCalConfig4, 163, 13:8, 11:6) \ + HANDLER(EmcAutoCalConfig4, 163, 18:16, 14:12) \ + HANDLER(EmcAutoCalConfig4, 163, 22:20, 17:15) \ + HANDLER(EmcQpop, 163, 6:0, 24:18) \ + HANDLER(EmcQpop, 163, 22:16, 31:25) \ + HANDLER(EmcAutoCalConfig5, 164, 5:0, 5:0) \ + HANDLER(EmcAutoCalConfig5, 164, 13:8, 11:6) \ + HANDLER(EmcAutoCalConfig5, 164, 18:16, 14:12) \ + HANDLER(EmcAutoCalConfig5, 164, 22:20, 17:15) \ + HANDLER(EmcPmacroAutocalCfgCommon, 164, 5:0, 23:18) \ + HANDLER(EmcPmacroAutocalCfgCommon, 164, 13:8, 29:24) \ + HANDLER(EmcPmacroAutocalCfgCommon, 164, 16:16, 30:30) \ + HANDLER(EmcPmacroTxPwrd2, 164, 27:27, 31:31) \ + HANDLER(EmcAutoCalConfig6, 165, 5:0, 5:0) \ + HANDLER(EmcAutoCalConfig6, 165, 13:8, 11:6) \ + HANDLER(EmcAutoCalConfig6, 165, 18:16, 14:12) \ + HANDLER(EmcAutoCalConfig6, 165, 22:20, 17:15) \ + HANDLER(EmcWev, 165, 5:0, 23:18) \ + HANDLER(EmcWsv, 165, 5:0, 29:24) \ + HANDLER(EmcPmacroTxPwrd2, 165, 29:28, 31:30) \ + HANDLER(EmcAutoCalConfig7, 166, 5:0, 5:0) \ + HANDLER(EmcAutoCalConfig7, 166, 13:8, 11:6) \ + HANDLER(EmcAutoCalConfig7, 166, 18:16, 14:12) \ + HANDLER(EmcAutoCalConfig7, 166, 22:20, 17:15) \ + HANDLER(EmcCfg3, 166, 2:0, 20:18) \ + HANDLER(EmcCfg3, 166, 6:4, 23:21) \ + HANDLER(EmcQuseWidth, 166, 3:0, 27:24) \ + HANDLER(EmcQuseWidth, 166, 29:28, 29:28) \ + HANDLER(EmcPmacroTxPwrd3, 166, 1:0, 31:30) \ + HANDLER(EmcAutoCalConfig8, 167, 5:0, 5:0) \ + HANDLER(EmcAutoCalConfig8, 167, 13:8, 11:6) \ + HANDLER(EmcAutoCalConfig8, 167, 18:16, 14:12) \ + HANDLER(EmcAutoCalConfig8, 167, 22:20, 17:15) \ + HANDLER(EmcPmacroBgBiasCtrl0, 167, 2:0, 20:18) \ + HANDLER(EmcPmacroBgBiasCtrl0, 167, 6:4, 23:21) \ + HANDLER(McEmemArbTimingRcd, 167, 5:0, 29:24) \ + HANDLER(EmcPmacroTxPwrd3, 167, 3:2, 31:30) \ + HANDLER(EmcXm2CompPadCtrl2, 168, 17:0, 17:0) \ + HANDLER(McEmemArbTimingCcdmw, 168, 5:0, 23:18) \ + HANDLER(McEmemArbOverride, 168, 27:27, 24:24) \ + HANDLER(McEmemArbOverride, 168, 26:26, 25:25) \ + HANDLER(McEmemArbOverride, 168, 16:16, 26:26) \ + HANDLER(McEmemArbOverride, 168, 10:10, 27:27) \ + HANDLER(McEmemArbOverride, 168, 4:4, 28:28) \ + HANDLER(McEmemArbOverride, 168, 3:3, 29:29) \ + HANDLER(EmcPmacroTxPwrd3, 168, 5:4, 31:30) \ + HANDLER(EmcXm2CompPadCtrl3, 169, 17:0, 17:0) \ + HANDLER(EmcRext, 169, 4:0, 22:18) \ + HANDLER(EmcTClkStop, 169, 4:0, 27:23) \ + HANDLER(EmcPmacroTxPwrd3, 169, 9:6, 31:28) \ + HANDLER(EmcZcalWaitCnt, 170, 10:0, 10:0) \ + HANDLER(EmcZcalWaitCnt, 170, 21:16, 16:11) \ + HANDLER(EmcZcalWaitCnt, 170, 31:31, 17:17) \ + HANDLER(EmcWext, 170, 4:0, 22:18) \ + HANDLER(EmcRefctrl2, 170, 0:0, 23:23) \ + HANDLER(EmcRefctrl2, 170, 26:24, 26:24) \ + HANDLER(EmcRefctrl2, 170, 31:31, 27:27) \ + HANDLER(EmcPmacroTxPwrd3, 170, 13:10, 31:28) \ + HANDLER(EmcZcalMrwCmd, 171, 7:0, 7:0) \ + HANDLER(EmcZcalMrwCmd, 171, 23:16, 15:8) \ + HANDLER(EmcZcalMrwCmd, 171, 31:30, 17:16) \ + HANDLER(EmcWeDuration, 171, 4:0, 22:18) \ + HANDLER(EmcWsDuration, 171, 4:0, 27:23) \ + HANDLER(EmcPmacroTxPwrd3, 171, 19:16, 31:28) \ + HANDLER(EmcSwizzleRank0Byte0, 172, 2:0, 2:0) \ + HANDLER(EmcSwizzleRank0Byte0, 172, 6:4, 5:3) \ + HANDLER(EmcSwizzleRank0Byte0, 172, 10:8, 8:6) \ + HANDLER(EmcSwizzleRank0Byte0, 172, 14:12, 11:9) \ + HANDLER(EmcSwizzleRank0Byte0, 172, 18:16, 14:12) \ + HANDLER(EmcSwizzleRank0Byte0, 172, 22:20, 17:15) \ + HANDLER(EmcPutermWidth, 172, 31:31, 18:18) \ + HANDLER(EmcPutermWidth, 172, 3:0, 22:19) \ + HANDLER(McEmemArbTimingRrd, 172, 4:0, 27:23) \ + HANDLER(EmcPmacroTxPwrd3, 172, 23:20, 31:28) \ + HANDLER(EmcSwizzleRank0Byte1, 173, 2:0, 2:0) \ + HANDLER(EmcSwizzleRank0Byte1, 173, 6:4, 5:3) \ + HANDLER(EmcSwizzleRank0Byte1, 173, 10:8, 8:6) \ + HANDLER(EmcSwizzleRank0Byte1, 173, 14:12, 11:9) \ + HANDLER(EmcSwizzleRank0Byte1, 173, 18:16, 14:12) \ + HANDLER(EmcSwizzleRank0Byte1, 173, 22:20, 17:15) \ + HANDLER(McEmemArbTimingR2R, 173, 4:0, 22:18) \ + HANDLER(McEmemArbTimingW2W, 173, 4:0, 27:23) \ + HANDLER(EmcPmacroTxPwrd3, 173, 27:24, 31:28) \ + HANDLER(EmcSwizzleRank0Byte2, 174, 2:0, 2:0) \ + HANDLER(EmcSwizzleRank0Byte2, 174, 6:4, 5:3) \ + HANDLER(EmcSwizzleRank0Byte2, 174, 10:8, 8:6) \ + HANDLER(EmcSwizzleRank0Byte2, 174, 14:12, 11:9) \ + HANDLER(EmcSwizzleRank0Byte2, 174, 18:16, 14:12) \ + HANDLER(EmcSwizzleRank0Byte2, 174, 22:20, 17:15) \ + HANDLER(EmcPmacroTxPwrd3, 174, 29:28, 19:18) \ + HANDLER(EmcPmacroTxSelClkSrc0, 174, 11:0, 31:20) \ + HANDLER(EmcSwizzleRank0Byte3, 175, 2:0, 2:0) \ + HANDLER(EmcSwizzleRank0Byte3, 175, 6:4, 5:3) \ + HANDLER(EmcSwizzleRank0Byte3, 175, 10:8, 8:6) \ + HANDLER(EmcSwizzleRank0Byte3, 175, 14:12, 11:9) \ + HANDLER(EmcSwizzleRank0Byte3, 175, 18:16, 14:12) \ + HANDLER(EmcSwizzleRank0Byte3, 175, 22:20, 17:15) \ + HANDLER(EmcPmacroTxSelClkSrc0, 175, 27:16, 29:18) \ + HANDLER(EmcPmacroTxSelClkSrc1, 175, 1:0, 31:30) \ + HANDLER(EmcSwizzleRank1Byte0, 176, 2:0, 2:0) \ + HANDLER(EmcSwizzleRank1Byte0, 176, 6:4, 5:3) \ + HANDLER(EmcSwizzleRank1Byte0, 176, 10:8, 8:6) \ + HANDLER(EmcSwizzleRank1Byte0, 176, 14:12, 11:9) \ + HANDLER(EmcSwizzleRank1Byte0, 176, 18:16, 14:12) \ + HANDLER(EmcSwizzleRank1Byte0, 176, 22:20, 17:15) \ + HANDLER(EmcPmacroTxSelClkSrc1, 176, 11:2, 27:18) \ + HANDLER(EmcPmacroTxSelClkSrc1, 176, 19:16, 31:28) \ + HANDLER(EmcSwizzleRank1Byte1, 177, 2:0, 2:0) \ + HANDLER(EmcSwizzleRank1Byte1, 177, 6:4, 5:3) \ + HANDLER(EmcSwizzleRank1Byte1, 177, 10:8, 8:6) \ + HANDLER(EmcSwizzleRank1Byte1, 177, 14:12, 11:9) \ + HANDLER(EmcSwizzleRank1Byte1, 177, 18:16, 14:12) \ + HANDLER(EmcSwizzleRank1Byte1, 177, 22:20, 17:15) \ + HANDLER(EmcPmacroTxSelClkSrc1, 177, 27:20, 25:18) \ + HANDLER(EmcPmacroTxSelClkSrc3, 177, 5:0, 31:26) \ + HANDLER(EmcSwizzleRank1Byte2, 178, 2:0, 2:0) \ + HANDLER(EmcSwizzleRank1Byte2, 178, 6:4, 5:3) \ + HANDLER(EmcSwizzleRank1Byte2, 178, 10:8, 8:6) \ + HANDLER(EmcSwizzleRank1Byte2, 178, 14:12, 11:9) \ + HANDLER(EmcSwizzleRank1Byte2, 178, 18:16, 14:12) \ + HANDLER(EmcSwizzleRank1Byte2, 178, 22:20, 17:15) \ + HANDLER(EmcPmacroTxSelClkSrc3, 178, 11:6, 23:18) \ + HANDLER(EmcPmacroTxSelClkSrc3, 178, 23:16, 31:24) \ + HANDLER(EmcSwizzleRank1Byte3, 179, 2:0, 2:0) \ + HANDLER(EmcSwizzleRank1Byte3, 179, 6:4, 5:3) \ + HANDLER(EmcSwizzleRank1Byte3, 179, 10:8, 8:6) \ + HANDLER(EmcSwizzleRank1Byte3, 179, 14:12, 11:9) \ + HANDLER(EmcSwizzleRank1Byte3, 179, 18:16, 14:12) \ + HANDLER(EmcSwizzleRank1Byte3, 179, 22:20, 17:15) \ + HANDLER(EmcPmacroTxSelClkSrc3, 179, 27:24, 21:18) \ + HANDLER(EmcPmacroTxSelClkSrc2, 179, 9:0, 31:22) \ + HANDLER(EmcPmacroCmdBrickCtrlFdpd, 180, 17:0, 17:0) \ + HANDLER(EmcPmacroTxSelClkSrc2, 180, 11:10, 19:18) \ + HANDLER(EmcPmacroTxSelClkSrc2, 180, 27:16, 31:20) \ + HANDLER(EmcPmacroDataBrickCtrlFdpd, 181, 17:0, 17:0) \ + HANDLER(EmcPmacroTxSelClkSrc4, 181, 11:0, 29:18) \ + HANDLER(EmcPmacroTxSelClkSrc4, 181, 17:16, 31:30) \ + HANDLER(EmcFbioCfg7, 182, 16:0, 16:0) \ + HANDLER(McEmemArbRefpbBankCtrl, 182, 6:0, 23:17) \ + HANDLER(McEmemArbRefpbBankCtrl, 182, 14:8, 30:24) \ + HANDLER(McEmemArbRefpbBankCtrl, 182, 31:31, 31:31) \ + HANDLER(EmcDynSelfRefControl, 183, 15:0, 15:0) \ + HANDLER(EmcDynSelfRefControl, 183, 31:31, 16:16) \ + HANDLER(EmcPmacroTxSelClkSrc4, 183, 27:18, 26:17) \ + HANDLER(EmcPmacroTxSelClkSrc5, 183, 4:0, 31:27) \ + HANDLER(EmcDllCfg1, 184, 16:0, 16:0) \ + HANDLER(EmcPmacroTxSelClkSrc5, 184, 11:5, 23:17) \ + HANDLER(EmcPmacroTxSelClkSrc5, 184, 23:16, 31:24) \ + HANDLER(EmcPmacroPadCfgCtrl, 185, 1:0, 1:0) \ + HANDLER(EmcPmacroPadCfgCtrl, 185, 6:5, 3:2) \ + HANDLER(EmcPmacroPadCfgCtrl, 185, 11:9, 6:4) \ + HANDLER(EmcPmacroPadCfgCtrl, 185, 13:13, 7:7) \ + HANDLER(EmcPmacroPadCfgCtrl, 185, 17:16, 9:8) \ + HANDLER(EmcPmacroPadCfgCtrl, 185, 21:20, 11:10) \ + HANDLER(EmcPmacroPadCfgCtrl, 185, 25:24, 13:12) \ + HANDLER(EmcPmacroPadCfgCtrl, 185, 30:28, 16:14) \ + HANDLER(EmcPmacroTxSelClkSrc5, 185, 27:24, 20:17) \ + HANDLER(EmcPmacroCmdPadTxCtrl, 185, 1:0, 22:21) \ + HANDLER(EmcPmacroCmdPadTxCtrl, 185, 5:4, 24:23) \ + HANDLER(EmcPmacroCmdPadTxCtrl, 185, 9:8, 26:25) \ + HANDLER(EmcPmacroCmdPadTxCtrl, 185, 13:12, 28:27) \ + HANDLER(EmcPmacroCmdPadTxCtrl, 185, 16:16, 29:29) \ + HANDLER(EmcPmacroCmdPadTxCtrl, 185, 21:20, 31:30) \ + HANDLER(EmcRefresh, 186, 15:0, 15:0) \ + HANDLER(EmcCmdQ, 186, 4:0, 20:16) \ + HANDLER(EmcCmdQ, 186, 10:8, 23:21) \ + HANDLER(EmcCmdQ, 186, 14:12, 26:24) \ + HANDLER(EmcCmdQ, 186, 28:24, 31:27) \ + HANDLER(EmcAcpdControl, 187, 15:0, 15:0) \ + HANDLER(EmcAutoCalVrefSel1, 187, 15:0, 31:16) \ + HANDLER(EmcXm2CompPadCtrl, 188, 1:0, 1:0) \ + HANDLER(EmcXm2CompPadCtrl, 188, 6:3, 5:2) \ + HANDLER(EmcXm2CompPadCtrl, 188, 9:9, 6:6) \ + HANDLER(EmcXm2CompPadCtrl, 188, 19:11, 15:7) \ + HANDLER(EmcCfgDigDllPeriod, 188, 15:0, 31:16) \ + HANDLER(EmcCfgDigDll_1, 189, 15:0, 15:0) \ + HANDLER(EmcPreRefreshReqCnt, 189, 15:0, 31:16) \ + HANDLER(EmcPmacroCmdPadTxCtrl, 190, 27:24, 19:16) \ + HANDLER(EmcPmacroDataPadTxCtrl, 190, 1:0, 21:20) \ + HANDLER(EmcPmacroDataPadTxCtrl, 190, 5:4, 23:22) \ + HANDLER(EmcPmacroDataPadTxCtrl, 190, 9:8, 25:24) \ + HANDLER(EmcPmacroDataPadTxCtrl, 190, 13:12, 27:26) \ + HANDLER(EmcPmacroDataPadTxCtrl, 190, 16:16, 28:28) \ + HANDLER(EmcPmacroDataPadTxCtrl, 190, 21:20, 30:29) \ + HANDLER(EmcPmacroDataPadTxCtrl, 190, 24:24, 31:31) \ + HANDLER(EmcPmacroDataPadTxCtrl, 191, 27:25, 2:0) \ + HANDLER(EmcPinGpio, 8, 1:0, 31:30) \ + HANDLER(EmcPinGpioEn, 9, 1:0, 31:30) \ + HANDLER(EmcDevSelect, 10, 1:0, 31:30) \ + HANDLER(EmcZcalWarmColdBootEnables, 11, 1:0, 31:30) \ + HANDLER(EmcCfgDigDllPeriodWarmBoot, 12, 1:0, 31:30) \ + HANDLER(EmcBctSpare13, 31, 31:0, 31:0) \ + HANDLER(EmcBctSpare12, 32, 31:0, 31:0) \ + HANDLER(EmcBctSpare7, 33, 31:0, 31:0) \ + HANDLER(EmcBctSpare6, 40, 31:0, 31:0) \ + HANDLER(EmcBctSpare5, 42, 31:0, 31:0) \ + HANDLER(EmcBctSpare4, 44, 31:0, 31:0) \ + HANDLER(EmcBctSpare3, 45, 31:0, 31:0) \ + HANDLER(EmcBctSpare2, 46, 31:0, 31:0) \ + HANDLER(EmcBctSpare1, 47, 31:0, 31:0) \ + HANDLER(EmcBctSpare0, 48, 31:0, 31:0) \ + HANDLER(EmcBctSpare9, 50, 31:0, 31:0) \ + HANDLER(EmcBctSpare8, 51, 31:0, 31:0) \ + HANDLER(BootRomPatchData, 56, 31:0, 31:0) \ + HANDLER(BootRomPatchControl, 57, 31:0, 31:0) \ + HANDLER(McClkenOverrideAllWarmBoot, 58, 0:0, 31:31) \ + HANDLER(EmcClkenOverrideAllWarmBoot, 59, 0:0, 30:30) \ + HANDLER(EmcMrsWarmBootEnable, 59, 0:0, 31:31) \ + HANDLER(ClearClk2Mc1, 60, 0:0, 30:30) \ + HANDLER(EmcWarmBootExtraModeRegWriteEnable, 60, 0:0, 31:31) \ + HANDLER(ClkRstControllerPllmMisc2OverrideEnable, 61, 0:0, 30:30) \ + HANDLER(EmcDbgWriteMux, 61, 0:0, 31:31) \ + HANDLER(EmcExtraRefreshNum, 62, 2:0, 31:29) \ + HANDLER(PmcIoDpd3ReqWait, 68, 2:0, 30:28) \ + HANDLER(AhbArbitrationXbarCtrlMemInitDone, 68, 0:0, 31:31) \ + HANDLER(MemoryType, 69, 2:0, 30:28) \ + HANDLER(PmcIoDpd4ReqWait, 70, 2:0, 30:28) \ + HANDLER(EmcTimingControlWait, 86, 7:0, 31:24) \ + HANDLER(EmcZcalWarmBootWait, 87, 7:0, 31:24) \ + HANDLER(WarmBootWait, 88, 7:0, 31:24) \ + HANDLER(EmcPinProgramWait, 89, 7:0, 31:24) \ + HANDLER(EmcAutoCalWait, 101, 9:0, 31:22) \ + HANDLER(SwizzleRankByteEncode, 190, 15:0, 15:0) \ + \ + /* PMC SCRATCH fields for LPDDR2. */ \ + HANDLER(EmcMrwLpddr2ZcalWarmBoot, 5, 23:16, 7:0) \ + HANDLER(EmcMrwLpddr2ZcalWarmBoot, 5, 7:0, 15:8) \ + HANDLER(EmcWarmBootMrwExtra, 5, 23:16, 23:16) \ + HANDLER(EmcWarmBootMrwExtra, 5, 7:0, 31:24) \ + HANDLER(EmcMrwLpddr2ZcalWarmBoot, 6, 31:30, 1:0) \ + HANDLER(EmcWarmBootMrwExtra, 6, 31:30, 3:2) \ + HANDLER(EmcMrwLpddr2ZcalWarmBoot, 6, 27:26, 5:4) \ + HANDLER(EmcWarmBootMrwExtra, 6, 27:26, 7:6) \ + HANDLER(EmcMrw6, 8, 27:0, 27:0) \ + HANDLER(EmcMrw6, 8, 31:30, 29:28) \ + HANDLER(EmcMrw8, 9, 27:0, 27:0) \ + HANDLER(EmcMrw8, 9, 31:30, 29:28) \ + HANDLER(EmcMrw9, 10, 27:0, 27:0) \ + HANDLER(EmcMrw9, 10, 31:30, 29:28) \ + HANDLER(EmcMrw10, 11, 27:0, 27:0) \ + HANDLER(EmcMrw10, 11, 31:30, 29:28) \ + HANDLER(EmcMrw12, 12, 27:0, 27:0) \ + HANDLER(EmcMrw12, 12, 31:30, 29:28) \ + HANDLER(EmcMrw13, 13, 27:0, 27:0) \ + HANDLER(EmcMrw13, 13, 31:30, 29:28) \ + HANDLER(EmcMrw14, 14, 27:0, 27:0) \ + HANDLER(EmcMrw14, 14, 31:30, 29:28) \ + HANDLER(EmcMrw1, 15, 7:0, 7:0) \ + HANDLER(EmcMrw1, 15, 23:16, 15:8) \ + HANDLER(EmcMrw1, 15, 27:26, 17:16) \ + HANDLER(EmcMrw1, 15, 31:30, 19:18) \ + HANDLER(EmcWarmBootMrwExtra, 16, 7:0, 7:0) \ + HANDLER(EmcWarmBootMrwExtra, 16, 23:16, 15:8) \ + HANDLER(EmcWarmBootMrwExtra, 16, 27:26, 17:16) \ + HANDLER(EmcWarmBootMrwExtra, 16, 31:30, 19:18) \ + HANDLER(EmcMrw2, 17, 7:0, 7:0) \ + HANDLER(EmcMrw2, 17, 23:16, 15:8) \ + HANDLER(EmcMrw2, 17, 27:26, 17:16) \ + HANDLER(EmcMrw2, 17, 31:30, 19:18) \ + HANDLER(EmcMrw3, 18, 7:0, 7:0) \ + HANDLER(EmcMrw3, 18, 23:16, 15:8) \ + HANDLER(EmcMrw3, 18, 27:26, 17:16) \ + HANDLER(EmcMrw3, 18, 31:30, 19:18) \ + HANDLER(EmcMrw4, 19, 7:0, 7:0) \ + HANDLER(EmcMrw4, 19, 23:16, 15:8) \ + HANDLER(EmcMrw4, 19, 27:26, 17:16) \ + HANDLER(EmcMrw4, 19, 31:30, 19:18) + +#define FOREACH_SDRAM_SECURE_SCRATCH_REGISTER_ERISTA(HANDLER) \ + /* PMC SECURE_SCRATCH fields. */ \ + HANDLER(EmcCmdMappingByte, 8, 31:0, 31:0) \ + HANDLER(EmcPmacroBrickMapping0, 9, 31:0, 31:0) \ + HANDLER(EmcPmacroBrickMapping1, 10, 31:0, 31:0) \ + HANDLER(EmcPmacroBrickMapping2, 11, 31:0, 31:0) \ + HANDLER(McVideoProtectGpuOverride0, 12, 31:0, 31:0) \ + HANDLER(EmcCmdMappingCmd0_0, 13, 6:0, 6:0) \ + HANDLER(EmcCmdMappingCmd0_0, 13, 14:8, 13:7) \ + HANDLER(EmcCmdMappingCmd0_0, 13, 22:16, 20:14) \ + HANDLER(EmcCmdMappingCmd0_0, 13, 30:24, 27:21) \ + HANDLER(McVideoProtectBomAdrHi, 13, 1:0, 29:28) \ + HANDLER(McVideoProtectWriteAccess, 13, 1:0, 31:30) \ + HANDLER(EmcCmdMappingCmd0_1, 14, 6:0, 6:0) \ + HANDLER(EmcCmdMappingCmd0_1, 14, 14:8, 13:7) \ + HANDLER(EmcCmdMappingCmd0_1, 14, 22:16, 20:14) \ + HANDLER(EmcCmdMappingCmd0_1, 14, 30:24, 27:21) \ + HANDLER(McSecCarveoutAdrHi, 14, 1:0, 29:28) \ + HANDLER(McMtsCarveoutAdrHi, 14, 1:0, 31:30) \ + HANDLER(EmcCmdMappingCmd1_0, 15, 6:0, 6:0) \ + HANDLER(EmcCmdMappingCmd1_0, 15, 14:8, 13:7) \ + HANDLER(EmcCmdMappingCmd1_0, 15, 22:16, 20:14) \ + HANDLER(EmcCmdMappingCmd1_0, 15, 30:24, 27:21) \ + HANDLER(McGeneralizedCarveout5BomHi, 15, 1:0, 29:28) \ + HANDLER(McGeneralizedCarveout3BomHi, 15, 1:0, 31:30) \ + HANDLER(EmcCmdMappingCmd1_1, 16, 6:0, 6:0) \ + HANDLER(EmcCmdMappingCmd1_1, 16, 14:8, 13:7) \ + HANDLER(EmcCmdMappingCmd1_1, 16, 22:16, 20:14) \ + HANDLER(EmcCmdMappingCmd1_1, 16, 30:24, 27:21) \ + HANDLER(McGeneralizedCarveout2BomHi, 16, 1:0, 29:28) \ + HANDLER(McGeneralizedCarveout4BomHi, 16, 1:0, 31:30) \ + HANDLER(EmcCmdMappingCmd2_0, 17, 6:0, 6:0) \ + HANDLER(EmcCmdMappingCmd2_0, 17, 14:8, 13:7) \ + HANDLER(EmcCmdMappingCmd2_0, 17, 22:16, 20:14) \ + HANDLER(EmcCmdMappingCmd2_0, 17, 30:24, 27:21) \ + HANDLER(McGeneralizedCarveout1BomHi, 17, 1:0, 29:28) \ + HANDLER(EmcAdrCfg, 17, 0:0, 30:30) \ + HANDLER(EmcFbioSpare, 17, 1:1, 31:31) \ + HANDLER(EmcCmdMappingCmd2_1, 18, 6:0, 6:0) \ + HANDLER(EmcCmdMappingCmd2_1, 18, 14:8, 13:7) \ + HANDLER(EmcCmdMappingCmd2_1, 18, 22:16, 20:14) \ + HANDLER(EmcCmdMappingCmd2_1, 18, 30:24, 27:21) \ + HANDLER(EmcFbioCfg8, 18, 15:15, 28:28) \ + HANDLER(McEmemAdrCfg, 18, 0:0, 29:29) \ + HANDLER(McSecCarveoutProtectWriteAccess, 18, 0:0, 30:30) \ + HANDLER(McMtsCarveoutRegCtrl, 18, 0:0, 31:31) \ + HANDLER(EmcCmdMappingCmd3_0, 19, 6:0, 6:0) \ + HANDLER(EmcCmdMappingCmd3_0, 19, 14:8, 13:7) \ + HANDLER(EmcCmdMappingCmd3_0, 19, 22:16, 20:14) \ + HANDLER(EmcCmdMappingCmd3_0, 19, 30:24, 27:21) \ + HANDLER(McGeneralizedCarveout2Cfg0, 19, 6:3, 31:28) \ + HANDLER(EmcCmdMappingCmd3_1, 20, 6:0, 6:0) \ + HANDLER(EmcCmdMappingCmd3_1, 20, 14:8, 13:7) \ + HANDLER(EmcCmdMappingCmd3_1, 20, 22:16, 20:14) \ + HANDLER(EmcCmdMappingCmd3_1, 20, 30:24, 27:21) \ + HANDLER(McGeneralizedCarveout2Cfg0, 20, 10:7, 31:28) \ + HANDLER(McGeneralizedCarveout4Cfg0, 39, 26:0, 26:0) \ + HANDLER(McGeneralizedCarveout2Cfg0, 39, 17:14, 30:27) \ + HANDLER(McVideoProtectVprOverride, 39, 0:0, 31:31) \ + HANDLER(McGeneralizedCarveout5Cfg0, 40, 26:0, 26:0) \ + HANDLER(McGeneralizedCarveout2Cfg0, 40, 21:18, 30:27) \ + HANDLER(McVideoProtectVprOverride, 40, 1:1, 31:31) \ + HANDLER(EmcCmdMappingCmd0_2, 41, 6:0, 6:0) \ + HANDLER(EmcCmdMappingCmd0_2, 41, 14:8, 13:7) \ + HANDLER(EmcCmdMappingCmd0_2, 41, 22:16, 20:14) \ + HANDLER(EmcCmdMappingCmd0_2, 41, 27:24, 24:21) \ + HANDLER(McGeneralizedCarveout1Cfg0, 41, 6:3, 28:25) \ + HANDLER(McGeneralizedCarveout2Cfg0, 41, 13:11, 31:29) \ + HANDLER(EmcCmdMappingCmd1_2, 42, 6:0, 6:0) \ + HANDLER(EmcCmdMappingCmd1_2, 42, 14:8, 13:7) \ + HANDLER(EmcCmdMappingCmd1_2, 42, 22:16, 20:14) \ + HANDLER(EmcCmdMappingCmd1_2, 42, 27:24, 24:21) \ + HANDLER(McGeneralizedCarveout1Cfg0, 42, 13:7, 31:25) \ + HANDLER(EmcCmdMappingCmd2_2, 43, 6:0, 6:0) \ + HANDLER(EmcCmdMappingCmd2_2, 43, 14:8, 13:7) \ + HANDLER(EmcCmdMappingCmd2_2, 43, 22:16, 20:14) \ + HANDLER(EmcCmdMappingCmd2_2, 43, 27:24, 24:21) \ + HANDLER(McGeneralizedCarveout1Cfg0, 43, 17:14, 28:25) \ + HANDLER(McGeneralizedCarveout3Cfg0, 43, 13:11, 31:29) \ + HANDLER(EmcCmdMappingCmd3_2, 44, 6:0, 6:0) \ + HANDLER(EmcCmdMappingCmd3_2, 44, 14:8, 13:7) \ + HANDLER(EmcCmdMappingCmd3_2, 44, 22:16, 20:14) \ + HANDLER(EmcCmdMappingCmd3_2, 44, 27:24, 24:21) \ + HANDLER(McGeneralizedCarveout1Cfg0, 44, 21:18, 28:25) \ + HANDLER(McVideoProtectVprOverride, 44, 3:2, 30:29) \ + HANDLER(McVideoProtectVprOverride, 44, 6:6, 31:31) \ + HANDLER(McEmemAdrCfgChannelMask, 45, 31:9, 22:0) \ + HANDLER(McEmemAdrCfgDev0, 45, 2:0, 25:23) \ + HANDLER(McEmemAdrCfgDev0, 45, 9:8, 27:26) \ + HANDLER(McEmemAdrCfgDev0, 45, 19:16, 31:28) \ + HANDLER(McEmemAdrCfgBankMask0, 46, 31:10, 21:0) \ + HANDLER(McEmemAdrCfgDev1, 46, 2:0, 24:22) \ + HANDLER(McEmemAdrCfgDev1, 46, 9:8, 26:25) \ + HANDLER(McEmemAdrCfgDev1, 46, 19:16, 30:27) \ + HANDLER(McVideoProtectVprOverride, 46, 7:7, 31:31) \ + HANDLER(McEmemAdrCfgBankMask1, 47, 31:10, 21:0) \ + HANDLER(McGeneralizedCarveout3Cfg0, 47, 10:3, 29:22) \ + HANDLER(McVideoProtectVprOverride, 47, 9:8, 31:30) \ + HANDLER(McEmemAdrCfgBankMask2, 48, 31:10, 21:0) \ + HANDLER(McGeneralizedCarveout3Cfg0, 48, 21:14, 29:22) \ + HANDLER(McVideoProtectVprOverride, 48, 11:11, 30:30) \ + HANDLER(McVideoProtectVprOverride, 48, 14:14, 31:31) \ + HANDLER(McVideoProtectGpuOverride1, 49, 15:0, 15:0) \ + HANDLER(McEmemCfg, 49, 13:0, 29:16) \ + HANDLER(McEmemCfg, 49, 31:31, 30:30) \ + HANDLER(McVideoProtectVprOverride, 49, 15:15, 31:31) \ + HANDLER(McGeneralizedCarveout3Bom, 50, 31:17, 14:0) \ + HANDLER(McGeneralizedCarveout1Bom, 50, 31:17, 29:15) \ + HANDLER(McVideoProtectVprOverride, 50, 18:17, 31:30) \ + HANDLER(McGeneralizedCarveout4Bom, 51, 31:17, 14:0) \ + HANDLER(McGeneralizedCarveout2Bom, 51, 31:17, 29:15) \ + HANDLER(McVideoProtectVprOverride, 51, 20:19, 31:30) \ + HANDLER(McGeneralizedCarveout5Bom, 52, 31:17, 14:0) \ + HANDLER(McVideoProtectBom, 52, 31:20, 26:15) \ + HANDLER(McVideoProtectVprOverride, 52, 23:21, 29:27) \ + HANDLER(McVideoProtectVprOverride, 52, 26:26, 30:30) \ + HANDLER(McVideoProtectVprOverride, 52, 29:29, 31:31) \ + HANDLER(McVideoProtectSizeMb, 53, 11:0, 11:0) \ + HANDLER(McSecCarveoutBom, 53, 31:20, 23:12) \ + HANDLER(McVideoProtectVprOverride, 53, 31:30, 25:24) \ + HANDLER(McVideoProtectVprOverride1, 53, 1:0, 27:26) \ + HANDLER(McVideoProtectVprOverride1, 53, 7:4, 31:28) \ + HANDLER(McSecCarveoutSizeMb, 54, 11:0, 11:0) \ + HANDLER(McMtsCarveoutBom, 54, 31:20, 23:12) \ + HANDLER(McVideoProtectVprOverride1, 54, 15:8, 31:24) \ + HANDLER(McMtsCarveoutSizeMb, 55, 11:0, 11:0) \ + HANDLER(McGeneralizedCarveout4Size128kb, 55, 11:0, 23:12) \ + HANDLER(McVideoProtectVprOverride1, 55, 16:16, 24:24) \ + HANDLER(McGeneralizedCarveout2Cfg0, 55, 2:0, 27:25) \ + HANDLER(McGeneralizedCarveout2Cfg0, 55, 25:22, 31:28) \ + HANDLER(McGeneralizedCarveout3Size128kb, 56, 11:0, 11:0) \ + HANDLER(McGeneralizedCarveout2Size128kb, 56, 11:0, 23:12) \ + HANDLER(McGeneralizedCarveout2Cfg0, 56, 26:26, 24:24) \ + HANDLER(McGeneralizedCarveout1Cfg0, 56, 2:0, 27:25) \ + HANDLER(McGeneralizedCarveout1Cfg0, 56, 25:22, 31:28) \ + HANDLER(McGeneralizedCarveout1Size128kb, 57, 11:0, 11:0) \ + HANDLER(McGeneralizedCarveout5Size128kb, 57, 11:0, 23:12) \ + HANDLER(McGeneralizedCarveout1Cfg0, 57, 26:26, 24:24) \ + HANDLER(McGeneralizedCarveout3Cfg0, 57, 2:0, 27:25) \ + HANDLER(McGeneralizedCarveout3Cfg0, 57, 25:22, 31:28) \ + HANDLER(McGeneralizedCarveout3Cfg0, 58, 26:26, 0:0) \ + HANDLER(McGeneralizedCarveout1Access0, 59, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout1Access1, 60, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout1Access2, 61, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout1Access3, 62, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout1Access4, 63, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout2Access0, 64, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout2Access1, 65, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout2Access2, 66, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout2Access3, 67, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout2Access4, 68, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout3Access0, 69, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout3Access1, 70, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout3Access2, 71, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout3Access3, 72, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout3Access4, 73, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout4Access0, 74, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout4Access1, 75, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout4Access2, 76, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout4Access3, 77, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout4Access4, 78, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout5Access0, 79, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout5Access1, 80, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout5Access2, 81, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout5Access3, 82, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout1ForceInternalAccess0, 84, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout1ForceInternalAccess1, 85, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout1ForceInternalAccess2, 86, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout1ForceInternalAccess3, 87, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout1ForceInternalAccess4, 88, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout2ForceInternalAccess0, 89, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout2ForceInternalAccess1, 90, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout2ForceInternalAccess2, 91, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout2ForceInternalAccess3, 92, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout2ForceInternalAccess4, 93, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout3ForceInternalAccess0, 94, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout3ForceInternalAccess1, 95, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout3ForceInternalAccess2, 96, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout3ForceInternalAccess3, 97, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout3ForceInternalAccess4, 98, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout4ForceInternalAccess0, 99, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout4ForceInternalAccess1, 100, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout4ForceInternalAccess2, 101, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout4ForceInternalAccess3, 102, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout4ForceInternalAccess4, 103, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout5ForceInternalAccess0, 104, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout5ForceInternalAccess1, 105, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout5ForceInternalAccess2, 106, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout5ForceInternalAccess3, 107, 31:0, 31:0) diff --git a/fusee_cpp/program/source/fusee_sdram_params_lp0_mariko.inc b/fusee_cpp/program/source/fusee_sdram_params_lp0_mariko.inc new file mode 100644 index 000000000..9432f6306 --- /dev/null +++ b/fusee_cpp/program/source/fusee_sdram_params_lp0_mariko.inc @@ -0,0 +1,1037 @@ +/* + * Copyright (c) 2018-2020 AtmosphÃre-NX + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#define FOREACH_SDRAM_SCRATCH_REGISTER_MARIKO(HANDLER) \ + /* PMC SCRATCH fields. */ \ + HANDLER(EmcClockSource, 6, 7:0, 15:8) \ + HANDLER(EmcClockSourceDll, 6, 7:0, 23:16) \ + HANDLER(EmcClockSource, 6, 31:29, 26:24) \ + HANDLER(EmcClockSourceDll, 6, 31:29, 29:27) \ + HANDLER(EmcClockSourceDll, 6, 11:10, 31:30) \ + HANDLER(ClkRstControllerPllmMisc2Override, 7, 9:8, 1:0) \ + HANDLER(ClkRstControllerPllmMisc2Override, 7, 2:1, 3:2) \ + HANDLER(EmcZqCalLpDdr4WarmBoot, 7, 31:30, 5:4) \ + HANDLER(EmcClockSource, 7, 27:27, 6:6) \ + HANDLER(EmcClockSource, 7, 26:26, 7:7) \ + HANDLER(EmcClockSource, 7, 15:15, 8:8) \ + HANDLER(EmcClockSource, 7, 25:25, 9:9) \ + HANDLER(EmcClockSource, 7, 20:19, 11:10) \ + HANDLER(EmcClockSource, 7, 16:16, 12:12) \ + HANDLER(ClkRstControllerPllmMisc2Override, 7, 13:13, 13:13) \ + HANDLER(ClkRstControllerPllmMisc2Override, 7, 12:12, 14:14) \ + HANDLER(ClkRstControllerPllmMisc2Override, 7, 11:11, 15:15) \ + HANDLER(ClkRstControllerPllmMisc2Override, 7, 10:10, 16:16) \ + HANDLER(ClkRstControllerPllmMisc2Override, 7, 5:5, 17:17) \ + HANDLER(ClkRstControllerPllmMisc2Override, 7, 4:4, 18:18) \ + HANDLER(ClkRstControllerPllmMisc2Override, 7, 3:3, 19:19) \ + HANDLER(ClkRstControllerPllmMisc2Override, 7, 0:0, 20:20) \ + HANDLER(EmcZqCalLpDdr4WarmBoot, 7, 1:0, 22:21) \ + HANDLER(EmcZqCalLpDdr4WarmBoot, 7, 4:4, 23:23) \ + HANDLER(EmcRc, 7, 7:0, 31:24) \ + HANDLER(EmcPmacroBgBiasCtrl0, 8, 13:12, 31:30) \ + HANDLER(EmcFdpdCtrlCmdNoRamp, 14, 0:0, 30:30) \ + HANDLER(EmcCfgPipeClk, 14, 0:0, 31:31) \ + HANDLER(EmcQRst, 15, 6:0, 26:20) \ + HANDLER(EmcQRst, 15, 20:16, 31:27) \ + HANDLER(EmcPmacroCmdTxDrv, 16, 5:0, 25:20) \ + HANDLER(EmcPmacroCmdTxDrv, 16, 13:8, 31:26) \ + HANDLER(EmcFbioCfg8, 17, 27:16, 31:20) \ + HANDLER(EmcTxsrDll, 18, 11:0, 31:20) \ + HANDLER(EmcTxdsrvttgen, 19, 11:0, 31:20) \ + HANDLER(EmcCfgRsv, 22, 31:0, 31:0) \ + HANDLER(EmcAutoCalConfig, 23, 31:0, 31:0) \ + HANDLER(EmcAutoCalVrefSel0, 24, 31:0, 31:0) \ + HANDLER(EmcPmacroBrickCtrlRfu1, 25, 31:0, 31:0) \ + HANDLER(EmcPmacroBrickCtrlRfu2, 26, 31:0, 31:0) \ + HANDLER(EmcPmcScratch1, 27, 31:0, 31:0) \ + HANDLER(EmcPmcScratch2, 28, 31:0, 31:0) \ + HANDLER(EmcPmcScratch3, 29, 31:0, 31:0) \ + HANDLER(EmcPmacroPerbitRfuCtrl0, 30, 31:0, 31:0) \ + HANDLER(EmcPmacroPerbitRfuCtrl1, 31, 31:0, 31:0) \ + HANDLER(EmcPmacroPerbitRfuCtrl2, 32, 31:0, 31:0) \ + HANDLER(EmcPmacroPerbitRfuCtrl3, 33, 31:0, 31:0) \ + HANDLER(EmcPmacroPerbitRfuCtrl4, 40, 31:0, 31:0) \ + HANDLER(EmcPmacroPerbitRfuCtrl5, 42, 31:0, 31:0) \ + HANDLER(McEmemArbDaTurns, 44, 31:0, 31:0) \ + HANDLER(EmcFbioSpare, 64, 31:24, 7:0) \ + HANDLER(EmcFbioSpare, 64, 23:16, 15:8) \ + HANDLER(EmcFbioSpare, 64, 15:8, 23:16) \ + HANDLER(EmcFbioSpare, 64, 7:2, 29:24) \ + HANDLER(EmcFbioSpare, 64, 0:0, 30:30) \ + HANDLER(McEmemArbMisc2, 64, 0:0, 31:31) \ + HANDLER(McEmemArbMisc0, 65, 14:0, 14:0) \ + HANDLER(McEmemArbMisc0, 65, 30:16, 29:15) \ + HANDLER(McDaCfg0, 65, 0:0, 30:30) \ + HANDLER(EmcFdpdCtrlCmd, 66, 16:0, 16:0) \ + HANDLER(EmcFdpdCtrlCmd, 66, 31:20, 28:17) \ + HANDLER(EmcAutoCalConfig2, 67, 27:0, 27:0) \ + HANDLER(EmcBurstRefreshNum, 67, 3:0, 31:28) \ + HANDLER(EmcCfgDigDll, 68, 10:0, 10:0) \ + HANDLER(EmcCfgDigDll, 68, 25:12, 24:11) \ + HANDLER(EmcCfgDigDll, 68, 27:27, 25:25) \ + HANDLER(EmcCfgDigDll, 68, 31:30, 27:26) \ + HANDLER(EmcTppd, 68, 3:0, 31:28) \ + HANDLER(EmcFdpdCtrlDq, 69, 16:0, 16:0) \ + HANDLER(EmcFdpdCtrlDq, 69, 28:20, 25:17) \ + HANDLER(EmcFdpdCtrlDq, 69, 31:30, 27:26) \ + HANDLER(EmcR2r, 69, 3:0, 31:28) \ + HANDLER(EmcPmacroIbVrefDq_0, 70, 6:0, 6:0) \ + HANDLER(EmcPmacroIbVrefDq_0, 70, 14:8, 13:7) \ + HANDLER(EmcPmacroIbVrefDq_0, 70, 22:16, 20:14) \ + HANDLER(EmcPmacroIbVrefDq_0, 70, 30:24, 27:21) \ + HANDLER(EmcW2w, 70, 3:0, 31:28) \ + HANDLER(EmcPmacroIbVrefDq_1, 71, 6:0, 6:0) \ + HANDLER(EmcPmacroIbVrefDq_1, 71, 14:8, 13:7) \ + HANDLER(EmcPmacroIbVrefDq_1, 71, 22:16, 20:14) \ + HANDLER(EmcPmacroIbVrefDq_1, 71, 30:24, 27:21) \ + HANDLER(EmcPmacroVttgenCtrl0, 71, 19:16, 31:28) \ + HANDLER(EmcPmacroIbVrefDqs_0, 72, 6:0, 6:0) \ + HANDLER(EmcPmacroIbVrefDqs_0, 72, 14:8, 13:7) \ + HANDLER(EmcPmacroIbVrefDqs_0, 72, 22:16, 20:14) \ + HANDLER(EmcPmacroIbVrefDqs_0, 72, 30:24, 27:21) \ + HANDLER(EmcPmacroIbVrefDqs_1, 73, 6:0, 6:0) \ + HANDLER(EmcPmacroIbVrefDqs_1, 73, 14:8, 13:7) \ + HANDLER(EmcPmacroIbVrefDqs_1, 73, 22:16, 20:14) \ + HANDLER(EmcPmacroIbVrefDqs_1, 73, 30:24, 27:21) \ + HANDLER(EmcPmacroDdllShortCmd_0, 74, 6:0, 6:0) \ + HANDLER(EmcPmacroDdllShortCmd_0, 74, 14:8, 13:7) \ + HANDLER(EmcPmacroDdllShortCmd_0, 74, 22:16, 20:14) \ + HANDLER(EmcPmacroDdllShortCmd_0, 74, 30:24, 27:21) \ + HANDLER(EmcPmacroDdllShortCmd_1, 75, 6:0, 6:0) \ + HANDLER(EmcPmacroDdllShortCmd_1, 75, 14:8, 13:7) \ + HANDLER(EmcPmacroDdllShortCmd_1, 75, 22:16, 20:14) \ + HANDLER(EmcPmacroDdllShortCmd_1, 75, 30:24, 27:21) \ + HANDLER(EmcPmacroDllCfg0, 76, 29:4, 25:0) \ + HANDLER(EmcRp, 76, 5:0, 31:26) \ + HANDLER(EmcPmacroTxPwrd0, 77, 10:0, 10:0) \ + HANDLER(EmcPmacroTxPwrd0, 77, 13:12, 12:11) \ + HANDLER(EmcPmacroTxPwrd0, 77, 26:16, 23:13) \ + HANDLER(EmcPmacroTxPwrd0, 77, 29:28, 25:24) \ + HANDLER(EmcR2w, 77, 5:0, 31:26) \ + HANDLER(EmcPmacroTxPwrd1, 78, 10:0, 10:0) \ + HANDLER(EmcPmacroTxPwrd1, 78, 13:12, 12:11) \ + HANDLER(EmcPmacroTxPwrd1, 78, 26:16, 23:13) \ + HANDLER(EmcPmacroTxPwrd1, 78, 29:28, 25:24) \ + HANDLER(EmcW2r, 78, 5:0, 31:26) \ + HANDLER(EmcPmacroTxPwrd2, 79, 10:0, 10:0) \ + HANDLER(EmcPmacroTxPwrd2, 79, 13:12, 12:11) \ + HANDLER(EmcPmacroTxPwrd2, 79, 26:16, 23:13) \ + HANDLER(EmcPmacroTxPwrd2, 79, 29:28, 25:24) \ + HANDLER(EmcR2p, 79, 5:0, 31:26) \ + HANDLER(EmcPmacroTxPwrd3, 80, 10:0, 10:0) \ + HANDLER(EmcPmacroTxPwrd3, 80, 13:12, 12:11) \ + HANDLER(EmcPmacroTxPwrd3, 80, 26:16, 23:13) \ + HANDLER(EmcPmacroTxPwrd3, 80, 29:28, 25:24) \ + HANDLER(EmcCcdmw, 80, 5:0, 31:26) \ + HANDLER(EmcPmacroTxPwrd4, 81, 10:0, 10:0) \ + HANDLER(EmcPmacroTxPwrd4, 81, 13:12, 12:11) \ + HANDLER(EmcPmacroTxPwrd4, 81, 26:16, 23:13) \ + HANDLER(EmcPmacroTxPwrd4, 81, 29:28, 25:24) \ + HANDLER(EmcRdRcd, 81, 5:0, 31:26) \ + HANDLER(EmcPmacroTxPwrd5, 82, 10:0, 10:0) \ + HANDLER(EmcPmacroTxPwrd5, 82, 13:12, 12:11) \ + HANDLER(EmcPmacroTxPwrd5, 82, 26:16, 23:13) \ + HANDLER(EmcPmacroTxPwrd5, 82, 29:28, 25:24) \ + HANDLER(EmcWrRcd, 82, 5:0, 31:26) \ + HANDLER(EmcAutoCalChannel, 83, 5:0, 5:0) \ + HANDLER(EmcAutoCalChannel, 83, 11:8, 9:6) \ + HANDLER(EmcAutoCalChannel, 83, 27:16, 21:10) \ + HANDLER(EmcAutoCalChannel, 83, 31:29, 24:22) \ + HANDLER(EmcConfigSampleDelay, 83, 6:0, 31:25) \ + HANDLER(EmcPmacroRxTerm, 84, 5:0, 5:0) \ + HANDLER(EmcPmacroRxTerm, 84, 13:8, 11:6) \ + HANDLER(EmcPmacroRxTerm, 84, 21:16, 17:12) \ + HANDLER(EmcPmacroRxTerm, 84, 29:24, 23:18) \ + HANDLER(EmcSelDpdCtrl, 84, 5:2, 27:24) \ + HANDLER(EmcSelDpdCtrl, 84, 8:8, 28:28) \ + HANDLER(EmcSelDpdCtrl, 84, 18:16, 31:29) \ + HANDLER(EmcPmacroDqTxDrv, 85, 5:0, 5:0) \ + HANDLER(EmcPmacroDqTxDrv, 85, 13:8, 11:6) \ + HANDLER(EmcPmacroDqTxDrv, 85, 21:16, 17:12) \ + HANDLER(EmcPmacroDqTxDrv, 85, 29:24, 23:18) \ + HANDLER(EmcObdly, 85, 5:0, 29:24) \ + HANDLER(EmcObdly, 85, 29:28, 31:30) \ + HANDLER(EmcPmacroCaTxDrv, 86, 5:0, 5:0) \ + HANDLER(EmcPmacroCaTxDrv, 86, 13:8, 11:6) \ + HANDLER(EmcPmacroCaTxDrv, 86, 21:16, 17:12) \ + HANDLER(EmcPmacroCaTxDrv, 86, 29:24, 23:18) \ + HANDLER(EmcPmacroVttgenCtrl1, 86, 15:10, 29:24) \ + HANDLER(EmcPmacroVttgenCtrl1, 86, 21:20, 31:30) \ + HANDLER(EmcPmacroZctrl, 87, 27:4, 23:0) \ + HANDLER(EmcPmacroVttgenCtrl2, 87, 23:16, 31:24) \ + HANDLER(EmcZcalInterval, 88, 23:10, 13:0) \ + HANDLER(EmcZcalInterval, 88, 9:0, 23:14) \ + HANDLER(McEmemArbTimingRc, 88, 7:0, 31:24) \ + HANDLER(EmcDataBrlshft0, 89, 23:0, 23:0) \ + HANDLER(McEmemArbRsv, 89, 7:0, 31:24) \ + HANDLER(EmcDataBrlshft1, 90, 23:0, 23:0) \ + HANDLER(EmcDqsBrlshft0, 91, 23:0, 23:0) \ + HANDLER(EmcDqsBrlshft1, 92, 23:0, 23:0) \ + HANDLER(EmcSwizzleRank0Byte0, 93, 2:0, 2:0) \ + HANDLER(EmcSwizzleRank0Byte0, 93, 6:4, 5:3) \ + HANDLER(EmcSwizzleRank0Byte0, 93, 10:8, 8:6) \ + HANDLER(EmcSwizzleRank0Byte0, 93, 14:12, 11:9) \ + HANDLER(EmcSwizzleRank0Byte0, 93, 18:16, 14:12) \ + HANDLER(EmcSwizzleRank0Byte0, 93, 22:20, 17:15) \ + HANDLER(EmcSwizzleRank0Byte0, 93, 26:24, 20:18) \ + HANDLER(EmcSwizzleRank0Byte0, 93, 30:28, 23:21) \ + HANDLER(EmcSwizzleRank0Byte1, 94, 2:0, 2:0) \ + HANDLER(EmcSwizzleRank0Byte1, 94, 6:4, 5:3) \ + HANDLER(EmcSwizzleRank0Byte1, 94, 10:8, 8:6) \ + HANDLER(EmcSwizzleRank0Byte1, 94, 14:12, 11:9) \ + HANDLER(EmcSwizzleRank0Byte1, 94, 18:16, 14:12) \ + HANDLER(EmcSwizzleRank0Byte1, 94, 22:20, 17:15) \ + HANDLER(EmcSwizzleRank0Byte1, 94, 26:24, 20:18) \ + HANDLER(EmcSwizzleRank0Byte1, 94, 30:28, 23:21) \ + HANDLER(EmcRas, 94, 6:0, 30:24) \ + HANDLER(EmcCfg, 94, 4:4, 31:31) \ + HANDLER(EmcSwizzleRank0Byte2, 95, 2:0, 2:0) \ + HANDLER(EmcSwizzleRank0Byte2, 95, 6:4, 5:3) \ + HANDLER(EmcSwizzleRank0Byte2, 95, 10:8, 8:6) \ + HANDLER(EmcSwizzleRank0Byte2, 95, 14:12, 11:9) \ + HANDLER(EmcSwizzleRank0Byte2, 95, 18:16, 14:12) \ + HANDLER(EmcSwizzleRank0Byte2, 95, 22:20, 17:15) \ + HANDLER(EmcSwizzleRank0Byte2, 95, 26:24, 20:18) \ + HANDLER(EmcSwizzleRank0Byte2, 95, 30:28, 23:21) \ + HANDLER(EmcW2p, 95, 6:0, 30:24) \ + HANDLER(EmcCfg, 95, 5:5, 31:31) \ + HANDLER(EmcSwizzleRank0Byte3, 96, 2:0, 2:0) \ + HANDLER(EmcSwizzleRank0Byte3, 96, 6:4, 5:3) \ + HANDLER(EmcSwizzleRank0Byte3, 96, 10:8, 8:6) \ + HANDLER(EmcSwizzleRank0Byte3, 96, 14:12, 11:9) \ + HANDLER(EmcSwizzleRank0Byte3, 96, 18:16, 14:12) \ + HANDLER(EmcSwizzleRank0Byte3, 96, 22:20, 17:15) \ + HANDLER(EmcSwizzleRank0Byte3, 96, 26:24, 20:18) \ + HANDLER(EmcSwizzleRank0Byte3, 96, 30:28, 23:21) \ + HANDLER(EmcQSafe, 96, 6:0, 30:24) \ + HANDLER(EmcCfg, 96, 6:6, 31:31) \ + HANDLER(EmcSwizzleRank1Byte0, 97, 2:0, 2:0) \ + HANDLER(EmcSwizzleRank1Byte0, 97, 6:4, 5:3) \ + HANDLER(EmcSwizzleRank1Byte0, 97, 10:8, 8:6) \ + HANDLER(EmcSwizzleRank1Byte0, 97, 14:12, 11:9) \ + HANDLER(EmcSwizzleRank1Byte0, 97, 18:16, 14:12) \ + HANDLER(EmcSwizzleRank1Byte0, 97, 22:20, 17:15) \ + HANDLER(EmcSwizzleRank1Byte0, 97, 26:24, 20:18) \ + HANDLER(EmcSwizzleRank1Byte0, 97, 30:28, 23:21) \ + HANDLER(EmcRdv, 97, 6:0, 30:24) \ + HANDLER(EmcCfg, 97, 7:7, 31:31) \ + HANDLER(EmcSwizzleRank1Byte1, 98, 2:0, 2:0) \ + HANDLER(EmcSwizzleRank1Byte1, 98, 6:4, 5:3) \ + HANDLER(EmcSwizzleRank1Byte1, 98, 10:8, 8:6) \ + HANDLER(EmcSwizzleRank1Byte1, 98, 14:12, 11:9) \ + HANDLER(EmcSwizzleRank1Byte1, 98, 18:16, 14:12) \ + HANDLER(EmcSwizzleRank1Byte1, 98, 22:20, 17:15) \ + HANDLER(EmcSwizzleRank1Byte1, 98, 26:24, 20:18) \ + HANDLER(EmcSwizzleRank1Byte1, 98, 30:28, 23:21) \ + HANDLER(EmcRw2Pden, 98, 6:0, 30:24) \ + HANDLER(EmcCfg, 98, 8:8, 31:31) \ + HANDLER(EmcSwizzleRank1Byte2, 99, 2:0, 2:0) \ + HANDLER(EmcSwizzleRank1Byte2, 99, 6:4, 5:3) \ + HANDLER(EmcSwizzleRank1Byte2, 99, 10:8, 8:6) \ + HANDLER(EmcSwizzleRank1Byte2, 99, 14:12, 11:9) \ + HANDLER(EmcSwizzleRank1Byte2, 99, 18:16, 14:12) \ + HANDLER(EmcSwizzleRank1Byte2, 99, 22:20, 17:15) \ + HANDLER(EmcSwizzleRank1Byte2, 99, 26:24, 20:18) \ + HANDLER(EmcSwizzleRank1Byte2, 99, 30:28, 23:21) \ + HANDLER(EmcTfaw, 99, 6:0, 30:24) \ + HANDLER(EmcCfg, 99, 9:9, 31:31) \ + HANDLER(EmcSwizzleRank1Byte3, 100, 2:0, 2:0) \ + HANDLER(EmcSwizzleRank1Byte3, 100, 6:4, 5:3) \ + HANDLER(EmcSwizzleRank1Byte3, 100, 10:8, 8:6) \ + HANDLER(EmcSwizzleRank1Byte3, 100, 14:12, 11:9) \ + HANDLER(EmcSwizzleRank1Byte3, 100, 18:16, 14:12) \ + HANDLER(EmcSwizzleRank1Byte3, 100, 22:20, 17:15) \ + HANDLER(EmcSwizzleRank1Byte3, 100, 26:24, 20:18) \ + HANDLER(EmcSwizzleRank1Byte3, 100, 30:28, 23:21) \ + HANDLER(EmcTClkStable, 100, 6:0, 30:24) \ + HANDLER(EmcCfg, 100, 18:18, 31:31) \ + HANDLER(EmcCfgPipe2, 101, 11:0, 11:0) \ + HANDLER(EmcCfgPipe2, 101, 27:16, 23:12) \ + HANDLER(EmcTrtm, 101, 6:0, 30:24) \ + HANDLER(EmcCfg, 101, 21:21, 31:31) \ + HANDLER(EmcCfgPipe1, 102, 11:0, 11:0) \ + HANDLER(EmcCfgPipe1, 102, 27:16, 23:12) \ + HANDLER(EmcTwtm, 102, 6:0, 30:24) \ + HANDLER(EmcCfg, 102, 22:22, 31:31) \ + HANDLER(EmcPmacroDdllPwrd0, 103, 4:1, 3:0) \ + HANDLER(EmcPmacroDdllPwrd0, 103, 7:6, 5:4) \ + HANDLER(EmcPmacroDdllPwrd0, 103, 12:9, 9:6) \ + HANDLER(EmcPmacroDdllPwrd0, 103, 15:14, 11:10) \ + HANDLER(EmcPmacroDdllPwrd0, 103, 20:17, 15:12) \ + HANDLER(EmcPmacroDdllPwrd0, 103, 23:22, 17:16) \ + HANDLER(EmcPmacroDdllPwrd0, 103, 28:25, 21:18) \ + HANDLER(EmcPmacroDdllPwrd0, 103, 31:30, 23:22) \ + HANDLER(EmcTratm, 103, 6:0, 30:24) \ + HANDLER(EmcCfg, 103, 23:23, 31:31) \ + HANDLER(EmcPmacroDdllPwrd1, 104, 4:1, 3:0) \ + HANDLER(EmcPmacroDdllPwrd1, 104, 7:6, 5:4) \ + HANDLER(EmcPmacroDdllPwrd1, 104, 12:9, 9:6) \ + HANDLER(EmcPmacroDdllPwrd1, 104, 15:14, 11:10) \ + HANDLER(EmcPmacroDdllPwrd1, 104, 20:17, 15:12) \ + HANDLER(EmcPmacroDdllPwrd1, 104, 23:22, 17:16) \ + HANDLER(EmcPmacroDdllPwrd1, 104, 28:25, 21:18) \ + HANDLER(EmcPmacroDdllPwrd1, 104, 31:30, 23:22) \ + HANDLER(EmcTwatm, 104, 6:0, 30:24) \ + HANDLER(EmcCfg, 104, 24:24, 31:31) \ + HANDLER(EmcPmacroDdllPwrd2, 105, 4:1, 3:0) \ + HANDLER(EmcPmacroDdllPwrd2, 105, 7:6, 5:4) \ + HANDLER(EmcPmacroDdllPwrd2, 105, 12:9, 9:6) \ + HANDLER(EmcPmacroDdllPwrd2, 105, 15:14, 11:10) \ + HANDLER(EmcPmacroDdllPwrd2, 105, 20:17, 15:12) \ + HANDLER(EmcPmacroDdllPwrd2, 105, 23:22, 17:16) \ + HANDLER(EmcPmacroDdllPwrd2, 105, 28:25, 21:18) \ + HANDLER(EmcPmacroDdllPwrd2, 105, 31:30, 23:22) \ + HANDLER(EmcTr2ref, 105, 6:0, 30:24) \ + HANDLER(EmcCfg, 105, 25:25, 31:31) \ + HANDLER(EmcPmacroDdllPeriodicOffset, 106, 5:0, 5:0) \ + HANDLER(EmcPmacroDdllPeriodicOffset, 106, 16:8, 14:6) \ + HANDLER(EmcPmacroDdllPeriodicOffset, 106, 28:20, 23:15) \ + HANDLER(EmcPdex2Mrr, 106, 6:0, 30:24) \ + HANDLER(EmcCfg, 106, 26:26, 31:31) \ + HANDLER(McEmemArbDaCovers, 107, 23:0, 23:0) \ + HANDLER(EmcClkenOverride, 107, 3:1, 26:24) \ + HANDLER(EmcClkenOverride, 107, 8:6, 29:27) \ + HANDLER(EmcClkenOverride, 107, 16:16, 30:30) \ + HANDLER(EmcCfg, 107, 28:28, 31:31) \ + HANDLER(EmcXm2CompPadCtrl, 108, 1:0, 1:0) \ + HANDLER(EmcXm2CompPadCtrl, 108, 6:4, 4:2) \ + HANDLER(EmcXm2CompPadCtrl, 108, 9:9, 5:5) \ + HANDLER(EmcXm2CompPadCtrl, 108, 19:11, 14:6) \ + HANDLER(EmcXm2CompPadCtrl, 108, 31:24, 22:15) \ + HANDLER(EmcRfcPb, 108, 8:0, 31:23) \ + HANDLER(EmcAutoCalConfig3, 109, 6:0, 6:0) \ + HANDLER(EmcAutoCalConfig3, 109, 14:8, 13:7) \ + HANDLER(EmcAutoCalConfig3, 109, 23:16, 21:14) \ + HANDLER(EmcCfgUpdate, 109, 2:0, 24:22) \ + HANDLER(EmcCfgUpdate, 109, 10:8, 27:25) \ + HANDLER(EmcCfgUpdate, 109, 31:28, 31:28) \ + HANDLER(EmcAutoCalConfig4, 110, 6:0, 6:0) \ + HANDLER(EmcAutoCalConfig4, 110, 14:8, 13:7) \ + HANDLER(EmcAutoCalConfig4, 110, 23:16, 21:14) \ + HANDLER(EmcRfc, 110, 9:0, 31:22) \ + HANDLER(EmcAutoCalConfig5, 111, 6:0, 6:0) \ + HANDLER(EmcAutoCalConfig5, 111, 14:8, 13:7) \ + HANDLER(EmcAutoCalConfig5, 111, 23:16, 21:14) \ + HANDLER(EmcTxsr, 111, 9:0, 31:22) \ + HANDLER(EmcAutoCalConfig6, 112, 6:0, 6:0) \ + HANDLER(EmcAutoCalConfig6, 112, 14:8, 13:7) \ + HANDLER(EmcAutoCalConfig6, 112, 23:16, 21:14) \ + HANDLER(EmcMc2EmcQ, 112, 2:0, 24:22) \ + HANDLER(EmcMc2EmcQ, 112, 10:8, 27:25) \ + HANDLER(EmcMc2EmcQ, 112, 27:24, 31:28) \ + HANDLER(EmcAutoCalConfig7, 113, 6:0, 6:0) \ + HANDLER(EmcAutoCalConfig7, 113, 14:8, 13:7) \ + HANDLER(EmcAutoCalConfig7, 113, 23:16, 21:14) \ + HANDLER(McEmemArbRing1Throttle, 113, 4:0, 26:22) \ + HANDLER(McEmemArbRing1Throttle, 113, 20:16, 31:27) \ + HANDLER(EmcAutoCalConfig8, 114, 6:0, 6:0) \ + HANDLER(EmcAutoCalConfig8, 114, 14:8, 13:7) \ + HANDLER(EmcAutoCalConfig8, 114, 23:16, 21:14) \ + HANDLER(EmcFbioCfg7, 115, 21:0, 21:0) \ + HANDLER(EmcAr2Pden, 115, 8:0, 30:22) \ + HANDLER(EmcCfg, 115, 29:29, 31:31) \ + HANDLER(EmcPmacroQuseDdllRank0_0, 123, 10:0, 10:0) \ + HANDLER(EmcPmacroQuseDdllRank0_0, 123, 26:16, 21:11) \ + HANDLER(EmcRfcSlr, 123, 8:0, 30:22) \ + HANDLER(EmcCfg, 123, 30:30, 31:31) \ + HANDLER(EmcPmacroQuseDdllRank0_1, 124, 10:0, 10:0) \ + HANDLER(EmcPmacroQuseDdllRank0_1, 124, 26:16, 21:11) \ + HANDLER(EmcIbdly, 124, 6:0, 28:22) \ + HANDLER(EmcIbdly, 124, 29:28, 30:29) \ + HANDLER(EmcCfg, 124, 31:31, 31:31) \ + HANDLER(EmcPmacroQuseDdllRank0_2, 125, 10:0, 10:0) \ + HANDLER(EmcPmacroQuseDdllRank0_2, 125, 26:16, 21:11) \ + HANDLER(McEmemArbTimingRFCPB, 125, 8:0, 30:22) \ + HANDLER(EmcFbioCfg5, 125, 4:4, 31:31) \ + HANDLER(EmcPmacroQuseDdllRank0_3, 126, 10:0, 10:0) \ + HANDLER(EmcPmacroQuseDdllRank0_3, 126, 26:16, 21:11) \ + HANDLER(EmcAutoCalConfig9, 126, 6:0, 28:22) \ + HANDLER(EmcFbioCfg5, 126, 15:13, 31:29) \ + HANDLER(EmcPmacroQuseDdllRank0_4, 127, 10:0, 10:0) \ + HANDLER(EmcPmacroQuseDdllRank0_4, 127, 26:16, 21:11) \ + HANDLER(EmcRdvMask, 127, 6:0, 28:22) \ + HANDLER(EmcCfg2, 127, 5:3, 31:29) \ + HANDLER(EmcPmacroQuseDdllRank0_5, 128, 10:0, 10:0) \ + HANDLER(EmcPmacroQuseDdllRank0_5, 128, 26:16, 21:11) \ + HANDLER(EmcRdvEarlyMask, 128, 6:0, 28:22) \ + HANDLER(EmcPmacroCmdPadTxCtrl, 128, 4:2, 31:29) \ + HANDLER(EmcPmacroQuseDdllRank1_0, 129, 10:0, 10:0) \ + HANDLER(EmcPmacroQuseDdllRank1_0, 129, 26:16, 21:11) \ + HANDLER(EmcRdvEarly, 129, 6:0, 28:22) \ + HANDLER(EmcPmacroCmdPadTxCtrl, 129, 9:7, 31:29) \ + HANDLER(EmcPmacroQuseDdllRank1_1, 130, 10:0, 10:0) \ + HANDLER(EmcPmacroQuseDdllRank1_1, 130, 26:16, 21:11) \ + HANDLER(EmcQuseWidth, 130, 4:0, 26:22) \ + HANDLER(EmcQuseWidth, 130, 29:28, 28:27) \ + HANDLER(EmcPmacroCmdPadTxCtrl, 130, 14:12, 31:29) \ + HANDLER(EmcPmacroQuseDdllRank1_2, 131, 10:0, 10:0) \ + HANDLER(EmcPmacroQuseDdllRank1_2, 131, 26:16, 21:11) \ + HANDLER(EmcPmacroDdllShortCmd_2, 131, 6:0, 28:22) \ + HANDLER(EmcPmacroCmdPadTxCtrl, 131, 19:17, 31:29) \ + HANDLER(EmcPmacroQuseDdllRank1_3, 132, 10:0, 10:0) \ + HANDLER(EmcPmacroQuseDdllRank1_3, 132, 26:16, 21:11) \ + HANDLER(EmcPmacroCmdRxTermMode, 132, 1:0, 23:22) \ + HANDLER(EmcPmacroCmdRxTermMode, 132, 5:4, 25:24) \ + HANDLER(EmcPmacroCmdRxTermMode, 132, 9:8, 27:26) \ + HANDLER(EmcPmacroCmdRxTermMode, 132, 13:13, 28:28) \ + HANDLER(EmcPmacroDataPadTxCtrl, 132, 4:2, 31:29) \ + HANDLER(EmcPmacroQuseDdllRank1_4, 133, 10:0, 10:0) \ + HANDLER(EmcPmacroQuseDdllRank1_4, 133, 26:16, 21:11) \ + HANDLER(EmcPmacroDataRxTermMode, 133, 1:0, 23:22) \ + HANDLER(EmcPmacroDataRxTermMode, 133, 5:4, 25:24) \ + HANDLER(EmcPmacroDataRxTermMode, 133, 9:8, 27:26) \ + HANDLER(EmcPmacroDataRxTermMode, 133, 13:13, 28:28) \ + HANDLER(EmcPmacroDataPadTxCtrl, 133, 9:7, 31:29) \ + HANDLER(EmcPmacroQuseDdllRank1_5, 134, 10:0, 10:0) \ + HANDLER(EmcPmacroQuseDdllRank1_5, 134, 26:16, 21:11) \ + HANDLER(McEmemArbTimingRp, 134, 6:0, 28:22) \ + HANDLER(EmcPmacroDataPadTxCtrl, 134, 14:12, 31:29) \ + HANDLER(EmcPmacroObDdllLongDqRank0_0, 135, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqRank0_0, 135, 26:16, 21:11) \ + HANDLER(McEmemArbTimingRas, 135, 6:0, 28:22) \ + HANDLER(EmcPmacroDataPadTxCtrl, 135, 19:17, 31:29) \ + HANDLER(EmcPmacroObDdllLongDqRank0_1, 136, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqRank0_1, 136, 26:16, 21:11) \ + HANDLER(McEmemArbTimingFaw, 136, 6:0, 28:22) \ + HANDLER(EmcCfg, 136, 17:16, 30:29) \ + HANDLER(EmcFbioCfg5, 136, 8:8, 31:31) \ + HANDLER(EmcPmacroObDdllLongDqRank0_2, 137, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqRank0_2, 137, 26:16, 21:11) \ + HANDLER(McEmemArbTimingRap2Pre, 137, 6:0, 28:22) \ + HANDLER(EmcFbioCfg5, 137, 1:0, 30:29) \ + HANDLER(EmcFbioCfg5, 137, 10:10, 31:31) \ + HANDLER(EmcPmacroObDdllLongDqRank0_3, 138, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqRank0_3, 138, 26:16, 21:11) \ + HANDLER(McEmemArbTimingWap2Pre, 138, 6:0, 28:22) \ + HANDLER(EmcFbioCfg5, 138, 3:2, 30:29) \ + HANDLER(EmcFbioCfg5, 138, 12:12, 31:31) \ + HANDLER(EmcPmacroObDdllLongDqRank0_4, 139, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqRank0_4, 139, 26:16, 21:11) \ + HANDLER(McEmemArbTimingR2W, 139, 6:0, 28:22) \ + HANDLER(EmcCfg2, 139, 27:26, 30:29) \ + HANDLER(EmcFbioCfg5, 139, 24:24, 31:31) \ + HANDLER(EmcPmacroObDdllLongDqRank0_5, 140, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqRank0_5, 140, 26:16, 21:11) \ + HANDLER(McEmemArbTimingW2R, 140, 6:0, 28:22) \ + HANDLER(EmcFbioCfg5, 140, 27:25, 31:29) \ + HANDLER(EmcPmacroObDdllLongDqRank1_0, 141, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqRank1_0, 141, 26:16, 21:11) \ + HANDLER(EmcWdv, 141, 5:0, 27:22) \ + HANDLER(EmcFbioCfg5, 141, 23:20, 31:28) \ + HANDLER(EmcPmacroObDdllLongDqRank1_1, 142, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqRank1_1, 142, 26:16, 21:11) \ + HANDLER(EmcQUse, 142, 5:0, 27:22) \ + HANDLER(EmcFbioCfg5, 142, 28:28, 28:28) \ + HANDLER(EmcFbioCfg5, 142, 31:30, 30:29) \ + HANDLER(EmcCfg2, 142, 0:0, 31:31) \ + HANDLER(EmcPmacroObDdllLongDqRank1_2, 143, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqRank1_2, 143, 26:16, 21:11) \ + HANDLER(EmcPdEx2Wr, 143, 5:0, 27:22) \ + HANDLER(EmcCfg2, 143, 2:1, 29:28) \ + HANDLER(EmcCfg2, 143, 7:7, 30:30) \ + HANDLER(EmcCfg2, 143, 10:10, 31:31) \ + HANDLER(EmcPmacroObDdllLongDqRank1_3, 144, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqRank1_3, 144, 26:16, 21:11) \ + HANDLER(EmcPdEx2Rd, 144, 5:0, 27:22) \ + HANDLER(EmcCfg2, 144, 11:11, 28:28) \ + HANDLER(EmcCfg2, 144, 16:14, 31:29) \ + HANDLER(EmcPmacroObDdllLongDqRank1_4, 145, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqRank1_4, 145, 26:16, 21:11) \ + HANDLER(EmcPdex2Cke, 145, 5:0, 27:22) \ + HANDLER(EmcCfg2, 145, 20:20, 28:28) \ + HANDLER(EmcCfg2, 145, 24:22, 31:29) \ + HANDLER(EmcPmacroObDdllLongDqRank1_5, 146, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqRank1_5, 146, 26:16, 21:11) \ + HANDLER(EmcPChg2Pden, 146, 5:0, 27:22) \ + HANDLER(EmcCfg2, 146, 25:25, 28:28) \ + HANDLER(EmcCfg2, 146, 30:28, 31:29) \ + HANDLER(EmcPmacroObDdllLongDqsRank0_0, 147, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqsRank0_0, 147, 26:16, 21:11) \ + HANDLER(EmcAct2Pden, 147, 5:0, 27:22) \ + HANDLER(EmcCfg2, 147, 31:31, 28:28) \ + HANDLER(EmcCfgPipe, 147, 2:0, 31:29) \ + HANDLER(EmcPmacroObDdllLongDqsRank0_1, 148, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqsRank0_1, 148, 26:16, 21:11) \ + HANDLER(EmcCke2Pden, 148, 5:0, 27:22) \ + HANDLER(EmcCfgPipe, 148, 6:3, 31:28) \ + HANDLER(EmcPmacroObDdllLongDqsRank0_2, 149, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqsRank0_2, 149, 26:16, 21:11) \ + HANDLER(EmcTcke, 149, 5:0, 27:22) \ + HANDLER(EmcCfgPipe, 149, 10:7, 31:28) \ + HANDLER(EmcPmacroObDdllLongDqsRank0_3, 150, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqsRank0_3, 150, 26:16, 21:11) \ + HANDLER(EmcTrpab, 150, 5:0, 27:22) \ + HANDLER(EmcCfgPipe, 150, 11:11, 28:28) \ + HANDLER(EmcCfgPipe, 150, 18:16, 31:29) \ + HANDLER(EmcPmacroObDdllLongDqsRank0_4, 151, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqsRank0_4, 151, 26:16, 21:11) \ + HANDLER(EmcEInput, 151, 5:0, 27:22) \ + HANDLER(EmcCfgPipe, 151, 22:19, 31:28) \ + HANDLER(EmcPmacroObDdllLongDqsRank0_5, 152, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqsRank0_5, 152, 26:16, 21:11) \ + HANDLER(EmcEInputDuration, 152, 5:0, 27:22) \ + HANDLER(EmcCfgPipe, 152, 26:23, 31:28) \ + HANDLER(EmcPmacroObDdllLongDqsRank1_0, 153, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqsRank1_0, 153, 26:16, 21:11) \ + HANDLER(EmcPutermExtra, 153, 5:0, 27:22) \ + HANDLER(EmcCfgPipe, 153, 27:27, 28:28) \ + HANDLER(EmcPmacroTxSelClkSrc0, 153, 2:0, 31:29) \ + HANDLER(EmcPmacroObDdllLongDqsRank1_1, 154, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqsRank1_1, 154, 26:16, 21:11) \ + HANDLER(EmcTckesr, 154, 5:0, 27:22) \ + HANDLER(EmcPmacroTxSelClkSrc0, 154, 6:3, 31:28) \ + HANDLER(EmcPmacroObDdllLongDqsRank1_2, 155, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqsRank1_2, 155, 26:16, 21:11) \ + HANDLER(EmcTpd, 155, 5:0, 27:22) \ + HANDLER(EmcPmacroTxSelClkSrc0, 155, 10:7, 31:28) \ + HANDLER(EmcPmacroObDdllLongDqsRank1_3, 156, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqsRank1_3, 156, 26:16, 21:11) \ + HANDLER(EmcWdvMask, 156, 5:0, 27:22) \ + HANDLER(EmcPmacroTxSelClkSrc0, 156, 19:16, 31:28) \ + HANDLER(EmcPmacroObDdllLongDqsRank1_4, 157, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqsRank1_4, 157, 26:16, 21:11) \ + HANDLER(EmcWdvChk, 157, 5:0, 27:22) \ + HANDLER(EmcPmacroTxSelClkSrc0, 157, 23:20, 31:28) \ + HANDLER(EmcPmacroObDdllLongDqsRank1_5, 158, 10:0, 10:0) \ + HANDLER(EmcPmacroObDdllLongDqsRank1_5, 158, 26:16, 21:11) \ + HANDLER(EmcCmdBrlshft0, 158, 5:0, 27:22) \ + HANDLER(EmcPmacroTxSelClkSrc0, 158, 26:24, 30:28) \ + HANDLER(EmcPmacroTxSelClkSrc1, 158, 0:0, 31:31) \ + HANDLER(EmcPmacroIbDdllLongDqsRank0_0, 159, 10:0, 10:0) \ + HANDLER(EmcPmacroIbDdllLongDqsRank0_0, 159, 26:16, 21:11) \ + HANDLER(EmcCmdBrlshft1, 159, 5:0, 27:22) \ + HANDLER(EmcPmacroTxSelClkSrc1, 159, 4:1, 31:28) \ + HANDLER(EmcPmacroIbDdllLongDqsRank0_1, 160, 10:0, 10:0) \ + HANDLER(EmcPmacroIbDdllLongDqsRank0_1, 160, 26:16, 21:11) \ + HANDLER(EmcCmdBrlshft2, 160, 5:0, 27:22) \ + HANDLER(EmcPmacroTxSelClkSrc1, 160, 8:5, 31:28) \ + HANDLER(EmcPmacroIbDdllLongDqsRank0_2, 161, 10:0, 10:0) \ + HANDLER(EmcPmacroIbDdllLongDqsRank0_2, 161, 26:16, 21:11) \ + HANDLER(EmcCmdBrlshft3, 161, 5:0, 27:22) \ + HANDLER(EmcPmacroTxSelClkSrc1, 161, 10:9, 29:28) \ + HANDLER(EmcPmacroTxSelClkSrc1, 161, 17:16, 31:30) \ + HANDLER(EmcPmacroIbDdllLongDqsRank0_3, 162, 10:0, 10:0) \ + HANDLER(EmcPmacroIbDdllLongDqsRank0_3, 162, 26:16, 21:11) \ + HANDLER(EmcWev, 162, 5:0, 27:22) \ + HANDLER(EmcPmacroTxSelClkSrc1, 162, 21:18, 31:28) \ + HANDLER(EmcPmacroIbDdllLongDqsRank1_0, 163, 10:0, 10:0) \ + HANDLER(EmcPmacroIbDdllLongDqsRank1_0, 163, 26:16, 21:11) \ + HANDLER(EmcWsv, 163, 5:0, 27:22) \ + HANDLER(EmcPmacroTxSelClkSrc1, 163, 25:22, 31:28) \ + HANDLER(EmcPmacroIbDdllLongDqsRank1_1, 164, 10:0, 10:0) \ + HANDLER(EmcPmacroIbDdllLongDqsRank1_1, 164, 26:16, 21:11) \ + HANDLER(EmcCfg3, 164, 2:0, 24:22) \ + HANDLER(EmcCfg3, 164, 6:4, 27:25) \ + HANDLER(EmcPmacroTxSelClkSrc1, 164, 26:26, 28:28) \ + HANDLER(EmcPmacroTxSelClkSrc3, 164, 2:0, 31:29) \ + HANDLER(EmcPmacroIbDdllLongDqsRank1_2, 165, 10:0, 10:0) \ + HANDLER(EmcPmacroIbDdllLongDqsRank1_2, 165, 26:16, 21:11) \ + HANDLER(EmcPutermWidth, 165, 31:31, 22:22) \ + HANDLER(EmcPutermWidth, 165, 4:0, 27:23) \ + HANDLER(EmcPmacroTxSelClkSrc3, 165, 6:3, 31:28) \ + HANDLER(EmcPmacroIbDdllLongDqsRank1_3, 166, 10:0, 10:0) \ + HANDLER(EmcPmacroIbDdllLongDqsRank1_3, 166, 26:16, 21:11) \ + HANDLER(McEmemArbTimingRcd, 166, 5:0, 27:22) \ + HANDLER(EmcPmacroTxSelClkSrc3, 166, 10:7, 31:28) \ + HANDLER(EmcPmacroDdllLongCmd_0, 167, 10:0, 10:0) \ + HANDLER(EmcPmacroDdllLongCmd_0, 167, 26:16, 21:11) \ + HANDLER(McEmemArbTimingCcdmw, 167, 5:0, 27:22) \ + HANDLER(EmcPmacroTxSelClkSrc3, 167, 19:16, 31:28) \ + HANDLER(EmcPmacroDdllLongCmd_1, 168, 10:0, 10:0) \ + HANDLER(EmcPmacroDdllLongCmd_1, 168, 26:16, 21:11) \ + HANDLER(McEmemArbOverride, 168, 27:27, 22:22) \ + HANDLER(McEmemArbOverride, 168, 26:26, 23:23) \ + HANDLER(McEmemArbOverride, 168, 16:16, 24:24) \ + HANDLER(McEmemArbOverride, 168, 10:10, 25:25) \ + HANDLER(McEmemArbOverride, 168, 4:4, 26:26) \ + HANDLER(McEmemArbOverride, 168, 3:3, 27:27) \ + HANDLER(EmcPmacroTxSelClkSrc3, 168, 23:20, 31:28) \ + HANDLER(EmcPmacroDdllLongCmd_2, 169, 10:0, 10:0) \ + HANDLER(EmcPmacroDdllLongCmd_2, 169, 26:16, 21:11) \ + HANDLER(EmcRrd, 169, 4:0, 26:22) \ + HANDLER(EmcRext, 169, 4:0, 31:27) \ + HANDLER(EmcPmacroDdllLongCmd_3, 170, 10:0, 10:0) \ + HANDLER(EmcPmacroDdllLongCmd_3, 170, 26:16, 21:11) \ + HANDLER(EmcTClkStop, 170, 4:0, 26:22) \ + HANDLER(EmcWext, 170, 4:0, 31:27) \ + HANDLER(EmcPmacroPerbitFgcgCtrl0, 171, 10:0, 10:0) \ + HANDLER(EmcPmacroPerbitFgcgCtrl0, 171, 26:16, 21:11) \ + HANDLER(EmcRefctrl2, 171, 0:0, 22:22) \ + HANDLER(EmcRefctrl2, 171, 26:24, 25:23) \ + HANDLER(EmcRefctrl2, 171, 31:31, 26:26) \ + HANDLER(EmcWeDuration, 171, 4:0, 31:27) \ + HANDLER(EmcPmacroPerbitFgcgCtrl1, 172, 10:0, 10:0) \ + HANDLER(EmcPmacroPerbitFgcgCtrl1, 172, 26:16, 21:11) \ + HANDLER(EmcWsDuration, 172, 4:0, 26:22) \ + HANDLER(EmcPmacroPadCfgCtrl, 172, 0:0, 27:27) \ + HANDLER(EmcPmacroPadCfgCtrl, 172, 9:9, 28:28) \ + HANDLER(EmcPmacroPadCfgCtrl, 172, 13:13, 29:29) \ + HANDLER(EmcPmacroPadCfgCtrl, 172, 17:16, 31:30) \ + HANDLER(EmcPmacroPerbitFgcgCtrl2, 173, 10:0, 10:0) \ + HANDLER(EmcPmacroPerbitFgcgCtrl2, 173, 26:16, 21:11) \ + HANDLER(McEmemArbTimingRrd, 173, 4:0, 26:22) \ + HANDLER(McEmemArbTimingR2R, 173, 4:0, 31:27) \ + HANDLER(EmcPmacroPerbitFgcgCtrl3, 174, 10:0, 10:0) \ + HANDLER(EmcPmacroPerbitFgcgCtrl3, 174, 26:16, 21:11) \ + HANDLER(McEmemArbTimingW2W, 174, 4:0, 26:22) \ + HANDLER(EmcPmacroTxSelClkSrc3, 174, 26:24, 29:27) \ + HANDLER(EmcPmacroTxSelClkSrc2, 174, 1:0, 31:30) \ + HANDLER(EmcPmacroPerbitFgcgCtrl4, 175, 10:0, 10:0) \ + HANDLER(EmcPmacroPerbitFgcgCtrl4, 175, 26:16, 21:11) \ + HANDLER(EmcPmacroTxSelClkSrc2, 175, 10:2, 30:22) \ + HANDLER(EmcPmacroTxSelClkSrc2, 175, 16:16, 31:31) \ + HANDLER(EmcPmacroPerbitFgcgCtrl5, 176, 10:0, 10:0) \ + HANDLER(EmcPmacroPerbitFgcgCtrl5, 176, 26:16, 21:11) \ + HANDLER(EmcPmacroTxSelClkSrc2, 176, 26:17, 31:22) \ + HANDLER(McEmemArbCfg, 177, 8:0, 8:0) \ + HANDLER(McEmemArbCfg, 177, 20:16, 13:9) \ + HANDLER(McEmemArbCfg, 177, 31:24, 21:14) \ + HANDLER(EmcPmacroTxSelClkSrc4, 177, 9:0, 31:22) \ + HANDLER(McEmemArbMisc1, 178, 12:0, 12:0) \ + HANDLER(McEmemArbMisc1, 178, 25:21, 17:13) \ + HANDLER(McEmemArbMisc1, 178, 31:28, 21:18) \ + HANDLER(EmcPmacroTxSelClkSrc4, 178, 10:10, 22:22) \ + HANDLER(EmcPmacroTxSelClkSrc4, 178, 24:16, 31:23) \ + HANDLER(EmcMrsWaitCnt2, 179, 9:0, 9:0) \ + HANDLER(EmcMrsWaitCnt2, 179, 26:16, 20:10) \ + HANDLER(EmcOdtWrite, 179, 5:0, 26:21) \ + HANDLER(EmcOdtWrite, 179, 11:8, 30:27) \ + HANDLER(EmcOdtWrite, 179, 31:31, 31:31) \ + HANDLER(EmcMrsWaitCnt, 180, 9:0, 9:0) \ + HANDLER(EmcMrsWaitCnt, 180, 26:16, 20:10) \ + HANDLER(EmcPmacroIbRxrt, 180, 10:0, 31:21) \ + HANDLER(EmcAutoCalInterval, 181, 20:0, 20:0) \ + HANDLER(EmcPmacroDdllLongCmd_4, 181, 10:0, 31:21) \ + HANDLER(McEmemArbRefpbHpCtrl, 182, 6:0, 6:0) \ + HANDLER(McEmemArbRefpbHpCtrl, 182, 14:8, 13:7) \ + HANDLER(McEmemArbRefpbHpCtrl, 182, 22:16, 20:14) \ + HANDLER(McEmemArbOutstandingReq, 182, 8:0, 29:21) \ + HANDLER(McEmemArbOutstandingReq, 182, 31:30, 31:30) \ + HANDLER(EmcXm2CompPadCtrl2, 183, 5:0, 5:0) \ + HANDLER(EmcXm2CompPadCtrl2, 183, 17:12, 11:6) \ + HANDLER(EmcXm2CompPadCtrl2, 183, 21:20, 13:12) \ + HANDLER(EmcXm2CompPadCtrl2, 183, 29:24, 19:14) \ + HANDLER(EmcPmacroCmdCtrl0, 183, 0:0, 20:20) \ + HANDLER(EmcPmacroCmdCtrl0, 183, 5:4, 22:21) \ + HANDLER(EmcPmacroCmdCtrl0, 183, 8:8, 23:23) \ + HANDLER(EmcPmacroCmdCtrl0, 183, 13:12, 25:24) \ + HANDLER(EmcPmacroCmdCtrl0, 183, 16:16, 26:26) \ + HANDLER(EmcPmacroCmdCtrl0, 183, 21:20, 28:27) \ + HANDLER(EmcPmacroCmdCtrl0, 183, 24:24, 29:29) \ + HANDLER(EmcPmacroCmdCtrl0, 183, 29:28, 31:30) \ + HANDLER(EmcCfgDigDll_1, 184, 19:0, 19:0) \ + HANDLER(EmcPmacroCmdCtrl1, 184, 0:0, 20:20) \ + HANDLER(EmcPmacroCmdCtrl1, 184, 5:4, 22:21) \ + HANDLER(EmcPmacroCmdCtrl1, 184, 8:8, 23:23) \ + HANDLER(EmcPmacroCmdCtrl1, 184, 13:12, 25:24) \ + HANDLER(EmcPmacroCmdCtrl1, 184, 16:16, 26:26) \ + HANDLER(EmcPmacroCmdCtrl1, 184, 21:20, 28:27) \ + HANDLER(EmcPmacroCmdCtrl1, 184, 24:24, 29:29) \ + HANDLER(EmcPmacroCmdCtrl1, 184, 29:28, 31:30) \ + HANDLER(EmcQuseBrlshft0, 185, 19:0, 19:0) \ + HANDLER(EmcPmacroCmdCtrl2, 185, 0:0, 20:20) \ + HANDLER(EmcPmacroCmdCtrl2, 185, 5:4, 22:21) \ + HANDLER(EmcPmacroCmdCtrl2, 185, 8:8, 23:23) \ + HANDLER(EmcPmacroCmdCtrl2, 185, 13:12, 25:24) \ + HANDLER(EmcPmacroCmdCtrl2, 185, 16:16, 26:26) \ + HANDLER(EmcPmacroCmdCtrl2, 185, 21:20, 28:27) \ + HANDLER(EmcPmacroCmdCtrl2, 185, 24:24, 29:29) \ + HANDLER(EmcPmacroCmdCtrl2, 185, 29:28, 31:30) \ + HANDLER(EmcQuseBrlshft1, 186, 19:0, 19:0) \ + HANDLER(EmcPmacroDsrVttgenCtrl0, 186, 3:0, 23:20) \ + HANDLER(EmcPmacroDsrVttgenCtrl0, 186, 15:8, 31:24) \ + HANDLER(EmcQuseBrlshft2, 187, 19:0, 19:0) \ + HANDLER(EmcPmacroPerbitRfu1Ctrl0, 187, 5:0, 25:20) \ + HANDLER(EmcPmacroPerbitRfu1Ctrl0, 187, 21:16, 31:26) \ + HANDLER(EmcQuseBrlshft3, 188, 19:0, 19:0) \ + HANDLER(EmcPmacroPerbitRfu1Ctrl1, 188, 5:0, 25:20) \ + HANDLER(EmcPmacroPerbitRfu1Ctrl1, 188, 21:16, 31:26) \ + HANDLER(EmcDbg, 189, 4:0, 4:0) \ + HANDLER(EmcDbg, 189, 13:9, 9:5) \ + HANDLER(EmcDbg, 189, 31:24, 17:10) \ + HANDLER(EmcTRefBw, 189, 13:0, 31:18) \ + HANDLER(EmcZcalWaitCnt, 191, 10:0, 10:0) \ + HANDLER(EmcZcalWaitCnt, 191, 21:16, 16:11) \ + HANDLER(EmcZcalWaitCnt, 191, 31:31, 17:17) \ + HANDLER(EmcQpop, 191, 6:0, 24:18) \ + HANDLER(EmcQpop, 191, 22:16, 31:25) \ + HANDLER(EmcZcalMrwCmd, 192, 7:0, 7:0) \ + HANDLER(EmcZcalMrwCmd, 192, 23:16, 15:8) \ + HANDLER(EmcZcalMrwCmd, 192, 31:30, 17:16) \ + HANDLER(EmcPmacroAutocalCfgCommon, 192, 5:0, 23:18) \ + HANDLER(EmcPmacroAutocalCfgCommon, 192, 13:8, 29:24) \ + HANDLER(EmcPmacroAutocalCfgCommon, 192, 16:16, 30:30) \ + HANDLER(EmcPmacroTxSelClkSrc4, 192, 25:25, 31:31) \ + HANDLER(EmcPmacroDllCfg1, 193, 10:0, 10:0) \ + HANDLER(EmcPmacroDllCfg1, 193, 13:12, 12:11) \ + HANDLER(EmcPmacroDllCfg1, 193, 17:16, 14:13) \ + HANDLER(EmcPmacroDllCfg1, 193, 21:20, 16:15) \ + HANDLER(EmcPmacroDllCfg1, 193, 24:24, 17:17) \ + HANDLER(EmcPmacroPerbitRfu1Ctrl2, 193, 5:0, 23:18) \ + HANDLER(EmcPmacroPerbitRfu1Ctrl2, 193, 21:16, 29:24) \ + HANDLER(EmcPmacroTxSelClkSrc4, 193, 26:26, 30:30) \ + HANDLER(EmcPmacroTxSelClkSrc5, 193, 0:0, 31:31) \ + HANDLER(EmcPmacroCmdBrickCtrlFdpd, 194, 17:0, 17:0) \ + HANDLER(EmcPmacroPerbitRfu1Ctrl3, 194, 5:0, 23:18) \ + HANDLER(EmcPmacroPerbitRfu1Ctrl3, 194, 21:16, 29:24) \ + HANDLER(EmcPmacroTxSelClkSrc5, 194, 2:1, 31:30) \ + HANDLER(EmcPmacroDataBrickCtrlFdpd, 195, 17:0, 17:0) \ + HANDLER(EmcPmacroPerbitRfu1Ctrl4, 195, 5:0, 23:18) \ + HANDLER(EmcPmacroPerbitRfu1Ctrl4, 195, 21:16, 29:24) \ + HANDLER(EmcPmacroTxSelClkSrc5, 195, 4:3, 31:30) \ + HANDLER(EmcDynSelfRefControl, 196, 15:0, 15:0) \ + HANDLER(EmcDynSelfRefControl, 196, 31:31, 16:16) \ + HANDLER(McEmemArbRefpbBankCtrl, 196, 6:0, 23:17) \ + HANDLER(McEmemArbRefpbBankCtrl, 196, 14:8, 30:24) \ + HANDLER(McEmemArbRefpbBankCtrl, 196, 31:31, 31:31) \ + HANDLER(EmcPmacroCmdPadRxCtrl, 197, 1:0, 1:0) \ + HANDLER(EmcPmacroCmdPadRxCtrl, 197, 5:4, 3:2) \ + HANDLER(EmcPmacroCmdPadRxCtrl, 197, 12:12, 4:4) \ + HANDLER(EmcPmacroCmdPadRxCtrl, 197, 19:15, 9:5) \ + HANDLER(EmcPmacroCmdPadRxCtrl, 197, 27:21, 16:10) \ + HANDLER(EmcPmacroPerbitRfu1Ctrl5, 197, 5:0, 22:17) \ + HANDLER(EmcPmacroPerbitRfu1Ctrl5, 197, 21:16, 28:23) \ + HANDLER(EmcPmacroTxSelClkSrc5, 197, 7:5, 31:29) \ + HANDLER(EmcPmacroDataPadRxCtrl, 198, 1:0, 1:0) \ + HANDLER(EmcPmacroDataPadRxCtrl, 198, 5:4, 3:2) \ + HANDLER(EmcPmacroDataPadRxCtrl, 198, 12:12, 4:4) \ + HANDLER(EmcPmacroDataPadRxCtrl, 198, 19:15, 9:5) \ + HANDLER(EmcPmacroDataPadRxCtrl, 198, 27:21, 16:10) \ + HANDLER(EmcPmacroTxSelClkSrc5, 198, 10:8, 19:17) \ + HANDLER(EmcPmacroTxSelClkSrc5, 198, 26:16, 30:20) \ + HANDLER(EmcPmacroCmdPadTxCtrl, 198, 0:0, 31:31) \ + HANDLER(EmcRefresh, 199, 15:0, 15:0) \ + HANDLER(EmcCmdQ, 199, 4:0, 20:16) \ + HANDLER(EmcCmdQ, 199, 10:8, 23:21) \ + HANDLER(EmcCmdQ, 199, 14:12, 26:24) \ + HANDLER(EmcCmdQ, 199, 28:24, 31:27) \ + HANDLER(EmcAcpdControl, 210, 15:0, 15:0) \ + HANDLER(EmcAutoCalVrefSel1, 210, 15:0, 31:16) \ + HANDLER(EmcPmacroAutocalCfg0, 211, 3:0, 3:0) \ + HANDLER(EmcPmacroAutocalCfg0, 211, 11:8, 7:4) \ + HANDLER(EmcPmacroAutocalCfg0, 211, 19:16, 11:8) \ + HANDLER(EmcPmacroAutocalCfg0, 211, 27:24, 15:12) \ + HANDLER(EmcPmacroAutocalCfg1, 211, 3:0, 19:16) \ + HANDLER(EmcPmacroAutocalCfg1, 211, 11:8, 23:20) \ + HANDLER(EmcPmacroAutocalCfg1, 211, 19:16, 27:24) \ + HANDLER(EmcPmacroAutocalCfg1, 211, 27:24, 31:28) \ + HANDLER(EmcPmacroAutocalCfg2, 212, 3:0, 3:0) \ + HANDLER(EmcPmacroAutocalCfg2, 212, 11:8, 7:4) \ + HANDLER(EmcPmacroAutocalCfg2, 212, 19:16, 11:8) \ + HANDLER(EmcPmacroAutocalCfg2, 212, 27:24, 15:12) \ + HANDLER(EmcXm2CompPadCtrl3, 212, 5:0, 21:16) \ + HANDLER(EmcXm2CompPadCtrl3, 212, 17:12, 27:22) \ + HANDLER(EmcXm2CompPadCtrl3, 212, 23:20, 31:28) \ + HANDLER(EmcCfgDigDllPeriod, 213, 15:0, 15:0) \ + HANDLER(EmcPreRefreshReqCnt, 213, 15:0, 31:16) \ + HANDLER(EmcPmacroDdllBypass, 214, 0:0, 0:0) \ + HANDLER(EmcPmacroDdllBypass, 214, 11:8, 4:1) \ + HANDLER(EmcPmacroDdllBypass, 214, 16:13, 8:5) \ + HANDLER(EmcPmacroDdllBypass, 214, 27:24, 12:9) \ + HANDLER(EmcPmacroDdllBypass, 214, 31:29, 15:13) \ + HANDLER(EmcPmacroDataPiCtrl, 214, 4:0, 20:16) \ + HANDLER(EmcPmacroDataPiCtrl, 214, 12:8, 25:21) \ + HANDLER(EmcPmacroDataPiCtrl, 214, 21:16, 31:26) \ + HANDLER(EmcPmacroCmdPiCtrl, 215, 4:0, 4:0) \ + HANDLER(EmcPmacroCmdPiCtrl, 215, 12:8, 9:5) \ + HANDLER(EmcPmacroCmdPiCtrl, 215, 21:16, 15:10) \ + HANDLER(EmcPmacroCmdPadTxCtrl, 216, 6:5, 1:0) \ + HANDLER(EmcPmacroCmdPadTxCtrl, 216, 10:10, 2:2) \ + HANDLER(EmcPmacroCmdPadTxCtrl, 216, 16:15, 4:3) \ + HANDLER(EmcPmacroCmdPadTxCtrl, 216, 30:21, 14:5) \ + HANDLER(EmcPmacroDataPadTxCtrl, 216, 0:0, 15:15) \ + HANDLER(EmcPmacroDataPadTxCtrl, 216, 6:5, 17:16) \ + HANDLER(EmcPmacroDataPadTxCtrl, 216, 10:10, 18:18) \ + HANDLER(EmcPmacroDataPadTxCtrl, 216, 16:15, 20:19) \ + HANDLER(EmcPmacroDataPadTxCtrl, 216, 30:21, 30:21) \ + HANDLER(EmcPinGpio, 9, 1:0, 31:30) \ + HANDLER(EmcPinGpioEn, 10, 1:0, 31:30) \ + HANDLER(EmcDevSelect, 11, 1:0, 31:30) \ + HANDLER(EmcZcalWarmColdBootEnables, 12, 1:0, 31:30) \ + HANDLER(EmcCfgDigDllPeriodWarmBoot, 13, 1:0, 31:30) \ + HANDLER(EmcBctSpare13, 45, 31:0, 31:0) \ + HANDLER(EmcBctSpare12, 46, 31:0, 31:0) \ + HANDLER(EmcBctSpare7, 47, 31:0, 31:0) \ + HANDLER(EmcBctSpare6, 48, 31:0, 31:0) \ + HANDLER(EmcBctSpare5, 50, 31:0, 31:0) \ + HANDLER(EmcBctSpare4, 51, 31:0, 31:0) \ + HANDLER(EmcBctSpare3, 56, 31:0, 31:0) \ + HANDLER(EmcBctSpare2, 57, 31:0, 31:0) \ + HANDLER(EmcBctSpare1, 58, 31:0, 31:0) \ + HANDLER(EmcBctSpare0, 59, 31:0, 31:0) \ + HANDLER(EmcBctSpare9, 60, 31:0, 31:0) \ + HANDLER(EmcBctSpare8, 61, 31:0, 31:0) \ + HANDLER(BootRomPatchData, 62, 31:0, 31:0) \ + HANDLER(BootRomPatchControl, 63, 31:0, 31:0) \ + HANDLER(McClkenOverrideAllWarmBoot, 65, 0:0, 31:31) \ + HANDLER(EmcExtraRefreshNum, 66, 2:0, 31:29) \ + HANDLER(PmcIoDpd3ReqWait, 72, 2:0, 30:28) \ + HANDLER(EmcClkenOverrideAllWarmBoot, 72, 0:0, 31:31) \ + HANDLER(MemoryType, 73, 2:0, 30:28) \ + HANDLER(EmcMrsWarmBootEnable, 73, 0:0, 31:31) \ + HANDLER(PmcIoDpd4ReqWait, 74, 2:0, 30:28) \ + HANDLER(ClearClk2Mc1, 74, 0:0, 31:31) \ + HANDLER(EmcWarmBootExtraModeRegWriteEnable, 75, 0:0, 28:28) \ + HANDLER(ClkRstControllerPllmMisc2OverrideEnable, 75, 0:0, 29:29) \ + HANDLER(EmcDbgWriteMux, 75, 0:0, 30:30) \ + HANDLER(AhbArbitrationXbarCtrlMemInitDone, 75, 0:0, 31:31) \ + HANDLER(EmcTimingControlWait, 90, 7:0, 31:24) \ + HANDLER(EmcZcalWarmBootWait, 91, 7:0, 31:24) \ + HANDLER(WarmBootWait, 92, 7:0, 31:24) \ + HANDLER(EmcPinProgramWait, 93, 7:0, 31:24) \ + HANDLER(EmcAutoCalWait, 114, 9:0, 31:22) \ + HANDLER(SwizzleRankByteEncode, 215, 15:0, 31:16) \ + \ + /* PMC SCRATCH fields for LPDDR2. */ \ + HANDLER(EmcMrwLpddr2ZcalWarmBoot, 5, 23:16, 7:0) \ + HANDLER(EmcMrwLpddr2ZcalWarmBoot, 5, 7:0, 15:8) \ + HANDLER(EmcWarmBootMrwExtra, 5, 23:16, 23:16) \ + HANDLER(EmcWarmBootMrwExtra, 5, 7:0, 31:24) \ + HANDLER(EmcMrwLpddr2ZcalWarmBoot, 6, 31:30, 1:0) \ + HANDLER(EmcWarmBootMrwExtra, 6, 31:30, 3:2) \ + HANDLER(EmcMrwLpddr2ZcalWarmBoot, 6, 27:26, 5:4) \ + HANDLER(EmcWarmBootMrwExtra, 6, 27:26, 7:6) \ + HANDLER(EmcMrw6, 8, 27:0, 27:0) \ + HANDLER(EmcMrw6, 8, 31:30, 29:28) \ + HANDLER(EmcMrw8, 9, 27:0, 27:0) \ + HANDLER(EmcMrw8, 9, 31:30, 29:28) \ + HANDLER(EmcMrw9, 10, 27:0, 27:0) \ + HANDLER(EmcMrw9, 10, 31:30, 29:28) \ + HANDLER(EmcMrw10, 11, 27:0, 27:0) \ + HANDLER(EmcMrw10, 11, 31:30, 29:28) \ + HANDLER(EmcMrw12, 12, 27:0, 27:0) \ + HANDLER(EmcMrw12, 12, 31:30, 29:28) \ + HANDLER(EmcMrw13, 13, 27:0, 27:0) \ + HANDLER(EmcMrw13, 13, 31:30, 29:28) \ + HANDLER(EmcMrw14, 14, 27:0, 27:0) \ + HANDLER(EmcMrw14, 14, 31:30, 29:28) \ + HANDLER(EmcMrw1, 15, 7:0, 7:0) \ + HANDLER(EmcMrw1, 15, 23:16, 15:8) \ + HANDLER(EmcMrw1, 15, 27:26, 17:16) \ + HANDLER(EmcMrw1, 15, 31:30, 19:18) \ + HANDLER(EmcWarmBootMrwExtra, 16, 7:0, 7:0) \ + HANDLER(EmcWarmBootMrwExtra, 16, 23:16, 15:8) \ + HANDLER(EmcWarmBootMrwExtra, 16, 27:26, 17:16) \ + HANDLER(EmcWarmBootMrwExtra, 16, 31:30, 19:18) \ + HANDLER(EmcMrw2, 17, 7:0, 7:0) \ + HANDLER(EmcMrw2, 17, 23:16, 15:8) \ + HANDLER(EmcMrw2, 17, 27:26, 17:16) \ + HANDLER(EmcMrw2, 17, 31:30, 19:18) \ + HANDLER(EmcMrw3, 18, 7:0, 7:0) \ + HANDLER(EmcMrw3, 18, 23:16, 15:8) \ + HANDLER(EmcMrw3, 18, 27:26, 17:16) \ + HANDLER(EmcMrw3, 18, 31:30, 19:18) \ + HANDLER(EmcMrw4, 19, 7:0, 7:0) \ + HANDLER(EmcMrw4, 19, 23:16, 15:8) \ + HANDLER(EmcMrw4, 19, 27:26, 17:16) \ + HANDLER(EmcMrw4, 19, 31:30, 19:18) + +#define FOREACH_SDRAM_SECURE_SCRATCH_REGISTER_MARIKO(HANDLER) \ + /* PMC SECURE_SCRATCH fields. */ \ + HANDLER(EmcCmdMappingByte, 8, 31:0, 31:0) \ + HANDLER(EmcPmacroBrickMapping0, 9, 31:0, 31:0) \ + HANDLER(EmcPmacroBrickMapping1, 10, 31:0, 31:0) \ + HANDLER(EmcPmacroBrickMapping2, 11, 31:0, 31:0) \ + HANDLER(McVideoProtectGpuOverride0, 12, 31:0, 31:0) \ + HANDLER(EmcCmdMappingCmd0_0, 13, 6:0, 6:0) \ + HANDLER(EmcCmdMappingCmd0_0, 13, 14:8, 13:7) \ + HANDLER(EmcCmdMappingCmd0_0, 13, 22:16, 20:14) \ + HANDLER(EmcCmdMappingCmd0_0, 13, 30:24, 27:21) \ + HANDLER(McUntranslatedRegionCheck, 13, 0:0, 28:28) \ + HANDLER(McUntranslatedRegionCheck, 13, 9:8, 30:29) \ + HANDLER(EmcAdrCfg, 13, 0:0, 31:31) \ + HANDLER(EmcCmdMappingCmd0_1, 14, 6:0, 6:0) \ + HANDLER(EmcCmdMappingCmd0_1, 14, 14:8, 13:7) \ + HANDLER(EmcCmdMappingCmd0_1, 14, 22:16, 20:14) \ + HANDLER(EmcCmdMappingCmd0_1, 14, 30:24, 27:21) \ + HANDLER(McVideoProtectBomAdrHi, 14, 1:0, 29:28) \ + HANDLER(McVideoProtectWriteAccess, 14, 1:0, 31:30) \ + HANDLER(EmcCmdMappingCmd1_0, 15, 6:0, 6:0) \ + HANDLER(EmcCmdMappingCmd1_0, 15, 14:8, 13:7) \ + HANDLER(EmcCmdMappingCmd1_0, 15, 22:16, 20:14) \ + HANDLER(EmcCmdMappingCmd1_0, 15, 30:24, 27:21) \ + HANDLER(McSecCarveoutAdrHi, 15, 1:0, 29:28) \ + HANDLER(McMtsCarveoutAdrHi, 15, 1:0, 31:30) \ + HANDLER(EmcCmdMappingCmd1_1, 16, 6:0, 6:0) \ + HANDLER(EmcCmdMappingCmd1_1, 16, 14:8, 13:7) \ + HANDLER(EmcCmdMappingCmd1_1, 16, 22:16, 20:14) \ + HANDLER(EmcCmdMappingCmd1_1, 16, 30:24, 27:21) \ + HANDLER(McGeneralizedCarveout5BomHi, 16, 1:0, 29:28) \ + HANDLER(McGeneralizedCarveout3BomHi, 16, 1:0, 31:30) \ + HANDLER(EmcCmdMappingCmd2_0, 17, 6:0, 6:0) \ + HANDLER(EmcCmdMappingCmd2_0, 17, 14:8, 13:7) \ + HANDLER(EmcCmdMappingCmd2_0, 17, 22:16, 20:14) \ + HANDLER(EmcCmdMappingCmd2_0, 17, 30:24, 27:21) \ + HANDLER(McGeneralizedCarveout2BomHi, 17, 1:0, 29:28) \ + HANDLER(McGeneralizedCarveout4BomHi, 17, 1:0, 31:30) \ + HANDLER(EmcCmdMappingCmd2_1, 18, 6:0, 6:0) \ + HANDLER(EmcCmdMappingCmd2_1, 18, 14:8, 13:7) \ + HANDLER(EmcCmdMappingCmd2_1, 18, 22:16, 20:14) \ + HANDLER(EmcCmdMappingCmd2_1, 18, 30:24, 27:21) \ + HANDLER(McGeneralizedCarveout1BomHi, 18, 1:0, 29:28) \ + HANDLER(EmcFbioSpare, 18, 1:1, 30:30) \ + HANDLER(EmcFbioCfg8, 18, 15:15, 31:31) \ + HANDLER(EmcCmdMappingCmd3_0, 19, 6:0, 6:0) \ + HANDLER(EmcCmdMappingCmd3_0, 19, 14:8, 13:7) \ + HANDLER(EmcCmdMappingCmd3_0, 19, 22:16, 20:14) \ + HANDLER(EmcCmdMappingCmd3_0, 19, 30:24, 27:21) \ + HANDLER(McEmemAdrCfg, 19, 0:0, 28:28) \ + HANDLER(McSecCarveoutProtectWriteAccess, 19, 0:0, 29:29) \ + HANDLER(McMtsCarveoutRegCtrl, 19, 0:0, 30:30) \ + HANDLER(McVideoProtectVprOverride, 19, 0:0, 31:31) \ + HANDLER(EmcCmdMappingCmd3_1, 20, 6:0, 6:0) \ + HANDLER(EmcCmdMappingCmd3_1, 20, 14:8, 13:7) \ + HANDLER(EmcCmdMappingCmd3_1, 20, 22:16, 20:14) \ + HANDLER(EmcCmdMappingCmd3_1, 20, 30:24, 27:21) \ + HANDLER(McGeneralizedCarveout2Cfg0, 20, 6:3, 31:28) \ + HANDLER(McGeneralizedCarveout4Cfg0, 39, 26:0, 26:0) \ + HANDLER(McGeneralizedCarveout2Cfg0, 39, 10:7, 30:27) \ + HANDLER(McVideoProtectVprOverride, 39, 1:1, 31:31) \ + HANDLER(McGeneralizedCarveout5Cfg0, 40, 26:0, 26:0) \ + HANDLER(McGeneralizedCarveout2Cfg0, 40, 17:14, 30:27) \ + HANDLER(McVideoProtectVprOverride, 40, 2:2, 31:31) \ + HANDLER(EmcCmdMappingCmd0_2, 41, 6:0, 6:0) \ + HANDLER(EmcCmdMappingCmd0_2, 41, 14:8, 13:7) \ + HANDLER(EmcCmdMappingCmd0_2, 41, 22:16, 20:14) \ + HANDLER(EmcCmdMappingCmd0_2, 41, 27:24, 24:21) \ + HANDLER(McGeneralizedCarveout2Cfg0, 41, 21:18, 28:25) \ + HANDLER(McGeneralizedCarveout2Cfg0, 41, 13:11, 31:29) \ + HANDLER(EmcCmdMappingCmd1_2, 42, 6:0, 6:0) \ + HANDLER(EmcCmdMappingCmd1_2, 42, 14:8, 13:7) \ + HANDLER(EmcCmdMappingCmd1_2, 42, 22:16, 20:14) \ + HANDLER(EmcCmdMappingCmd1_2, 42, 27:24, 24:21) \ + HANDLER(McGeneralizedCarveout1Cfg0, 42, 6:3, 28:25) \ + HANDLER(McGeneralizedCarveout1Cfg0, 42, 13:11, 31:29) \ + HANDLER(EmcCmdMappingCmd2_2, 43, 6:0, 6:0) \ + HANDLER(EmcCmdMappingCmd2_2, 43, 14:8, 13:7) \ + HANDLER(EmcCmdMappingCmd2_2, 43, 22:16, 20:14) \ + HANDLER(EmcCmdMappingCmd2_2, 43, 27:24, 24:21) \ + HANDLER(McGeneralizedCarveout1Cfg0, 43, 10:7, 28:25) \ + HANDLER(McGeneralizedCarveout3Cfg0, 43, 13:11, 31:29) \ + HANDLER(EmcCmdMappingCmd3_2, 44, 6:0, 6:0) \ + HANDLER(EmcCmdMappingCmd3_2, 44, 14:8, 13:7) \ + HANDLER(EmcCmdMappingCmd3_2, 44, 22:16, 20:14) \ + HANDLER(EmcCmdMappingCmd3_2, 44, 27:24, 24:21) \ + HANDLER(McGeneralizedCarveout1Cfg0, 44, 17:14, 28:25) \ + HANDLER(McVideoProtectVprOverride, 44, 3:3, 29:29) \ + HANDLER(McVideoProtectVprOverride, 44, 7:6, 31:30) \ + HANDLER(McEmemAdrCfgChannelMask, 45, 31:9, 22:0) \ + HANDLER(McEmemAdrCfgDev0, 45, 2:0, 25:23) \ + HANDLER(McEmemAdrCfgDev0, 45, 9:8, 27:26) \ + HANDLER(McEmemAdrCfgDev0, 45, 19:16, 31:28) \ + HANDLER(McEmemAdrCfgBankMask0, 46, 31:10, 21:0) \ + HANDLER(McEmemAdrCfgDev1, 46, 2:0, 24:22) \ + HANDLER(McEmemAdrCfgDev1, 46, 9:8, 26:25) \ + HANDLER(McEmemAdrCfgDev1, 46, 19:16, 30:27) \ + HANDLER(McVideoProtectVprOverride, 46, 8:8, 31:31) \ + HANDLER(McEmemAdrCfgBankMask1, 47, 31:10, 21:0) \ + HANDLER(McGeneralizedCarveout1Cfg0, 47, 21:18, 25:22) \ + HANDLER(McGeneralizedCarveout3Cfg0, 47, 6:3, 29:26) \ + HANDLER(McVideoProtectVprOverride, 47, 9:9, 30:30) \ + HANDLER(McVideoProtectVprOverride, 47, 11:11, 31:31) \ + HANDLER(McEmemAdrCfgBankMask2, 48, 31:10, 21:0) \ + HANDLER(McGeneralizedCarveout3Cfg0, 48, 10:7, 25:22) \ + HANDLER(McGeneralizedCarveout3Cfg0, 48, 17:14, 29:26) \ + HANDLER(McVideoProtectVprOverride, 48, 15:14, 31:30) \ + HANDLER(McVideoProtectGpuOverride1, 49, 15:0, 15:0) \ + HANDLER(McEmemCfg, 49, 13:0, 29:16) \ + HANDLER(McEmemCfg, 49, 31:31, 30:30) \ + HANDLER(McVideoProtectVprOverride, 49, 17:17, 31:31) \ + HANDLER(McGeneralizedCarveout3Bom, 50, 31:17, 14:0) \ + HANDLER(McGeneralizedCarveout1Bom, 50, 31:17, 29:15) \ + HANDLER(McVideoProtectVprOverride, 50, 19:18, 31:30) \ + HANDLER(McGeneralizedCarveout4Bom, 51, 31:17, 14:0) \ + HANDLER(McGeneralizedCarveout2Bom, 51, 31:17, 29:15) \ + HANDLER(McVideoProtectVprOverride, 51, 21:20, 31:30) \ + HANDLER(McGeneralizedCarveout5Bom, 52, 31:17, 14:0) \ + HANDLER(McVideoProtectBom, 52, 31:20, 26:15) \ + HANDLER(McGeneralizedCarveout3Cfg0, 52, 21:18, 30:27) \ + HANDLER(McVideoProtectVprOverride, 52, 22:22, 31:31) \ + HANDLER(McVideoProtectSizeMb, 53, 11:0, 11:0) \ + HANDLER(McSecCarveoutBom, 53, 31:20, 23:12) \ + HANDLER(McVideoProtectVprOverride, 53, 23:23, 24:24) \ + HANDLER(McVideoProtectVprOverride, 53, 26:26, 25:25) \ + HANDLER(McVideoProtectVprOverride, 53, 31:29, 28:26) \ + HANDLER(McVideoProtectVprOverride1, 53, 1:0, 30:29) \ + HANDLER(McVideoProtectVprOverride1, 53, 4:4, 31:31) \ + HANDLER(McSecCarveoutSizeMb, 54, 11:0, 11:0) \ + HANDLER(McMtsCarveoutBom, 54, 31:20, 23:12) \ + HANDLER(McVideoProtectVprOverride1, 54, 12:5, 31:24) \ + HANDLER(McMtsCarveoutSizeMb, 55, 11:0, 11:0) \ + HANDLER(McGeneralizedCarveout4Size128kb, 55, 11:0, 23:12) \ + HANDLER(McVideoProtectVprOverride1, 55, 16:13, 27:24) \ + HANDLER(McVideoProtectVprOverride1, 55, 26:25, 29:28) \ + HANDLER(McGeneralizedCarveout2Cfg0, 55, 1:0, 31:30) \ + HANDLER(McGeneralizedCarveout3Size128kb, 56, 11:0, 11:0) \ + HANDLER(McGeneralizedCarveout2Size128kb, 56, 11:0, 23:12) \ + HANDLER(McGeneralizedCarveout2Cfg0, 56, 2:2, 24:24) \ + HANDLER(McGeneralizedCarveout2Cfg0, 56, 26:22, 29:25) \ + HANDLER(McGeneralizedCarveout1Cfg0, 56, 1:0, 31:30) \ + HANDLER(McGeneralizedCarveout1Size128kb, 57, 11:0, 11:0) \ + HANDLER(McGeneralizedCarveout5Size128kb, 57, 11:0, 23:12) \ + HANDLER(McGeneralizedCarveout1Cfg0, 57, 2:2, 24:24) \ + HANDLER(McGeneralizedCarveout1Cfg0, 57, 26:22, 29:25) \ + HANDLER(McGeneralizedCarveout3Cfg0, 57, 1:0, 31:30) \ + HANDLER(McGeneralizedCarveout3Cfg0, 58, 2:2, 0:0) \ + HANDLER(McGeneralizedCarveout3Cfg0, 58, 26:22, 5:1) \ + HANDLER(McGeneralizedCarveout1Access0, 59, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout1Access1, 60, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout1Access2, 61, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout1Access3, 62, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout1Access4, 63, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout2Access0, 64, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout2Access1, 65, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout2Access2, 66, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout2Access3, 67, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout2Access4, 68, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout3Access0, 69, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout3Access1, 70, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout3Access2, 71, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout3Access3, 72, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout3Access4, 73, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout4Access0, 74, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout4Access1, 75, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout4Access2, 76, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout4Access3, 77, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout4Access4, 78, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout5Access0, 79, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout5Access1, 80, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout5Access2, 81, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout5Access3, 82, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout1ForceInternalAccess0, 84, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout1ForceInternalAccess1, 85, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout1ForceInternalAccess2, 86, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout1ForceInternalAccess3, 87, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout1ForceInternalAccess4, 88, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout2ForceInternalAccess0, 89, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout2ForceInternalAccess1, 90, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout2ForceInternalAccess2, 91, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout2ForceInternalAccess3, 92, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout2ForceInternalAccess4, 93, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout3ForceInternalAccess0, 94, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout3ForceInternalAccess1, 95, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout3ForceInternalAccess2, 96, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout3ForceInternalAccess3, 97, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout3ForceInternalAccess4, 98, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout4ForceInternalAccess0, 99, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout4ForceInternalAccess1, 100, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout4ForceInternalAccess2, 101, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout4ForceInternalAccess3, 102, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout4ForceInternalAccess4, 103, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout5ForceInternalAccess0, 104, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout5ForceInternalAccess1, 105, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout5ForceInternalAccess2, 106, 31:0, 31:0) \ + HANDLER(McGeneralizedCarveout5ForceInternalAccess3, 107, 31:0, 31:0) diff --git a/fusee_cpp/program/update_sdram_params.py b/fusee_cpp/program/update_sdram_params.py index d7d07c919..48a230e65 100644 --- a/fusee_cpp/program/update_sdram_params.py +++ b/fusee_cpp/program/update_sdram_params.py @@ -17,6 +17,12 @@ def write_file(fn, data): with open(fn, 'wb') as f: f.write(data) +def get_param_size(soc): + return { + 'erista' : 0x768, + 'mariko' : 0x838, + }[soc] + def main(argc, argv): if argc != 1: print('Usage: %s' % argv[0]) @@ -25,14 +31,30 @@ def main(argc, argv): 'erista' : {}, 'mariko' : {}, } + compressed_params = { + 'erista' : {}, + 'mariko' : {}, + } for fn in os.listdir('sdram_params/bin'): assert fn.startswith('sdram_params_') and fn.endswith('.bin') (_sdram, _params, soc, _id_bin) = tuple(fn.split('_')) param_id = int(_id_bin[:-len('.bin')]) assert soc in params.keys() - compressed = lz4_compress(read_file(os.path.join('sdram_params/bin', fn))) - write_file(os.path.join('sdram_params/lz', fn.replace('.bin', '.lz4')), compressed) - params[soc][param_id] = compressed + uncompressed = read_file(os.path.join('sdram_params/bin', fn)) + assert len(uncompressed) == get_param_size(soc) + params[soc][param_id] = uncompressed + for soc in ('erista', 'mariko'): + empty_params = '\x00' * get_param_size(soc) + for param_id in xrange(0, max(params[soc].keys()) + 4, 2): + param_id_l = param_id + param_id_h = param_id + 1 + if param_id_l in params[soc] or param_id_h in params[soc]: + print soc, param_id_l, param_id_h + param_l = params[soc][param_id_l] if param_id_l in params[soc] else empty_params + param_h = params[soc][param_id_h] if param_id_h in params[soc] else empty_params + compressed = lz4_compress(param_l + param_h) + compressed_params[soc][(param_id_l, param_id_h)] = compressed + write_file(os.path.join('sdram_params/lz', 'sdram_params_%s_%d_%d.lz4' % (soc, param_id_l, param_id_h)), compressed) with open('source/fusee_sdram_params.inc', 'w') as f: f.write('%s\n' % "/*") f.write('%s\n' % " * Copyright (c) 2018-2020 Atmosph\xc3re-NX") @@ -51,14 +73,20 @@ def main(argc, argv): f.write('%s\n' % " */") f.write('\n') for soc in ('Erista', 'Mariko'): - for param_id in sorted(params[soc.lower()].keys()): - compressed = params[soc.lower()][param_id] - f.write('%s\n' % ('constexpr inline const u8 SdramParams%s%d[0x%03X] = {' % (soc, param_id, len(compressed)))) + for (param_id_l, param_id_h) in sorted(compressed_params[soc.lower()].keys(), key=lambda (l, h): l): + compressed = compressed_params[soc.lower()][(param_id_l, param_id_h)] + f.write('%s\n' % ('constexpr inline const u8 SdramParams%s%d_%d[0x%03X] = {' % (soc, param_id_l, param_id_h, len(compressed)))) while compressed: block = compressed[:0x10] compressed = compressed[0x10:] f.write(' %s\n' % (', '.join('0x%02X' % ord(c) for c in block) + ',')) f.write('};\n\n') + f.write('%s\n' % ('constexpr inline const u8 * const SdramParams%s%d = SdramParams%s%d_%d;' % (soc, param_id_l, soc, param_id_l, param_id_h))) + f.write('%s\n' % ('constexpr inline const size_t SdramParamsSize%s%d = sizeof(SdramParams%s%d_%d);' % (soc, param_id_l, soc, param_id_l, param_id_h))) + f.write('\n') + f.write('%s\n' % ('constexpr inline const u8 * const SdramParams%s%d = SdramParams%s%d_%d;' % (soc, param_id_h, soc, param_id_l, param_id_h))) + f.write('%s\n' % ('constexpr inline const size_t SdramParamsSize%s%d = sizeof(SdramParams%s%d_%d);' % (soc, param_id_h, soc, param_id_l, param_id_h))) + f.write('\n') return 0 if __name__ == '__main__': diff --git a/libraries/libexosphere/source/libc/libgcc_thumb_case.arch.arm.s b/libraries/libexosphere/source/libc/libgcc_thumb_case.arch.arm.s index ffd068f4a..0c5d81a5f 100644 --- a/libraries/libexosphere/source/libc/libgcc_thumb_case.arch.arm.s +++ b/libraries/libexosphere/source/libc/libgcc_thumb_case.arch.arm.s @@ -72,3 +72,22 @@ __gnu_thumb1_case_si: bx lr .type __gnu_thumb1_case_si, %function .size __gnu_thumb1_case_si, .-__gnu_thumb1_case_si + +.section .text.__gnu_thumb1_case_shi, "ax", %progbits +.globl __gnu_thumb1_case_shi +.align 0 +.thumb_func +.syntax unified +__gnu_thumb1_case_shi: + push {r0, r1} + mov r1, lr + lsrs r1, r1, #1 + lsls r0, r0, #1 + lsls r1, r1, #1 + ldrsh r1, [r1, r0] + lsls r1, r1, #1 + add lr, lr, r1 + pop {r0, r1} + bx lr +.type __gnu_thumb1_case_shi, %function +.size __gnu_thumb1_case_shi, .-__gnu_thumb1_case_shi diff --git a/libraries/libvapours/include/vapours/tegra/tegra_pmc.hpp b/libraries/libvapours/include/vapours/tegra/tegra_pmc.hpp index 6154db4fb..0ded774e2 100644 --- a/libraries/libvapours/include/vapours/tegra/tegra_pmc.hpp +++ b/libraries/libvapours/include/vapours/tegra/tegra_pmc.hpp @@ -36,23 +36,11 @@ #define APBDEV_PMC_BLINK_TIMER (0x040) #define APBDEV_PMC_NO_IOPOWER (0x044) #define APBDEV_PMC_PWR_DET (0x048) -#define APBDEV_PMC_SCRATCH0 (0x050) -#define APBDEV_PMC_SCRATCH1 (0x054) -#define APBDEV_PMC_SCRATCH4 (0x060) -#define APBDEV_PMC_SCRATCH12 (0x080) -#define APBDEV_PMC_SCRATCH13 (0x084) -#define APBDEV_PMC_SCRATCH18 (0x098) -#define APBDEV_PMC_SCRATCH20 (0x0A0) #define APBDEV_PMC_AUTO_WAKE_LVL_MASK (0x0DC) #define APBDEV_PMC_WAKE_DELAY (0x0E0) #define APBDEV_PMC_PWR_DET_VAL (0x0E4) #define APBDEV_PMC_DDR_PWR (0x0E8) #define APBDEV_PMC_CRYPTO_OP (0x0F4) -#define APBDEV_PMC_SCRATCH31 (0x118) -#define APBDEV_PMC_SCRATCH32 (0x11C) -#define APBDEV_PMC_SCRATCH33 (0x120) -#define APBDEV_PMC_SCRATCH39 (0x138) -#define APBDEV_PMC_SCRATCH40 (0x13C) #define APBDEV_PMC_WAKE2_MASK (0x160) #define APBDEV_PMC_WAKE2_LVL (0x164) #define APBDEV_PMC_WAKE2_STATUS (0x168) @@ -67,9 +55,6 @@ #define APBDEV_PMC_SEL_DPD_TIM (0x1C8) #define APBDEV_PMC_VDDP_SEL (0x1CC) #define APBDEV_PMC_DDR_CFG (0x1D0) -#define APBDEV_PMC_SCRATCH45 (0x234) -#define APBDEV_PMC_SCRATCH46 (0x238) -#define APBDEV_PMC_SCRATCH49 (0x244) #define APBDEV_PMC_TSC_MULT (0x2B4) #define APBDEV_PMC_STICKY_BITS (0x2C0) #define APBDEV_PMC_WEAK_BIAS (0x2C8) @@ -84,6 +69,7 @@ #define APBDEV_PMC_SET_SW_CLAMP (0x47C) #define APBDEV_PMC_WAKE_DEBOUNCE_EN (0x4D8) #define APBDEV_PMC_DDR_CNTRL (0x4E4) + #define APBDEV_PMC_SEC_DISABLE (0x004) #define APBDEV_PMC_SEC_DISABLE2 (0x2C4) #define APBDEV_PMC_SEC_DISABLE3 (0x2D8) @@ -92,48 +78,455 @@ #define APBDEV_PMC_SEC_DISABLE6 (0x5B8) #define APBDEV_PMC_SEC_DISABLE7 (0x5BC) #define APBDEV_PMC_SEC_DISABLE8 (0x5C0) -#define APBDEV_PMC_SCRATCH43 (0x22C) -#define APBDEV_PMC_SCRATCH188 (0x810) -#define APBDEV_PMC_SCRATCH190 (0x818) -#define APBDEV_PMC_SCRATCH200 (0x840) -#define APBDEV_PMC_SEC_DISABLE3 (0x2D8) -#define APBDEV_PMC_SECURE_SCRATCH4 (0x0C0) -#define APBDEV_PMC_SECURE_SCRATCH5 (0x0C4) -#define APBDEV_PMC_SECURE_SCRATCH6 (0x224) -#define APBDEV_PMC_SECURE_SCRATCH7 (0x228) -#define APBDEV_PMC_SECURE_SCRATCH16 (0x320) -#define APBDEV_PMC_SECURE_SCRATCH21 (0x334) -#define APBDEV_PMC_SECURE_SCRATCH24 (0x340) -#define APBDEV_PMC_SECURE_SCRATCH25 (0x344) -#define APBDEV_PMC_SECURE_SCRATCH26 (0x348) -#define APBDEV_PMC_SECURE_SCRATCH27 (0x34C) -#define APBDEV_PMC_SECURE_SCRATCH32 (0x360) -#define APBDEV_PMC_SECURE_SCRATCH34 (0x368) -#define APBDEV_PMC_SECURE_SCRATCH35 (0x36C) -#define APBDEV_PMC_SECURE_SCRATCH39 (0x37C) -#define APBDEV_PMC_SECURE_SCRATCH51 (0x3AC) -#define APBDEV_PMC_SECURE_SCRATCH55 (0x3BC) -#define APBDEV_PMC_SECURE_SCRATCH74 (0x408) -#define APBDEV_PMC_SECURE_SCRATCH75 (0x40C) -#define APBDEV_PMC_SECURE_SCRATCH76 (0x410) -#define APBDEV_PMC_SECURE_SCRATCH77 (0x414) -#define APBDEV_PMC_SECURE_SCRATCH78 (0x418) -#define APBDEV_PMC_SECURE_SCRATCH99 (0xAE4) -#define APBDEV_PMC_SECURE_SCRATCH100 (0xAE8) -#define APBDEV_PMC_SECURE_SCRATCH101 (0xAEC) -#define APBDEV_PMC_SECURE_SCRATCH102 (0xAF0) -#define APBDEV_PMC_SECURE_SCRATCH103 (0xAF4) -#define APBDEV_PMC_SECURE_SCRATCH112 (0xB18) -#define APBDEV_PMC_SECURE_SCRATCH113 (0xB1C) -#define APBDEV_PMC_SECURE_SCRATCH114 (0xB20) -#define APBDEV_PMC_SECURE_SCRATCH115 (0xB24) -#define APBDEV_PMC_SECURE_SCRATCH119 (0xB34) /* Mariko. */ #define APBDEV_PMC_TZRAM_PWR_CNTRL (0xBE8) #define APBDEV_PMC_TZRAM_SEC_DISABLE (0xBEC) #define APBDEV_PMC_TZRAM_NON_SEC_DISABLE (0xBF0) +#define APBDEV_PMC_SCRATCH0 (0x050) +#define APBDEV_PMC_SCRATCH1 (0x054) +#define APBDEV_PMC_SCRATCH2 (0x058) +#define APBDEV_PMC_SCRATCH3 (0x05C) +#define APBDEV_PMC_SCRATCH4 (0x060) +#define APBDEV_PMC_SCRATCH5 (0x064) +#define APBDEV_PMC_SCRATCH6 (0x068) +#define APBDEV_PMC_SCRATCH7 (0x06C) +#define APBDEV_PMC_SCRATCH8 (0x070) +#define APBDEV_PMC_SCRATCH9 (0x074) +#define APBDEV_PMC_SCRATCH10 (0x078) +#define APBDEV_PMC_SCRATCH11 (0x07C) +#define APBDEV_PMC_SCRATCH12 (0x080) +#define APBDEV_PMC_SCRATCH13 (0x084) +#define APBDEV_PMC_SCRATCH14 (0x088) +#define APBDEV_PMC_SCRATCH15 (0x08C) +#define APBDEV_PMC_SCRATCH16 (0x090) +#define APBDEV_PMC_SCRATCH17 (0x094) +#define APBDEV_PMC_SCRATCH18 (0x098) +#define APBDEV_PMC_SCRATCH19 (0x09C) +#define APBDEV_PMC_SCRATCH20 (0x0A0) +#define APBDEV_PMC_SCRATCH21 (0x0A4) +#define APBDEV_PMC_SCRATCH22 (0x0A8) +#define APBDEV_PMC_SCRATCH23 (0x0AC) +#define APBDEV_PMC_SCRATCH24 (0x0FC) +#define APBDEV_PMC_SCRATCH25 (0x100) +#define APBDEV_PMC_SCRATCH26 (0x104) +#define APBDEV_PMC_SCRATCH27 (0x108) +#define APBDEV_PMC_SCRATCH28 (0x10C) +#define APBDEV_PMC_SCRATCH29 (0x110) +#define APBDEV_PMC_SCRATCH30 (0x114) +#define APBDEV_PMC_SCRATCH31 (0x118) +#define APBDEV_PMC_SCRATCH32 (0x11C) +#define APBDEV_PMC_SCRATCH33 (0x120) +#define APBDEV_PMC_SCRATCH34 (0x124) +#define APBDEV_PMC_SCRATCH35 (0x128) +#define APBDEV_PMC_SCRATCH36 (0x12C) +#define APBDEV_PMC_SCRATCH37 (0x130) +#define APBDEV_PMC_SCRATCH38 (0x134) +#define APBDEV_PMC_SCRATCH39 (0x138) +#define APBDEV_PMC_SCRATCH40 (0x13C) +#define APBDEV_PMC_SCRATCH41 (0x140) +#define APBDEV_PMC_SCRATCH42 (0x144) +#define APBDEV_PMC_SCRATCH43 (0x22C) +#define APBDEV_PMC_SCRATCH44 (0x230) +#define APBDEV_PMC_SCRATCH45 (0x234) +#define APBDEV_PMC_SCRATCH46 (0x238) +#define APBDEV_PMC_SCRATCH47 (0x23C) +#define APBDEV_PMC_SCRATCH48 (0x240) +#define APBDEV_PMC_SCRATCH49 (0x244) +#define APBDEV_PMC_SCRATCH50 (0x248) +#define APBDEV_PMC_SCRATCH51 (0x24C) +#define APBDEV_PMC_SCRATCH52 (0x250) +#define APBDEV_PMC_SCRATCH53 (0x254) +#define APBDEV_PMC_SCRATCH54 (0x258) +#define APBDEV_PMC_SCRATCH55 (0x25C) +#define APBDEV_PMC_SCRATCH56 (0x600) +#define APBDEV_PMC_SCRATCH57 (0x604) +#define APBDEV_PMC_SCRATCH58 (0x608) +#define APBDEV_PMC_SCRATCH59 (0x60C) +#define APBDEV_PMC_SCRATCH60 (0x610) +#define APBDEV_PMC_SCRATCH61 (0x614) +#define APBDEV_PMC_SCRATCH62 (0x618) +#define APBDEV_PMC_SCRATCH63 (0x61C) +#define APBDEV_PMC_SCRATCH64 (0x620) +#define APBDEV_PMC_SCRATCH65 (0x624) +#define APBDEV_PMC_SCRATCH66 (0x628) +#define APBDEV_PMC_SCRATCH67 (0x62C) +#define APBDEV_PMC_SCRATCH68 (0x630) +#define APBDEV_PMC_SCRATCH69 (0x634) +#define APBDEV_PMC_SCRATCH70 (0x638) +#define APBDEV_PMC_SCRATCH71 (0x63C) +#define APBDEV_PMC_SCRATCH72 (0x640) +#define APBDEV_PMC_SCRATCH73 (0x644) +#define APBDEV_PMC_SCRATCH74 (0x648) +#define APBDEV_PMC_SCRATCH75 (0x64C) +#define APBDEV_PMC_SCRATCH76 (0x650) +#define APBDEV_PMC_SCRATCH77 (0x654) +#define APBDEV_PMC_SCRATCH78 (0x658) +#define APBDEV_PMC_SCRATCH79 (0x65C) +#define APBDEV_PMC_SCRATCH80 (0x660) +#define APBDEV_PMC_SCRATCH81 (0x664) +#define APBDEV_PMC_SCRATCH82 (0x668) +#define APBDEV_PMC_SCRATCH83 (0x66C) +#define APBDEV_PMC_SCRATCH84 (0x670) +#define APBDEV_PMC_SCRATCH85 (0x674) +#define APBDEV_PMC_SCRATCH86 (0x678) +#define APBDEV_PMC_SCRATCH87 (0x67C) +#define APBDEV_PMC_SCRATCH88 (0x680) +#define APBDEV_PMC_SCRATCH89 (0x684) +#define APBDEV_PMC_SCRATCH90 (0x688) +#define APBDEV_PMC_SCRATCH91 (0x68C) +#define APBDEV_PMC_SCRATCH92 (0x690) +#define APBDEV_PMC_SCRATCH93 (0x694) +#define APBDEV_PMC_SCRATCH94 (0x698) +#define APBDEV_PMC_SCRATCH95 (0x69C) +#define APBDEV_PMC_SCRATCH96 (0x6A0) +#define APBDEV_PMC_SCRATCH97 (0x6A4) +#define APBDEV_PMC_SCRATCH98 (0x6A8) +#define APBDEV_PMC_SCRATCH99 (0x6AC) +#define APBDEV_PMC_SCRATCH100 (0x6B0) +#define APBDEV_PMC_SCRATCH101 (0x6B4) +#define APBDEV_PMC_SCRATCH102 (0x6B8) +#define APBDEV_PMC_SCRATCH103 (0x6BC) +#define APBDEV_PMC_SCRATCH104 (0x6C0) +#define APBDEV_PMC_SCRATCH105 (0x6C4) +#define APBDEV_PMC_SCRATCH106 (0x6C8) +#define APBDEV_PMC_SCRATCH107 (0x6CC) +#define APBDEV_PMC_SCRATCH108 (0x6D0) +#define APBDEV_PMC_SCRATCH109 (0x6D4) +#define APBDEV_PMC_SCRATCH110 (0x6D8) +#define APBDEV_PMC_SCRATCH111 (0x6DC) +#define APBDEV_PMC_SCRATCH112 (0x6E0) +#define APBDEV_PMC_SCRATCH113 (0x6E4) +#define APBDEV_PMC_SCRATCH114 (0x6E8) +#define APBDEV_PMC_SCRATCH115 (0x6EC) +#define APBDEV_PMC_SCRATCH116 (0x6F0) +#define APBDEV_PMC_SCRATCH117 (0x6F4) +#define APBDEV_PMC_SCRATCH118 (0x6F8) +#define APBDEV_PMC_SCRATCH119 (0x6FC) +#define APBDEV_PMC_SCRATCH120 (0x700) +#define APBDEV_PMC_SCRATCH121 (0x704) +#define APBDEV_PMC_SCRATCH122 (0x708) +#define APBDEV_PMC_SCRATCH123 (0x70C) +#define APBDEV_PMC_SCRATCH124 (0x710) +#define APBDEV_PMC_SCRATCH125 (0x714) +#define APBDEV_PMC_SCRATCH126 (0x718) +#define APBDEV_PMC_SCRATCH127 (0x71C) +#define APBDEV_PMC_SCRATCH128 (0x720) +#define APBDEV_PMC_SCRATCH129 (0x724) +#define APBDEV_PMC_SCRATCH130 (0x728) +#define APBDEV_PMC_SCRATCH131 (0x72C) +#define APBDEV_PMC_SCRATCH132 (0x730) +#define APBDEV_PMC_SCRATCH133 (0x734) +#define APBDEV_PMC_SCRATCH134 (0x738) +#define APBDEV_PMC_SCRATCH135 (0x73C) +#define APBDEV_PMC_SCRATCH136 (0x740) +#define APBDEV_PMC_SCRATCH137 (0x744) +#define APBDEV_PMC_SCRATCH138 (0x748) +#define APBDEV_PMC_SCRATCH139 (0x74C) +#define APBDEV_PMC_SCRATCH140 (0x750) +#define APBDEV_PMC_SCRATCH141 (0x754) +#define APBDEV_PMC_SCRATCH142 (0x758) +#define APBDEV_PMC_SCRATCH143 (0x75C) +#define APBDEV_PMC_SCRATCH144 (0x760) +#define APBDEV_PMC_SCRATCH145 (0x764) +#define APBDEV_PMC_SCRATCH146 (0x768) +#define APBDEV_PMC_SCRATCH147 (0x76C) +#define APBDEV_PMC_SCRATCH148 (0x770) +#define APBDEV_PMC_SCRATCH149 (0x774) +#define APBDEV_PMC_SCRATCH150 (0x778) +#define APBDEV_PMC_SCRATCH151 (0x77C) +#define APBDEV_PMC_SCRATCH152 (0x780) +#define APBDEV_PMC_SCRATCH153 (0x784) +#define APBDEV_PMC_SCRATCH154 (0x788) +#define APBDEV_PMC_SCRATCH155 (0x78C) +#define APBDEV_PMC_SCRATCH156 (0x790) +#define APBDEV_PMC_SCRATCH157 (0x794) +#define APBDEV_PMC_SCRATCH158 (0x798) +#define APBDEV_PMC_SCRATCH159 (0x79C) +#define APBDEV_PMC_SCRATCH160 (0x7A0) +#define APBDEV_PMC_SCRATCH161 (0x7A4) +#define APBDEV_PMC_SCRATCH162 (0x7A8) +#define APBDEV_PMC_SCRATCH163 (0x7AC) +#define APBDEV_PMC_SCRATCH164 (0x7B0) +#define APBDEV_PMC_SCRATCH165 (0x7B4) +#define APBDEV_PMC_SCRATCH166 (0x7B8) +#define APBDEV_PMC_SCRATCH167 (0x7BC) +#define APBDEV_PMC_SCRATCH168 (0x7C0) +#define APBDEV_PMC_SCRATCH169 (0x7C4) +#define APBDEV_PMC_SCRATCH170 (0x7C8) +#define APBDEV_PMC_SCRATCH171 (0x7CC) +#define APBDEV_PMC_SCRATCH172 (0x7D0) +#define APBDEV_PMC_SCRATCH173 (0x7D4) +#define APBDEV_PMC_SCRATCH174 (0x7D8) +#define APBDEV_PMC_SCRATCH175 (0x7DC) +#define APBDEV_PMC_SCRATCH176 (0x7E0) +#define APBDEV_PMC_SCRATCH177 (0x7E4) +#define APBDEV_PMC_SCRATCH178 (0x7E8) +#define APBDEV_PMC_SCRATCH179 (0x7EC) +#define APBDEV_PMC_SCRATCH180 (0x7F0) +#define APBDEV_PMC_SCRATCH181 (0x7F4) +#define APBDEV_PMC_SCRATCH182 (0x7F8) +#define APBDEV_PMC_SCRATCH183 (0x7FC) +#define APBDEV_PMC_SCRATCH184 (0x800) +#define APBDEV_PMC_SCRATCH185 (0x804) +#define APBDEV_PMC_SCRATCH186 (0x808) +#define APBDEV_PMC_SCRATCH187 (0x80C) +#define APBDEV_PMC_SCRATCH188 (0x810) +#define APBDEV_PMC_SCRATCH189 (0x814) +#define APBDEV_PMC_SCRATCH190 (0x818) +#define APBDEV_PMC_SCRATCH191 (0x81C) +#define APBDEV_PMC_SCRATCH192 (0x820) +#define APBDEV_PMC_SCRATCH193 (0x824) +#define APBDEV_PMC_SCRATCH194 (0x828) +#define APBDEV_PMC_SCRATCH195 (0x82C) +#define APBDEV_PMC_SCRATCH196 (0x830) +#define APBDEV_PMC_SCRATCH197 (0x834) +#define APBDEV_PMC_SCRATCH198 (0x838) +#define APBDEV_PMC_SCRATCH199 (0x83C) +#define APBDEV_PMC_SCRATCH200 (0x840) +#define APBDEV_PMC_SCRATCH201 (0x844) +#define APBDEV_PMC_SCRATCH202 (0x848) +#define APBDEV_PMC_SCRATCH203 (0x84C) +#define APBDEV_PMC_SCRATCH204 (0x850) +#define APBDEV_PMC_SCRATCH205 (0x854) +#define APBDEV_PMC_SCRATCH206 (0x858) +#define APBDEV_PMC_SCRATCH207 (0x85C) +#define APBDEV_PMC_SCRATCH208 (0x860) +#define APBDEV_PMC_SCRATCH209 (0x864) +#define APBDEV_PMC_SCRATCH210 (0x868) +#define APBDEV_PMC_SCRATCH211 (0x86C) +#define APBDEV_PMC_SCRATCH212 (0x870) +#define APBDEV_PMC_SCRATCH213 (0x874) +#define APBDEV_PMC_SCRATCH214 (0x878) +#define APBDEV_PMC_SCRATCH215 (0x87C) +#define APBDEV_PMC_SCRATCH216 (0x880) +#define APBDEV_PMC_SCRATCH217 (0x884) +#define APBDEV_PMC_SCRATCH218 (0x888) +#define APBDEV_PMC_SCRATCH219 (0x88C) +#define APBDEV_PMC_SCRATCH220 (0x890) +#define APBDEV_PMC_SCRATCH221 (0x894) +#define APBDEV_PMC_SCRATCH222 (0x898) +#define APBDEV_PMC_SCRATCH223 (0x89C) +#define APBDEV_PMC_SCRATCH224 (0x8A0) +#define APBDEV_PMC_SCRATCH225 (0x8A4) +#define APBDEV_PMC_SCRATCH226 (0x8A8) +#define APBDEV_PMC_SCRATCH227 (0x8AC) +#define APBDEV_PMC_SCRATCH228 (0x8B0) +#define APBDEV_PMC_SCRATCH229 (0x8B4) +#define APBDEV_PMC_SCRATCH230 (0x8B8) +#define APBDEV_PMC_SCRATCH231 (0x8BC) +#define APBDEV_PMC_SCRATCH232 (0x8C0) +#define APBDEV_PMC_SCRATCH233 (0x8C4) +#define APBDEV_PMC_SCRATCH234 (0x8C8) +#define APBDEV_PMC_SCRATCH235 (0x8CC) +#define APBDEV_PMC_SCRATCH236 (0x8D0) +#define APBDEV_PMC_SCRATCH237 (0x8D4) +#define APBDEV_PMC_SCRATCH238 (0x8D8) +#define APBDEV_PMC_SCRATCH239 (0x8DC) +#define APBDEV_PMC_SCRATCH240 (0x8E0) +#define APBDEV_PMC_SCRATCH241 (0x8E4) +#define APBDEV_PMC_SCRATCH242 (0x8E8) +#define APBDEV_PMC_SCRATCH243 (0x8EC) +#define APBDEV_PMC_SCRATCH244 (0x8F0) +#define APBDEV_PMC_SCRATCH245 (0x8F4) +#define APBDEV_PMC_SCRATCH246 (0x8F8) +#define APBDEV_PMC_SCRATCH247 (0x8FC) +#define APBDEV_PMC_SCRATCH248 (0x900) +#define APBDEV_PMC_SCRATCH249 (0x904) +#define APBDEV_PMC_SCRATCH250 (0x908) +#define APBDEV_PMC_SCRATCH251 (0x90C) +#define APBDEV_PMC_SCRATCH252 (0x910) +#define APBDEV_PMC_SCRATCH253 (0x914) +#define APBDEV_PMC_SCRATCH254 (0x918) +#define APBDEV_PMC_SCRATCH255 (0x91C) +#define APBDEV_PMC_SCRATCH256 (0x920) +#define APBDEV_PMC_SCRATCH257 (0x924) +#define APBDEV_PMC_SCRATCH258 (0x928) +#define APBDEV_PMC_SCRATCH259 (0x92C) +#define APBDEV_PMC_SCRATCH260 (0x930) +#define APBDEV_PMC_SCRATCH261 (0x934) +#define APBDEV_PMC_SCRATCH262 (0x938) +#define APBDEV_PMC_SCRATCH263 (0x93C) +#define APBDEV_PMC_SCRATCH264 (0x940) +#define APBDEV_PMC_SCRATCH265 (0x944) +#define APBDEV_PMC_SCRATCH266 (0x948) +#define APBDEV_PMC_SCRATCH267 (0x94C) +#define APBDEV_PMC_SCRATCH268 (0x950) +#define APBDEV_PMC_SCRATCH269 (0x954) +#define APBDEV_PMC_SCRATCH270 (0x958) +#define APBDEV_PMC_SCRATCH271 (0x95C) +#define APBDEV_PMC_SCRATCH272 (0x960) +#define APBDEV_PMC_SCRATCH273 (0x964) +#define APBDEV_PMC_SCRATCH274 (0x968) +#define APBDEV_PMC_SCRATCH275 (0x96C) +#define APBDEV_PMC_SCRATCH276 (0x970) +#define APBDEV_PMC_SCRATCH277 (0x974) +#define APBDEV_PMC_SCRATCH278 (0x978) +#define APBDEV_PMC_SCRATCH279 (0x97C) +#define APBDEV_PMC_SCRATCH280 (0x980) +#define APBDEV_PMC_SCRATCH281 (0x984) +#define APBDEV_PMC_SCRATCH282 (0x988) +#define APBDEV_PMC_SCRATCH283 (0x98C) +#define APBDEV_PMC_SCRATCH284 (0x990) +#define APBDEV_PMC_SCRATCH285 (0x994) +#define APBDEV_PMC_SCRATCH286 (0x998) +#define APBDEV_PMC_SCRATCH287 (0x99C) +#define APBDEV_PMC_SCRATCH288 (0x9A0) +#define APBDEV_PMC_SCRATCH289 (0x9A4) +#define APBDEV_PMC_SCRATCH290 (0x9A8) +#define APBDEV_PMC_SCRATCH291 (0x9AC) +#define APBDEV_PMC_SCRATCH292 (0x9B0) +#define APBDEV_PMC_SCRATCH293 (0x9B4) +#define APBDEV_PMC_SCRATCH294 (0x9B8) +#define APBDEV_PMC_SCRATCH295 (0x9BC) +#define APBDEV_PMC_SCRATCH296 (0x9C0) +#define APBDEV_PMC_SCRATCH297 (0x9C4) +#define APBDEV_PMC_SCRATCH298 (0x9C8) +#define APBDEV_PMC_SCRATCH299 (0x9CC) + +#define APBDEV_PMC_SECURE_SCRATCH0 (0x0B0) +#define APBDEV_PMC_SECURE_SCRATCH1 (0x0B4) +#define APBDEV_PMC_SECURE_SCRATCH2 (0x0B8) +#define APBDEV_PMC_SECURE_SCRATCH3 (0x0BC) +#define APBDEV_PMC_SECURE_SCRATCH4 (0x0C0) +#define APBDEV_PMC_SECURE_SCRATCH5 (0x0C4) +#define APBDEV_PMC_SECURE_SCRATCH6 (0x224) +#define APBDEV_PMC_SECURE_SCRATCH7 (0x228) +#define APBDEV_PMC_SECURE_SCRATCH8 (0x300) +#define APBDEV_PMC_SECURE_SCRATCH9 (0x304) +#define APBDEV_PMC_SECURE_SCRATCH10 (0x308) +#define APBDEV_PMC_SECURE_SCRATCH11 (0x30C) +#define APBDEV_PMC_SECURE_SCRATCH12 (0x310) +#define APBDEV_PMC_SECURE_SCRATCH13 (0x314) +#define APBDEV_PMC_SECURE_SCRATCH14 (0x318) +#define APBDEV_PMC_SECURE_SCRATCH15 (0x31C) +#define APBDEV_PMC_SECURE_SCRATCH16 (0x320) +#define APBDEV_PMC_SECURE_SCRATCH17 (0x324) +#define APBDEV_PMC_SECURE_SCRATCH18 (0x328) +#define APBDEV_PMC_SECURE_SCRATCH19 (0x32C) +#define APBDEV_PMC_SECURE_SCRATCH20 (0x330) +#define APBDEV_PMC_SECURE_SCRATCH21 (0x334) +#define APBDEV_PMC_SECURE_SCRATCH22 (0x338) +#define APBDEV_PMC_SECURE_SCRATCH23 (0x33C) +#define APBDEV_PMC_SECURE_SCRATCH24 (0x340) +#define APBDEV_PMC_SECURE_SCRATCH25 (0x344) +#define APBDEV_PMC_SECURE_SCRATCH26 (0x348) +#define APBDEV_PMC_SECURE_SCRATCH27 (0x34C) +#define APBDEV_PMC_SECURE_SCRATCH28 (0x350) +#define APBDEV_PMC_SECURE_SCRATCH29 (0x354) +#define APBDEV_PMC_SECURE_SCRATCH30 (0x358) +#define APBDEV_PMC_SECURE_SCRATCH31 (0x35C) +#define APBDEV_PMC_SECURE_SCRATCH32 (0x360) +#define APBDEV_PMC_SECURE_SCRATCH33 (0x364) +#define APBDEV_PMC_SECURE_SCRATCH34 (0x368) +#define APBDEV_PMC_SECURE_SCRATCH35 (0x36C) +#define APBDEV_PMC_SECURE_SCRATCH36 (0x370) +#define APBDEV_PMC_SECURE_SCRATCH37 (0x374) +#define APBDEV_PMC_SECURE_SCRATCH38 (0x378) +#define APBDEV_PMC_SECURE_SCRATCH39 (0x37C) +#define APBDEV_PMC_SECURE_SCRATCH40 (0x380) +#define APBDEV_PMC_SECURE_SCRATCH41 (0x384) +#define APBDEV_PMC_SECURE_SCRATCH42 (0x388) +#define APBDEV_PMC_SECURE_SCRATCH43 (0x38C) +#define APBDEV_PMC_SECURE_SCRATCH44 (0x390) +#define APBDEV_PMC_SECURE_SCRATCH45 (0x394) +#define APBDEV_PMC_SECURE_SCRATCH46 (0x398) +#define APBDEV_PMC_SECURE_SCRATCH47 (0x39C) +#define APBDEV_PMC_SECURE_SCRATCH48 (0x3A0) +#define APBDEV_PMC_SECURE_SCRATCH49 (0x3A4) +#define APBDEV_PMC_SECURE_SCRATCH50 (0x3A8) +#define APBDEV_PMC_SECURE_SCRATCH51 (0x3AC) +#define APBDEV_PMC_SECURE_SCRATCH52 (0x3B0) +#define APBDEV_PMC_SECURE_SCRATCH53 (0x3B4) +#define APBDEV_PMC_SECURE_SCRATCH54 (0x3B8) +#define APBDEV_PMC_SECURE_SCRATCH55 (0x3BC) +#define APBDEV_PMC_SECURE_SCRATCH56 (0x3C0) +#define APBDEV_PMC_SECURE_SCRATCH57 (0x3C4) +#define APBDEV_PMC_SECURE_SCRATCH58 (0x3C8) +#define APBDEV_PMC_SECURE_SCRATCH59 (0x3CC) +#define APBDEV_PMC_SECURE_SCRATCH60 (0x3D0) +#define APBDEV_PMC_SECURE_SCRATCH61 (0x3D4) +#define APBDEV_PMC_SECURE_SCRATCH62 (0x3D8) +#define APBDEV_PMC_SECURE_SCRATCH63 (0x3DC) +#define APBDEV_PMC_SECURE_SCRATCH64 (0x3E0) +#define APBDEV_PMC_SECURE_SCRATCH65 (0x3E4) +#define APBDEV_PMC_SECURE_SCRATCH66 (0x3E8) +#define APBDEV_PMC_SECURE_SCRATCH67 (0x3EC) +#define APBDEV_PMC_SECURE_SCRATCH68 (0x3F0) +#define APBDEV_PMC_SECURE_SCRATCH69 (0x3F4) +#define APBDEV_PMC_SECURE_SCRATCH70 (0x3F8) +#define APBDEV_PMC_SECURE_SCRATCH71 (0x3FC) +#define APBDEV_PMC_SECURE_SCRATCH72 (0x400) +#define APBDEV_PMC_SECURE_SCRATCH73 (0x404) +#define APBDEV_PMC_SECURE_SCRATCH74 (0x408) +#define APBDEV_PMC_SECURE_SCRATCH75 (0x40C) +#define APBDEV_PMC_SECURE_SCRATCH76 (0x410) +#define APBDEV_PMC_SECURE_SCRATCH77 (0x414) +#define APBDEV_PMC_SECURE_SCRATCH78 (0x418) +#define APBDEV_PMC_SECURE_SCRATCH79 (0x41C) +#define APBDEV_PMC_SECURE_SCRATCH80 (0xA98) +#define APBDEV_PMC_SECURE_SCRATCH81 (0xA9C) +#define APBDEV_PMC_SECURE_SCRATCH82 (0xAA0) +#define APBDEV_PMC_SECURE_SCRATCH83 (0xAA4) +#define APBDEV_PMC_SECURE_SCRATCH84 (0xAA8) +#define APBDEV_PMC_SECURE_SCRATCH85 (0xAAC) +#define APBDEV_PMC_SECURE_SCRATCH86 (0xAB0) +#define APBDEV_PMC_SECURE_SCRATCH87 (0xAB4) +#define APBDEV_PMC_SECURE_SCRATCH88 (0xAB8) +#define APBDEV_PMC_SECURE_SCRATCH89 (0xABC) +#define APBDEV_PMC_SECURE_SCRATCH90 (0xAC0) +#define APBDEV_PMC_SECURE_SCRATCH91 (0xAC4) +#define APBDEV_PMC_SECURE_SCRATCH92 (0xAC8) +#define APBDEV_PMC_SECURE_SCRATCH93 (0xACC) +#define APBDEV_PMC_SECURE_SCRATCH94 (0xAD0) +#define APBDEV_PMC_SECURE_SCRATCH95 (0xAD4) +#define APBDEV_PMC_SECURE_SCRATCH96 (0xAD8) +#define APBDEV_PMC_SECURE_SCRATCH97 (0xADC) +#define APBDEV_PMC_SECURE_SCRATCH98 (0xAE0) +#define APBDEV_PMC_SECURE_SCRATCH99 (0xAE4) +#define APBDEV_PMC_SECURE_SCRATCH100 (0xAE8) +#define APBDEV_PMC_SECURE_SCRATCH101 (0xAEC) +#define APBDEV_PMC_SECURE_SCRATCH102 (0xAF0) +#define APBDEV_PMC_SECURE_SCRATCH103 (0xAF4) +#define APBDEV_PMC_SECURE_SCRATCH104 (0xAF8) +#define APBDEV_PMC_SECURE_SCRATCH105 (0xAFC) +#define APBDEV_PMC_SECURE_SCRATCH106 (0xB00) +#define APBDEV_PMC_SECURE_SCRATCH107 (0xB04) +#define APBDEV_PMC_SECURE_SCRATCH108 (0xB08) +#define APBDEV_PMC_SECURE_SCRATCH109 (0xB0C) +#define APBDEV_PMC_SECURE_SCRATCH110 (0xB10) +#define APBDEV_PMC_SECURE_SCRATCH111 (0xB14) +#define APBDEV_PMC_SECURE_SCRATCH112 (0xB18) +#define APBDEV_PMC_SECURE_SCRATCH113 (0xB1C) +#define APBDEV_PMC_SECURE_SCRATCH114 (0xB20) +#define APBDEV_PMC_SECURE_SCRATCH115 (0xB24) +#define APBDEV_PMC_SECURE_SCRATCH116 (0xB28) +#define APBDEV_PMC_SECURE_SCRATCH117 (0xB2C) +#define APBDEV_PMC_SECURE_SCRATCH118 (0xB30) +#define APBDEV_PMC_SECURE_SCRATCH119 (0xB34) + +/* Mariko. */ +#define APBDEV_PMC_SECURE_SCRATCH120 (0xB38) +#define APBDEV_PMC_SECURE_SCRATCH121 (0xB3C) +#define APBDEV_PMC_SECURE_SCRATCH122 (0xB40) +#define APBDEV_PMC_SECURE_SCRATCH123 (0xB44) +#define APBDEV_PMC_SECURE_SCRATCH124 (0xB68) +#define APBDEV_PMC_SECURE_SCRATCH125 (0xB6C) +#define APBDEV_PMC_SECURE_SCRATCH126 (0xB70) +#define APBDEV_PMC_SECURE_SCRATCH127 (0xB74) +#define APBDEV_PMC_SECURE_SCRATCH128 (0xB78) +#define APBDEV_PMC_SECURE_SCRATCH129 (0xB7C) +#define APBDEV_PMC_SECURE_SCRATCH130 (0xB80) +#define APBDEV_PMC_SECURE_SCRATCH131 (0xB84) +#define APBDEV_PMC_SECURE_SCRATCH132 (0xB88) +#define APBDEV_PMC_SECURE_SCRATCH133 (0xB8C) +#define APBDEV_PMC_SECURE_SCRATCH134 (0xB90) +#define APBDEV_PMC_SECURE_SCRATCH135 (0xB94) +#define APBDEV_PMC_SECURE_SCRATCH136 (0xB98) +#define APBDEV_PMC_SECURE_SCRATCH137 (0xB9C) +#define APBDEV_PMC_SECURE_SCRATCH138 (0xBA0) +#define APBDEV_PMC_SECURE_SCRATCH139 (0xBA4) #define PMC_REG_BITS_MASK(NAME) REG_NAMED_BITS_MASK (APBDEV_PMC, NAME) #define PMC_REG_BITS_VALUE(NAME, VALUE) REG_NAMED_BITS_VALUE (APBDEV_PMC, NAME, VALUE)