Path: blob/master/modules/hekate_libsys_lp0/sys_sdramlp0.c
3694 views
/*1* Copyright (c) 2013, NVIDIA CORPORATION. All rights reserved.2* Copyright 2014 Google Inc.3* Copyright (c) 2018 naehrwert4* Copyright (c) 2018-2026 CTCaer5*6* This program is free software; you can redistribute it and/or modify it7* under the terms and conditions of the GNU General Public License,8* version 2, as published by the Free Software Foundation.9*10* This program is distributed in the hope it will be useful, but WITHOUT11* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or12* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for13* more details.14*/1516#include "t210.h"17#include "pmc_t210.h"18#include "sdram_lp0_param_t210.h"19#include "sdram_lp0_param_t210b01.h"20#include <module.h>2122#define pack(src, src_bits, dst, dst_bits) { \23u32 mask = 0xFFFFFFFF >> (31 - ((1 ? src_bits) - (0 ? src_bits))); \24dst &= ~(mask << (0 ? dst_bits)); \25dst |= ((src >> (0 ? src_bits)) & mask) << (0 ? dst_bits); \26}2728#define s(param, src_bits, pmcreg, dst_bits) \29pack(sdram->param, src_bits, pmc->pmc_ ## pmcreg, dst_bits)3031#define c(value, pmcreg, dst_bits) \32pack(value, (1 ? dst_bits) - (0 ? dst_bits) : 0, pmc->pmc_ ## pmcreg, dst_bits)3334/* 32 bits version of s macro */35#define s32(param, pmcreg) pmc->pmc_ ## pmcreg = sdram->param3637/* 32 bits version c macro */38#define c32(value, pmcreg) pmc->pmc_ ## pmcreg = value3940/*41* This function reads SDRAM parameters from the common BCT format and42* writes them into PMC scratch registers (where the BootROM expects them43* on LP0 resume).44*/45static void _sdram_lp0_save_params_t210(sdram_params_t210_t *sdram)46{47pmc_regs_t210_t *pmc = (pmc_regs_t210_t *)PMC_BASE;4849// Patch full access to carveout parameters and unprotect their regions.50sdram->McGeneralizedCarveout1Cfg0 = 0;51sdram->McGeneralizedCarveout2Cfg0 = 0;52sdram->McGeneralizedCarveout3Cfg0 = 0;53sdram->McGeneralizedCarveout4Cfg0 = 0;54sdram->McGeneralizedCarveout5Cfg0 = 0;5556// Patch SDRAM parameters.57u32 t0 = (sdram->EmcSwizzleRank0Byte0 << 5 >> 29) > (sdram->EmcSwizzleRank0Byte0 << 1 >> 29);58u32 t1 = (t0 & 0xFFFFFFEF) | (((sdram->EmcSwizzleRank1Byte0 << 5 >> 29) > (sdram->EmcSwizzleRank1Byte0 << 1 >> 29)) << 4);59u32 t2 = (t1 & 0xFFFFFFFD) | (((sdram->EmcSwizzleRank0Byte1 << 5 >> 29) > (sdram->EmcSwizzleRank0Byte1 << 1 >> 29)) << 1);60u32 t3 = (t2 & 0xFFFFFFDF) | (((sdram->EmcSwizzleRank1Byte1 << 5 >> 29) > (sdram->EmcSwizzleRank1Byte1 << 1 >> 29)) << 5);61u32 t4 = (t3 & 0xFFFFFFFB) | (((sdram->EmcSwizzleRank0Byte2 << 5 >> 29) > (sdram->EmcSwizzleRank0Byte2 << 1 >> 29)) << 2);62u32 t5 = (t4 & 0xFFFFFFBF) | (((sdram->EmcSwizzleRank1Byte2 << 5 >> 29) > (sdram->EmcSwizzleRank1Byte2 << 1 >> 29)) << 6);63u32 t6 = (t5 & 0xFFFFFFF7) | (((sdram->EmcSwizzleRank0Byte3 << 5 >> 29) > (sdram->EmcSwizzleRank0Byte3 << 1 >> 29)) << 3);64u32 t7 = (t6 & 0xFFFFFF7F) | (((sdram->EmcSwizzleRank1Byte3 << 5 >> 29) > (sdram->EmcSwizzleRank1Byte3 << 1 >> 29)) << 7);65sdram->SwizzleRankByteEncode = t7;66sdram->EmcBctSpare2 = 0x40000DD8;67sdram->EmcBctSpare3 = t7;6869s(EmcClockSource, 7:0, scratch6, 15:8);70s(EmcClockSourceDll, 7:0, scratch6, 23:16);71s(EmcClockSource, 31:29, scratch6, 26:24);72s(EmcClockSourceDll, 31:29, scratch6, 29:27);73s(EmcClockSourceDll, 11:10, scratch6, 31:30);74s(ClkRstControllerPllmMisc2Override, 9:8, scratch7, 1:0);75s(ClkRstControllerPllmMisc2Override, 2:1, scratch7, 3:2);76s(EmcZqCalLpDdr4WarmBoot, 31:30, scratch7, 5:4);77s(EmcClockSource, 15:15, scratch7, 6:6);78s(EmcClockSource, 26:26, scratch7, 7:7);79s(EmcClockSource, 20:20, scratch7, 8:8);80s(EmcClockSource, 19:19, scratch7, 9:9);81s(ClkRstControllerPllmMisc2Override, 13:13, scratch7, 10:10);82s(ClkRstControllerPllmMisc2Override, 12:12, scratch7, 11:11);83s(ClkRstControllerPllmMisc2Override, 11:11, scratch7, 12:12);84s(ClkRstControllerPllmMisc2Override, 10:10, scratch7, 13:13);85s(ClkRstControllerPllmMisc2Override, 5:5, scratch7, 14:14);86s(ClkRstControllerPllmMisc2Override, 4:4, scratch7, 15:15);87s(ClkRstControllerPllmMisc2Override, 3:3, scratch7, 16:16);88s(ClkRstControllerPllmMisc2Override, 0:0, scratch7, 17:17);89s(EmcZqCalLpDdr4WarmBoot, 1:0, scratch7, 19:18);90s(EmcZqCalLpDdr4WarmBoot, 4:4, scratch7, 20:20);91s(EmcOdtWrite, 5:0, scratch7, 26:21);92s(EmcOdtWrite, 11:8, scratch7, 30:27);93s(EmcOdtWrite, 31:31, scratch7, 31:31);94s(EmcFdpdCtrlCmdNoRamp, 0:0, scratch13, 30:30);95s(EmcCfgPipeClk, 0:0, scratch13, 31:31);96s(McEmemArbMisc2, 0:0, scratch14, 30:30);97s(McDaCfg0, 0:0, scratch14, 31:31);98s(EmcQRst, 6:0, scratch15, 26:20);99s(EmcQRst, 20:16, scratch15, 31:27);100s(EmcPmacroCmdTxDrv, 5:0, scratch16, 25:20);101s(EmcPmacroCmdTxDrv, 13:8, scratch16, 31:26);102s(EmcPmacroAutocalCfg0, 2:0, scratch17, 22:20);103s(EmcPmacroAutocalCfg0, 10:8, scratch17, 25:23);104s(EmcPmacroAutocalCfg0, 18:16, scratch17, 28:26);105s(EmcPmacroAutocalCfg0, 26:24, scratch17, 31:29);106s(EmcPmacroAutocalCfg1, 2:0, scratch18, 22:20);107s(EmcPmacroAutocalCfg1, 10:8, scratch18, 25:23);108s(EmcPmacroAutocalCfg1, 18:16, scratch18, 28:26);109s(EmcPmacroAutocalCfg1, 26:24, scratch18, 31:29);110s(EmcPmacroAutocalCfg2, 2:0, scratch19, 22:20);111s(EmcPmacroAutocalCfg2, 10:8, scratch19, 25:23);112s(EmcPmacroAutocalCfg2, 18:16, scratch19, 28:26);113s(EmcPmacroAutocalCfg2, 26:24, scratch19, 31:29);114s32(EmcCfgRsv,scratch22);115s32(EmcAutoCalConfig, scratch23);116s32(EmcAutoCalVrefSel0, scratch24);117s32(EmcPmacroBrickCtrlRfu1, scratch25);118s32(EmcPmacroBrickCtrlRfu2, scratch26);119s32(EmcPmcScratch1, scratch27);120s32(EmcPmcScratch2, scratch28);121s32(EmcPmcScratch3, scratch29);122s32(McEmemArbDaTurns, scratch30);123s(EmcFbioSpare, 31:24, scratch58, 7:0);124s(EmcFbioSpare, 23:16, scratch58, 15:8);125s(EmcFbioSpare, 15:8, scratch58, 23:16);126s(EmcFbioSpare, 7:2, scratch58, 29:24);127s(EmcFbioSpare, 0:0, scratch58, 30:30);128s(EmcDllCfg0, 29:0, scratch59, 29:0);129s(EmcPmacroDdllBypass, 11:0, scratch60, 11:0);130s(EmcPmacroDdllBypass, 27:13, scratch60, 26:12);131s(EmcPmacroDdllBypass, 31:29, scratch60, 29:27);132s(McEmemArbMisc0, 14:0, scratch61, 14:0);133s(McEmemArbMisc0, 30:16, scratch61, 29:15);134s(EmcFdpdCtrlCmd, 16:0, scratch62, 16:0);135s(EmcFdpdCtrlCmd, 31:20, scratch62, 28:17);136s(EmcAutoCalConfig2, 27:0, scratch63, 27:0);137s(EmcBurstRefreshNum, 3:0, scratch63, 31:28);138s(EmcPmacroZctrl, 27:0, scratch64, 27:0);139s(EmcTppd, 3:0, scratch64, 31:28);140s(EmcCfgDigDll, 10:0, scratch65, 10:0);141s(EmcCfgDigDll, 25:12, scratch65, 24:11);142s(EmcCfgDigDll, 27:27, scratch65, 25:25);143s(EmcCfgDigDll, 31:30, scratch65, 27:26);144s(EmcR2r, 3:0, scratch65, 31:28);145s(EmcFdpdCtrlDq, 16:0, scratch66, 16:0);146s(EmcFdpdCtrlDq, 28:20, scratch66, 25:17);147s(EmcFdpdCtrlDq, 31:30, scratch66, 27:26);148s(EmcW2w, 3:0, scratch66, 31:28);149s(EmcPmacroTxPwrd4, 13:0, scratch67, 13:0);150s(EmcPmacroTxPwrd4, 29:16, scratch67, 27:14);151s(EmcPmacroCommonPadTxCtrl, 3:0, scratch67, 31:28);152s(EmcPmacroTxPwrd5, 13:0, scratch68, 13:0);153s(EmcPmacroTxPwrd5, 29:16, scratch68, 27:14);154s(EmcPmacroDdllPwrd0, 4:0, scratch69, 4:0);155s(EmcPmacroDdllPwrd0, 12:6, scratch69, 11:5);156s(EmcPmacroDdllPwrd0, 20:14, scratch69, 18:12);157s(EmcPmacroDdllPwrd0, 28:22, scratch69, 25:19);158s(EmcPmacroDdllPwrd0, 31:30, scratch69, 27:26);159s(EmcCfg, 4:4, scratch69, 31:31);160s(EmcPmacroDdllPwrd1, 4:0, scratch70, 4:0);161s(EmcPmacroDdllPwrd1, 12:6, scratch70, 11:5);162s(EmcPmacroDdllPwrd1, 20:14, scratch70, 18:12);163s(EmcPmacroDdllPwrd1, 28:22, scratch70, 25:19);164s(EmcPmacroDdllPwrd1, 31:30, scratch70, 27:26);165s(EmcCfg, 5:5, scratch70, 31:31);166s(EmcPmacroDdllPwrd2, 4:0, scratch71, 4:0);167s(EmcPmacroDdllPwrd2, 12:6, scratch71, 11:5);168s(EmcPmacroDdllPwrd2, 20:14, scratch71, 18:12);169s(EmcPmacroDdllPwrd2, 28:22, scratch71, 25:19);170s(EmcPmacroDdllPwrd2, 31:30, scratch71, 27:26);171s(EmcFbioCfg5, 23:20, scratch71, 31:28);172s(EmcPmacroIbVrefDq_0, 6:0, scratch72, 6:0);173s(EmcPmacroIbVrefDq_0, 14:8, scratch72, 13:7);174s(EmcPmacroIbVrefDq_0, 22:16, scratch72, 20:14);175s(EmcPmacroIbVrefDq_0, 30:24, scratch72, 27:21);176s(EmcFbioCfg5, 15:13, scratch72, 30:28);177s(EmcCfg, 6:6, scratch72, 31:31);178s(EmcPmacroIbVrefDq_1, 6:0, scratch73, 6:0);179s(EmcPmacroIbVrefDq_1, 14:8, scratch73, 13:7);180s(EmcPmacroIbVrefDq_1, 22:16, scratch73, 20:14);181s(EmcPmacroIbVrefDq_1, 30:24, scratch73, 27:21);182s(EmcCfg2, 5:3, scratch73, 30:28);183s(EmcCfg, 7:7, scratch73, 31:31);184s(EmcPmacroIbVrefDqs_0, 6:0, scratch74, 6:0);185s(EmcPmacroIbVrefDqs_0, 14:8, scratch74, 13:7);186s(EmcPmacroIbVrefDqs_0, 22:16, scratch74, 20:14);187s(EmcPmacroIbVrefDqs_0, 30:24, scratch74, 27:21);188s(EmcCfg, 17:16, scratch74, 29:28);189s(EmcFbioCfg5, 1:0, scratch74, 31:30);190s(EmcPmacroIbVrefDqs_1, 6:0, scratch75, 6:0);191s(EmcPmacroIbVrefDqs_1, 14:8, scratch75, 13:7);192s(EmcPmacroIbVrefDqs_1, 22:16, scratch75, 20:14);193s(EmcPmacroIbVrefDqs_1, 30:24, scratch75, 27:21);194s(EmcFbioCfg5, 3:2, scratch75, 29:28);195s(EmcCfg2, 27:26, scratch75, 31:30);196s(EmcPmacroDdllShortCmd_0, 6:0, scratch76, 6:0);197s(EmcPmacroDdllShortCmd_0, 14:8, scratch76, 13:7);198s(EmcPmacroDdllShortCmd_0, 22:16, scratch76, 20:14);199s(EmcPmacroDdllShortCmd_0, 30:24, scratch76, 27:21);200s(EmcPmacroCmdPadTxCtrl, 3:2, scratch76, 29:28);201s(EmcPmacroCmdPadTxCtrl, 7:6, scratch76, 31:30);202s(EmcPmacroDdllShortCmd_1, 6:0, scratch77, 6:0);203s(EmcPmacroDdllShortCmd_1, 14:8, scratch77, 13:7);204s(EmcPmacroDdllShortCmd_1, 22:16, scratch77, 20:14);205s(EmcPmacroDdllShortCmd_1, 30:24, scratch77, 27:21);206s(EmcPmacroCmdPadTxCtrl, 11:10, scratch77, 29:28);207s(EmcPmacroCmdPadTxCtrl, 15:14, scratch77, 31:30);208s(EmcAutoCalChannel, 5:0, scratch78, 5:0);209s(EmcAutoCalChannel, 11:8, scratch78, 9:6);210s(EmcAutoCalChannel, 27:16, scratch78, 21:10);211s(EmcAutoCalChannel, 31:29, scratch78, 24:22);212s(EmcConfigSampleDelay, 6:0, scratch78, 31:25);213s(EmcPmacroRxTerm, 5:0, scratch79, 5:0);214s(EmcPmacroRxTerm, 13:8, scratch79, 11:6);215s(EmcPmacroRxTerm, 21:16, scratch79, 17:12);216s(EmcPmacroRxTerm, 29:24, scratch79, 23:18);217s(EmcRc, 7:0, scratch79, 31:24);218s(EmcPmacroDqTxDrv, 5:0, scratch80, 5:0);219s(EmcPmacroDqTxDrv, 13:8, scratch80, 11:6);220s(EmcPmacroDqTxDrv, 21:16, scratch80, 17:12);221s(EmcPmacroDqTxDrv, 29:24, scratch80, 23:18);222s(EmcSelDpdCtrl, 5:2, scratch80, 27:24);223s(EmcSelDpdCtrl, 8:8, scratch80, 28:28);224s(EmcSelDpdCtrl, 18:16, scratch80, 31:29);225s(EmcPmacroCaTxDrv, 5:0, scratch81, 5:0);226s(EmcPmacroCaTxDrv, 13:8, scratch81, 11:6);227s(EmcPmacroCaTxDrv, 21:16, scratch81, 17:12);228s(EmcPmacroCaTxDrv, 29:24, scratch81, 23:18);229s(EmcObdly, 5:0, scratch81, 29:24);230s(EmcObdly, 29:28, scratch81, 31:30);231s(EmcZcalInterval, 23:10, scratch82, 13:0);232s(EmcZcalInterval, 9:0, scratch82, 23:14);233s(EmcPmacroCmdRxTermMode, 1:0, scratch82, 25:24);234s(EmcPmacroCmdRxTermMode, 5:4, scratch82, 27:26);235s(EmcPmacroCmdRxTermMode, 9:8, scratch82, 29:28);236s(EmcPmacroCmdRxTermMode, 13:12, scratch82, 31:30);237s(EmcDataBrlshft0, 23:0, scratch83, 23:0);238s(EmcPmacroDataRxTermMode, 1:0, scratch83, 25:24);239s(EmcPmacroDataRxTermMode, 5:4, scratch83, 27:26);240s(EmcPmacroDataRxTermMode, 9:8, scratch83, 29:28);241s(EmcPmacroDataRxTermMode, 13:12, scratch83, 31:30);242s(EmcDataBrlshft1, 23:0, scratch84, 23:0);243s(McEmemArbTimingRc, 7:0, scratch84, 31:24);244s(EmcDqsBrlshft0, 23:0, scratch85, 23:0);245s(McEmemArbRsv, 7:0, scratch85, 31:24);246s(EmcDqsBrlshft1, 23:0, scratch86, 23:0);247s(EmcCfgPipe2, 11:0, scratch87, 11:0);248s(EmcCfgPipe2, 27:16, scratch87, 23:12);249s(EmcCfgPipe1, 11:0, scratch88, 11:0);250s(EmcCfgPipe1, 27:16, scratch88, 23:12);251s(EmcPmacroCmdCtrl0, 5:0, scratch89, 5:0);252s(EmcPmacroCmdCtrl0, 13:8, scratch89, 11:6);253s(EmcPmacroCmdCtrl0, 21:16, scratch89, 17:12);254s(EmcPmacroCmdCtrl0, 29:24, scratch89, 23:18);255s(EmcPmacroCmdCtrl1, 5:0, scratch90, 5:0);256s(EmcPmacroCmdCtrl1, 13:8, scratch90, 11:6);257s(EmcPmacroCmdCtrl1, 21:16, scratch90, 17:12);258s(EmcPmacroCmdCtrl1, 29:24, scratch90, 23:18);259s(EmcRas, 6:0, scratch90, 30:24);260s(EmcCfg, 8:8, scratch90, 31:31);261s(EmcPmacroVttgenCtrl2, 23:0, scratch91, 23:0);262s(EmcW2p, 6:0, scratch91, 30:24);263s(EmcCfg, 9:9, scratch91, 31:31);264s(EmcPmacroCmdPadRxCtrl, 2:0, scratch92, 2:0);265s(EmcPmacroCmdPadRxCtrl, 5:4, scratch92, 4:3);266s(EmcPmacroCmdPadRxCtrl, 10:8, scratch92, 7:5);267s(EmcPmacroCmdPadRxCtrl, 22:12, scratch92, 18:8);268s(EmcPmacroCmdPadRxCtrl, 28:24, scratch92, 23:19);269s(EmcQSafe, 6:0, scratch92, 30:24);270s(EmcCfg, 18:18, scratch92, 31:31);271s(EmcPmacroDataPadRxCtrl, 2:0, scratch93, 2:0);272s(EmcPmacroDataPadRxCtrl, 5:4, scratch93, 4:3);273s(EmcPmacroDataPadRxCtrl, 10:8, scratch93, 7:5);274s(EmcPmacroDataPadRxCtrl, 22:12, scratch93, 18:8);275s(EmcPmacroDataPadRxCtrl, 28:24, scratch93, 23:19);276s(EmcRdv, 6:0, scratch93, 30:24);277s(EmcCfg, 21:21, scratch93, 31:31);278s(McEmemArbDaCovers, 23:0, scratch94, 23:0);279s(EmcRw2Pden, 6:0, scratch94, 30:24);280s(EmcCfg, 22:22, scratch94, 31:31);281s(EmcPmacroCmdCtrl2, 5:0, scratch95, 5:0);282s(EmcPmacroCmdCtrl2, 13:9, scratch95, 10:6);283s(EmcPmacroCmdCtrl2, 21:16, scratch95, 16:11);284s(EmcPmacroCmdCtrl2, 29:24, scratch95, 22:17);285s(EmcRfcPb, 8:0, scratch95, 31:23);286s(EmcPmacroQuseDdllRank0_0, 10:0, scratch96, 10:0);287s(EmcPmacroQuseDdllRank0_0, 26:16, scratch96, 21:11);288s(EmcCfgUpdate, 2:0, scratch96, 24:22);289s(EmcCfgUpdate, 10:8, scratch96, 27:25);290s(EmcCfgUpdate, 31:28, scratch96, 31:28);291s(EmcPmacroQuseDdllRank0_1, 10:0, scratch97, 10:0);292s(EmcPmacroQuseDdllRank0_1, 26:16, scratch97, 21:11);293s(EmcRfc, 9:0, scratch97, 31:22);294s(EmcPmacroQuseDdllRank0_2, 10:0, scratch98, 10:0);295s(EmcPmacroQuseDdllRank0_2, 26:16, scratch98, 21:11);296s(EmcTxsr, 9:0, scratch98, 31:22);297s(EmcPmacroQuseDdllRank0_3, 10:0, scratch99, 10:0);298s(EmcPmacroQuseDdllRank0_3, 26:16, scratch99, 21:11);299s(EmcMc2EmcQ, 2:0, scratch99, 24:22);300s(EmcMc2EmcQ, 10:8, scratch99, 27:25);301s(EmcMc2EmcQ, 27:24, scratch99, 31:28);302s(EmcPmacroQuseDdllRank0_4, 10:0, scratch100, 10:0);303s(EmcPmacroQuseDdllRank0_4, 26:16, scratch100, 21:11);304s(McEmemArbRing1Throttle, 4:0, scratch100, 26:22);305s(McEmemArbRing1Throttle, 20:16, scratch100, 31:27);306s(EmcPmacroQuseDdllRank0_5, 10:0, scratch101, 10:0);307s(EmcPmacroQuseDdllRank0_5, 26:16, scratch101, 21:11);308s(EmcPmacroQuseDdllRank1_0, 10:0, scratch102, 10:0);309s(EmcPmacroQuseDdllRank1_0, 26:16, scratch102, 21:11);310s(EmcAr2Pden, 8:0, scratch102, 30:22);311s(EmcCfg, 23:23, scratch102, 31:31);312s(EmcPmacroQuseDdllRank1_1, 10:0, scratch103, 10:0);313s(EmcPmacroQuseDdllRank1_1, 26:16, scratch103, 21:11);314s(EmcRfcSlr, 8:0, scratch103, 30:22);315s(EmcCfg, 24:24, scratch103, 31:31);316s(EmcPmacroQuseDdllRank1_2, 10:0, scratch104, 10:0);317s(EmcPmacroQuseDdllRank1_2, 26:16, scratch104, 21:11);318s(EmcIbdly, 6:0, scratch104, 28:22);319s(EmcIbdly, 29:28, scratch104, 30:29);320s(EmcCfg, 25:25, scratch104, 31:31);321s(EmcPmacroQuseDdllRank1_3, 10:0, scratch105, 10:0);322s(EmcPmacroQuseDdllRank1_3, 26:16, scratch105, 21:11);323s(McEmemArbTimingRFCPB, 8:0, scratch105, 30:22);324s(EmcCfg, 26:26, scratch105, 31:31);325s(EmcPmacroQuseDdllRank1_4, 10:0, scratch106, 10:0);326s(EmcPmacroQuseDdllRank1_4, 26:16, scratch106, 21:11);327s(EmcTfaw, 6:0, scratch106, 28:22);328s(EmcPmacroDataPadTxCtrl, 3:2, scratch106, 30:29);329s(EmcCfg, 28:28, scratch106, 31:31);330s(EmcPmacroQuseDdllRank1_5, 10:0, scratch107, 10:0);331s(EmcPmacroQuseDdllRank1_5, 26:16, scratch107, 21:11);332s(EmcTClkStable, 6:0, scratch107, 28:22);333s(EmcPmacroDataPadTxCtrl, 7:6, scratch107, 30:29);334s(EmcCfg, 29:29, scratch107, 31:31);335s(EmcPmacroObDdllLongDqRank0_0, 10:0, scratch108, 10:0);336s(EmcPmacroObDdllLongDqRank0_0, 26:16, scratch108, 21:11);337s(EmcPdex2Mrr, 6:0, scratch108, 28:22);338s(EmcPmacroDataPadTxCtrl, 11:10, scratch108, 30:29);339s(EmcCfg, 30:30, scratch108, 31:31);340s(EmcPmacroObDdllLongDqRank0_1, 10:0, scratch109, 10:0);341s(EmcPmacroObDdllLongDqRank0_1, 26:16, scratch109, 21:11);342s(EmcRdvMask, 6:0, scratch109, 28:22);343s(EmcPmacroDataPadTxCtrl, 15:14, scratch109, 30:29);344s(EmcCfg, 31:31, scratch109, 31:31);345s(EmcPmacroObDdllLongDqRank0_2, 10:0, scratch110, 10:0);346s(EmcPmacroObDdllLongDqRank0_2, 26:16, scratch110, 21:11);347s(EmcRdvEarlyMask, 6:0, scratch110, 28:22);348s(EmcFbioCfg5, 4:4, scratch110, 29:29);349s(EmcFbioCfg5, 8:8, scratch110, 30:30);350s(EmcFbioCfg5, 10:10, scratch110, 31:31);351s(EmcPmacroObDdllLongDqRank0_3, 10:0, scratch111, 10:0);352s(EmcPmacroObDdllLongDqRank0_3, 26:16, scratch111, 21:11);353s(EmcRdvEarly, 6:0, scratch111, 28:22);354s(EmcFbioCfg5, 12:12, scratch111, 29:29);355s(EmcFbioCfg5, 25:24, scratch111, 31:30);356s(EmcPmacroObDdllLongDqRank0_4, 10:0, scratch112, 10:0);357s(EmcPmacroObDdllLongDqRank0_4, 26:16, scratch112, 21:11);358s(EmcPmacroDdllShortCmd_2, 6:0, scratch112, 28:22);359s(EmcFbioCfg5, 28:26, scratch112, 31:29);360s(EmcPmacroObDdllLongDqRank0_5, 10:0, scratch113, 10:0);361s(EmcPmacroObDdllLongDqRank0_5, 26:16, scratch113, 21:11);362s(McEmemArbTimingRp, 6:0, scratch113, 28:22);363s(EmcFbioCfg5, 31:30, scratch113, 30:29);364s(EmcCfg2, 0:0, scratch113, 31:31);365s(EmcPmacroObDdllLongDqRank1_0, 10:0, scratch114, 10:0);366s(EmcPmacroObDdllLongDqRank1_0, 26:16, scratch114, 21:11);367s(McEmemArbTimingRas, 6:0, scratch114, 28:22);368s(EmcCfg2, 2:1, scratch114, 30:29);369s(EmcCfg2, 7:7, scratch114, 31:31);370s(EmcPmacroObDdllLongDqRank1_1, 10:0, scratch115, 10:0);371s(EmcPmacroObDdllLongDqRank1_1, 26:16, scratch115, 21:11);372s(McEmemArbTimingFaw, 6:0, scratch115, 28:22);373s(EmcCfg2, 11:10, scratch115, 30:29);374s(EmcCfg2, 14:14, scratch115, 31:31);375s(EmcPmacroObDdllLongDqRank1_2, 10:0, scratch123, 10:0);376s(EmcPmacroObDdllLongDqRank1_2, 26:16, scratch123, 21:11);377s(McEmemArbTimingRap2Pre, 6:0, scratch123, 28:22);378s(EmcCfg2, 16:15, scratch123, 30:29);379s(EmcCfg2, 20:20, scratch123, 31:31);380s(EmcPmacroObDdllLongDqRank1_3, 10:0, scratch124, 10:0);381s(EmcPmacroObDdllLongDqRank1_3, 26:16, scratch124, 21:11);382s(McEmemArbTimingWap2Pre, 6:0, scratch124, 28:22);383s(EmcCfg2, 24:22, scratch124, 31:29);384s(EmcPmacroObDdllLongDqRank1_4, 10:0, scratch125, 10:0);385s(EmcPmacroObDdllLongDqRank1_4, 26:16, scratch125, 21:11);386s(McEmemArbTimingR2W, 6:0, scratch125, 28:22);387s(EmcCfg2, 25:25, scratch125, 29:29);388s(EmcCfg2, 29:28, scratch125, 31:30);389s(EmcPmacroObDdllLongDqRank1_5, 10:0, scratch126, 10:0);390s(EmcPmacroObDdllLongDqRank1_5, 26:16, scratch126, 21:11);391s(McEmemArbTimingW2R, 6:0, scratch126, 28:22);392s(EmcCfg2, 31:30, scratch126, 30:29);393s(EmcCfgPipe, 0:0, scratch126, 31:31);394s(EmcPmacroObDdllLongDqsRank0_0, 10:0, scratch127, 10:0);395s(EmcPmacroObDdllLongDqsRank0_0, 26:16, scratch127, 21:11);396s(EmcRp, 5:0, scratch127, 27:22);397s(EmcCfgPipe, 4:1, scratch127, 31:28);398s(EmcPmacroObDdllLongDqsRank0_1, 10:0, scratch128, 10:0);399s(EmcPmacroObDdllLongDqsRank0_1, 26:16, scratch128, 21:11);400s(EmcR2w, 5:0, scratch128, 27:22);401s(EmcCfgPipe, 8:5, scratch128, 31:28);402s(EmcPmacroObDdllLongDqsRank0_2, 10:0, scratch129, 10:0);403s(EmcPmacroObDdllLongDqsRank0_2, 26:16, scratch129, 21:11);404s(EmcW2r, 5:0, scratch129, 27:22);405s(EmcCfgPipe, 11:9, scratch129, 30:28);406s(EmcCfgPipe, 16:16, scratch129, 31:31);407s(EmcPmacroObDdllLongDqsRank0_3, 10:0, scratch130, 10:0);408s(EmcPmacroObDdllLongDqsRank0_3, 26:16, scratch130, 21:11);409s(EmcR2p, 5:0, scratch130, 27:22);410s(EmcCfgPipe, 20:17, scratch130, 31:28);411s(EmcPmacroObDdllLongDqsRank0_4, 10:0, scratch131, 10:0);412s(EmcPmacroObDdllLongDqsRank0_4, 26:16, scratch131, 21:11);413s(EmcCcdmw, 5:0, scratch131, 27:22);414s(EmcCfgPipe, 24:21, scratch131, 31:28);415s(EmcPmacroObDdllLongDqsRank0_5, 10:0, scratch132, 10:0);416s(EmcPmacroObDdllLongDqsRank0_5, 26:16, scratch132, 21:11);417s(EmcRdRcd, 5:0, scratch132, 27:22);418s(EmcCfgPipe, 27:25, scratch132, 30:28);419s(EmcPmacroTxPwrd0, 0:0, scratch132, 31:31);420s(EmcPmacroObDdllLongDqsRank1_0, 10:0, scratch133, 10:0);421s(EmcPmacroObDdllLongDqsRank1_0, 26:16, scratch133, 21:11);422s(EmcWrRcd, 5:0, scratch133, 27:22);423s(EmcPmacroTxPwrd0, 4:1, scratch133, 31:28);424s(EmcPmacroObDdllLongDqsRank1_1, 10:0, scratch134, 10:0);425s(EmcPmacroObDdllLongDqsRank1_1, 26:16, scratch134, 21:11);426s(EmcWdv, 5:0, scratch134, 27:22);427s(EmcPmacroTxPwrd0, 8:5, scratch134, 31:28);428s(EmcPmacroObDdllLongDqsRank1_2, 10:0, scratch135, 10:0);429s(EmcPmacroObDdllLongDqsRank1_2, 26:16, scratch135, 21:11);430s(EmcQUse, 5:0, scratch135, 27:22);431s(EmcPmacroTxPwrd0, 12:9, scratch135, 31:28);432s(EmcPmacroObDdllLongDqsRank1_3, 10:0, scratch136, 10:0);433s(EmcPmacroObDdllLongDqsRank1_3, 26:16, scratch136, 21:11);434s(EmcPdEx2Wr, 5:0, scratch136, 27:22);435s(EmcPmacroTxPwrd0, 13:13, scratch136, 28:28);436s(EmcPmacroTxPwrd0, 18:16, scratch136, 31:29);437s(EmcPmacroObDdllLongDqsRank1_4, 10:0, scratch137, 10:0);438s(EmcPmacroObDdllLongDqsRank1_4, 26:16, scratch137, 21:11);439s(EmcPdEx2Rd, 5:0, scratch137, 27:22);440s(EmcPmacroTxPwrd0, 22:19, scratch137, 31:28);441s(EmcPmacroObDdllLongDqsRank1_5, 10:0, scratch138, 10:0);442s(EmcPmacroObDdllLongDqsRank1_5, 26:16, scratch138, 21:11);443s(EmcPdex2Cke, 5:0, scratch138, 27:22);444s(EmcPmacroTxPwrd0, 26:23, scratch138, 31:28);445s(EmcPmacroIbDdllLongDqsRank0_0, 10:0, scratch139, 10:0);446s(EmcPmacroIbDdllLongDqsRank0_0, 26:16, scratch139, 21:11);447s(EmcPChg2Pden, 5:0, scratch139, 27:22);448s(EmcPmacroTxPwrd0, 29:27, scratch139, 30:28);449s(EmcPmacroTxPwrd1, 0:0, scratch139, 31:31);450s(EmcPmacroIbDdllLongDqsRank0_1, 10:0, scratch140, 10:0);451s(EmcPmacroIbDdllLongDqsRank0_1, 26:16, scratch140, 21:11);452s(EmcAct2Pden, 5:0, scratch140, 27:22);453s(EmcPmacroTxPwrd1, 4:1, scratch140, 31:28);454s(EmcPmacroIbDdllLongDqsRank0_2, 10:0, scratch141, 10:0);455s(EmcPmacroIbDdllLongDqsRank0_2, 26:16, scratch141, 21:11);456s(EmcCke2Pden, 5:0, scratch141, 27:22);457s(EmcPmacroTxPwrd1, 8:5, scratch141, 31:28);458s(EmcPmacroIbDdllLongDqsRank0_3, 10:0, scratch142, 10:0);459s(EmcPmacroIbDdllLongDqsRank0_3, 26:16, scratch142, 21:11);460s(EmcTcke, 5:0, scratch142, 27:22);461s(EmcPmacroTxPwrd1, 12:9, scratch142, 31:28);462s(EmcPmacroIbDdllLongDqsRank1_0, 10:0, scratch143, 10:0);463s(EmcPmacroIbDdllLongDqsRank1_0, 26:16, scratch143, 21:11);464s(EmcTrpab, 5:0, scratch143, 27:22);465s(EmcPmacroTxPwrd1, 13:13, scratch143, 28:28);466s(EmcPmacroTxPwrd1, 18:16, scratch143, 31:29);467s(EmcPmacroIbDdllLongDqsRank1_1, 10:0, scratch144, 10:0);468s(EmcPmacroIbDdllLongDqsRank1_1, 26:16, scratch144, 21:11);469s(EmcClkenOverride, 3:1, scratch144, 24:22);470s(EmcClkenOverride, 8:6, scratch144, 27:25);471s(EmcPmacroTxPwrd1, 22:19, scratch144, 31:28);472s(EmcPmacroIbDdllLongDqsRank1_2, 10:0, scratch145, 10:0);473s(EmcPmacroIbDdllLongDqsRank1_2, 26:16, scratch145, 21:11);474s(EmcEInput, 5:0, scratch145, 27:22);475s(EmcPmacroTxPwrd1, 26:23, scratch145, 31:28);476s(EmcPmacroIbDdllLongDqsRank1_3, 10:0, scratch146, 10:0);477s(EmcPmacroIbDdllLongDqsRank1_3, 26:16, scratch146, 21:11);478s(EmcEInputDuration, 5:0, scratch146, 27:22);479s(EmcPmacroTxPwrd1, 29:27, scratch146, 30:28);480s(EmcPmacroTxPwrd2, 0:0, scratch146, 31:31);481s(EmcPmacroDdllLongCmd_0, 10:0, scratch147, 10:0);482s(EmcPmacroDdllLongCmd_0, 26:16, scratch147, 21:11);483s(EmcPutermExtra, 5:0, scratch147, 27:22);484s(EmcPmacroTxPwrd2, 4:1, scratch147, 31:28);485s(EmcPmacroDdllLongCmd_1, 10:0, scratch148, 10:0);486s(EmcPmacroDdllLongCmd_1, 26:16, scratch148, 21:11);487s(EmcTckesr, 5:0, scratch148, 27:22);488s(EmcPmacroTxPwrd2, 8:5, scratch148, 31:28);489s(EmcPmacroDdllLongCmd_2, 10:0, scratch149, 10:0);490s(EmcPmacroDdllLongCmd_2, 26:16, scratch149, 21:11);491s(EmcTpd, 5:0, scratch149, 27:22);492s(EmcPmacroTxPwrd2, 12:9, scratch149, 31:28);493s(EmcPmacroDdllLongCmd_3, 10:0, scratch150, 10:0);494s(EmcPmacroDdllLongCmd_3, 26:16, scratch150, 21:11);495s(EmcWdvMask, 5:0, scratch150, 27:22);496s(EmcPmacroTxPwrd2, 13:13, scratch150, 28:28);497s(EmcPmacroTxPwrd2, 18:16, scratch150, 31:29);498s(McEmemArbCfg, 8:0, scratch151, 8:0);499s(McEmemArbCfg, 20:16, scratch151, 13:9);500s(McEmemArbCfg, 31:24, scratch151, 21:14);501s(EmcWdvChk, 5:0, scratch151, 27:22);502s(EmcPmacroTxPwrd2, 22:19, scratch151, 31:28);503s(McEmemArbMisc1, 12:0, scratch152, 12:0);504s(McEmemArbMisc1, 25:21, scratch152, 17:13);505s(McEmemArbMisc1, 31:28, scratch152, 21:18);506s(EmcCmdBrlshft0, 5:0, scratch152, 27:22);507s(EmcPmacroTxPwrd2, 26:23, scratch152, 31:28);508s(EmcMrsWaitCnt2, 9:0, scratch153, 9:0);509s(EmcMrsWaitCnt2, 26:16, scratch153, 20:10);510s(EmcPmacroIbRxrt, 10:0, scratch153, 31:21);511s(EmcMrsWaitCnt, 9:0, scratch154, 9:0);512s(EmcMrsWaitCnt, 26:16, scratch154, 20:10);513s(EmcPmacroDdllLongCmd_4, 10:0, scratch154, 31:21);514s(EmcAutoCalInterval, 20:0, scratch155, 20:0);515s(McEmemArbOutstandingReq, 8:0, scratch155, 29:21);516s(McEmemArbOutstandingReq, 31:30, scratch155, 31:30);517s(McEmemArbRefpbHpCtrl, 6:0, scratch156, 6:0);518s(McEmemArbRefpbHpCtrl, 14:8, scratch156, 13:7);519s(McEmemArbRefpbHpCtrl, 22:16, scratch156, 20:14);520s(EmcCmdBrlshft1, 5:0, scratch156, 26:21);521s(EmcRrd, 4:0, scratch156, 31:27);522s(EmcQuseBrlshft0, 19:0, scratch157, 19:0);523s(EmcFbioCfg8, 27:16, scratch157, 31:20);524s(EmcQuseBrlshft1, 19:0, scratch158, 19:0);525s(EmcTxsrDll, 11:0, scratch158, 31:20);526s(EmcQuseBrlshft2, 19:0, scratch159, 19:0);527s(EmcTxdsrvttgen, 11:0, scratch159, 31:20);528s(EmcQuseBrlshft3, 19:0, scratch160, 19:0);529s(EmcPmacroVttgenCtrl0, 3:0, scratch160, 23:20);530s(EmcPmacroVttgenCtrl0, 11:8, scratch160, 27:24);531s(EmcPmacroVttgenCtrl0, 19:16, scratch160, 31:28);532s(EmcPmacroVttgenCtrl1, 19:0, scratch161, 19:0);533s(EmcCmdBrlshft2, 5:0, scratch161, 25:20);534s(EmcCmdBrlshft3, 5:0, scratch161, 31:26);535s(EmcAutoCalConfig3, 5:0, scratch162, 5:0);536s(EmcAutoCalConfig3, 13:8, scratch162, 11:6);537s(EmcAutoCalConfig3, 18:16, scratch162, 14:12);538s(EmcAutoCalConfig3, 22:20, scratch162, 17:15);539s(EmcTRefBw, 13:0, scratch162, 31:18);540s(EmcAutoCalConfig4, 5:0, scratch163, 5:0);541s(EmcAutoCalConfig4, 13:8, scratch163, 11:6);542s(EmcAutoCalConfig4, 18:16, scratch163, 14:12);543s(EmcAutoCalConfig4, 22:20, scratch163, 17:15);544s(EmcQpop, 6:0, scratch163, 24:18);545s(EmcQpop, 22:16, scratch163, 31:25);546s(EmcAutoCalConfig5, 5:0, scratch164, 5:0);547s(EmcAutoCalConfig5, 13:8, scratch164, 11:6);548s(EmcAutoCalConfig5, 18:16, scratch164, 14:12);549s(EmcAutoCalConfig5, 22:20, scratch164, 17:15);550s(EmcPmacroAutocalCfgCommon, 5:0, scratch164, 23:18);551s(EmcPmacroAutocalCfgCommon, 13:8, scratch164, 29:24);552s(EmcPmacroAutocalCfgCommon, 16:16, scratch164, 30:30);553s(EmcPmacroTxPwrd2, 27:27, scratch164, 31:31);554s(EmcAutoCalConfig6, 5:0, scratch165, 5:0);555s(EmcAutoCalConfig6, 13:8, scratch165, 11:6);556s(EmcAutoCalConfig6, 18:16, scratch165, 14:12);557s(EmcAutoCalConfig6, 22:20, scratch165, 17:15);558s(EmcWev, 5:0, scratch165, 23:18);559s(EmcWsv, 5:0, scratch165, 29:24);560s(EmcPmacroTxPwrd2, 29:28, scratch165, 31:30);561s(EmcAutoCalConfig7, 5:0, scratch166, 5:0);562s(EmcAutoCalConfig7, 13:8, scratch166, 11:6);563s(EmcAutoCalConfig7, 18:16, scratch166, 14:12);564s(EmcAutoCalConfig7, 22:20, scratch166, 17:15);565s(EmcCfg3, 2:0, scratch166, 20:18);566s(EmcCfg3, 6:4, scratch166, 23:21);567s(EmcQuseWidth, 3:0, scratch166, 27:24);568s(EmcQuseWidth, 29:28, scratch166, 29:28);569s(EmcPmacroTxPwrd3, 1:0, scratch166, 31:30);570s(EmcAutoCalConfig8, 5:0, scratch167, 5:0);571s(EmcAutoCalConfig8, 13:8, scratch167, 11:6);572s(EmcAutoCalConfig8, 18:16, scratch167, 14:12);573s(EmcAutoCalConfig8, 22:20, scratch167, 17:15);574s(EmcPmacroBgBiasCtrl0, 2:0, scratch167, 20:18);575s(EmcPmacroBgBiasCtrl0, 6:4, scratch167, 23:21);576s(McEmemArbTimingRcd, 5:0, scratch167, 29:24);577s(EmcPmacroTxPwrd3, 3:2, scratch167, 31:30);578s(EmcXm2CompPadCtrl2, 17:0, scratch168, 17:0);579s(McEmemArbTimingCcdmw, 5:0, scratch168, 23:18);580s(McEmemArbOverride, 27:27, scratch168, 24:24);581s(McEmemArbOverride, 26:26, scratch168, 25:25);582s(McEmemArbOverride, 16:16, scratch168, 26:26);583s(McEmemArbOverride, 10:10, scratch168, 27:27);584s(McEmemArbOverride, 4:4, scratch168, 28:28);585s(McEmemArbOverride, 3:3, scratch168, 29:29);586s(EmcPmacroTxPwrd3, 5:4, scratch168, 31:30);587s(EmcXm2CompPadCtrl3, 17:0, scratch169, 17:0);588s(EmcRext, 4:0, scratch169, 22:18);589s(EmcTClkStop, 4:0, scratch169, 27:23);590s(EmcPmacroTxPwrd3, 9:6, scratch169, 31:28);591s(EmcZcalWaitCnt, 10:0, scratch170, 10:0);592s(EmcZcalWaitCnt, 21:16, scratch170, 16:11);593s(EmcZcalWaitCnt, 31:31, scratch170, 17:17);594s(EmcWext, 4:0, scratch170, 22:18);595s(EmcRefctrl2, 0:0, scratch170, 23:23);596s(EmcRefctrl2, 26:24, scratch170, 26:24);597s(EmcRefctrl2, 31:31, scratch170, 27:27);598s(EmcPmacroTxPwrd3, 13:10, scratch170, 31:28);599s(EmcZcalMrwCmd, 7:0, scratch171, 7:0);600s(EmcZcalMrwCmd, 23:16, scratch171, 15:8);601s(EmcZcalMrwCmd, 31:30, scratch171, 17:16);602s(EmcWeDuration, 4:0, scratch171, 22:18);603s(EmcWsDuration, 4:0, scratch171, 27:23);604s(EmcPmacroTxPwrd3, 19:16, scratch171, 31:28);605s(EmcSwizzleRank0Byte0, 2:0, scratch172, 2:0);606s(EmcSwizzleRank0Byte0, 6:4, scratch172, 5:3);607s(EmcSwizzleRank0Byte0, 10:8, scratch172, 8:6);608s(EmcSwizzleRank0Byte0, 14:12, scratch172, 11:9);609s(EmcSwizzleRank0Byte0, 18:16, scratch172, 14:12);610s(EmcSwizzleRank0Byte0, 22:20, scratch172, 17:15);611s(EmcPutermWidth, 31:31, scratch172, 18:18);612s(EmcPutermWidth, 3:0, scratch172, 22:19);613s(McEmemArbTimingRrd, 4:0, scratch172, 27:23);614s(EmcPmacroTxPwrd3, 23:20, scratch172, 31:28);615s(EmcSwizzleRank0Byte1, 2:0, scratch173, 2:0);616s(EmcSwizzleRank0Byte1, 6:4, scratch173, 5:3);617s(EmcSwizzleRank0Byte1, 10:8, scratch173, 8:6);618s(EmcSwizzleRank0Byte1, 14:12, scratch173, 11:9);619s(EmcSwizzleRank0Byte1, 18:16, scratch173, 14:12);620s(EmcSwizzleRank0Byte1, 22:20, scratch173, 17:15);621s(McEmemArbTimingR2R, 4:0, scratch173, 22:18);622s(McEmemArbTimingW2W, 4:0, scratch173, 27:23);623s(EmcPmacroTxPwrd3, 27:24, scratch173, 31:28);624s(EmcSwizzleRank0Byte2, 2:0, scratch174, 2:0);625s(EmcSwizzleRank0Byte2, 6:4, scratch174, 5:3);626s(EmcSwizzleRank0Byte2, 10:8, scratch174, 8:6);627s(EmcSwizzleRank0Byte2, 14:12, scratch174, 11:9);628s(EmcSwizzleRank0Byte2, 18:16, scratch174, 14:12);629s(EmcSwizzleRank0Byte2, 22:20, scratch174, 17:15);630s(EmcPmacroTxPwrd3, 29:28, scratch174, 19:18);631s(EmcPmacroTxSelClkSrc0, 11:0, scratch174, 31:20);632s(EmcSwizzleRank0Byte3, 2:0, scratch175, 2:0);633s(EmcSwizzleRank0Byte3, 6:4, scratch175, 5:3);634s(EmcSwizzleRank0Byte3, 10:8, scratch175, 8:6);635s(EmcSwizzleRank0Byte3, 14:12, scratch175, 11:9);636s(EmcSwizzleRank0Byte3, 18:16, scratch175, 14:12);637s(EmcSwizzleRank0Byte3, 22:20, scratch175, 17:15);638s(EmcPmacroTxSelClkSrc0, 27:16, scratch175, 29:18);639s(EmcPmacroTxSelClkSrc1, 1:0, scratch175, 31:30);640s(EmcSwizzleRank1Byte0, 2:0, scratch176, 2:0);641s(EmcSwizzleRank1Byte0, 6:4, scratch176, 5:3);642s(EmcSwizzleRank1Byte0, 10:8, scratch176, 8:6);643s(EmcSwizzleRank1Byte0, 14:12, scratch176, 11:9);644s(EmcSwizzleRank1Byte0, 18:16, scratch176, 14:12);645s(EmcSwizzleRank1Byte0, 22:20, scratch176, 17:15);646s(EmcPmacroTxSelClkSrc1, 11:2, scratch176, 27:18);647s(EmcPmacroTxSelClkSrc1, 19:16, scratch176, 31:28);648s(EmcSwizzleRank1Byte1, 2:0, scratch177, 2:0);649s(EmcSwizzleRank1Byte1, 6:4, scratch177, 5:3);650s(EmcSwizzleRank1Byte1, 10:8, scratch177, 8:6);651s(EmcSwizzleRank1Byte1, 14:12, scratch177, 11:9);652s(EmcSwizzleRank1Byte1, 18:16, scratch177, 14:12);653s(EmcSwizzleRank1Byte1, 22:20, scratch177, 17:15);654s(EmcPmacroTxSelClkSrc1, 27:20, scratch177, 25:18);655s(EmcPmacroTxSelClkSrc3, 5:0, scratch177, 31:26);656s(EmcSwizzleRank1Byte2, 2:0, scratch178, 2:0);657s(EmcSwizzleRank1Byte2, 6:4, scratch178, 5:3);658s(EmcSwizzleRank1Byte2, 10:8, scratch178, 8:6);659s(EmcSwizzleRank1Byte2, 14:12, scratch178, 11:9);660s(EmcSwizzleRank1Byte2, 18:16, scratch178, 14:12);661s(EmcSwizzleRank1Byte2, 22:20, scratch178, 17:15);662s(EmcPmacroTxSelClkSrc3, 11:6, scratch178, 23:18);663s(EmcPmacroTxSelClkSrc3, 23:16, scratch178, 31:24);664s(EmcSwizzleRank1Byte3, 2:0, scratch179, 2:0);665s(EmcSwizzleRank1Byte3, 6:4, scratch179, 5:3);666s(EmcSwizzleRank1Byte3, 10:8, scratch179, 8:6);667s(EmcSwizzleRank1Byte3, 14:12, scratch179, 11:9);668s(EmcSwizzleRank1Byte3, 18:16, scratch179, 14:12);669s(EmcSwizzleRank1Byte3, 22:20, scratch179, 17:15);670s(EmcPmacroTxSelClkSrc3, 27:24, scratch179, 21:18);671s(EmcPmacroTxSelClkSrc2, 9:0, scratch179, 31:22);672s(EmcPmacroCmdBrickCtrlFdpd, 17:0, scratch180, 17:0);673s(EmcPmacroTxSelClkSrc2, 11:10, scratch180, 19:18);674s(EmcPmacroTxSelClkSrc2, 27:16, scratch180, 31:20);675s(EmcPmacroDataBrickCtrlFdpd, 17:0, scratch181, 17:0);676s(EmcPmacroTxSelClkSrc4, 11:0, scratch181, 29:18);677s(EmcPmacroTxSelClkSrc4, 17:16, scratch181, 31:30);678s(EmcFbioCfg7, 16:0, scratch182, 16:0);679s(McEmemArbRefpbBankCtrl, 6:0, scratch182, 23:17);680s(McEmemArbRefpbBankCtrl, 14:8, scratch182, 30:24);681s(McEmemArbRefpbBankCtrl, 31:31, scratch182, 31:31);682s(EmcDynSelfRefControl, 15:0, scratch183, 15:0);683s(EmcDynSelfRefControl, 31:31, scratch183, 16:16);684s(EmcPmacroTxSelClkSrc4, 27:18, scratch183, 26:17);685s(EmcPmacroTxSelClkSrc5, 4:0, scratch183, 31:27);686s(EmcDllCfg1, 16:0, scratch184, 16:0);687s(EmcPmacroTxSelClkSrc5, 11:5, scratch184, 23:17);688s(EmcPmacroTxSelClkSrc5, 23:16, scratch184, 31:24);689s(EmcPmacroPadCfgCtrl, 1:0, scratch185, 1:0);690s(EmcPmacroPadCfgCtrl, 6:5, scratch185, 3:2);691s(EmcPmacroPadCfgCtrl, 11:9, scratch185, 6:4);692s(EmcPmacroPadCfgCtrl, 13:13, scratch185, 7:7);693s(EmcPmacroPadCfgCtrl, 17:16, scratch185, 9:8);694s(EmcPmacroPadCfgCtrl, 21:20, scratch185, 11:10);695s(EmcPmacroPadCfgCtrl, 25:24, scratch185, 13:12);696s(EmcPmacroPadCfgCtrl, 30:28, scratch185, 16:14);697s(EmcPmacroTxSelClkSrc5, 27:24, scratch185, 20:17);698s(EmcPmacroCmdPadTxCtrl, 1:0, scratch185, 22:21);699s(EmcPmacroCmdPadTxCtrl, 5:4, scratch185, 24:23);700s(EmcPmacroCmdPadTxCtrl, 9:8, scratch185, 26:25);701s(EmcPmacroCmdPadTxCtrl, 13:12, scratch185, 28:27);702s(EmcPmacroCmdPadTxCtrl, 16:16, scratch185, 29:29);703s(EmcPmacroCmdPadTxCtrl, 21:20, scratch185, 31:30);704s(EmcRefresh, 15:0, scratch186, 15:0);705s(EmcCmdQ, 4:0, scratch186, 20:16);706s(EmcCmdQ, 10:8, scratch186, 23:21);707s(EmcCmdQ, 14:12, scratch186, 26:24);708s(EmcCmdQ, 28:24, scratch186, 31:27);709s(EmcAcpdControl, 15:0, scratch187, 15:0);710s(EmcAutoCalVrefSel1, 15:0, scratch187, 31:16);711s(EmcXm2CompPadCtrl, 1:0, scratch188, 1:0);712s(EmcXm2CompPadCtrl, 6:3, scratch188, 5:2);713s(EmcXm2CompPadCtrl, 9:9, scratch188, 6:6);714s(EmcXm2CompPadCtrl, 19:11, scratch188, 15:7);715s(EmcCfgDigDllPeriod, 15:0, scratch188, 31:16);716s(EmcCfgDigDll_1, 15:0, scratch189, 15:0);717s(EmcPreRefreshReqCnt, 15:0, scratch189, 31:16);718s(EmcPmacroCmdPadTxCtrl, 27:24, scratch190, 19:16);719s(EmcPmacroDataPadTxCtrl, 1:0, scratch190, 21:20);720s(EmcPmacroDataPadTxCtrl, 5:4, scratch190, 23:22);721s(EmcPmacroDataPadTxCtrl, 9:8, scratch190, 25:24);722s(EmcPmacroDataPadTxCtrl, 13:12, scratch190, 27:26);723s(EmcPmacroDataPadTxCtrl, 16:16, scratch190, 28:28);724s(EmcPmacroDataPadTxCtrl, 21:20, scratch190, 30:29);725s(EmcPmacroDataPadTxCtrl, 24:24, scratch190, 31:31);726s(EmcPmacroDataPadTxCtrl, 27:25, scratch191, 2:0);727728s(EmcPinGpio, 1:0, scratch8, 31:30);729s(EmcPinGpioEn, 1:0, scratch9, 31:30);730s(EmcDevSelect, 1:0, scratch10, 31:30);731s(EmcZcalWarmColdBootEnables, 1:0, scratch11, 31:30);732s(EmcCfgDigDllPeriodWarmBoot, 1:0, scratch12, 31:30);733s32(EmcBctSpare13, scratch31);734s32(EmcBctSpare12, scratch32);735s32(EmcBctSpare7, scratch33);736s32(EmcBctSpare6, scratch40);737s32(EmcBctSpare5, scratch42);738s32(EmcBctSpare4, scratch44);739s32(EmcBctSpare3, scratch45);740s32(EmcBctSpare2, scratch46);741s32(EmcBctSpare1, scratch47);742s32(EmcBctSpare0, scratch48);743s32(EmcBctSpare9, scratch50);744s32(EmcBctSpare8, scratch51);745s32(BootRomPatchData, scratch56);746s32(BootRomPatchControl, scratch57);747s(McClkenOverrideAllWarmBoot, 0:0, scratch58, 31:31);748s(EmcClkenOverrideAllWarmBoot, 0:0, scratch59, 30:30);749s(EmcMrsWarmBootEnable, 0:0, scratch59, 31:31);750s(ClearClk2Mc1, 0:0, scratch60, 30:30);751s(EmcWarmBootExtraModeRegWriteEnable, 0:0, scratch60, 31:31);752s(ClkRstControllerPllmMisc2OverrideEnable, 0:0, scratch61, 30:30);753s(EmcDbgWriteMux, 0:0, scratch61, 31:31);754s(EmcExtraRefreshNum, 2:0, scratch62, 31:29);755s(PmcIoDpd3ReqWait, 2:0, scratch68, 30:28);756s(AhbArbitrationXbarCtrlMemInitDone, 0:0, scratch68, 31:31);757s(MemoryType, 2:0, scratch69, 30:28);758s(PmcIoDpd4ReqWait, 2:0, scratch70, 30:28);759s(EmcTimingControlWait, 7:0, scratch86, 31:24);760s(EmcZcalWarmBootWait, 7:0, scratch87, 31:24);761s(WarmBootWait, 7:0, scratch88, 31:24);762s(EmcPinProgramWait, 7:0, scratch89, 31:24);763s(EmcAutoCalWait, 9:0, scratch101, 31:22);764s(SwizzleRankByteEncode, 15:0, scratch190, 15:0);765766// LPDDR4 MRW.767s(EmcMrwLpddr2ZcalWarmBoot, 23:16, scratch5, 7:0);768s(EmcMrwLpddr2ZcalWarmBoot, 7:0, scratch5, 15:8);769s(EmcWarmBootMrwExtra, 23:16, scratch5, 23:16);770s(EmcWarmBootMrwExtra, 7:0, scratch5, 31:24);771s(EmcMrwLpddr2ZcalWarmBoot, 31:30, scratch6, 1:0);772s(EmcWarmBootMrwExtra, 31:30, scratch6, 3:2);773s(EmcMrwLpddr2ZcalWarmBoot, 27:26, scratch6, 5:4);774s(EmcWarmBootMrwExtra, 27:26, scratch6, 7:6);775s(EmcMrw6, 27:0, scratch8, 27:0);776s(EmcMrw6, 31:30, scratch8, 29:28);777s(EmcMrw8, 27:0, scratch9, 27:0);778s(EmcMrw8, 31:30, scratch9, 29:28);779s(EmcMrw9, 27:0, scratch10, 27:0);780s(EmcMrw9, 31:30, scratch10, 29:28);781s(EmcMrw10, 27:0, scratch11, 27:0);782s(EmcMrw10, 31:30, scratch11, 29:28);783s(EmcMrw12, 27:0, scratch12, 27:0);784s(EmcMrw12, 31:30, scratch12, 29:28);785s(EmcMrw13, 27:0, scratch13, 27:0);786s(EmcMrw13, 31:30, scratch13, 29:28);787s(EmcMrw14, 27:0, scratch14, 27:0);788s(EmcMrw14, 31:30, scratch14, 29:28);789s(EmcMrw1, 7:0, scratch15, 7:0);790s(EmcMrw1, 23:16, scratch15, 15:8);791s(EmcMrw1, 27:26, scratch15, 17:16);792s(EmcMrw1, 31:30, scratch15, 19:18);793s(EmcWarmBootMrwExtra, 7:0, scratch16, 7:0);794s(EmcWarmBootMrwExtra, 23:16, scratch16, 15:8);795s(EmcWarmBootMrwExtra, 27:26, scratch16, 17:16);796s(EmcWarmBootMrwExtra, 31:30, scratch16, 19:18);797s(EmcMrw2, 7:0, scratch17, 7:0);798s(EmcMrw2, 23:16, scratch17, 15:8);799s(EmcMrw2, 27:26, scratch17, 17:16);800s(EmcMrw2, 31:30, scratch17, 19:18);801s(EmcMrw3, 7:0, scratch18, 7:0);802s(EmcMrw3, 23:16, scratch18, 15:8);803s(EmcMrw3, 27:26, scratch18, 17:16);804s(EmcMrw3, 31:30, scratch18, 19:18);805s(EmcMrw4, 7:0, scratch19, 7:0);806s(EmcMrw4, 23:16, scratch19, 15:8);807s(EmcMrw4, 27:26, scratch19, 17:16);808s(EmcMrw4, 31:30, scratch19, 19:18);809810s32(EmcCmdMappingByte, secure_scratch8);811s32(EmcPmacroBrickMapping0, secure_scratch9);812s32(EmcPmacroBrickMapping1, secure_scratch10);813s32(EmcPmacroBrickMapping2, secure_scratch11);814s32(McVideoProtectGpuOverride0, secure_scratch12);815s(EmcCmdMappingCmd0_0, 6:0, secure_scratch13, 6:0);816s(EmcCmdMappingCmd0_0, 14:8, secure_scratch13, 13:7);817s(EmcCmdMappingCmd0_0, 22:16, secure_scratch13, 20:14);818s(EmcCmdMappingCmd0_0, 30:24, secure_scratch13, 27:21);819s(McVideoProtectBomAdrHi, 1:0, secure_scratch13, 29:28);820s(McVideoProtectWriteAccess, 1:0, secure_scratch13, 31:30);821s(EmcCmdMappingCmd0_1, 6:0, secure_scratch14, 6:0);822s(EmcCmdMappingCmd0_1, 14:8, secure_scratch14, 13:7);823s(EmcCmdMappingCmd0_1, 22:16, secure_scratch14, 20:14);824s(EmcCmdMappingCmd0_1, 30:24, secure_scratch14, 27:21);825s(McSecCarveoutAdrHi, 1:0, secure_scratch14, 29:28);826s(McMtsCarveoutAdrHi, 1:0, secure_scratch14, 31:30);827s(EmcCmdMappingCmd1_0, 6:0, secure_scratch15, 6:0);828s(EmcCmdMappingCmd1_0, 14:8, secure_scratch15, 13:7);829s(EmcCmdMappingCmd1_0, 22:16, secure_scratch15, 20:14);830s(EmcCmdMappingCmd1_0, 30:24, secure_scratch15, 27:21);831s(McGeneralizedCarveout5BomHi, 1:0, secure_scratch15, 29:28);832s(McGeneralizedCarveout3BomHi, 1:0, secure_scratch15, 31:30);833s(EmcCmdMappingCmd1_1, 6:0, secure_scratch16, 6:0);834s(EmcCmdMappingCmd1_1, 14:8, secure_scratch16, 13:7);835s(EmcCmdMappingCmd1_1, 22:16, secure_scratch16, 20:14);836s(EmcCmdMappingCmd1_1, 30:24, secure_scratch16, 27:21);837s(McGeneralizedCarveout2BomHi, 1:0, secure_scratch16, 29:28);838s(McGeneralizedCarveout4BomHi, 1:0, secure_scratch16, 31:30);839s(EmcCmdMappingCmd2_0, 6:0, secure_scratch17, 6:0);840s(EmcCmdMappingCmd2_0, 14:8, secure_scratch17, 13:7);841s(EmcCmdMappingCmd2_0, 22:16, secure_scratch17, 20:14);842s(EmcCmdMappingCmd2_0, 30:24, secure_scratch17, 27:21);843s(McGeneralizedCarveout1BomHi, 1:0, secure_scratch17, 29:28);844s(EmcAdrCfg, 0:0, secure_scratch17, 30:30);845s(EmcFbioSpare, 1:1, secure_scratch17, 31:31);846s(EmcCmdMappingCmd2_1, 6:0, secure_scratch18, 6:0);847s(EmcCmdMappingCmd2_1, 14:8, secure_scratch18, 13:7);848s(EmcCmdMappingCmd2_1, 22:16, secure_scratch18, 20:14);849s(EmcCmdMappingCmd2_1, 30:24, secure_scratch18, 27:21);850s(EmcFbioCfg8, 15:15, secure_scratch18, 28:28);851s(McEmemAdrCfg, 0:0, secure_scratch18, 29:29);852s(McSecCarveoutProtectWriteAccess, 0:0, secure_scratch18, 30:30);853s(McMtsCarveoutRegCtrl, 0:0, secure_scratch18, 31:31);854s(EmcCmdMappingCmd3_0, 6:0, secure_scratch19, 6:0);855s(EmcCmdMappingCmd3_0, 14:8, secure_scratch19, 13:7);856s(EmcCmdMappingCmd3_0, 22:16, secure_scratch19, 20:14);857s(EmcCmdMappingCmd3_0, 30:24, secure_scratch19, 27:21);858s(McGeneralizedCarveout2Cfg0, 6:3, secure_scratch19, 31:28);859s(EmcCmdMappingCmd3_1, 6:0, secure_scratch20, 6:0);860s(EmcCmdMappingCmd3_1, 14:8, secure_scratch20, 13:7);861s(EmcCmdMappingCmd3_1, 22:16, secure_scratch20, 20:14);862s(EmcCmdMappingCmd3_1, 30:24, secure_scratch20, 27:21);863s(McGeneralizedCarveout2Cfg0, 10:7, secure_scratch20, 31:28);864s(McGeneralizedCarveout4Cfg0, 26:0, secure_scratch39, 26:0);865s(McGeneralizedCarveout2Cfg0, 17:14, secure_scratch39, 30:27);866s(McVideoProtectVprOverride, 0:0, secure_scratch39, 31:31);867s(McGeneralizedCarveout5Cfg0, 26:0, secure_scratch40, 26:0);868s(McGeneralizedCarveout2Cfg0, 21:18, secure_scratch40, 30:27);869s(McVideoProtectVprOverride, 1:1, secure_scratch40, 31:31);870s(EmcCmdMappingCmd0_2, 6:0, secure_scratch41, 6:0);871s(EmcCmdMappingCmd0_2, 14:8, secure_scratch41, 13:7);872s(EmcCmdMappingCmd0_2, 22:16, secure_scratch41, 20:14);873s(EmcCmdMappingCmd0_2, 27:24, secure_scratch41, 24:21);874s(McGeneralizedCarveout1Cfg0, 6:3, secure_scratch41, 28:25);875s(McGeneralizedCarveout2Cfg0, 13:11, secure_scratch41, 31:29);876s(EmcCmdMappingCmd1_2, 6:0, secure_scratch42, 6:0);877s(EmcCmdMappingCmd1_2, 14:8, secure_scratch42, 13:7);878s(EmcCmdMappingCmd1_2, 22:16, secure_scratch42, 20:14);879s(EmcCmdMappingCmd1_2, 27:24, secure_scratch42, 24:21);880s(McGeneralizedCarveout1Cfg0, 13:7, secure_scratch42, 31:25);881s(EmcCmdMappingCmd2_2, 6:0, secure_scratch43, 6:0);882s(EmcCmdMappingCmd2_2, 14:8, secure_scratch43, 13:7);883s(EmcCmdMappingCmd2_2, 22:16, secure_scratch43, 20:14);884s(EmcCmdMappingCmd2_2, 27:24, secure_scratch43, 24:21);885s(McGeneralizedCarveout1Cfg0, 17:14, secure_scratch43, 28:25);886s(McGeneralizedCarveout3Cfg0, 13:11, secure_scratch43, 31:29);887s(EmcCmdMappingCmd3_2, 6:0, secure_scratch44, 6:0);888s(EmcCmdMappingCmd3_2, 14:8, secure_scratch44, 13:7);889s(EmcCmdMappingCmd3_2, 22:16, secure_scratch44, 20:14);890s(EmcCmdMappingCmd3_2, 27:24, secure_scratch44, 24:21);891s(McGeneralizedCarveout1Cfg0, 21:18, secure_scratch44, 28:25);892s(McVideoProtectVprOverride, 3:2, secure_scratch44, 30:29);893s(McVideoProtectVprOverride, 6:6, secure_scratch44, 31:31);894s(McEmemAdrCfgChannelMask, 31:9, secure_scratch45, 22:0);895s(McEmemAdrCfgDev0, 2:0, secure_scratch45, 25:23);896s(McEmemAdrCfgDev0, 9:8, secure_scratch45, 27:26);897s(McEmemAdrCfgDev0, 19:16, secure_scratch45, 31:28);898s(McEmemAdrCfgBankMask0, 31:10, secure_scratch46, 21:0);899s(McEmemAdrCfgDev1, 2:0, secure_scratch46, 24:22);900s(McEmemAdrCfgDev1, 9:8, secure_scratch46, 26:25);901s(McEmemAdrCfgDev1, 19:16, secure_scratch46, 30:27);902s(McVideoProtectVprOverride, 7:7, secure_scratch46, 31:31);903s(McEmemAdrCfgBankMask1, 31:10, secure_scratch47, 21:0);904s(McGeneralizedCarveout3Cfg0, 10:3, secure_scratch47, 29:22);905s(McVideoProtectVprOverride, 9:8, secure_scratch47, 31:30);906s(McEmemAdrCfgBankMask2, 31:10, secure_scratch48, 21:0);907s(McGeneralizedCarveout3Cfg0, 21:14, secure_scratch48, 29:22);908s(McVideoProtectVprOverride, 11:11, secure_scratch48, 30:30);909s(McVideoProtectVprOverride, 14:14, secure_scratch48, 31:31);910s(McVideoProtectGpuOverride1, 15:0, secure_scratch49, 15:0);911s(McEmemCfg, 13:0, secure_scratch49, 29:16);912s(McEmemCfg, 31:31, secure_scratch49, 30:30);913s(McVideoProtectVprOverride, 15:15, secure_scratch49, 31:31);914s(McGeneralizedCarveout3Bom, 31:17, secure_scratch50, 14:0);915s(McGeneralizedCarveout1Bom, 31:17, secure_scratch50, 29:15);916s(McVideoProtectVprOverride, 18:17, secure_scratch50, 31:30);917s(McGeneralizedCarveout4Bom, 31:17, secure_scratch51, 14:0);918s(McGeneralizedCarveout2Bom, 31:17, secure_scratch51, 29:15);919s(McVideoProtectVprOverride, 20:19, secure_scratch51, 31:30);920s(McGeneralizedCarveout5Bom, 31:17, secure_scratch52, 14:0);921s(McVideoProtectBom, 31:20, secure_scratch52, 26:15);922s(McVideoProtectVprOverride, 23:21, secure_scratch52, 29:27);923s(McVideoProtectVprOverride, 26:26, secure_scratch52, 30:30);924s(McVideoProtectVprOverride, 29:29, secure_scratch52, 31:31);925s(McVideoProtectSizeMb, 11:0, secure_scratch53, 11:0);926s(McSecCarveoutBom, 31:20, secure_scratch53, 23:12);927s(McVideoProtectVprOverride, 31:30, secure_scratch53, 25:24);928s(McVideoProtectVprOverride1, 1:0, secure_scratch53, 27:26);929s(McVideoProtectVprOverride1, 7:4, secure_scratch53, 31:28);930s(McSecCarveoutSizeMb, 11:0, secure_scratch54, 11:0);931s(McMtsCarveoutBom, 31:20, secure_scratch54, 23:12);932s(McVideoProtectVprOverride1, 15:8, secure_scratch54, 31:24);933s(McMtsCarveoutSizeMb, 11:0, secure_scratch55, 11:0);934s(McGeneralizedCarveout4Size128kb, 11:0, secure_scratch55, 23:12);935s(McVideoProtectVprOverride1, 16:16, secure_scratch55, 24:24);936s(McGeneralizedCarveout2Cfg0, 2:0, secure_scratch55, 27:25);937s(McGeneralizedCarveout2Cfg0, 25:22, secure_scratch55, 31:28);938s(McGeneralizedCarveout3Size128kb, 11:0, secure_scratch56, 11:0);939s(McGeneralizedCarveout2Size128kb, 11:0, secure_scratch56, 23:12);940s(McGeneralizedCarveout2Cfg0, 26:26, secure_scratch56, 24:24);941s(McGeneralizedCarveout1Cfg0, 2:0, secure_scratch56, 27:25);942s(McGeneralizedCarveout1Cfg0, 25:22, secure_scratch56, 31:28);943s(McGeneralizedCarveout1Size128kb, 11:0, secure_scratch57, 11:0);944s(McGeneralizedCarveout5Size128kb, 11:0, secure_scratch57, 23:12);945s(McGeneralizedCarveout1Cfg0, 26:26, secure_scratch57, 24:24);946s(McGeneralizedCarveout3Cfg0, 2:0, secure_scratch57, 27:25);947s(McGeneralizedCarveout3Cfg0, 25:22, secure_scratch57, 31:28);948s(McGeneralizedCarveout3Cfg0, 26:26, secure_scratch58, 0:0);949950s32(McGeneralizedCarveout1Access0, secure_scratch59);951s32(McGeneralizedCarveout1Access1, secure_scratch60);952s32(McGeneralizedCarveout1Access2, secure_scratch61);953s32(McGeneralizedCarveout1Access3, secure_scratch62);954s32(McGeneralizedCarveout1Access4, secure_scratch63);955s32(McGeneralizedCarveout2Access0, secure_scratch64);956s32(McGeneralizedCarveout2Access1, secure_scratch65);957s32(McGeneralizedCarveout2Access2, secure_scratch66);958s32(McGeneralizedCarveout2Access3, secure_scratch67);959s32(McGeneralizedCarveout2Access4, secure_scratch68);960s32(McGeneralizedCarveout3Access0, secure_scratch69);961s32(McGeneralizedCarveout3Access1, secure_scratch70);962s32(McGeneralizedCarveout3Access2, secure_scratch71);963s32(McGeneralizedCarveout3Access3, secure_scratch72);964s32(McGeneralizedCarveout3Access4, secure_scratch73);965s32(McGeneralizedCarveout4Access0, secure_scratch74);966s32(McGeneralizedCarveout4Access1, secure_scratch75);967s32(McGeneralizedCarveout4Access2, secure_scratch76);968s32(McGeneralizedCarveout4Access3, secure_scratch77);969s32(McGeneralizedCarveout4Access4, secure_scratch78);970s32(McGeneralizedCarveout5Access0, secure_scratch79);971s32(McGeneralizedCarveout5Access1, secure_scratch80);972s32(McGeneralizedCarveout5Access2, secure_scratch81);973s32(McGeneralizedCarveout5Access3, secure_scratch82);974s32(McGeneralizedCarveout1ForceInternalAccess0, secure_scratch84);975s32(McGeneralizedCarveout1ForceInternalAccess1, secure_scratch85);976s32(McGeneralizedCarveout1ForceInternalAccess2, secure_scratch86);977s32(McGeneralizedCarveout1ForceInternalAccess3, secure_scratch87);978s32(McGeneralizedCarveout1ForceInternalAccess4, secure_scratch88);979s32(McGeneralizedCarveout2ForceInternalAccess0, secure_scratch89);980s32(McGeneralizedCarveout2ForceInternalAccess1, secure_scratch90);981s32(McGeneralizedCarveout2ForceInternalAccess2, secure_scratch91);982s32(McGeneralizedCarveout2ForceInternalAccess3, secure_scratch92);983s32(McGeneralizedCarveout2ForceInternalAccess4, secure_scratch93);984s32(McGeneralizedCarveout3ForceInternalAccess0, secure_scratch94);985s32(McGeneralizedCarveout3ForceInternalAccess1, secure_scratch95);986s32(McGeneralizedCarveout3ForceInternalAccess2, secure_scratch96);987s32(McGeneralizedCarveout3ForceInternalAccess3, secure_scratch97);988s32(McGeneralizedCarveout3ForceInternalAccess4, secure_scratch98);989s32(McGeneralizedCarveout4ForceInternalAccess0, secure_scratch99);990s32(McGeneralizedCarveout4ForceInternalAccess1, secure_scratch100);991s32(McGeneralizedCarveout4ForceInternalAccess2, secure_scratch101);992s32(McGeneralizedCarveout4ForceInternalAccess3, secure_scratch102);993s32(McGeneralizedCarveout4ForceInternalAccess4, secure_scratch103);994s32(McGeneralizedCarveout5ForceInternalAccess0, secure_scratch104);995s32(McGeneralizedCarveout5ForceInternalAccess1, secure_scratch105);996s32(McGeneralizedCarveout5ForceInternalAccess2, secure_scratch106);997s32(McGeneralizedCarveout5ForceInternalAccess3, secure_scratch107);998999// PLLM.1000c32(0, scratch2);1001s(PllMInputDivider, 7:0, scratch2, 7:0);1002s(PllMFeedbackDivider, 7:0, scratch2, 15:8);1003s(PllMPostDivider, 4:0, scratch2, 20:16);1004s(PllMKVCO, 0:0, scratch2, 21:21);1005s(PllMKCP, 1:0, scratch2, 23:22);10061007c32(0, scratch35);1008s(PllMSetupControl, 15:0, scratch35, 15:0);10091010// PLLX.1011c32(0, scratch3);1012s(PllMInputDivider, 7:0, scratch3, 7:0);1013c(62, scratch3, 15:8); // 62 divn.1014c(0, scratch3, 20:16); // 0 divp.1015s(PllMKVCO, 0:0, scratch3, 21:21);1016s(PllMKCP, 1:0, scratch3, 23:22);10171018c32(0, scratch36);1019s(PllMSetupControl, 23:0, scratch36, 23:0);10201021// PLLM/PLLX.1022c32(0, scratch4);1023s(PllMStableTime, 9:0, scratch4, 9:0);1024s(PllMStableTime, 9:0, scratch4, 19:10);1025}10261027/*1028* This function reads SDRAM parameters from the common BCT format and1029* writes them into PMC scratch registers (where the BootROM expects them1030* on LP0 resume).1031*/1032static void _sdram_lp0_save_params_t210b01(sdram_params_t210b01_t *sdram)1033{1034pmc_regs_t210_t *pmc = (pmc_regs_t210_t *)PMC_BASE;10351036// Patch full access to carveout parameters and unprotect their regions.1037sdram->mc_generalized_carveout1_cfg0 = 0;1038sdram->mc_generalized_carveout2_cfg0 = 0;1039sdram->mc_generalized_carveout3_cfg0 = 0;1040sdram->mc_generalized_carveout4_cfg0 = 0;1041sdram->mc_generalized_carveout5_cfg0 = 0;10421043// Patch SDRAM parameters.1044u32 t0 = (sdram->emc_swizzle_rank0_byte0 << 5 >> 29) > (sdram->emc_swizzle_rank0_byte0 << 1 >> 29);1045u32 t1 = (t0 & 0xFFFFFFEF) | (((sdram->emc_swizzle_rank1_byte0 << 5 >> 29) > (sdram->emc_swizzle_rank1_byte0 << 1 >> 29)) << 4);1046u32 t2 = (t1 & 0xFFFFFFFD) | (((sdram->emc_swizzle_rank0_byte1 << 5 >> 29) > (sdram->emc_swizzle_rank0_byte1 << 1 >> 29)) << 1);1047u32 t3 = (t2 & 0xFFFFFFDF) | (((sdram->emc_swizzle_rank1_byte1 << 5 >> 29) > (sdram->emc_swizzle_rank1_byte1 << 1 >> 29)) << 5);1048u32 t4 = (t3 & 0xFFFFFFFB) | (((sdram->emc_swizzle_rank0_byte2 << 5 >> 29) > (sdram->emc_swizzle_rank0_byte2 << 1 >> 29)) << 2);1049u32 t5 = (t4 & 0xFFFFFFBF) | (((sdram->emc_swizzle_rank1_byte2 << 5 >> 29) > (sdram->emc_swizzle_rank1_byte2 << 1 >> 29)) << 6);1050u32 t6 = (t5 & 0xFFFFFFF7) | (((sdram->emc_swizzle_rank0_byte3 << 5 >> 29) > (sdram->emc_swizzle_rank0_byte3 << 1 >> 29)) << 3);1051u32 t7 = (t6 & 0xFFFFFF7F) | (((sdram->emc_swizzle_rank1_byte3 << 5 >> 29) > (sdram->emc_swizzle_rank1_byte3 << 1 >> 29)) << 7);1052sdram->swizzle_rank_byte_encode = t7;1053sdram->emc_bct_spare2 = 0x40000DD8;1054sdram->emc_bct_spare3 = t7;10551056s(emc_clock_source, 7:0, scratch6, 15:8);1057s(emc_clock_source_dll, 7:0, scratch6, 23:16);1058s(emc_clock_source, 31:29, scratch6, 26:24);1059s(emc_clock_source_dll, 31:29, scratch6, 29:27);1060s(emc_clock_source_dll, 11:10, scratch6, 31:30);1061s(clk_rst_pllm_misc20_override, 9:8, scratch7, 1:0);1062s(clk_rst_pllm_misc20_override, 2:1, scratch7, 3:2);1063s(emc_zqcal_lpddr4_warm_boot, 31:30, scratch7, 5:4);1064s(emc_clock_source, 27:27, scratch7, 6:6);1065s(emc_clock_source, 26:26, scratch7, 7:7);1066s(emc_clock_source, 15:15, scratch7, 8:8);1067s(emc_clock_source, 25:25, scratch7, 9:9);1068s(emc_clock_source, 20:19, scratch7, 11:10);1069s(emc_clock_source, 16:16, scratch7, 12:12);1070s(clk_rst_pllm_misc20_override, 13:13, scratch7, 13:13);1071s(clk_rst_pllm_misc20_override, 12:12, scratch7, 14:14);1072s(clk_rst_pllm_misc20_override, 11:11, scratch7, 15:15);1073s(clk_rst_pllm_misc20_override, 10:10, scratch7, 16:16);1074s(clk_rst_pllm_misc20_override, 5:5, scratch7, 17:17);1075s(clk_rst_pllm_misc20_override, 4:4, scratch7, 18:18);1076s(clk_rst_pllm_misc20_override, 3:3, scratch7, 19:19);1077s(clk_rst_pllm_misc20_override, 0:0, scratch7, 20:20);1078s(emc_zqcal_lpddr4_warm_boot, 1:0, scratch7, 22:21);1079s(emc_zqcal_lpddr4_warm_boot, 4:4, scratch7, 23:23);1080s(emc_rc, 7:0, scratch7, 31:24);1081s(emc_pmacro_bg_bias_ctrl0, 13:12, scratch8, 31:30);1082s(emc_fdpd_ctrl_cmd_no_ramp, 0:0, scratch14, 30:30);1083s(emc_cfg_pipe_clk, 0:0, scratch14, 31:31);1084s(emc_qrst, 6:0, scratch15, 26:20);1085s(emc_qrst, 20:16, scratch15, 31:27);1086s(emc_pmacro_cmd_tx_drive, 5:0, scratch16, 25:20);1087s(emc_pmacro_cmd_tx_drive, 13:8, scratch16, 31:26);1088s(emc_fbio_cfg8, 27:16, scratch17, 31:20);1089s(emc_txsr_dll, 11:0, scratch18, 31:20);1090s(emc_txdsrvttgen, 11:0, scratch19, 31:20);1091s32(emc_cfg_rsv, scratch22);1092s32(emc_auto_cal_config, scratch23);1093s32(emc_auto_cal_vref_sel0, scratch24);1094s32(emc_pmacro_brick_ctrl_rfu1, scratch25);1095s32(emc_pmacro_brick_ctrl_rfu2, scratch26);1096s32(emc_pmc_scratch1, scratch27);1097s32(emc_pmc_scratch2, scratch28);1098s32(emc_pmc_scratch3, scratch29);1099s32(emc_pmacro_perbit_rfu_ctrl0, scratch30);1100s32(emc_pmacro_perbit_rfu_ctrl1, scratch31);1101s32(emc_pmacro_perbit_rfu_ctrl2, scratch32);1102s32(emc_pmacro_perbit_rfu_ctrl3, scratch33);1103s32(emc_pmacro_perbit_rfu_ctrl4, scratch40);1104s32(emc_pmacro_perbit_rfu_ctrl5, scratch42);1105s32(mc_emem_arb_da_turns, scratch44);1106s(emc_fbio_spare, 31:24, scratch64, 7:0);1107s(emc_fbio_spare, 23:16, scratch64, 15:8);1108s(emc_fbio_spare, 15:8, scratch64, 23:16);1109s(emc_fbio_spare, 7:2, scratch64, 29:24);1110s(emc_fbio_spare, 0:0, scratch64, 30:30);1111s(mc_emem_arb_misc2, 0:0, scratch64, 31:31);1112s(mc_emem_arb_misc0, 14:0, scratch65, 14:0);1113s(mc_emem_arb_misc0, 30:16, scratch65, 29:15);1114s(mc_da_cfg0, 0:0, scratch65, 30:30);1115s(emc_fdpd_ctrl_cmd, 16:0, scratch66, 16:0);1116s(emc_fdpd_ctrl_cmd, 31:20, scratch66, 28:17);1117s(emc_auto_cal_config2, 27:0, scratch67, 27:0);1118s(emc_burst_refresh_num, 3:0, scratch67, 31:28);1119s(emc_cfg_dig_dll, 10:0, scratch68, 10:0);1120s(emc_cfg_dig_dll, 25:12, scratch68, 24:11);1121s(emc_cfg_dig_dll, 27:27, scratch68, 25:25);1122s(emc_cfg_dig_dll, 31:30, scratch68, 27:26);1123s(emc_tppd, 3:0, scratch68, 31:28);1124s(emc_fdpd_ctrl_dq, 16:0, scratch69, 16:0);1125s(emc_fdpd_ctrl_dq, 28:20, scratch69, 25:17);1126s(emc_fdpd_ctrl_dq, 31:30, scratch69, 27:26);1127s(emc_r2r, 3:0, scratch69, 31:28);1128s(emc_pmacro_ib_vref_dq_0, 6:0, scratch70, 6:0);1129s(emc_pmacro_ib_vref_dq_0, 14:8, scratch70, 13:7);1130s(emc_pmacro_ib_vref_dq_0, 22:16, scratch70, 20:14);1131s(emc_pmacro_ib_vref_dq_0, 30:24, scratch70, 27:21);1132s(emc_w2w, 3:0, scratch70, 31:28);1133s(emc_pmacro_ib_vref_dq_1, 6:0, scratch71, 6:0);1134s(emc_pmacro_ib_vref_dq_1, 14:8, scratch71, 13:7);1135s(emc_pmacro_ib_vref_dq_1, 22:16, scratch71, 20:14);1136s(emc_pmacro_ib_vref_dq_1, 30:24, scratch71, 27:21);1137s(emc_pmacro_vttgen_ctrl0, 19:16, scratch71, 31:28);1138s(emc_pmacro_ib_vref_dqs_0, 6:0, scratch72, 6:0);1139s(emc_pmacro_ib_vref_dqs_0, 14:8, scratch72, 13:7);1140s(emc_pmacro_ib_vref_dqs_0, 22:16, scratch72, 20:14);1141s(emc_pmacro_ib_vref_dqs_0, 30:24, scratch72, 27:21);1142s(emc_pmacro_ib_vref_dqs_1, 6:0, scratch73, 6:0);1143s(emc_pmacro_ib_vref_dqs_1, 14:8, scratch73, 13:7);1144s(emc_pmacro_ib_vref_dqs_1, 22:16, scratch73, 20:14);1145s(emc_pmacro_ib_vref_dqs_1, 30:24, scratch73, 27:21);1146s(emc_pmacro_ddll_short_cmd_0, 6:0, scratch74, 6:0);1147s(emc_pmacro_ddll_short_cmd_0, 14:8, scratch74, 13:7);1148s(emc_pmacro_ddll_short_cmd_0, 22:16, scratch74, 20:14);1149s(emc_pmacro_ddll_short_cmd_0, 30:24, scratch74, 27:21);1150s(emc_pmacro_ddll_short_cmd_1, 6:0, scratch75, 6:0);1151s(emc_pmacro_ddll_short_cmd_1, 14:8, scratch75, 13:7);1152s(emc_pmacro_ddll_short_cmd_1, 22:16, scratch75, 20:14);1153s(emc_pmacro_ddll_short_cmd_1, 30:24, scratch75, 27:21);1154s(emc_dll_cfg0, 29:4, scratch76, 25:0);1155s(emc_rp, 5:0, scratch76, 31:26);1156s(emc_pmacro_tx_pwrd0, 10:0, scratch77, 10:0);1157s(emc_pmacro_tx_pwrd0, 13:12, scratch77, 12:11);1158s(emc_pmacro_tx_pwrd0, 26:16, scratch77, 23:13);1159s(emc_pmacro_tx_pwrd0, 29:28, scratch77, 25:24);1160s(emc_r2w, 5:0, scratch77, 31:26);1161s(emc_pmacro_tx_pwrd1, 10:0, scratch78, 10:0);1162s(emc_pmacro_tx_pwrd1, 13:12, scratch78, 12:11);1163s(emc_pmacro_tx_pwrd1, 26:16, scratch78, 23:13);1164s(emc_pmacro_tx_pwrd1, 29:28, scratch78, 25:24);1165s(emc_w2r, 5:0, scratch78, 31:26);1166s(emc_pmacro_tx_pwrd2, 10:0, scratch79, 10:0);1167s(emc_pmacro_tx_pwrd2, 13:12, scratch79, 12:11);1168s(emc_pmacro_tx_pwrd2, 26:16, scratch79, 23:13);1169s(emc_pmacro_tx_pwrd2, 29:28, scratch79, 25:24);1170s(emc_r2p, 5:0, scratch79, 31:26);1171s(emc_pmacro_tx_pwrd3, 10:0, scratch80, 10:0);1172s(emc_pmacro_tx_pwrd3, 13:12, scratch80, 12:11);1173s(emc_pmacro_tx_pwrd3, 26:16, scratch80, 23:13);1174s(emc_pmacro_tx_pwrd3, 29:28, scratch80, 25:24);1175s(emc_ccdmw, 5:0, scratch80, 31:26);1176s(emc_pmacro_tx_pwrd4, 10:0, scratch81, 10:0);1177s(emc_pmacro_tx_pwrd4, 13:12, scratch81, 12:11);1178s(emc_pmacro_tx_pwrd4, 26:16, scratch81, 23:13);1179s(emc_pmacro_tx_pwrd4, 29:28, scratch81, 25:24);1180s(emc_rd_rcd, 5:0, scratch81, 31:26);1181s(emc_pmacro_tx_pwrd5, 10:0, scratch82, 10:0);1182s(emc_pmacro_tx_pwrd5, 13:12, scratch82, 12:11);1183s(emc_pmacro_tx_pwrd5, 26:16, scratch82, 23:13);1184s(emc_pmacro_tx_pwrd5, 29:28, scratch82, 25:24);1185s(emc_wr_rcd, 5:0, scratch82, 31:26);1186s(emc_auto_cal_channel, 5:0, scratch83, 5:0);1187s(emc_auto_cal_channel, 11:8, scratch83, 9:6);1188s(emc_auto_cal_channel, 27:16, scratch83, 21:10);1189s(emc_auto_cal_channel, 31:29, scratch83, 24:22);1190s(emc_config_sample_delay, 6:0, scratch83, 31:25);1191s(emc_pmacro_rx_term, 5:0, scratch84, 5:0);1192s(emc_pmacro_rx_term, 13:8, scratch84, 11:6);1193s(emc_pmacro_rx_term, 21:16, scratch84, 17:12);1194s(emc_pmacro_rx_term, 29:24, scratch84, 23:18);1195s(emc_sel_dpd_ctrl, 5:2, scratch84, 27:24);1196s(emc_sel_dpd_ctrl, 8:8, scratch84, 28:28);1197s(emc_sel_dpd_ctrl, 18:16, scratch84, 31:29);1198s(emc_pmacro_dq_tx_drive, 5:0, scratch85, 5:0);1199s(emc_pmacro_dq_tx_drive, 13:8, scratch85, 11:6);1200s(emc_pmacro_dq_tx_drive, 21:16, scratch85, 17:12);1201s(emc_pmacro_dq_tx_drive, 29:24, scratch85, 23:18);1202s(emc_obdly, 5:0, scratch85, 29:24);1203s(emc_obdly, 29:28, scratch85, 31:30);1204s(emc_pmacro_ca_tx_drive, 5:0, scratch86, 5:0);1205s(emc_pmacro_ca_tx_drive, 13:8, scratch86, 11:6);1206s(emc_pmacro_ca_tx_drive, 21:16, scratch86, 17:12);1207s(emc_pmacro_ca_tx_drive, 29:24, scratch86, 23:18);1208s(emc_pmacro_vttgen_ctrl1, 15:10, scratch86, 29:24);1209s(emc_pmacro_vttgen_ctrl1, 21:20, scratch86, 31:30);1210s(emc_pmacro_zcrtl, 27:4, scratch87, 23:0);1211s(emc_pmacro_vttgen_ctrl2, 23:16, scratch87, 31:24);1212s(emc_zcal_interval, 23:10, scratch88, 13:0);1213s(emc_zcal_interval, 9:0, scratch88, 23:14);1214s(mc_emem_arb_timing_rc, 7:0, scratch88, 31:24);1215s(emc_data_brlshft0, 23:0, scratch89, 23:0);1216s(mc_emem_arb_rsv, 7:0, scratch89, 31:24);1217s(emc_data_brlshft1, 23:0, scratch90, 23:0);1218s(emc_dqs_brlshft0, 23:0, scratch91, 23:0);1219s(emc_dqs_brlshft1, 23:0, scratch92, 23:0);1220s(emc_swizzle_rank0_byte0, 2:0, scratch93, 2:0);1221s(emc_swizzle_rank0_byte0, 6:4, scratch93, 5:3);1222s(emc_swizzle_rank0_byte0, 10:8, scratch93, 8:6);1223s(emc_swizzle_rank0_byte0, 14:12, scratch93, 11:9);1224s(emc_swizzle_rank0_byte0, 18:16, scratch93, 14:12);1225s(emc_swizzle_rank0_byte0, 22:20, scratch93, 17:15);1226s(emc_swizzle_rank0_byte0, 26:24, scratch93, 20:18);1227s(emc_swizzle_rank0_byte0, 30:28, scratch93, 23:21);1228s(emc_swizzle_rank0_byte1, 2:0, scratch94, 2:0);1229s(emc_swizzle_rank0_byte1, 6:4, scratch94, 5:3);1230s(emc_swizzle_rank0_byte1, 10:8, scratch94, 8:6);1231s(emc_swizzle_rank0_byte1, 14:12, scratch94, 11:9);1232s(emc_swizzle_rank0_byte1, 18:16, scratch94, 14:12);1233s(emc_swizzle_rank0_byte1, 22:20, scratch94, 17:15);1234s(emc_swizzle_rank0_byte1, 26:24, scratch94, 20:18);1235s(emc_swizzle_rank0_byte1, 30:28, scratch94, 23:21);1236s(emc_ras, 6:0, scratch94, 30:24);1237s(emc_cfg, 4:4, scratch94, 31:31);1238s(emc_swizzle_rank0_byte2, 2:0, scratch95, 2:0);1239s(emc_swizzle_rank0_byte2, 6:4, scratch95, 5:3);1240s(emc_swizzle_rank0_byte2, 10:8, scratch95, 8:6);1241s(emc_swizzle_rank0_byte2, 14:12, scratch95, 11:9);1242s(emc_swizzle_rank0_byte2, 18:16, scratch95, 14:12);1243s(emc_swizzle_rank0_byte2, 22:20, scratch95, 17:15);1244s(emc_swizzle_rank0_byte2, 26:24, scratch95, 20:18);1245s(emc_swizzle_rank0_byte2, 30:28, scratch95, 23:21);1246s(emc_w2p, 6:0, scratch95, 30:24);1247s(emc_cfg, 5:5, scratch95, 31:31);1248s(emc_swizzle_rank0_byte3, 2:0, scratch96, 2:0);1249s(emc_swizzle_rank0_byte3, 6:4, scratch96, 5:3);1250s(emc_swizzle_rank0_byte3, 10:8, scratch96, 8:6);1251s(emc_swizzle_rank0_byte3, 14:12, scratch96, 11:9);1252s(emc_swizzle_rank0_byte3, 18:16, scratch96, 14:12);1253s(emc_swizzle_rank0_byte3, 22:20, scratch96, 17:15);1254s(emc_swizzle_rank0_byte3, 26:24, scratch96, 20:18);1255s(emc_swizzle_rank0_byte3, 30:28, scratch96, 23:21);1256s(emc_qsafe, 6:0, scratch96, 30:24);1257s(emc_cfg, 6:6, scratch96, 31:31);1258s(emc_swizzle_rank1_byte0, 2:0, scratch97, 2:0);1259s(emc_swizzle_rank1_byte0, 6:4, scratch97, 5:3);1260s(emc_swizzle_rank1_byte0, 10:8, scratch97, 8:6);1261s(emc_swizzle_rank1_byte0, 14:12, scratch97, 11:9);1262s(emc_swizzle_rank1_byte0, 18:16, scratch97, 14:12);1263s(emc_swizzle_rank1_byte0, 22:20, scratch97, 17:15);1264s(emc_swizzle_rank1_byte0, 26:24, scratch97, 20:18);1265s(emc_swizzle_rank1_byte0, 30:28, scratch97, 23:21);1266s(emc_rdv, 6:0, scratch97, 30:24);1267s(emc_cfg, 7:7, scratch97, 31:31);1268s(emc_swizzle_rank1_byte1, 2:0, scratch98, 2:0);1269s(emc_swizzle_rank1_byte1, 6:4, scratch98, 5:3);1270s(emc_swizzle_rank1_byte1, 10:8, scratch98, 8:6);1271s(emc_swizzle_rank1_byte1, 14:12, scratch98, 11:9);1272s(emc_swizzle_rank1_byte1, 18:16, scratch98, 14:12);1273s(emc_swizzle_rank1_byte1, 22:20, scratch98, 17:15);1274s(emc_swizzle_rank1_byte1, 26:24, scratch98, 20:18);1275s(emc_swizzle_rank1_byte1, 30:28, scratch98, 23:21);1276s(emc_rw2pden, 6:0, scratch98, 30:24);1277s(emc_cfg, 8:8, scratch98, 31:31);1278s(emc_swizzle_rank1_byte2, 2:0, scratch99, 2:0);1279s(emc_swizzle_rank1_byte2, 6:4, scratch99, 5:3);1280s(emc_swizzle_rank1_byte2, 10:8, scratch99, 8:6);1281s(emc_swizzle_rank1_byte2, 14:12, scratch99, 11:9);1282s(emc_swizzle_rank1_byte2, 18:16, scratch99, 14:12);1283s(emc_swizzle_rank1_byte2, 22:20, scratch99, 17:15);1284s(emc_swizzle_rank1_byte2, 26:24, scratch99, 20:18);1285s(emc_swizzle_rank1_byte2, 30:28, scratch99, 23:21);1286s(emc_tfaw, 6:0, scratch99, 30:24);1287s(emc_cfg, 9:9, scratch99, 31:31);1288s(emc_swizzle_rank1_byte3, 2:0, scratch100, 2:0);1289s(emc_swizzle_rank1_byte3, 6:4, scratch100, 5:3);1290s(emc_swizzle_rank1_byte3, 10:8, scratch100, 8:6);1291s(emc_swizzle_rank1_byte3, 14:12, scratch100, 11:9);1292s(emc_swizzle_rank1_byte3, 18:16, scratch100, 14:12);1293s(emc_swizzle_rank1_byte3, 22:20, scratch100, 17:15);1294s(emc_swizzle_rank1_byte3, 26:24, scratch100, 20:18);1295s(emc_swizzle_rank1_byte3, 30:28, scratch100, 23:21);1296s(emc_tclkstable, 6:0, scratch100, 30:24);1297s(emc_cfg, 18:18, scratch100, 31:31);1298s(emc_cfg_pipe2, 11:0, scratch101, 11:0);1299s(emc_cfg_pipe2, 27:16, scratch101, 23:12);1300s(emc_trtm, 6:0, scratch101, 30:24);1301s(emc_cfg, 21:21, scratch101, 31:31);1302s(emc_cfg_pipe1, 11:0, scratch102, 11:0);1303s(emc_cfg_pipe1, 27:16, scratch102, 23:12);1304s(emc_twtm, 6:0, scratch102, 30:24);1305s(emc_cfg, 22:22, scratch102, 31:31);1306s(emc_pmacro_ddll_pwrd0, 4:1, scratch103, 3:0);1307s(emc_pmacro_ddll_pwrd0, 7:6, scratch103, 5:4);1308s(emc_pmacro_ddll_pwrd0, 12:9, scratch103, 9:6);1309s(emc_pmacro_ddll_pwrd0, 15:14, scratch103, 11:10);1310s(emc_pmacro_ddll_pwrd0, 20:17, scratch103, 15:12);1311s(emc_pmacro_ddll_pwrd0, 23:22, scratch103, 17:16);1312s(emc_pmacro_ddll_pwrd0, 28:25, scratch103, 21:18);1313s(emc_pmacro_ddll_pwrd0, 31:30, scratch103, 23:22);1314s(emc_tratm, 6:0, scratch103, 30:24);1315s(emc_cfg, 23:23, scratch103, 31:31);1316s(emc_pmacro_ddll_pwrd1, 4:1, scratch104, 3:0);1317s(emc_pmacro_ddll_pwrd1, 7:6, scratch104, 5:4);1318s(emc_pmacro_ddll_pwrd1, 12:9, scratch104, 9:6);1319s(emc_pmacro_ddll_pwrd1, 15:14, scratch104, 11:10);1320s(emc_pmacro_ddll_pwrd1, 20:17, scratch104, 15:12);1321s(emc_pmacro_ddll_pwrd1, 23:22, scratch104, 17:16);1322s(emc_pmacro_ddll_pwrd1, 28:25, scratch104, 21:18);1323s(emc_pmacro_ddll_pwrd1, 31:30, scratch104, 23:22);1324s(emc_twatm, 6:0, scratch104, 30:24);1325s(emc_cfg, 24:24, scratch104, 31:31);1326s(emc_pmacro_ddll_pwrd2, 4:1, scratch105, 3:0);1327s(emc_pmacro_ddll_pwrd2, 7:6, scratch105, 5:4);1328s(emc_pmacro_ddll_pwrd2, 12:9, scratch105, 9:6);1329s(emc_pmacro_ddll_pwrd2, 15:14, scratch105, 11:10);1330s(emc_pmacro_ddll_pwrd2, 20:17, scratch105, 15:12);1331s(emc_pmacro_ddll_pwrd2, 23:22, scratch105, 17:16);1332s(emc_pmacro_ddll_pwrd2, 28:25, scratch105, 21:18);1333s(emc_pmacro_ddll_pwrd2, 31:30, scratch105, 23:22);1334s(emc_tr2ref, 6:0, scratch105, 30:24);1335s(emc_cfg, 25:25, scratch105, 31:31);1336s(emc_pmacro_ddll_periodic_offset, 5:0, scratch106, 5:0);1337s(emc_pmacro_ddll_periodic_offset, 16:8, scratch106, 14:6);1338s(emc_pmacro_ddll_periodic_offset, 28:20, scratch106, 23:15);1339s(emc_pdex2mrr, 6:0, scratch106, 30:24);1340s(emc_cfg, 26:26, scratch106, 31:31);1341s(mc_emem_arb_da_covers, 23:0, scratch107, 23:0);1342s(emc_clken_override, 3:1, scratch107, 26:24);1343s(emc_clken_override, 8:6, scratch107, 29:27);1344s(emc_clken_override, 16:16, scratch107, 30:30);1345s(emc_cfg, 28:28, scratch107, 31:31);1346s(emc_xm2_comp_pad_ctrl, 1:0, scratch108, 1:0);1347s(emc_xm2_comp_pad_ctrl, 6:4, scratch108, 4:2);1348s(emc_xm2_comp_pad_ctrl, 9:9, scratch108, 5:5);1349s(emc_xm2_comp_pad_ctrl, 19:11, scratch108, 14:6);1350s(emc_xm2_comp_pad_ctrl, 31:24, scratch108, 22:15);1351s(emc_rfc_pb, 8:0, scratch108, 31:23);1352s(emc_auto_cal_config3, 6:0, scratch109, 6:0);1353s(emc_auto_cal_config3, 14:8, scratch109, 13:7);1354s(emc_auto_cal_config3, 23:16, scratch109, 21:14);1355s(emc_cfg_update, 2:0, scratch109, 24:22);1356s(emc_cfg_update, 10:8, scratch109, 27:25);1357s(emc_cfg_update, 31:28, scratch109, 31:28);1358s(emc_auto_cal_config4, 6:0, scratch110, 6:0);1359s(emc_auto_cal_config4, 14:8, scratch110, 13:7);1360s(emc_auto_cal_config4, 23:16, scratch110, 21:14);1361s(emc_rfc, 9:0, scratch110, 31:22);1362s(emc_auto_cal_config5, 6:0, scratch111, 6:0);1363s(emc_auto_cal_config5, 14:8, scratch111, 13:7);1364s(emc_auto_cal_config5, 23:16, scratch111, 21:14);1365s(emc_txsr, 9:0, scratch111, 31:22);1366s(emc_auto_cal_config6, 6:0, scratch112, 6:0);1367s(emc_auto_cal_config6, 14:8, scratch112, 13:7);1368s(emc_auto_cal_config6, 23:16, scratch112, 21:14);1369s(emc_mc2emc_q, 2:0, scratch112, 24:22);1370s(emc_mc2emc_q, 10:8, scratch112, 27:25);1371s(emc_mc2emc_q, 27:24, scratch112, 31:28);1372s(emc_auto_cal_config7, 6:0, scratch113, 6:0);1373s(emc_auto_cal_config7, 14:8, scratch113, 13:7);1374s(emc_auto_cal_config7, 23:16, scratch113, 21:14);1375s(mc_emem_arb_ring1_throttle, 4:0, scratch113, 26:22);1376s(mc_emem_arb_ring1_throttle, 20:16, scratch113, 31:27);1377s(emc_auto_cal_config8, 6:0, scratch114, 6:0);1378s(emc_auto_cal_config8, 14:8, scratch114, 13:7);1379s(emc_auto_cal_config8, 23:16, scratch114, 21:14);1380s(emc_fbio_cfg7, 21:0, scratch115, 21:0);1381s(emc_ar2pden, 8:0, scratch115, 30:22);1382s(emc_cfg, 29:29, scratch115, 31:31);1383s(emc_pmacro_quse_ddll_rank0_0, 10:0, scratch123, 10:0);1384s(emc_pmacro_quse_ddll_rank0_0, 26:16, scratch123, 21:11);1385s(emc_rfc_slr, 8:0, scratch123, 30:22);1386s(emc_cfg, 30:30, scratch123, 31:31);1387s(emc_pmacro_quse_ddll_rank0_1, 10:0, scratch124, 10:0);1388s(emc_pmacro_quse_ddll_rank0_1, 26:16, scratch124, 21:11);1389s(emc_ibdly, 6:0, scratch124, 28:22);1390s(emc_ibdly, 29:28, scratch124, 30:29);1391s(emc_cfg, 31:31, scratch124, 31:31);1392s(emc_pmacro_quse_ddll_rank0_2, 10:0, scratch125, 10:0);1393s(emc_pmacro_quse_ddll_rank0_2, 26:16, scratch125, 21:11);1394s(mc_emem_arb_timing_rfcpb, 8:0, scratch125, 30:22);1395s(emc_fbio_cfg5, 4:4, scratch125, 31:31);1396s(emc_pmacro_quse_ddll_rank0_3, 10:0, scratch126, 10:0);1397s(emc_pmacro_quse_ddll_rank0_3, 26:16, scratch126, 21:11);1398s(emc_auto_cal_config9, 6:0, scratch126, 28:22);1399s(emc_fbio_cfg5, 15:13, scratch126, 31:29);1400s(emc_pmacro_quse_ddll_rank0_4, 10:0, scratch127, 10:0);1401s(emc_pmacro_quse_ddll_rank0_4, 26:16, scratch127, 21:11);1402s(emc_rdv_mask, 6:0, scratch127, 28:22);1403s(emc_cfg2, 5:3, scratch127, 31:29);1404s(emc_pmacro_quse_ddll_rank0_5, 10:0, scratch128, 10:0);1405s(emc_pmacro_quse_ddll_rank0_5, 26:16, scratch128, 21:11);1406s(emc_rdv_early_mask, 6:0, scratch128, 28:22);1407s(emc_pmacro_cmd_pad_tx_ctrl, 4:2, scratch128, 31:29);1408s(emc_pmacro_quse_ddll_rank1_0, 10:0, scratch129, 10:0);1409s(emc_pmacro_quse_ddll_rank1_0, 26:16, scratch129, 21:11);1410s(emc_rdv_early, 6:0, scratch129, 28:22);1411s(emc_pmacro_cmd_pad_tx_ctrl, 9:7, scratch129, 31:29);1412s(emc_pmacro_quse_ddll_rank1_1, 10:0, scratch130, 10:0);1413s(emc_pmacro_quse_ddll_rank1_1, 26:16, scratch130, 21:11);1414s(emc_quse_width, 4:0, scratch130, 26:22);1415s(emc_quse_width, 29:28, scratch130, 28:27);1416s(emc_pmacro_cmd_pad_tx_ctrl, 14:12, scratch130, 31:29);1417s(emc_pmacro_quse_ddll_rank1_2, 10:0, scratch131, 10:0);1418s(emc_pmacro_quse_ddll_rank1_2, 26:16, scratch131, 21:11);1419s(emc_pmacro_ddll_short_cmd_2, 6:0, scratch131, 28:22);1420s(emc_pmacro_cmd_pad_tx_ctrl, 19:17, scratch131, 31:29);1421s(emc_pmacro_quse_ddll_rank1_3, 10:0, scratch132, 10:0);1422s(emc_pmacro_quse_ddll_rank1_3, 26:16, scratch132, 21:11);1423s(emc_pmacro_cmd_rx_term_mode, 1:0, scratch132, 23:22);1424s(emc_pmacro_cmd_rx_term_mode, 5:4, scratch132, 25:24);1425s(emc_pmacro_cmd_rx_term_mode, 9:8, scratch132, 27:26);1426s(emc_pmacro_cmd_rx_term_mode, 13:13, scratch132, 28:28);1427s(emc_pmacro_data_pad_tx_ctrl, 4:2, scratch132, 31:29);1428s(emc_pmacro_quse_ddll_rank1_4, 10:0, scratch133, 10:0);1429s(emc_pmacro_quse_ddll_rank1_4, 26:16, scratch133, 21:11);1430s(emc_pmacro_data_rx_term_mode, 1:0, scratch133, 23:22);1431s(emc_pmacro_data_rx_term_mode, 5:4, scratch133, 25:24);1432s(emc_pmacro_data_rx_term_mode, 9:8, scratch133, 27:26);1433s(emc_pmacro_data_rx_term_mode, 13:13, scratch133, 28:28);1434s(emc_pmacro_data_pad_tx_ctrl, 9:7, scratch133, 31:29);1435s(emc_pmacro_quse_ddll_rank1_5, 10:0, scratch134, 10:0);1436s(emc_pmacro_quse_ddll_rank1_5, 26:16, scratch134, 21:11);1437s(mc_emem_arb_timing_rp, 6:0, scratch134, 28:22);1438s(emc_pmacro_data_pad_tx_ctrl, 14:12, scratch134, 31:29);1439s(emc_pmacro_ob_ddll_long_dq_rank0_0, 10:0, scratch135, 10:0);1440s(emc_pmacro_ob_ddll_long_dq_rank0_0, 26:16, scratch135, 21:11);1441s(mc_emem_arb_timing_ras, 6:0, scratch135, 28:22);1442s(emc_pmacro_data_pad_tx_ctrl, 19:17, scratch135, 31:29);1443s(emc_pmacro_ob_ddll_long_dq_rank0_1, 10:0, scratch136, 10:0);1444s(emc_pmacro_ob_ddll_long_dq_rank0_1, 26:16, scratch136, 21:11);1445s(mc_emem_arb_timing_faw, 6:0, scratch136, 28:22);1446s(emc_cfg, 17:16, scratch136, 30:29);1447s(emc_fbio_cfg5, 8:8, scratch136, 31:31);1448s(emc_pmacro_ob_ddll_long_dq_rank0_2, 10:0, scratch137, 10:0);1449s(emc_pmacro_ob_ddll_long_dq_rank0_2, 26:16, scratch137, 21:11);1450s(mc_emem_arb_timing_rap2pre, 6:0, scratch137, 28:22);1451s(emc_fbio_cfg5, 1:0, scratch137, 30:29);1452s(emc_fbio_cfg5, 10:10, scratch137, 31:31);1453s(emc_pmacro_ob_ddll_long_dq_rank0_3, 10:0, scratch138, 10:0);1454s(emc_pmacro_ob_ddll_long_dq_rank0_3, 26:16, scratch138, 21:11);1455s(mc_emem_arb_timing_wap2pre, 6:0, scratch138, 28:22);1456s(emc_fbio_cfg5, 3:2, scratch138, 30:29);1457s(emc_fbio_cfg5, 12:12, scratch138, 31:31);1458s(emc_pmacro_ob_ddll_long_dq_rank0_4, 10:0, scratch139, 10:0);1459s(emc_pmacro_ob_ddll_long_dq_rank0_4, 26:16, scratch139, 21:11);1460s(mc_emem_arb_timing_r2w, 6:0, scratch139, 28:22);1461s(emc_cfg2, 27:26, scratch139, 30:29);1462s(emc_fbio_cfg5, 24:24, scratch139, 31:31);1463s(emc_pmacro_ob_ddll_long_dq_rank0_5, 10:0, scratch140, 10:0);1464s(emc_pmacro_ob_ddll_long_dq_rank0_5, 26:16, scratch140, 21:11);1465s(mc_emem_arb_timing_w2r, 6:0, scratch140, 28:22);1466s(emc_fbio_cfg5, 27:25, scratch140, 31:29);1467s(emc_pmacro_ob_ddll_long_dq_rank1_0, 10:0, scratch141, 10:0);1468s(emc_pmacro_ob_ddll_long_dq_rank1_0, 26:16, scratch141, 21:11);1469s(emc_wdv, 5:0, scratch141, 27:22);1470s(emc_fbio_cfg5, 23:20, scratch141, 31:28);1471s(emc_pmacro_ob_ddll_long_dq_rank1_1, 10:0, scratch142, 10:0);1472s(emc_pmacro_ob_ddll_long_dq_rank1_1, 26:16, scratch142, 21:11);1473s(emc_quse, 5:0, scratch142, 27:22);1474s(emc_fbio_cfg5, 28:28, scratch142, 28:28);1475s(emc_fbio_cfg5, 31:30, scratch142, 30:29);1476s(emc_cfg2, 0:0, scratch142, 31:31);1477s(emc_pmacro_ob_ddll_long_dq_rank1_2, 10:0, scratch143, 10:0);1478s(emc_pmacro_ob_ddll_long_dq_rank1_2, 26:16, scratch143, 21:11);1479s(emc_pdex2wr, 5:0, scratch143, 27:22);1480s(emc_cfg2, 2:1, scratch143, 29:28);1481s(emc_cfg2, 7:7, scratch143, 30:30);1482s(emc_cfg2, 10:10, scratch143, 31:31);1483s(emc_pmacro_ob_ddll_long_dq_rank1_3, 10:0, scratch144, 10:0);1484s(emc_pmacro_ob_ddll_long_dq_rank1_3, 26:16, scratch144, 21:11);1485s(emc_pdex2rd, 5:0, scratch144, 27:22);1486s(emc_cfg2, 11:11, scratch144, 28:28);1487s(emc_cfg2, 16:14, scratch144, 31:29);1488s(emc_pmacro_ob_ddll_long_dq_rank1_4, 10:0, scratch145, 10:0);1489s(emc_pmacro_ob_ddll_long_dq_rank1_4, 26:16, scratch145, 21:11);1490s(emc_pdex2che, 5:0, scratch145, 27:22);1491s(emc_cfg2, 20:20, scratch145, 28:28);1492s(emc_cfg2, 24:22, scratch145, 31:29);1493s(emc_pmacro_ob_ddll_long_dq_rank1_5, 10:0, scratch146, 10:0);1494s(emc_pmacro_ob_ddll_long_dq_rank1_5, 26:16, scratch146, 21:11);1495s(emc_pchg2pden, 5:0, scratch146, 27:22);1496s(emc_cfg2, 25:25, scratch146, 28:28);1497s(emc_cfg2, 30:28, scratch146, 31:29);1498s(emc_pmacro_ob_ddll_long_dqs_rank0_0, 10:0, scratch147, 10:0);1499s(emc_pmacro_ob_ddll_long_dqs_rank0_0, 26:16, scratch147, 21:11);1500s(emc_act2pden, 5:0, scratch147, 27:22);1501s(emc_cfg2, 31:31, scratch147, 28:28);1502s(emc_cfg_pipe, 2:0, scratch147, 31:29);1503s(emc_pmacro_ob_ddll_long_dqs_rank0_1, 10:0, scratch148, 10:0);1504s(emc_pmacro_ob_ddll_long_dqs_rank0_1, 26:16, scratch148, 21:11);1505s(emc_cke2pden, 5:0, scratch148, 27:22);1506s(emc_cfg_pipe, 6:3, scratch148, 31:28);1507s(emc_pmacro_ob_ddll_long_dqs_rank0_2, 10:0, scratch149, 10:0);1508s(emc_pmacro_ob_ddll_long_dqs_rank0_2, 26:16, scratch149, 21:11);1509s(emc_tcke, 5:0, scratch149, 27:22);1510s(emc_cfg_pipe, 10:7, scratch149, 31:28);1511s(emc_pmacro_ob_ddll_long_dqs_rank0_3, 10:0, scratch150, 10:0);1512s(emc_pmacro_ob_ddll_long_dqs_rank0_3, 26:16, scratch150, 21:11);1513s(emc_trpab, 5:0, scratch150, 27:22);1514s(emc_cfg_pipe, 11:11, scratch150, 28:28);1515s(emc_cfg_pipe, 18:16, scratch150, 31:29);1516s(emc_pmacro_ob_ddll_long_dqs_rank0_4, 10:0, scratch151, 10:0);1517s(emc_pmacro_ob_ddll_long_dqs_rank0_4, 26:16, scratch151, 21:11);1518s(emc_einput, 5:0, scratch151, 27:22);1519s(emc_cfg_pipe, 22:19, scratch151, 31:28);1520s(emc_pmacro_ob_ddll_long_dqs_rank0_5, 10:0, scratch152, 10:0);1521s(emc_pmacro_ob_ddll_long_dqs_rank0_5, 26:16, scratch152, 21:11);1522s(emc_einput_duration, 5:0, scratch152, 27:22);1523s(emc_cfg_pipe, 26:23, scratch152, 31:28);1524s(emc_pmacro_ob_ddll_long_dqs_rank1_0, 10:0, scratch153, 10:0);1525s(emc_pmacro_ob_ddll_long_dqs_rank1_0, 26:16, scratch153, 21:11);1526s(emc_puterm_extra, 5:0, scratch153, 27:22);1527s(emc_cfg_pipe, 27:27, scratch153, 28:28);1528s(emc_pmacro_tx_sel_clk_src0, 2:0, scratch153, 31:29);1529s(emc_pmacro_ob_ddll_long_dqs_rank1_1, 10:0, scratch154, 10:0);1530s(emc_pmacro_ob_ddll_long_dqs_rank1_1, 26:16, scratch154, 21:11);1531s(emc_tckesr, 5:0, scratch154, 27:22);1532s(emc_pmacro_tx_sel_clk_src0, 6:3, scratch154, 31:28);1533s(emc_pmacro_ob_ddll_long_dqs_rank1_2, 10:0, scratch155, 10:0);1534s(emc_pmacro_ob_ddll_long_dqs_rank1_2, 26:16, scratch155, 21:11);1535s(emc_tpd, 5:0, scratch155, 27:22);1536s(emc_pmacro_tx_sel_clk_src0, 10:7, scratch155, 31:28);1537s(emc_pmacro_ob_ddll_long_dqs_rank1_3, 10:0, scratch156, 10:0);1538s(emc_pmacro_ob_ddll_long_dqs_rank1_3, 26:16, scratch156, 21:11);1539s(emc_wdv_mask, 5:0, scratch156, 27:22);1540s(emc_pmacro_tx_sel_clk_src0, 19:16, scratch156, 31:28);1541s(emc_pmacro_ob_ddll_long_dqs_rank1_4, 10:0, scratch157, 10:0);1542s(emc_pmacro_ob_ddll_long_dqs_rank1_4, 26:16, scratch157, 21:11);1543s(emc_wdv_chk, 5:0, scratch157, 27:22);1544s(emc_pmacro_tx_sel_clk_src0, 23:20, scratch157, 31:28);1545s(emc_pmacro_ob_ddll_long_dqs_rank1_5, 10:0, scratch158, 10:0);1546s(emc_pmacro_ob_ddll_long_dqs_rank1_5, 26:16, scratch158, 21:11);1547s(emc_cmd_brlshft0, 5:0, scratch158, 27:22);1548s(emc_pmacro_tx_sel_clk_src0, 26:24, scratch158, 30:28);1549s(emc_pmacro_tx_sel_clk_src1, 0:0, scratch158, 31:31);1550s(emc_pmacro_ib_ddll_long_dqs_rank0_0, 10:0, scratch159, 10:0);1551s(emc_pmacro_ib_ddll_long_dqs_rank0_0, 26:16, scratch159, 21:11);1552s(emc_cmd_brlshft1, 5:0, scratch159, 27:22);1553s(emc_pmacro_tx_sel_clk_src1, 4:1, scratch159, 31:28);1554s(emc_pmacro_ib_ddll_long_dqs_rank0_1, 10:0, scratch160, 10:0);1555s(emc_pmacro_ib_ddll_long_dqs_rank0_1, 26:16, scratch160, 21:11);1556s(emc_cmd_brlshft2, 5:0, scratch160, 27:22);1557s(emc_pmacro_tx_sel_clk_src1, 8:5, scratch160, 31:28);1558s(emc_pmacro_ib_ddll_long_dqs_rank0_2, 10:0, scratch161, 10:0);1559s(emc_pmacro_ib_ddll_long_dqs_rank0_2, 26:16, scratch161, 21:11);1560s(emc_cmd_brlshft3, 5:0, scratch161, 27:22);1561s(emc_pmacro_tx_sel_clk_src1, 10:9, scratch161, 29:28);1562s(emc_pmacro_tx_sel_clk_src1, 17:16, scratch161, 31:30);1563s(emc_pmacro_ib_ddll_long_dqs_rank0_3, 10:0, scratch162, 10:0);1564s(emc_pmacro_ib_ddll_long_dqs_rank0_3, 26:16, scratch162, 21:11);1565s(emc_wev, 5:0, scratch162, 27:22);1566s(emc_pmacro_tx_sel_clk_src1, 21:18, scratch162, 31:28);1567s(emc_pmacro_ib_ddll_long_dqs_rank1_0, 10:0, scratch163, 10:0);1568s(emc_pmacro_ib_ddll_long_dqs_rank1_0, 26:16, scratch163, 21:11);1569s(emc_wsv, 5:0, scratch163, 27:22);1570s(emc_pmacro_tx_sel_clk_src1, 25:22, scratch163, 31:28);1571s(emc_pmacro_ib_ddll_long_dqs_rank1_1, 10:0, scratch164, 10:0);1572s(emc_pmacro_ib_ddll_long_dqs_rank1_1, 26:16, scratch164, 21:11);1573s(emc_cfg3, 2:0, scratch164, 24:22);1574s(emc_cfg3, 6:4, scratch164, 27:25);1575s(emc_pmacro_tx_sel_clk_src1, 26:26, scratch164, 28:28);1576s(emc_pmacro_tx_sel_clk_src3, 2:0, scratch164, 31:29);1577s(emc_pmacro_ib_ddll_long_dqs_rank1_2, 10:0, scratch165, 10:0);1578s(emc_pmacro_ib_ddll_long_dqs_rank1_2, 26:16, scratch165, 21:11);1579s(emc_puterm_width, 31:31, scratch165, 22:22);1580s(emc_puterm_width, 4:0, scratch165, 27:23);1581s(emc_pmacro_tx_sel_clk_src3, 6:3, scratch165, 31:28);1582s(emc_pmacro_ib_ddll_long_dqs_rank1_3, 10:0, scratch166, 10:0);1583s(emc_pmacro_ib_ddll_long_dqs_rank1_3, 26:16, scratch166, 21:11);1584s(mc_emem_arb_timing_rcd, 5:0, scratch166, 27:22);1585s(emc_pmacro_tx_sel_clk_src3, 10:7, scratch166, 31:28);1586s(emc_pmacro_ddll_long_cmd_0, 10:0, scratch167, 10:0);1587s(emc_pmacro_ddll_long_cmd_0, 26:16, scratch167, 21:11);1588s(mc_emem_arb_timing_ccdmw, 5:0, scratch167, 27:22);1589s(emc_pmacro_tx_sel_clk_src3, 19:16, scratch167, 31:28);1590s(emc_pmacro_ddll_long_cmd_1, 10:0, scratch168, 10:0);1591s(emc_pmacro_ddll_long_cmd_1, 26:16, scratch168, 21:11);1592s(mc_emem_arb_override, 27:27, scratch168, 22:22);1593s(mc_emem_arb_override, 26:26, scratch168, 23:23);1594s(mc_emem_arb_override, 16:16, scratch168, 24:24);1595s(mc_emem_arb_override, 10:10, scratch168, 25:25);1596s(mc_emem_arb_override, 4:4, scratch168, 26:26);1597s(mc_emem_arb_override, 3:3, scratch168, 27:27);1598s(emc_pmacro_tx_sel_clk_src3, 23:20, scratch168, 31:28);1599s(emc_pmacro_ddll_long_cmd_2, 10:0, scratch169, 10:0);1600s(emc_pmacro_ddll_long_cmd_2, 26:16, scratch169, 21:11);1601s(emc_rrd, 4:0, scratch169, 26:22);1602s(emc_rext, 4:0, scratch169, 31:27);1603s(emc_pmacro_ddll_long_cmd_3, 10:0, scratch170, 10:0);1604s(emc_pmacro_ddll_long_cmd_3, 26:16, scratch170, 21:11);1605s(emc_tclkstop, 4:0, scratch170, 26:22);1606s(emc_wext, 4:0, scratch170, 31:27);1607s(emc_pmacro_perbit_fgcg_ctrl0, 10:0, scratch171, 10:0);1608s(emc_pmacro_perbit_fgcg_ctrl0, 26:16, scratch171, 21:11);1609s(emc_ref_ctrl2, 0:0, scratch171, 22:22);1610s(emc_ref_ctrl2, 26:24, scratch171, 25:23);1611s(emc_ref_ctrl2, 31:31, scratch171, 26:26);1612s(emc_we_duration, 4:0, scratch171, 31:27);1613s(emc_pmacro_perbit_fgcg_ctrl1, 10:0, scratch172, 10:0);1614s(emc_pmacro_perbit_fgcg_ctrl1, 26:16, scratch172, 21:11);1615s(emc_ws_duration, 4:0, scratch172, 26:22);1616s(emc_pmacro_pad_cfg_ctrl, 0:0, scratch172, 27:27);1617s(emc_pmacro_pad_cfg_ctrl, 9:9, scratch172, 28:28);1618s(emc_pmacro_pad_cfg_ctrl, 13:13, scratch172, 29:29);1619s(emc_pmacro_pad_cfg_ctrl, 17:16, scratch172, 31:30);1620s(emc_pmacro_perbit_fgcg_ctrl2, 10:0, scratch173, 10:0);1621s(emc_pmacro_perbit_fgcg_ctrl2, 26:16, scratch173, 21:11);1622s(mc_emem_arb_timing_rrd, 4:0, scratch173, 26:22);1623s(mc_emem_arb_timing_r2r, 4:0, scratch173, 31:27);1624s(emc_pmacro_perbit_fgcg_ctrl3, 10:0, scratch174, 10:0);1625s(emc_pmacro_perbit_fgcg_ctrl3, 26:16, scratch174, 21:11);1626s(mc_emem_arb_timing_w2w, 4:0, scratch174, 26:22);1627s(emc_pmacro_tx_sel_clk_src3, 26:24, scratch174, 29:27);1628s(emc_pmacro_tx_sel_clk_src2, 1:0, scratch174, 31:30);1629s(emc_pmacro_perbit_fgcg_ctrl4, 10:0, scratch175, 10:0);1630s(emc_pmacro_perbit_fgcg_ctrl4, 26:16, scratch175, 21:11);1631s(emc_pmacro_tx_sel_clk_src2, 10:2, scratch175, 30:22);1632s(emc_pmacro_tx_sel_clk_src2, 16:16, scratch175, 31:31);1633s(emc_pmacro_perbit_fgcg_ctrl5, 10:0, scratch176, 10:0);1634s(emc_pmacro_perbit_fgcg_ctrl5, 26:16, scratch176, 21:11);1635s(emc_pmacro_tx_sel_clk_src2, 26:17, scratch176, 31:22);1636s(mc_emem_arb_cfg, 8:0, scratch177, 8:0);1637s(mc_emem_arb_cfg, 20:16, scratch177, 13:9);1638s(mc_emem_arb_cfg, 31:24, scratch177, 21:14);1639s(emc_pmacro_tx_sel_clk_src4, 9:0, scratch177, 31:22);1640s(mc_emem_arb_misc1, 12:0, scratch178, 12:0);1641s(mc_emem_arb_misc1, 25:21, scratch178, 17:13);1642s(mc_emem_arb_misc1, 31:28, scratch178, 21:18);1643s(emc_pmacro_tx_sel_clk_src4, 10:10, scratch178, 22:22);1644s(emc_pmacro_tx_sel_clk_src4, 24:16, scratch178, 31:23);1645s(emc_mrs_wait_cnt2, 9:0, scratch179, 9:0);1646s(emc_mrs_wait_cnt2, 26:16, scratch179, 20:10);1647s(emc_odt_write, 5:0, scratch179, 26:21);1648s(emc_odt_write, 11:8, scratch179, 30:27);1649s(emc_odt_write, 31:31, scratch179, 31:31);1650s(emc_mrs_wait_cnt, 9:0, scratch180, 9:0);1651s(emc_mrs_wait_cnt, 26:16, scratch180, 20:10);1652s(emc_pmacro_ib_rxrt, 10:0, scratch180, 31:21);1653s(emc_auto_cal_interval, 20:0, scratch181, 20:0);1654s(emc_pmacro_ddll_long_cmd_4, 10:0, scratch181, 31:21);1655s(emc_emem_arb_refpb_hp_ctrl, 6:0, scratch182, 6:0);1656s(emc_emem_arb_refpb_hp_ctrl, 14:8, scratch182, 13:7);1657s(emc_emem_arb_refpb_hp_ctrl, 22:16, scratch182, 20:14);1658s(mc_emem_arb_outstanding_req, 8:0, scratch182, 29:21);1659s(mc_emem_arb_outstanding_req, 31:30, scratch182, 31:30);1660s(emc_xm2_comp_pad_ctrl2, 5:0, scratch183, 5:0);1661s(emc_xm2_comp_pad_ctrl2, 17:12, scratch183, 11:6);1662s(emc_xm2_comp_pad_ctrl2, 21:20, scratch183, 13:12);1663s(emc_xm2_comp_pad_ctrl2, 29:24, scratch183, 19:14);1664s(emc_pmacro_cmd_ctrl0, 0:0, scratch183, 20:20);1665s(emc_pmacro_cmd_ctrl0, 5:4, scratch183, 22:21);1666s(emc_pmacro_cmd_ctrl0, 8:8, scratch183, 23:23);1667s(emc_pmacro_cmd_ctrl0, 13:12, scratch183, 25:24);1668s(emc_pmacro_cmd_ctrl0, 16:16, scratch183, 26:26);1669s(emc_pmacro_cmd_ctrl0, 21:20, scratch183, 28:27);1670s(emc_pmacro_cmd_ctrl0, 24:24, scratch183, 29:29);1671s(emc_pmacro_cmd_ctrl0, 29:28, scratch183, 31:30);1672s(emc_cfg_dig_dll_1, 19:0, scratch184, 19:0);1673s(emc_pmacro_cmd_ctrl1, 0:0, scratch184, 20:20);1674s(emc_pmacro_cmd_ctrl1, 5:4, scratch184, 22:21);1675s(emc_pmacro_cmd_ctrl1, 8:8, scratch184, 23:23);1676s(emc_pmacro_cmd_ctrl1, 13:12, scratch184, 25:24);1677s(emc_pmacro_cmd_ctrl1, 16:16, scratch184, 26:26);1678s(emc_pmacro_cmd_ctrl1, 21:20, scratch184, 28:27);1679s(emc_pmacro_cmd_ctrl1, 24:24, scratch184, 29:29);1680s(emc_pmacro_cmd_ctrl1, 29:28, scratch184, 31:30);1681s(emc_quse_brlshft0, 19:0, scratch185, 19:0);1682s(emc_pmacro_cmd_ctrl2, 0:0, scratch185, 20:20);1683s(emc_pmacro_cmd_ctrl2, 5:4, scratch185, 22:21);1684s(emc_pmacro_cmd_ctrl2, 8:8, scratch185, 23:23);1685s(emc_pmacro_cmd_ctrl2, 13:12, scratch185, 25:24);1686s(emc_pmacro_cmd_ctrl2, 16:16, scratch185, 26:26);1687s(emc_pmacro_cmd_ctrl2, 21:20, scratch185, 28:27);1688s(emc_pmacro_cmd_ctrl2, 24:24, scratch185, 29:29);1689s(emc_pmacro_cmd_ctrl2, 29:28, scratch185, 31:30);1690s(emc_quse_brlshft1, 19:0, scratch186, 19:0);1691s(emc_pmacro_dsr_vttgen_ctrl0, 3:0, scratch186, 23:20);1692s(emc_pmacro_dsr_vttgen_ctrl0, 15:8, scratch186, 31:24);1693s(emc_quse_brlshft2, 19:0, scratch187, 19:0);1694s(emc_pmacro_perbit_rfu1_ctrl0, 5:0, scratch187, 25:20);1695s(emc_pmacro_perbit_rfu1_ctrl0, 21:16, scratch187, 31:26);1696s(emc_quse_brlshft3, 19:0, scratch188, 19:0);1697s(emc_pmacro_perbit_rfu1_ctrl1, 5:0, scratch188, 25:20);1698s(emc_pmacro_perbit_rfu1_ctrl1, 21:16, scratch188, 31:26);1699s(emc_dbg, 4:0, scratch189, 4:0);1700s(emc_dbg, 13:9, scratch189, 9:5);1701s(emc_dbg, 31:24, scratch189, 17:10);1702s(emc_trefbw, 13:0, scratch189, 31:18);1703s(emc_zcal_wait_cnt, 10:0, scratch191, 10:0);1704s(emc_zcal_wait_cnt, 21:16, scratch191, 16:11);1705s(emc_zcal_wait_cnt, 31:31, scratch191, 17:17);1706s(emc_qpop, 6:0, scratch191, 24:18);1707s(emc_qpop, 22:16, scratch191, 31:25);1708s(emc_zcal_mrw_cmd, 7:0, scratch192, 7:0);1709s(emc_zcal_mrw_cmd, 23:16, scratch192, 15:8);1710s(emc_zcal_mrw_cmd, 31:30, scratch192, 17:16);1711s(emc_pmacro_auto_cal_common, 5:0, scratch192, 23:18);1712s(emc_pmacro_auto_cal_common, 13:8, scratch192, 29:24);1713s(emc_pmacro_auto_cal_common, 16:16, scratch192, 30:30);1714s(emc_pmacro_tx_sel_clk_src4, 25:25, scratch192, 31:31);1715s(emc_dll_cfg1, 10:0, scratch193, 10:0);1716s(emc_dll_cfg1, 13:12, scratch193, 12:11);1717s(emc_dll_cfg1, 17:16, scratch193, 14:13);1718s(emc_dll_cfg1, 21:20, scratch193, 16:15);1719s(emc_dll_cfg1, 24:24, scratch193, 17:17);1720s(emc_pmacro_perbit_rfu1_ctrl2, 5:0, scratch193, 23:18);1721s(emc_pmacro_perbit_rfu1_ctrl2, 21:16, scratch193, 29:24);1722s(emc_pmacro_tx_sel_clk_src4, 26:26, scratch193, 30:30);1723s(emc_pmacro_tx_sel_clk_src5, 0:0, scratch193, 31:31);1724s(emc_pmacro_cmd_brick_ctrl_fdpd, 17:0, scratch194, 17:0);1725s(emc_pmacro_perbit_rfu1_ctrl3, 5:0, scratch194, 23:18);1726s(emc_pmacro_perbit_rfu1_ctrl3, 21:16, scratch194, 29:24);1727s(emc_pmacro_tx_sel_clk_src5, 2:1, scratch194, 31:30);1728s(emc_pmacro_data_brick_ctrl_fdpd, 17:0, scratch195, 17:0);1729s(emc_pmacro_perbit_rfu1_ctrl4, 5:0, scratch195, 23:18);1730s(emc_pmacro_perbit_rfu1_ctrl4, 21:16, scratch195, 29:24);1731s(emc_pmacro_tx_sel_clk_src5, 4:3, scratch195, 31:30);1732s(emc_dyn_self_ref_control, 15:0, scratch196, 15:0);1733s(emc_dyn_self_ref_control, 31:31, scratch196, 16:16);1734s(emc_emem_arb_refpb_bank_ctrl, 6:0, scratch196, 23:17);1735s(emc_emem_arb_refpb_bank_ctrl, 14:8, scratch196, 30:24);1736s(emc_emem_arb_refpb_bank_ctrl, 31:31, scratch196, 31:31);1737s(emc_pmacro_cmd_pad_rx_ctrl, 1:0, scratch197, 1:0);1738s(emc_pmacro_cmd_pad_rx_ctrl, 5:4, scratch197, 3:2);1739s(emc_pmacro_cmd_pad_rx_ctrl, 12:12, scratch197, 4:4);1740s(emc_pmacro_cmd_pad_rx_ctrl, 19:15, scratch197, 9:5);1741s(emc_pmacro_cmd_pad_rx_ctrl, 27:21, scratch197, 16:10);1742s(emc_pmacro_perbit_rfu1_ctrl5, 5:0, scratch197, 22:17);1743s(emc_pmacro_perbit_rfu1_ctrl5, 21:16, scratch197, 28:23);1744s(emc_pmacro_tx_sel_clk_src5, 7:5, scratch197, 31:29);1745s(emc_pmacro_data_pad_rx_ctrl, 1:0, scratch198, 1:0);1746s(emc_pmacro_data_pad_rx_ctrl, 5:4, scratch198, 3:2);1747s(emc_pmacro_data_pad_rx_ctrl, 12:12, scratch198, 4:4);1748s(emc_pmacro_data_pad_rx_ctrl, 19:15, scratch198, 9:5);1749s(emc_pmacro_data_pad_rx_ctrl, 27:21, scratch198, 16:10);1750s(emc_pmacro_tx_sel_clk_src5, 10:8, scratch198, 19:17);1751s(emc_pmacro_tx_sel_clk_src5, 26:16, scratch198, 30:20);1752s(emc_pmacro_cmd_pad_tx_ctrl, 0:0, scratch198, 31:31);1753s(emc_refresh, 15:0, scratch199, 15:0);1754s(emc_cmd_q, 4:0, scratch199, 20:16);1755s(emc_cmd_q, 10:8, scratch199, 23:21);1756s(emc_cmd_q, 14:12, scratch199, 26:24);1757s(emc_cmd_q, 28:24, scratch199, 31:27);1758s(emc_acpd_control, 15:0, scratch210, 15:0);1759s(emc_auto_cal_vref_sel1, 15:0, scratch210, 31:16);1760s(emc_pmacro_auto_cal_cfg0, 3:0, scratch211, 3:0);1761s(emc_pmacro_auto_cal_cfg0, 11:8, scratch211, 7:4);1762s(emc_pmacro_auto_cal_cfg0, 19:16, scratch211, 11:8);1763s(emc_pmacro_auto_cal_cfg0, 27:24, scratch211, 15:12);1764s(emc_pmacro_auto_cal_cfg1, 3:0, scratch211, 19:16);1765s(emc_pmacro_auto_cal_cfg1, 11:8, scratch211, 23:20);1766s(emc_pmacro_auto_cal_cfg1, 19:16, scratch211, 27:24);1767s(emc_pmacro_auto_cal_cfg1, 27:24, scratch211, 31:28);1768s(emc_pmacro_auto_cal_cfg2, 3:0, scratch212, 3:0);1769s(emc_pmacro_auto_cal_cfg2, 11:8, scratch212, 7:4);1770s(emc_pmacro_auto_cal_cfg2, 19:16, scratch212, 11:8);1771s(emc_pmacro_auto_cal_cfg2, 27:24, scratch212, 15:12);1772s(emc_xm2_comp_pad_ctrl3, 5:0, scratch212, 21:16);1773s(emc_xm2_comp_pad_ctrl3, 17:12, scratch212, 27:22);1774s(emc_xm2_comp_pad_ctrl3, 23:20, scratch212, 31:28);1775s(emc_cfg_dig_dll_period, 15:0, scratch213, 15:0);1776s(emc_prerefresh_req_cnt, 15:0, scratch213, 31:16);1777s(emc_pmacro_ddll_bypass, 0:0, scratch214, 0:0);1778s(emc_pmacro_ddll_bypass, 11:8, scratch214, 4:1);1779s(emc_pmacro_ddll_bypass, 16:13, scratch214, 8:5);1780s(emc_pmacro_ddll_bypass, 27:24, scratch214, 12:9);1781s(emc_pmacro_ddll_bypass, 31:29, scratch214, 15:13);1782s(emc_pmacro_data_pi_ctrl, 4:0, scratch214, 20:16);1783s(emc_pmacro_data_pi_ctrl, 12:8, scratch214, 25:21);1784s(emc_pmacro_data_pi_ctrl, 21:16, scratch214, 31:26);1785s(emc_pmacro_cmd_pi_ctrl, 4:0, scratch215, 4:0);1786s(emc_pmacro_cmd_pi_ctrl, 12:8, scratch215, 9:5);1787s(emc_pmacro_cmd_pi_ctrl, 21:16, scratch215, 15:10);17881789s(emc_pin_gpio, 1:0, scratch9, 31:30);1790s(emc_pin_gpio_enable, 1:0, scratch10, 31:30);1791s(emc_dev_select, 1:0, scratch11, 31:30);1792s(emc_zcal_warm_cold_boot_enables, 1:0, scratch12, 31:30);1793s(emc_cfg_dig_dll_period_warm_boot, 1:0, scratch13, 31:30);1794s32(emc_bct_spare13, scratch45);1795s32(emc_bct_spare12, scratch46);1796s32(emc_bct_spare7, scratch47);1797s32(emc_bct_spare6, scratch48);1798s32(emc_bct_spare5, scratch50);1799s32(emc_bct_spare4, scratch51);1800s32(emc_bct_spare3, scratch56);1801s32(emc_bct_spare2, scratch57);1802s32(emc_bct_spare1, scratch58);1803s32(emc_bct_spare0, scratch59);1804s32(emc_bct_spare9, scratch60);1805s32(emc_bct_spare8, scratch61);1806s32(boot_rom_patch_data, scratch62);1807s32(boot_rom_patch_control, scratch63);1808s(mc_clken_override_allwarm_boot, 0:0, scratch65, 31:31);1809s(emc_extra_refresh_num, 2:0, scratch66, 31:29);1810s(pmc_io_dpd3_req_wait, 2:0, scratch72, 30:28);1811s(emc_clken_override_allwarm_boot, 0:0, scratch72, 31:31);1812s(memory_type, 2:0, scratch73, 30:28);1813s(emc_mrs_warm_boot_enable, 0:0, scratch73, 31:31);1814s(pmc_io_dpd4_req_wait, 2:0, scratch74, 30:28);1815s(clear_clock2_mc1, 0:0, scratch74, 31:31);1816s(emc_warm_boot_extramode_reg_write_enable, 0:0, scratch75, 28:28);1817s(clk_rst_pllm_misc20_override_enable, 0:0, scratch75, 29:29);1818s(emc_dbg_write_mux, 0:0, scratch75, 30:30);1819s(ahb_arbitration_xbar_ctrl_meminit_done, 0:0, scratch75, 31:31);1820s(emc_timing_control_wait, 7:0, scratch90, 31:24);1821s(emc_zcal_warm_boot_wait, 7:0, scratch91, 31:24);1822s(warm_boot_wait, 7:0, scratch92, 31:24);1823s(emc_pin_program_wait, 7:0, scratch93, 31:24);1824s(emc_auto_cal_wait, 9:0, scratch114, 31:22);1825s(swizzle_rank_byte_encode, 15:0, scratch215, 31:16);1826s(emc_pmacro_cmd_pad_tx_ctrl, 6:5, scratch216, 1:0);1827s(emc_pmacro_cmd_pad_tx_ctrl, 10:10, scratch216, 2:2);1828s(emc_pmacro_cmd_pad_tx_ctrl, 16:15, scratch216, 4:3);1829s(emc_pmacro_cmd_pad_tx_ctrl, 30:21, scratch216, 14:5);1830s(emc_pmacro_data_pad_tx_ctrl, 0:0, scratch216, 15:15);1831s(emc_pmacro_data_pad_tx_ctrl, 6:5, scratch216, 17:16);1832s(emc_pmacro_data_pad_tx_ctrl, 10:10, scratch216, 18:18);1833s(emc_pmacro_data_pad_tx_ctrl, 16:15, scratch216, 20:19);1834s(emc_pmacro_data_pad_tx_ctrl, 30:21, scratch216, 30:21);18351836// LPDDR4 MRW.1837s(emc_mrw_lpddr2zcal_warm_boot, 23:16, scratch5, 7:0);1838s(emc_mrw_lpddr2zcal_warm_boot, 7:0, scratch5, 15:8);1839s(emc_warm_boot_mrw_extra, 23:16, scratch5, 23:16);1840s(emc_warm_boot_mrw_extra, 7:0, scratch5, 31:24);1841s(emc_mrw_lpddr2zcal_warm_boot, 31:30, scratch6, 1:0);1842s(emc_warm_boot_mrw_extra, 31:30, scratch6, 3:2);1843s(emc_mrw_lpddr2zcal_warm_boot, 27:26, scratch6, 5:4);1844s(emc_warm_boot_mrw_extra, 27:26, scratch6, 7:6);1845s(emc_mrw6, 27:0, scratch8, 27:0);1846s(emc_mrw6, 31:30, scratch8, 29:28);1847s(emc_mrw8, 27:0, scratch9, 27:0);1848s(emc_mrw8, 31:30, scratch9, 29:28);1849s(emc_mrw9, 27:0, scratch10, 27:0);1850s(emc_mrw9, 31:30, scratch10, 29:28);1851s(emc_mrw10, 27:0, scratch11, 27:0);1852s(emc_mrw10, 31:30, scratch11, 29:28);1853s(emc_mrw12, 27:0, scratch12, 27:0);1854s(emc_mrw12, 31:30, scratch12, 29:28);1855s(emc_mrw13, 27:0, scratch13, 27:0);1856s(emc_mrw13, 31:30, scratch13, 29:28);1857s(emc_mrw14, 27:0, scratch14, 27:0);1858s(emc_mrw14, 31:30, scratch14, 29:28);1859s(emc_mrw1, 7:0, scratch15, 7:0);1860s(emc_mrw1, 23:16, scratch15, 15:8);1861s(emc_mrw1, 27:26, scratch15, 17:16);1862s(emc_mrw1, 31:30, scratch15, 19:18);1863s(emc_warm_boot_mrw_extra, 7:0, scratch16, 7:0);1864s(emc_warm_boot_mrw_extra, 23:16, scratch16, 15:8);1865s(emc_warm_boot_mrw_extra, 27:26, scratch16, 17:16);1866s(emc_warm_boot_mrw_extra, 31:30, scratch16, 19:18);1867s(emc_mrw2, 7:0, scratch17, 7:0);1868s(emc_mrw2, 23:16, scratch17, 15:8);1869s(emc_mrw2, 27:26, scratch17, 17:16);1870s(emc_mrw2, 31:30, scratch17, 19:18);1871s(emc_mrw3, 7:0, scratch18, 7:0);1872s(emc_mrw3, 23:16, scratch18, 15:8);1873s(emc_mrw3, 27:26, scratch18, 17:16);1874s(emc_mrw3, 31:30, scratch18, 19:18);1875s(emc_mrw4, 7:0, scratch19, 7:0);1876s(emc_mrw4, 23:16, scratch19, 15:8);1877s(emc_mrw4, 27:26, scratch19, 17:16);1878s(emc_mrw4, 31:30, scratch19, 19:18);18791880s32(emc_cmd_mapping_byte, secure_scratch8);1881s32(emc_pmacro_brick_mapping0, secure_scratch9);1882s32(emc_pmacro_brick_mapping1, secure_scratch10);1883s32(emc_pmacro_brick_mapping2, secure_scratch11);1884s32(mc_video_protect_gpu_override0, secure_scratch12);1885s(emc_cmd_mapping_cmd0_0, 6:0, secure_scratch13, 6:0);1886s(emc_cmd_mapping_cmd0_0, 14:8, secure_scratch13, 13:7);1887s(emc_cmd_mapping_cmd0_0, 22:16, secure_scratch13, 20:14);1888s(emc_cmd_mapping_cmd0_0, 30:24, secure_scratch13, 27:21);1889s(mc_untranslated_region_check, 0:0, secure_scratch13, 28:28);1890s(mc_untranslated_region_check, 9:8, secure_scratch13, 30:29);1891s(emc_adr_cfg, 0:0, secure_scratch13, 31:31);1892s(emc_cmd_mapping_cmd0_1, 6:0, secure_scratch14, 6:0);1893s(emc_cmd_mapping_cmd0_1, 14:8, secure_scratch14, 13:7);1894s(emc_cmd_mapping_cmd0_1, 22:16, secure_scratch14, 20:14);1895s(emc_cmd_mapping_cmd0_1, 30:24, secure_scratch14, 27:21);1896s(mc_video_protect_bom_adr_hi, 1:0, secure_scratch14, 29:28);1897s(mc_video_protect_write_access, 1:0, secure_scratch14, 31:30);1898s(emc_cmd_mapping_cmd1_0, 6:0, secure_scratch15, 6:0);1899s(emc_cmd_mapping_cmd1_0, 14:8, secure_scratch15, 13:7);1900s(emc_cmd_mapping_cmd1_0, 22:16, secure_scratch15, 20:14);1901s(emc_cmd_mapping_cmd1_0, 30:24, secure_scratch15, 27:21);1902s(mc_sec_carveout_adr_hi, 1:0, secure_scratch15, 29:28);1903s(mc_mts_carveout_adr_hi, 1:0, secure_scratch15, 31:30);1904s(emc_cmd_mapping_cmd1_1, 6:0, secure_scratch16, 6:0);1905s(emc_cmd_mapping_cmd1_1, 14:8, secure_scratch16, 13:7);1906s(emc_cmd_mapping_cmd1_1, 22:16, secure_scratch16, 20:14);1907s(emc_cmd_mapping_cmd1_1, 30:24, secure_scratch16, 27:21);1908s(mc_generalized_carveout5_bom_hi, 1:0, secure_scratch16, 29:28);1909s(mc_generalized_carveout3_bom_hi, 1:0, secure_scratch16, 31:30);1910s(emc_cmd_mapping_cmd2_0, 6:0, secure_scratch17, 6:0);1911s(emc_cmd_mapping_cmd2_0, 14:8, secure_scratch17, 13:7);1912s(emc_cmd_mapping_cmd2_0, 22:16, secure_scratch17, 20:14);1913s(emc_cmd_mapping_cmd2_0, 30:24, secure_scratch17, 27:21);1914s(mc_generalized_carveout2_bom_hi, 1:0, secure_scratch17, 29:28);1915s(mc_generalized_carveout4_bom_hi, 1:0, secure_scratch17, 31:30);1916s(emc_cmd_mapping_cmd2_1, 6:0, secure_scratch18, 6:0);1917s(emc_cmd_mapping_cmd2_1, 14:8, secure_scratch18, 13:7);1918s(emc_cmd_mapping_cmd2_1, 22:16, secure_scratch18, 20:14);1919s(emc_cmd_mapping_cmd2_1, 30:24, secure_scratch18, 27:21);1920s(mc_generalized_carveout1_bom_hi, 1:0, secure_scratch18, 29:28);1921s(emc_fbio_spare, 1:1, secure_scratch18, 30:30);1922s(emc_fbio_cfg8, 15:15, secure_scratch18, 31:31);1923s(emc_cmd_mapping_cmd3_0, 6:0, secure_scratch19, 6:0);1924s(emc_cmd_mapping_cmd3_0, 14:8, secure_scratch19, 13:7);1925s(emc_cmd_mapping_cmd3_0, 22:16, secure_scratch19, 20:14);1926s(emc_cmd_mapping_cmd3_0, 30:24, secure_scratch19, 27:21);1927s(mc_emem_adr_cfg, 0:0, secure_scratch19, 28:28);1928s(mc_sec_carveout_protect_write_access, 0:0, secure_scratch19, 29:29);1929s(mc_mts_carveout_reg_ctrl, 0:0, secure_scratch19, 30:30);1930s(mc_video_protect_vpr_override, 0:0, secure_scratch19, 31:31);1931s(emc_cmd_mapping_cmd3_1, 6:0, secure_scratch20, 6:0);1932s(emc_cmd_mapping_cmd3_1, 14:8, secure_scratch20, 13:7);1933s(emc_cmd_mapping_cmd3_1, 22:16, secure_scratch20, 20:14);1934s(emc_cmd_mapping_cmd3_1, 30:24, secure_scratch20, 27:21);1935s(mc_generalized_carveout2_cfg0, 6:3, secure_scratch20, 31:28);1936s(mc_generalized_carveout4_cfg0, 26:0, secure_scratch39, 26:0);1937s(mc_generalized_carveout2_cfg0, 10:7, secure_scratch39, 30:27);1938s(mc_video_protect_vpr_override, 1:1, secure_scratch39, 31:31);1939s(mc_generalized_carveout5_cfg0, 26:0, secure_scratch40, 26:0);1940s(mc_generalized_carveout2_cfg0, 17:14, secure_scratch40, 30:27);1941s(mc_video_protect_vpr_override, 2:2, secure_scratch40, 31:31);1942s(emc_cmd_mapping_cmd0_2, 6:0, secure_scratch41, 6:0);1943s(emc_cmd_mapping_cmd0_2, 14:8, secure_scratch41, 13:7);1944s(emc_cmd_mapping_cmd0_2, 22:16, secure_scratch41, 20:14);1945s(emc_cmd_mapping_cmd0_2, 27:24, secure_scratch41, 24:21);1946s(mc_generalized_carveout2_cfg0, 21:18, secure_scratch41, 28:25);1947s(mc_generalized_carveout2_cfg0, 13:11, secure_scratch41, 31:29);1948s(emc_cmd_mapping_cmd1_2, 6:0, secure_scratch42, 6:0);1949s(emc_cmd_mapping_cmd1_2, 14:8, secure_scratch42, 13:7);1950s(emc_cmd_mapping_cmd1_2, 22:16, secure_scratch42, 20:14);1951s(emc_cmd_mapping_cmd1_2, 27:24, secure_scratch42, 24:21);1952s(mc_generalized_carveout1_cfg0, 6:3, secure_scratch42, 28:25);1953s(mc_generalized_carveout1_cfg0, 13:11, secure_scratch42, 31:29);1954s(emc_cmd_mapping_cmd2_2, 6:0, secure_scratch43, 6:0);1955s(emc_cmd_mapping_cmd2_2, 14:8, secure_scratch43, 13:7);1956s(emc_cmd_mapping_cmd2_2, 22:16, secure_scratch43, 20:14);1957s(emc_cmd_mapping_cmd2_2, 27:24, secure_scratch43, 24:21);1958s(mc_generalized_carveout1_cfg0, 10:7, secure_scratch43, 28:25);1959s(mc_generalized_carveout3_cfg0, 13:11, secure_scratch43, 31:29);1960s(emc_cmd_mapping_cmd3_2, 6:0, secure_scratch44, 6:0);1961s(emc_cmd_mapping_cmd3_2, 14:8, secure_scratch44, 13:7);1962s(emc_cmd_mapping_cmd3_2, 22:16, secure_scratch44, 20:14);1963s(emc_cmd_mapping_cmd3_2, 27:24, secure_scratch44, 24:21);1964s(mc_generalized_carveout1_cfg0, 17:14, secure_scratch44, 28:25);1965s(mc_video_protect_vpr_override, 3:3, secure_scratch44, 29:29);1966s(mc_video_protect_vpr_override, 7:6, secure_scratch44, 31:30);1967s(mc_emem_adr_cfg_channel_mask, 31:9, secure_scratch45, 22:0);1968s(mc_emem_adr_cfg_dev0, 2:0, secure_scratch45, 25:23);1969s(mc_emem_adr_cfg_dev0, 9:8, secure_scratch45, 27:26);1970s(mc_emem_adr_cfg_dev0, 19:16, secure_scratch45, 31:28);1971s(mc_emem_adr_cfg_bank_mask0, 31:10, secure_scratch46, 21:0);1972s(mc_emem_adr_cfg_dev1, 2:0, secure_scratch46, 24:22);1973s(mc_emem_adr_cfg_dev1, 9:8, secure_scratch46, 26:25);1974s(mc_emem_adr_cfg_dev1, 19:16, secure_scratch46, 30:27);1975s(mc_video_protect_vpr_override, 8:8, secure_scratch46, 31:31);1976s(mc_emem_adr_cfg_bank_mask1, 31:10, secure_scratch47, 21:0);1977s(mc_generalized_carveout1_cfg0, 21:18, secure_scratch47, 25:22);1978s(mc_generalized_carveout3_cfg0, 6:3, secure_scratch47, 29:26);1979s(mc_video_protect_vpr_override, 9:9, secure_scratch47, 30:30);1980s(mc_video_protect_vpr_override, 11:11, secure_scratch47, 31:31);1981s(mc_emem_adr_cfg_bank_mask2, 31:10, secure_scratch48, 21:0);1982s(mc_generalized_carveout3_cfg0, 10:7, secure_scratch48, 25:22);1983s(mc_generalized_carveout3_cfg0, 17:14, secure_scratch48, 29:26);1984s(mc_video_protect_vpr_override, 15:14, secure_scratch48, 31:30);1985s(mc_video_protect_gpu_override1, 15:0, secure_scratch49, 15:0);1986s(mc_emem_cfg, 13:0, secure_scratch49, 29:16);1987s(mc_emem_cfg, 31:31, secure_scratch49, 30:30);1988s(mc_video_protect_vpr_override, 17:17, secure_scratch49, 31:31);1989s(mc_generalized_carveout3_bom, 31:17, secure_scratch50, 14:0);1990s(mc_generalized_carveout1_bom, 31:17, secure_scratch50, 29:15);1991s(mc_video_protect_vpr_override, 19:18, secure_scratch50, 31:30);1992s(mc_generalized_carveout4_bom, 31:17, secure_scratch51, 14:0);1993s(mc_generalized_carveout2_bom, 31:17, secure_scratch51, 29:15);1994s(mc_video_protect_vpr_override, 21:20, secure_scratch51, 31:30);1995s(mc_generalized_carveout5_bom, 31:17, secure_scratch52, 14:0);1996s(mc_video_protect_bom, 31:20, secure_scratch52, 26:15);1997s(mc_generalized_carveout3_cfg0, 21:18, secure_scratch52, 30:27);1998s(mc_video_protect_vpr_override, 22:22, secure_scratch52, 31:31);1999s(mc_video_protect_size_mb, 11:0, secure_scratch53, 11:0);2000s(mc_sec_carveout_bom, 31:20, secure_scratch53, 23:12);2001s(mc_video_protect_vpr_override, 23:23, secure_scratch53, 24:24);2002s(mc_video_protect_vpr_override, 26:26, secure_scratch53, 25:25);2003s(mc_video_protect_vpr_override, 31:29, secure_scratch53, 28:26);2004s(mc_video_protect_vpr_override1, 1:0, secure_scratch53, 30:29);2005s(mc_video_protect_vpr_override1, 4:4, secure_scratch53, 31:31);2006s(mc_sec_carveout_size_mb, 11:0, secure_scratch54, 11:0);2007s(mc_mts_carveout_bom, 31:20, secure_scratch54, 23:12);2008s(mc_video_protect_vpr_override1, 12:5, secure_scratch54, 31:24);2009s(mc_mts_carveout_size_mb, 11:0, secure_scratch55, 11:0);2010s(mc_generalized_carveout4_size_128kb, 11:0, secure_scratch55, 23:12);2011s(mc_video_protect_vpr_override1, 16:13, secure_scratch55, 27:24);2012s(mc_video_protect_vpr_override1, 26:25, secure_scratch55, 29:28);2013s(mc_generalized_carveout2_cfg0, 1:0, secure_scratch55, 31:30);2014s(mc_generalized_carveout3_size_128kb, 11:0, secure_scratch56, 11:0);2015s(mc_generalized_carveout2_size_128kb, 11:0, secure_scratch56, 23:12);2016s(mc_generalized_carveout2_cfg0, 2:2, secure_scratch56, 24:24);2017s(mc_generalized_carveout2_cfg0, 26:22, secure_scratch56, 29:25);2018s(mc_generalized_carveout1_cfg0, 1:0, secure_scratch56, 31:30);2019s(mc_generalized_carveout1_size_128kb, 11:0, secure_scratch57, 11:0);2020s(mc_generalized_carveout5_size_128kb, 11:0, secure_scratch57, 23:12);2021s(mc_generalized_carveout1_cfg0, 2:2, secure_scratch57, 24:24);2022s(mc_generalized_carveout1_cfg0, 26:22, secure_scratch57, 29:25);2023s(mc_generalized_carveout3_cfg0, 1:0, secure_scratch57, 31:30);2024s(mc_generalized_carveout3_cfg0, 2:2, secure_scratch58, 0:0);2025s(mc_generalized_carveout3_cfg0, 26:22, secure_scratch58, 5:1);20262027s32(mc_generalized_carveout1_access0, secure_scratch59);2028s32(mc_generalized_carveout1_access1, secure_scratch60);2029s32(mc_generalized_carveout1_access2, secure_scratch61);2030s32(mc_generalized_carveout1_access3, secure_scratch62);2031s32(mc_generalized_carveout1_access4, secure_scratch63);2032s32(mc_generalized_carveout2_access0, secure_scratch64);2033s32(mc_generalized_carveout2_access1, secure_scratch65);2034s32(mc_generalized_carveout2_access2, secure_scratch66);2035s32(mc_generalized_carveout2_access3, secure_scratch67);2036s32(mc_generalized_carveout2_access4, secure_scratch68);2037s32(mc_generalized_carveout3_access0, secure_scratch69);2038s32(mc_generalized_carveout3_access1, secure_scratch70);2039s32(mc_generalized_carveout3_access2, secure_scratch71);2040s32(mc_generalized_carveout3_access3, secure_scratch72);2041s32(mc_generalized_carveout3_access4, secure_scratch73);2042s32(mc_generalized_carveout4_access0, secure_scratch74);2043s32(mc_generalized_carveout4_access1, secure_scratch75);2044s32(mc_generalized_carveout4_access2, secure_scratch76);2045s32(mc_generalized_carveout4_access3, secure_scratch77);2046s32(mc_generalized_carveout4_access4, secure_scratch78);2047s32(mc_generalized_carveout5_access0, secure_scratch79);2048s32(mc_generalized_carveout5_access1, secure_scratch80);2049s32(mc_generalized_carveout5_access2, secure_scratch81);2050s32(mc_generalized_carveout5_access3, secure_scratch82);2051s32(mc_generalized_carveout1_force_internal_access0, secure_scratch84);2052s32(mc_generalized_carveout1_force_internal_access1, secure_scratch85);2053s32(mc_generalized_carveout1_force_internal_access2, secure_scratch86);2054s32(mc_generalized_carveout1_force_internal_access3, secure_scratch87);2055s32(mc_generalized_carveout1_force_internal_access4, secure_scratch88);2056s32(mc_generalized_carveout2_force_internal_access0, secure_scratch89);2057s32(mc_generalized_carveout2_force_internal_access1, secure_scratch90);2058s32(mc_generalized_carveout2_force_internal_access2, secure_scratch91);2059s32(mc_generalized_carveout2_force_internal_access3, secure_scratch92);2060s32(mc_generalized_carveout2_force_internal_access4, secure_scratch93);2061s32(mc_generalized_carveout3_force_internal_access0, secure_scratch94);2062s32(mc_generalized_carveout3_force_internal_access1, secure_scratch95);2063s32(mc_generalized_carveout3_force_internal_access2, secure_scratch96);2064s32(mc_generalized_carveout3_force_internal_access3, secure_scratch97);2065s32(mc_generalized_carveout3_force_internal_access4, secure_scratch98);2066s32(mc_generalized_carveout4_force_internal_access0, secure_scratch99);2067s32(mc_generalized_carveout4_force_internal_access1, secure_scratch100);2068s32(mc_generalized_carveout4_force_internal_access2, secure_scratch101);2069s32(mc_generalized_carveout4_force_internal_access3, secure_scratch102);2070s32(mc_generalized_carveout4_force_internal_access4, secure_scratch103);2071s32(mc_generalized_carveout5_force_internal_access0, secure_scratch104);2072s32(mc_generalized_carveout5_force_internal_access1, secure_scratch105);2073s32(mc_generalized_carveout5_force_internal_access2, secure_scratch106);2074s32(mc_generalized_carveout5_force_internal_access3, secure_scratch107);20752076// PLLM. Unused, BCT is used for PLLM.2077c32(0, scratch2);2078s(pllm_input_divider, 7:0, scratch2, 7:0);2079s(pllm_feedback_divider, 7:0, scratch2, 15:8);2080s(pllm_post_divider, 0:0, scratch2, 16:16);2081s(pllm_kvco, 0:0, scratch2, 17:17);2082s(pllm_kcp, 1:0, scratch2, 19:18);20832084c32(0, scratch35);2085s(pllm_setup_control, 27:0, scratch35, 27:0);20862087// PLLX.2088s(pllm_input_divider, 7:0, scratch3, 7:0);2089c(62, scratch3, 15:8); // 62 divn.2090c(0, scratch3, 20:16); // 0 divp.2091s(pllm_kvco, 0:0, scratch3, 21:21);2092s(pllm_kcp, 1:0, scratch3, 23:22);2093// s(pllm_kcp, 9:0, scratch3, 31:22);20942095c32(0, scratch36);2096s(pllm_setup_control, 23:0, scratch36, 23:0);20972098// PLLM/PLLX.2099s(pllm_stable_time, 9:0, scratch4, 9:0);2100s(pllm_stable_time, 9:0, scratch4, 19:10);2101}21022103void sdram_lp0_entry(void *sdram_config, bdk_params_t *bp)2104{2105u32 chip_id = (APB_MISC(APB_MISC_GP_HIDREV) >> 4) & 0xF;21062107if (chip_id != GP_HIDREV_MAJOR_T210B01)2108_sdram_lp0_save_params_t210(sdram_config);2109else2110_sdram_lp0_save_params_t210b01(sdram_config);2111}211221132114