Port 4.4 suspend code into TF-A
- Import register layout, flag definitions, etc. from 4.4
- Import low-power core firmware
- Copy register settings and control flow from 4.4
- Fix a bug on resume where the wrong initialization was called for the
interrupt controller.
Change-Id: Ia32717f7b6715b85370a382fa343a474d5fbb20a
diff --git a/plat/mediatek/mt8516/drivers/spm/spm.c b/plat/mediatek/mt8516/drivers/spm/spm.c
index 5e10629..2a781a4 100644
--- a/plat/mediatek/mt8516/drivers/spm/spm.c
+++ b/plat/mediatek/mt8516/drivers/spm/spm.c
@@ -124,10 +124,9 @@
{
unsigned int con1;
int i = 0;
-
mmio_write_32(SPM_PCM_CON0, CON0_CFG_KEY | CON0_PCM_SW_RESET);
mmio_write_32(SPM_PCM_CON0, CON0_CFG_KEY);
- while (mmio_read_32(SPM_PCM_FSM_STA) != PCM_FSM_STA_DEF) {
+ while ((mmio_read_32(SPM_PCM_FSM_STA) & 0x3fffff) != PCM_FSM_STA_DEF) {
i++;
if (i > 1000) {
i = 0;
@@ -158,23 +157,19 @@
void spm_set_power_control(const struct pwr_ctrl *pwrctrl)
{
- mmio_write_32(SPM_AP_STANBY_CON, (!pwrctrl->md32_req_mask << 21) |
- (!pwrctrl->mfg_req_mask << 17) |
- (!pwrctrl->disp_req_mask << 16) |
+ mmio_write_32(SPM_AP_STANBY_CON,
+ (!pwrctrl->srclkenai_mask << 25) |
+ (!pwrctrl->conn_mask << 23) |
+ (!pwrctrl->mm_ddr_req_mask << 18) |
+ (!pwrctrl->vdec_req_mask << 17) |
+ (!pwrctrl->mfg_req_mask << 16) |
+ (!pwrctrl->disp1_req_mask << 15) |
+ (!pwrctrl->disp0_req_mask << 14) |
(!!pwrctrl->mcusys_idle_mask << 7) |
(!!pwrctrl->ca15top_idle_mask << 6) |
(!!pwrctrl->ca7top_idle_mask << 5) |
(!!pwrctrl->wfi_op << 4));
- mmio_write_32(SPM_PCM_SRC_REQ, (!!pwrctrl->pcm_apsrc_req << 0));
- mmio_write_32(SPM_PCM_PASR_DPD_2, 0);
-
- mmio_clrsetbits_32(SPM_CLK_CON, CC_SRCLKENA_MASK_0,
- (pwrctrl->srclkenai_mask ? CC_SRCLKENA_MASK_0 : 0));
-
- mmio_write_32(SPM_SLEEP_CA15_WFI0_EN, !!pwrctrl->ca15_wfi0_en);
- mmio_write_32(SPM_SLEEP_CA15_WFI1_EN, !!pwrctrl->ca15_wfi1_en);
- mmio_write_32(SPM_SLEEP_CA15_WFI2_EN, !!pwrctrl->ca15_wfi2_en);
- mmio_write_32(SPM_SLEEP_CA15_WFI3_EN, !!pwrctrl->ca15_wfi3_en);
+ mmio_write_32(SPM_PCM_SRC_REQ, (!!pwrctrl->pcm_f26m_req << 1) | (!!pwrctrl->pcm_apsrc_req << 0));
mmio_write_32(SPM_SLEEP_CA7_WFI0_EN, !!pwrctrl->ca7_wfi0_en);
mmio_write_32(SPM_SLEEP_CA7_WFI1_EN, !!pwrctrl->ca7_wfi1_en);
mmio_write_32(SPM_SLEEP_CA7_WFI2_EN, !!pwrctrl->ca7_wfi2_en);
@@ -191,7 +186,8 @@
val = pwrctrl->timer_val_cust;
mmio_write_32(SPM_PCM_TIMER_VAL, val);
- mmio_setbits_32(SPM_PCM_CON1, CON1_CFG_KEY);
+ mmio_setbits_32(SPM_PCM_CON1,
+ mmio_read_32(SPM_PCM_CON1) | CON1_CFG_KEY | CON1_PCM_TIMER_EN);
if (pwrctrl->wake_src_cust == 0)
mask = pwrctrl->wake_src;
@@ -202,7 +198,8 @@
mask &= ~WAKE_SRC_SYSPWREQ;
mmio_write_32(SPM_SLEEP_WAKEUP_EVENT_MASK, ~mask);
- mmio_write_32(SPM_SLEEP_ISR_MASK, 0xfe04);
+ uint32_t isr = mmio_read_32(SPM_SLEEP_ISR_MASK) & ISRM_TWAM;
+ mmio_write_32(SPM_SLEEP_ISR_MASK, isr | ISRM_RET_IRQ_AUX);
}
void spm_get_wakeup_status(struct wake_status *wakesta)
@@ -253,11 +250,6 @@
con0 = mmio_read_32(SPM_PCM_CON0) & ~(CON0_IM_KICK | CON0_PCM_KICK);
mmio_write_32(SPM_PCM_CON0, con0 | CON0_CFG_KEY | CON0_IM_KICK);
mmio_write_32(SPM_PCM_CON0, con0 | CON0_CFG_KEY);
-
- /* kick IM to fetch (only toggle PCM_KICK) */
- con0 = mmio_read_32(SPM_PCM_CON0) & ~(CON0_IM_KICK | CON0_PCM_KICK);
- mmio_write_32(SPM_PCM_CON0, con0 | CON0_CFG_KEY | CON0_PCM_KICK);
- mmio_write_32(SPM_PCM_CON0, con0 | CON0_CFG_KEY);
}
void spm_set_sysclk_settle(void)
@@ -269,34 +261,11 @@
void spm_kick_pcm_to_run(struct pwr_ctrl *pwrctrl)
{
- unsigned int con1;
-
- con1 = mmio_read_32(SPM_PCM_CON1) &
- ~(CON1_PCM_WDT_WAKE_MODE | CON1_PCM_WDT_EN);
-
- mmio_write_32(SPM_PCM_CON1, CON1_CFG_KEY | con1);
-
- if (mmio_read_32(SPM_PCM_TIMER_VAL) > PCM_TIMER_MAX)
- mmio_write_32(SPM_PCM_TIMER_VAL, PCM_TIMER_MAX);
-
- mmio_write_32(SPM_PCM_WDT_TIMER_VAL,
- mmio_read_32(SPM_PCM_TIMER_VAL) + PCM_WDT_TIMEOUT);
-
- mmio_write_32(SPM_PCM_CON1, con1 | CON1_CFG_KEY | CON1_PCM_WDT_EN);
mmio_write_32(SPM_PCM_PASR_DPD_0, 0);
-
- mmio_write_32(SPM_PCM_MAS_PAUSE_MASK, 0xffffffff);
- mmio_write_32(SPM_PCM_REG_DATA_INI, 0);
- mmio_clrbits_32(SPM_CLK_CON, CC_DISABLE_DORM_PWR);
-
mmio_write_32(SPM_PCM_FLAGS, pwrctrl->pcm_flags);
-
- mmio_clrsetbits_32(SPM_CLK_CON, CC_LOCK_INFRA_DCM,
+ mmio_write_32(SPM_PCM_RESERVE, pwrctrl->pcm_reserve);
+ mmio_write_32(SPM_CLK_CON, (mmio_read_32(SPM_CLK_CON) & ~CC_LOCK_INFRA_DCM) |
(pwrctrl->infra_dcm_lock ? CC_LOCK_INFRA_DCM : 0));
-
- mmio_write_32(SPM_PCM_PWR_IO_EN,
- (pwrctrl->r0_ctrl_en ? PCM_PWRIO_EN_R0 : 0) |
- (pwrctrl->r7_ctrl_en ? PCM_PWRIO_EN_R7 : 0));
}
void spm_clean_after_wakeup(void)
diff --git a/plat/mediatek/mt8516/drivers/spm/spm.h b/plat/mediatek/mt8516/drivers/spm/spm.h
index 3eabadb..16f586e 100644
--- a/plat/mediatek/mt8516/drivers/spm/spm.h
+++ b/plat/mediatek/mt8516/drivers/spm/spm.h
@@ -171,19 +171,25 @@
#define MP0_CPU3_PD_SLPB_CLAMP (1U << 14)
#define SPM_CPU_PDN_DIS (1U << 0)
-#define SPM_INFRA_PDN_DIS (1U << 1)
-#define SPM_DDRPHY_PDN_DIS (1U << 2)
-#define SPM_DUALVCORE_PDN_DIS (1U << 3)
-#define SPM_PASR_DIS (1U << 4)
-#define SPM_DPD_DIS (1U << 5)
-#define SPM_SODI_DIS (1U << 6)
-#define SPM_MEMPLL_RESET (1U << 7)
-#define SPM_MAINPLL_PDN_DIS (1U << 8)
-#define SPM_CPU_DVS_DIS (1U << 9)
-#define SPM_CPU_DORMANT (1U << 10)
-#define SPM_EXT_VSEL_GPIO103 (1U << 11)
-#define SPM_DDR_HIGH_SPEED (1U << 12)
-#define SPM_OPT (1U << 13)
+#define SPM_CPUTOP_PDN_DIS (1U << 1)
+#define SPM_L2_DORMANT_DIS (1U << 2)
+#define SPM_MCU_PDN_DIS (1U << 3)
+#define SPM_BUS26M_DIS (1U << 4)
+#define SPM_MPLLOFF_DIS (1U << 5)
+#define SPM_DDRPHY_S1_DIS (1U << 6)
+#define SPM_DDRPHY_S0_DIS (1U << 7)
+#define SPM_FHC_SLEEP_DIS (1U << 8)
+#define SPM_VPROC_LOW_DIS (1U << 9)
+#define SPM_INFRA_PDN_DIS (1U << 10)
+#define SPM_26M_DIS (1U << 11)
+#define SPM_26M_OFF_DIS (1U << 12)
+#define SPM_XO_OFF_DIS (1U << 13)
+#define SPM_32K_LESS (1U << 14)
+#define SPM_PLL_OFF_DIS (1U << 15)
+#define SPM_NO_PMIC_WRAP (1U << 16)
+#define SPM_ALL_IN_ONE_DIS (1U << 17)
+#define SPM_PLLGP_OFF_DIS (1U << 18)
+#define SPM_SRAMROM_PDN_DIS (1U << 19)
#define POWER_ON_VAL1_DEF 0x01011820
#define PCM_FSM_STA_DEF 0x48490
@@ -194,6 +200,9 @@
#define PCM_WDT_TIMEOUT (30 * 32768)
#define PCM_TIMER_MAX (0xffffffff - PCM_WDT_TIMEOUT)
+#define PCM_CMD_MASK 0xffff0000
+#define PCM_CMD_SUSPEND_PCM 0x50d10000
+
#define CON0_PCM_KICK (1U << 0)
#define CON0_IM_KICK (1U << 1)
#define CON0_IM_SLEEP_DVS (1U << 3)
@@ -237,23 +246,53 @@
#define WAKE_MISC_PCM_TIMER (1U << 19)
#define WAKE_MISC_CPU_WAKE (1U << 20)
-/* define WAKE_SRC_XXX */
-#define WAKE_SRC_SPM_MERGE (1 << 0)
-#define WAKE_SRC_KP (1 << 2)
-#define WAKE_SRC_WDT (1 << 3)
-#define WAKE_SRC_GPT (1 << 4)
-#define WAKE_SRC_EINT (1 << 6)
-#define WAKE_SRC_LOW_BAT (1 << 9)
-#define WAKE_SRC_MD32 (1 << 10)
-#define WAKE_SRC_USB_CD (1 << 14)
-#define WAKE_SRC_USB_PDN (1 << 15)
-#define WAKE_SRC_AFE (1 << 20)
-#define WAKE_SRC_THERM (1 << 21)
-#define WAKE_SRC_CIRQ (1 << 22)
-#define WAKE_SRC_SYSPWREQ (1 << 24)
-#define WAKE_SRC_SEJ (1 << 27)
-#define WAKE_SRC_ALL_MD32 (1 << 28)
-#define WAKE_SRC_CPU_IRQ (1 << 29)
+#define ISRM_TWAM (1U << 2)
+#define ISRM_RET_IRQ0 (1U << 8)
+#define ISRM_RET_IRQ1 (1U << 9)
+#define ISRM_RET_IRQ2 (1U << 10)
+#define ISRM_RET_IRQ3 (1U << 11)
+#define ISRM_RET_IRQ4 (1U << 12)
+#define ISRM_RET_IRQ5 (1U << 13)
+#define ISRM_RET_IRQ6 (1U << 14)
+#define ISRM_RET_IRQ7 (1U << 15)
+
+#define ISRM_RET_IRQ_AUX (ISRM_RET_IRQ7 | ISRM_RET_IRQ6 | \
+ ISRM_RET_IRQ5 | ISRM_RET_IRQ4 | \
+ ISRM_RET_IRQ3 | ISRM_RET_IRQ2 | \
+ ISRM_RET_IRQ1)
+
+enum SPM_WAKE_SRC {
+ WAKE_SRC_SPM_MERGE = (1U << 0), /* WAKE_ID_SPM_MERGE */
+ WAKE_SRC_AUDIO_REQ = (1U << 1), /* WAKE_ID_AUDIO_REQ */
+ WAKE_SRC_KP = (1U << 2), /* WAKE_ID_KP */
+ WAKE_SRC_WDT = (1U << 3), /* WAKE_ID_WDT */
+ WAKE_SRC_GPT = (1U << 4), /* WAKE_ID_GPT */
+ WAKE_SRC_EINT = (1U << 5), /* WAKE_ID_EINT */
+ WAKE_SRC_CONN_WDT = (1U << 6), /* WAKE_ID_CONN_WDT */
+ WAKE_SRC_GCE = (1U << 7), /* WAKE_ID_GCE */
+ WAKE_SRC_LOW_BAT = (1U << 9), /* WAKE_ID_LOW_BAT */
+ WAKE_SRC_CONN2AP = (1U << 10), /* WAKE_ID_CONN2AP */
+ WAKE_SRC_F26M_WAKE = (1U << 11), /* WAKE_ID_F26M_WAKE */
+ WAKE_SRC_F26M_SLEE = (1U << 12), /* WAKE_ID_F26M_SLEEP */
+ WAKE_SRC_PCM_WDT = (1U << 13), /* WAKE_ID_PCM_WDT */
+ WAKE_SRC_USB_CD = (1U << 14), /* WAKE_ID_USB_CD */
+ WAKE_SRC_USB_PDN = (1U << 15), /* WAKE_ID_USB_PDN */
+ WAKE_SRC_ETH = (1U << 16), /* WAKE_ID_ETH */
+ WAKE_SRC_DBGSYS = (1U << 18), /* WAKE_ID_DBGSYS */
+ WAKE_SRC_UART0 = (1U << 19), /* WAKE_ID_UART0 */
+ WAKE_SRC_AFE = (1U << 20), /* WAKE_ID_AFE */
+ WAKE_SRC_THERM = (1U << 21), /* WAKE_ID_THERM */
+ WAKE_SRC_CIRQ = (1U << 22), /* WAKE_ID_CIRQ */
+ WAKE_SRC_SEJ = (1U << 23), /* WAKE_ID_SEJ */
+ WAKE_SRC_SYSPWREQ = (1U << 24), /* WAKE_ID_SYSPWREQ */
+ WAKE_SRC_IRRX = (1U << 25), /* WAKE_ID_IRRX */
+ WAKE_SRC_CPU0_IRQ = (1U << 26), /* WAKE_ID_CPU0_IRQ */
+ WAKE_SRC_CPU1_IRQ = (1U << 27), /* WAKE_ID_CPU1_IRQ */
+ WAKE_SRC_CPU2_IRQ = (1U << 28), /* WAKE_ID_CPU2_IRQ */
+ WAKE_SRC_CPU3_IRQ = (1U << 29), /* WAKE_ID_CPU3_IRQ */
+ WAKE_SRC_APSRC_WAKE = (1U << 30), /* WAKE_ID_APSRC_WAKE */
+ WAKE_SRC_APSRC_SLEEP = (1U << 31), /* WAKE_ID_APSRC_SLEEP */
+};
enum wake_reason_t {
WR_NONE = 0,
@@ -273,28 +312,35 @@
unsigned int timer_val_cust;
unsigned int wake_src;
unsigned int wake_src_cust;
- unsigned int wake_src_md32;
- unsigned short r0_ctrl_en;
- unsigned short r7_ctrl_en;
- unsigned short infra_dcm_lock;
- unsigned short pcm_apsrc_req;
- unsigned short mcusys_idle_mask;
- unsigned short ca15top_idle_mask;
- unsigned short ca7top_idle_mask;
- unsigned short wfi_op;
- unsigned short ca15_wfi0_en;
- unsigned short ca15_wfi1_en;
- unsigned short ca15_wfi2_en;
- unsigned short ca15_wfi3_en;
- unsigned short ca7_wfi0_en;
- unsigned short ca7_wfi1_en;
- unsigned short ca7_wfi2_en;
- unsigned short ca7_wfi3_en;
- unsigned short disp_req_mask;
- unsigned short mfg_req_mask;
- unsigned short md32_req_mask;
- unsigned short syspwreq_mask;
- unsigned short srclkenai_mask;
+ unsigned char r0_ctrl_en;
+ unsigned char r7_ctrl_en;
+ unsigned char infra_dcm_lock;
+ unsigned char pcm_apsrc_req;
+ unsigned char pcm_f26m_req;
+ unsigned char mcusys_idle_mask;
+ unsigned char ca15top_idle_mask;
+ unsigned char ca7top_idle_mask;
+ unsigned char wfi_op;
+ unsigned char ca15_wfi0_en;
+ unsigned char ca15_wfi1_en;
+ unsigned char ca15_wfi2_en;
+ unsigned char ca15_wfi3_en;
+ unsigned char ca7_wfi0_en;
+ unsigned char ca7_wfi1_en;
+ unsigned char ca7_wfi2_en;
+ unsigned char ca7_wfi3_en;
+ unsigned char conn_mask;
+ unsigned char gce_req_mask;
+ unsigned char disp0_req_mask;
+ unsigned char disp1_req_mask;
+ unsigned char mfg_req_mask;
+ unsigned char vdec_req_mask;
+ unsigned char mm_ddr_req_mask;
+ unsigned char syspwreq_mask;
+ unsigned char srclkenai_mask;
+ unsigned int param1;
+ unsigned int param2;
+ unsigned int param3;
};
struct wake_status {
@@ -335,8 +381,8 @@
#define EVENT_VEC(event, resume, imme, pc) \
(((pc) << 16) | \
(!!(imme) << 6) | \
- (!!(resume) << 5) | \
- ((event) & 0x1f))
+ (!!(resume) << 6) | \
+ ((event) & 0x3f))
#define spm_read(addr) mmio_read_32(addr)
#define spm_write(addr, val) mmio_write_32(addr, val)
@@ -348,8 +394,6 @@
static inline void set_pwrctrl_pcm_flags(struct pwr_ctrl *pwrctrl,
unsigned int flags)
{
- flags &= ~SPM_EXT_VSEL_GPIO103;
-
if (pwrctrl->pcm_flags_cust == 0)
pwrctrl->pcm_flags = flags;
else
diff --git a/plat/mediatek/mt8516/drivers/spm/spm_hotplug.c b/plat/mediatek/mt8516/drivers/spm/spm_hotplug.c
index b05b059..f889a24 100644
--- a/plat/mediatek/mt8516/drivers/spm/spm_hotplug.c
+++ b/plat/mediatek/mt8516/drivers/spm/spm_hotplug.c
@@ -185,14 +185,12 @@
static struct pwr_ctrl hotplug_ctrl = {
.wake_src = 0,
- .wake_src_md32 = 0,
.wfi_op = WFI_OP_OR,
.mcusys_idle_mask = 1,
.ca7top_idle_mask = 1,
.ca15top_idle_mask = 1,
- .disp_req_mask = 1,
+ .disp0_req_mask = 1,
.mfg_req_mask = 1,
- .md32_req_mask = 1,
.syspwreq_mask = 1,
.pcm_flags = 0,
};
diff --git a/plat/mediatek/mt8516/drivers/spm/spm_mcdi.c b/plat/mediatek/mt8516/drivers/spm/spm_mcdi.c
index 83325ee..2067fc0 100644
--- a/plat/mediatek/mt8516/drivers/spm/spm_mcdi.c
+++ b/plat/mediatek/mt8516/drivers/spm/spm_mcdi.c
@@ -24,9 +24,9 @@
#define WAKE_SRC_FOR_MCDI \
(WAKE_SRC_KP | WAKE_SRC_GPT | WAKE_SRC_EINT | \
- WAKE_SRC_MD32 | WAKE_SRC_USB_CD | WAKE_SRC_USB_PDN | \
+ WAKE_SRC_USB_CD | WAKE_SRC_USB_PDN | \
WAKE_SRC_AFE | WAKE_SRC_THERM | WAKE_SRC_CIRQ | \
- WAKE_SRC_SYSPWREQ | WAKE_SRC_CPU_IRQ)
+ WAKE_SRC_SYSPWREQ)
#define PCM_MCDI_HANDSHAKE_SYNC 0xbeefbeef
#define PCM_MCDI_HANDSHAKE_ACK 0xdeaddead
#define PCM_MCDI_UPDATE_INFORM 0xabcdabcd
@@ -218,14 +218,12 @@
static struct pwr_ctrl mcdi_ctrl = {
.wake_src = WAKE_SRC_FOR_MCDI,
- .wake_src_md32 = 0,
.wfi_op = WFI_OP_OR,
.mcusys_idle_mask = 1,
.ca7top_idle_mask = 1,
.ca15top_idle_mask = 1,
- .disp_req_mask = 1,
+ .disp0_req_mask = 1,
.mfg_req_mask = 1,
- .md32_req_mask = 1,
};
static const struct spm_lp_scen spm_mcdi = {
diff --git a/plat/mediatek/mt8516/drivers/spm/spm_suspend.c b/plat/mediatek/mt8516/drivers/spm/spm_suspend.c
index 2530dc2..9741667 100644
--- a/plat/mediatek/mt8516/drivers/spm/spm_suspend.c
+++ b/plat/mediatek/mt8516/drivers/spm/spm_suspend.c
@@ -19,19 +19,16 @@
* This driver controls the system power in system suspend flow.
*/
-#define WAKE_SRC_FOR_SUSPEND \
- (WAKE_SRC_KP | WAKE_SRC_EINT | WAKE_SRC_MD32 | \
- WAKE_SRC_USB_CD | WAKE_SRC_USB_PDN | WAKE_SRC_THERM | \
- WAKE_SRC_SYSPWREQ | WAKE_SRC_ALL_MD32)
-
+#define WAKE_SRC_FOR_SUSPEND \
+ (WAKE_SRC_KP | WAKE_SRC_EINT | WAKE_SRC_CONN_WDT | WAKE_SRC_CONN2AP | \
+ WAKE_SRC_USB_CD | WAKE_SRC_USB_PDN | WAKE_SRC_ETH | WAKE_SRC_IRRX |\
+ WAKE_SRC_SYSPWREQ)
#define WAKE_SRC_FOR_MD32 0
#define spm_is_wakesrc_invalid(wakesrc) \
(!!((unsigned int)(wakesrc) & 0xc0003803))
-const unsigned int spm_flags =
- SPM_DUALVCORE_PDN_DIS | SPM_PASR_DIS | SPM_DPD_DIS |
- SPM_CPU_DVS_DIS | SPM_OPT | SPM_INFRA_PDN_DIS;
+const unsigned int spm_flags = SPM_INFRA_PDN_DIS | SPM_26M_OFF_DIS | SPM_32K_LESS;
enum wake_reason_t spm_wake_reason = WR_NONE;
@@ -39,82 +36,107 @@
* PCM sequence for cpu suspend
**********************************************************/
static const unsigned int suspend_binary_ca7[] = {
- 0x81f58407, 0x81f68407, 0x803a0400, 0x803a8400, 0x1b80001f, 0x20000000,
- 0x80300400, 0x80318400, 0x80328400, 0xa1d28407, 0x81f20407, 0x81409801,
- 0xd8000245, 0x17c07c1f, 0x18c0001f, 0x10006234, 0xc0c031a0, 0x1200041f,
- 0x80310400, 0x1b80001f, 0x2000000a, 0xa0110400, 0x18c0001f, 0x100062c8,
- 0xe0e00010, 0xe0e00030, 0xe0e00070, 0xe0e000f0, 0x1b80001f, 0x2000001a,
- 0xe0e00ff0, 0xe8208000, 0x10006354, 0xfffe7fff, 0xe8208000, 0x10006834,
- 0x00000010, 0x81f00407, 0xa1dd0407, 0x81fd0407, 0xc2803780, 0x1290041f,
- 0x8880000c, 0x2f7be75f, 0xd8200642, 0x17c07c1f, 0x1b00001f, 0x7fffe7ff,
- 0xd0000680, 0x17c07c1f, 0x1b00001f, 0x7ffff7ff, 0xf0000000, 0x17c07c1f,
- 0x80880001, 0xd8000762, 0x17c07c1f, 0xd00027a0, 0x1200041f, 0xe8208000,
- 0x10006834, 0x00000000, 0x1b00001f, 0x3fffe7ff, 0x1b80001f, 0x20000004,
- 0xd820092c, 0x17c07c1f, 0xe8208000, 0x10006834, 0x00000010, 0xd00011a0,
- 0x17c07c1f, 0x18c0001f, 0x10006608, 0x1910001f, 0x10006608, 0x813b0404,
- 0xe0c00004, 0x1880001f, 0x10006320, 0xc0c03680, 0xe080000f, 0xd8200b23,
- 0x17c07c1f, 0x1b00001f, 0x7ffff7ff, 0xd00011a0, 0x17c07c1f, 0xe080001f,
- 0xe8208000, 0x10006354, 0xffffffff, 0x18c0001f, 0x100062c8, 0xe0e000f0,
- 0xe0e00030, 0xe0e00000, 0x81409801, 0xd8000fe5, 0x17c07c1f, 0x18c0001f,
- 0x10004094, 0x1910001f, 0x1020e374, 0xe0c00004, 0x18c0001f, 0x10004098,
- 0x1910001f, 0x1020e378, 0xe0c00004, 0x18c0001f, 0x10011094, 0x1910001f,
- 0x10213374, 0xe0c00004, 0x18c0001f, 0x10011098, 0x1910001f, 0x10213378,
- 0xe0c00004, 0x1910001f, 0x10213378, 0x18c0001f, 0x10006234, 0xc0c03360,
- 0x17c07c1f, 0xc2803780, 0x1290841f, 0xa1d20407, 0x81f28407, 0xa1d68407,
- 0xa0128400, 0xa0118400, 0xa0100400, 0xa01a8400, 0xa01a0400, 0x19c0001f,
- 0x001c239f, 0x1b00001f, 0x3fffefff, 0xf0000000, 0x17c07c1f, 0x808d8001,
- 0xd8201422, 0x17c07c1f, 0x803d8400, 0x1b80001f, 0x2000001a, 0x80340400,
- 0x17c07c1f, 0x17c07c1f, 0x80310400, 0x81fa0407, 0x81f18407, 0x81f08407,
- 0xa1dc0407, 0x1b80001f, 0x200000b6, 0xd00020e0, 0x17c07c1f, 0x1880001f,
- 0x20000208, 0x81411801, 0xd8001605, 0x17c07c1f, 0xe8208000, 0x1000f600,
- 0xd2000000, 0x1380081f, 0x18c0001f, 0x10006240, 0xe0e00016, 0xe0e0001e,
- 0xe0e0000e, 0xe0e0000f, 0x80368400, 0x1380081f, 0x80370400, 0x1380081f,
- 0x80360400, 0x803e0400, 0x1380081f, 0x80380400, 0x803b0400, 0xa01d8400,
- 0x1b80001f, 0x20000034, 0x803d8400, 0x1b80001f, 0x20000152, 0x803d0400,
- 0x1380081f, 0x18c0001f, 0x1000f5c8, 0x1910001f, 0x1000f5c8, 0xa1000404,
- 0xe0c00004, 0x18c0001f, 0x100125c8, 0x1910001f, 0x100125c8, 0xa1000404,
- 0xe0c00004, 0x1910001f, 0x100125c8, 0x80340400, 0x17c07c1f, 0x17c07c1f,
- 0x80310400, 0xe8208000, 0x10000044, 0x00000100, 0x1b80001f, 0x20000068,
- 0x1b80001f, 0x2000000a, 0x18c0001f, 0x10006240, 0xe0e0000d, 0xd8001e65,
- 0x17c07c1f, 0x18c0001f, 0x100040f4, 0x1910001f, 0x100040f4, 0xa11c8404,
- 0xe0c00004, 0x1b80001f, 0x2000000a, 0x813c8404, 0xe0c00004, 0x18c0001f,
- 0x100110f4, 0x1910001f, 0x100110f4, 0xa11c8404, 0xe0c00004, 0x1b80001f,
- 0x2000000a, 0x813c8404, 0xe0c00004, 0x1b80001f, 0x20000100, 0x81fa0407,
- 0x81f18407, 0x81f08407, 0xe8208000, 0x10006354, 0xfffe7b47, 0x18c0001f,
- 0x65930003, 0xc0c03080, 0x17c07c1f, 0xa1d80407, 0xa1dc0407, 0x18c0001f,
- 0x10006608, 0x1910001f, 0x10006608, 0xa11b0404, 0xe0c00004, 0xc2803780,
- 0x1291041f, 0x8880000c, 0x2f7be75f, 0xd8202222, 0x17c07c1f, 0x1b00001f,
- 0x3fffe7ff, 0xd0002260, 0x17c07c1f, 0x1b00001f, 0xbfffe7ff, 0xf0000000,
- 0x17c07c1f, 0x1890001f, 0x10006608, 0x808b0801, 0xd8202502, 0x17c07c1f,
- 0x1880001f, 0x10006320, 0xc0c03400, 0xe080000f, 0xd8002663, 0x17c07c1f,
- 0xe080001f, 0xa1da0407, 0x81fc0407, 0xa0110400, 0xa0140400, 0xa01d8400,
- 0xd0002fc0, 0x17c07c1f, 0x1b80001f, 0x20000fdf, 0x1890001f, 0x10006608,
- 0x80c98801, 0x810a8801, 0x10918c1f, 0xa0939002, 0x8080080d, 0xd82027a2,
- 0x12007c1f, 0x1b00001f, 0x3fffe7ff, 0x1b80001f, 0x20000004, 0xd800304c,
- 0x17c07c1f, 0x1b00001f, 0xbfffe7ff, 0xd0003040, 0x17c07c1f, 0x81f80407,
- 0x81fc0407, 0x18c0001f, 0x65930006, 0xc0c03080, 0x17c07c1f, 0x18c0001f,
- 0x65930007, 0xc0c03080, 0x17c07c1f, 0x1880001f, 0x10006320, 0xc0c03400,
- 0xe080000f, 0xd8002663, 0x17c07c1f, 0xe080001f, 0x18c0001f, 0x65930005,
- 0xc0c03080, 0x17c07c1f, 0xa1da0407, 0xe8208000, 0x10000048, 0x00000100,
- 0x1b80001f, 0x20000068, 0xa0110400, 0xa0140400, 0x18c0001f, 0x1000f5c8,
- 0x1910001f, 0x1000f5c8, 0x81200404, 0xe0c00004, 0x18c0001f, 0x100125c8,
- 0x1910001f, 0x100125c8, 0x81200404, 0xe0c00004, 0x1910001f, 0x100125c8,
- 0xa01d0400, 0xa01b0400, 0xa0180400, 0x803d8400, 0xa01e0400, 0xa0160400,
- 0xa0170400, 0xa0168400, 0x1b80001f, 0x20000104, 0x81411801, 0xd8002f85,
- 0x17c07c1f, 0x18c0001f, 0x10006240, 0xc0c03360, 0x17c07c1f, 0xe8208000,
- 0x1000f600, 0xd2000001, 0xd8000768, 0x17c07c1f, 0xc2803780, 0x1291841f,
- 0x1b00001f, 0x7ffff7ff, 0xf0000000, 0x17c07c1f, 0x1900001f, 0x10006830,
- 0xe1000003, 0x18c0001f, 0x10006834, 0xe0e00000, 0xe0e00001, 0xf0000000,
- 0x17c07c1f, 0xe0f07f16, 0x1380201f, 0xe0f07f1e, 0x1380201f, 0xe0f07f0e,
- 0x1b80001f, 0x20000104, 0xe0f07f0c, 0xe0f07f0d, 0xe0f07e0d, 0xe0f07c0d,
- 0xe0f0780d, 0xf0000000, 0xe0f0700d, 0xe0f07f0d, 0xe0f07f0f, 0xe0f07f1e,
- 0xf0000000, 0xe0f07f12, 0x11407c1f, 0x81f08407, 0x81f18407, 0x1b80001f,
- 0x20000001, 0xa1d08407, 0xa1d18407, 0x1392841f, 0x812ab401, 0x80ebb401,
- 0xa0c00c04, 0xd8203603, 0x17c07c1f, 0x80c01403, 0xd8203423, 0x01400405,
- 0x1900001f, 0x10006814, 0xf0000000, 0xe1000003, 0xa1d00407, 0x1b80001f,
- 0x20000208, 0x80ea3401, 0x1a00001f, 0x10006814, 0xf0000000, 0xe2000003,
- 0x18c0001f, 0x10006b6c, 0x1910001f, 0x10006b6c, 0xa1002804, 0xf0000000,
- 0xe0c00004, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x803d0400, 0x803b0400, 0xa1d58407, 0x81f68407, 0x803a0400, 0x1b80001f,
+ 0x20000000, 0x80300400, 0x80328400, 0xa1d28407, 0x81f20407, 0x80338400,
+ 0x80318400, 0xa15f8405, 0x82851801, 0xd80002ca, 0x17c07c1f, 0x18c0001f,
+ 0x10006234, 0xc0c02c20, 0x1200041f, 0xa15e8405, 0x81f00407, 0xc2803a80,
+ 0x1290041f, 0x82069801, 0x82471801, 0xa2002408, 0xd8000f88, 0x17c07c1f,
+ 0xe8208000, 0x1000009c, 0x04000000, 0xe8208000, 0x100000b0, 0x00010000,
+ 0xe8208000, 0x1000007c, 0x00002508, 0x1ad0001f, 0x10006c30, 0x8a80000b,
+ 0x00000030, 0x1294281f, 0xa2922c0a, 0xaa80000a, 0x00000004, 0x1a00001f,
+ 0x10210008, 0xe8208000, 0x10210004, 0x00001d00, 0xaa40000a, 0x00900000,
+ 0xe2000009, 0xe8208000, 0x10210000, 0x00080401, 0x1b80001f, 0x20000032,
+ 0xe8208000, 0x10210004, 0x00001d00, 0xe8208000, 0x10210008, 0x00100c00,
+ 0xe8208000, 0x10210000, 0x00080401, 0x1b80001f, 0x2000079e, 0xe8208000,
+ 0x10210004, 0x00001d00, 0xe8208000, 0x10210008, 0x00100400, 0xe8208000,
+ 0x10210000, 0x00080401, 0x1b80001f, 0x20000032, 0xe8208000, 0x10210004,
+ 0x00001d00, 0xe8208000, 0x10210008, 0x03400048, 0xe8208000, 0x10210000,
+ 0x00080401, 0x1b80001f, 0x20000032, 0xe8208000, 0x10210004, 0x00001d00,
+ 0xe8208000, 0x10210008, 0x00400004, 0xe8208000, 0x10210000, 0x00080401,
+ 0x1b80001f, 0x20000032, 0xe8208000, 0x10210004, 0x00001d00, 0xe8208000,
+ 0x10210008, 0x00702000, 0xe8208000, 0x10210000, 0x00080401, 0x1b80001f,
+ 0x20000032, 0xe8208000, 0x1000006c, 0x04000000, 0xe8208000, 0x100000a0,
+ 0x00010000, 0xe8208000, 0x1000007c, 0x00002528, 0x1b00001f, 0x7fffd7ff,
+ 0xe8208000, 0x10000054, 0x00400000, 0xf0000000, 0x17c07c1f, 0x1b00001f,
+ 0x3fffc7ff, 0xd800152c, 0x17c07c1f, 0x82281801, 0xc8c031c8, 0x17c07c1f,
+ 0xe8208000, 0x10000084, 0x00400000, 0x82851801, 0xd80012aa, 0x17c07c1f,
+ 0x18c0001f, 0x10006234, 0xc0c02da0, 0x17c07c1f, 0xa15e0405, 0xc2803a80,
+ 0x1290841f, 0xa0138400, 0x1b00001f, 0x3fffcfff, 0xa0128400, 0xa0118400,
+ 0x81f58407, 0xa1d68407, 0x82069801, 0x82471801, 0x82a02401, 0xa15f0405,
+ 0xa1d20407, 0x81f28407, 0xa0100400, 0xd8001528, 0xa01a0400, 0xa01d2400,
+ 0xa01b2800, 0xf0000000, 0x17c07c1f, 0x82059801, 0xd8001628, 0x17c07c1f,
+ 0xa15f8405, 0x80318400, 0x80328400, 0x1b00001f, 0x7fffd7ff, 0xf0000000,
+ 0x17c07c1f, 0x82059801, 0xd80017e8, 0x17c07c1f, 0xa15f0405, 0xa0128400,
+ 0xa0118400, 0xc2803a80, 0x1290841f, 0xc2803a80, 0x129f041f, 0x1b00001f,
+ 0x3fffcfff, 0xf0000000, 0x17c07c1f, 0x81f30407, 0x82831801, 0xd8001f0a,
+ 0x17c07c1f, 0x82839801, 0xd8001b4a, 0x17c07c1f, 0x1a00001f, 0x10006240,
+ 0xe220001e, 0xe220000c, 0x1b80001f, 0x2000001a, 0xe220000d, 0x1a00001f,
+ 0x10006c60, 0x1a50001f, 0x10006c60, 0xa2540409, 0xe2000009, 0x1b80001f,
+ 0x20000300, 0xa15d8405, 0xa2548409, 0xe2000009, 0x81fa8407, 0x81f80407,
+ 0x1b80001f, 0x20000004, 0x81f88407, 0x1b80001f, 0x20000004, 0x80370400,
+ 0x80310400, 0x1b80001f, 0x20000004, 0xe8208000, 0x102111a4, 0x0ffffffc,
+ 0xe8208000, 0x102121a4, 0x0ffffffc, 0x1b80001f, 0x2000001a, 0x80368400,
+ 0x81fa0407, 0x82aab401, 0xa156a805, 0x81f08407, 0x821a840d, 0xd8001e88,
+ 0x17c07c1f, 0xa15c8405, 0xe8208000, 0x10006354, 0xfffff421, 0x82059801,
+ 0xd8002028, 0x17c07c1f, 0xe8208000, 0x10006354, 0xfffff423, 0xa1df0407,
+ 0xc2803a80, 0x1291041f, 0x1b00001f, 0xbfffc7ff, 0xf0000000, 0x17c07c1f,
+ 0x1a40001f, 0x10006c2c, 0x1a10001f, 0x10006c2c, 0x02000408, 0xe2400008,
+ 0x1a50001f, 0x10006608, 0x820ba401, 0x8217a00d, 0xd82024a8, 0x17c07c1f,
+ 0x81f08407, 0xe8208000, 0x10006354, 0xfffff421, 0xa1df0407, 0x1b00001f,
+ 0x3fffc7ff, 0x1b80001f, 0x20000004, 0xd8002bec, 0x17c07c1f, 0x1b00001f,
+ 0xbfffc7ff, 0x1b80001f, 0x20000004, 0xd8002bec, 0x17c07c1f, 0x82831801,
+ 0xd8002aea, 0x17c07c1f, 0x81ff0407, 0xc0c03060, 0x17c07c1f, 0xd8002283,
+ 0x17c07c1f, 0xa1da0407, 0xa0170400, 0xa0168400, 0xe8208000, 0x102111a4,
+ 0x0ffffff8, 0xe8208000, 0x102121a4, 0x0ffffff8, 0xa0110400, 0xa1d88407,
+ 0xa1d80407, 0xa1da8407, 0x1a00001f, 0x10006c60, 0x1a700008, 0x17c07c1f,
+ 0x82748409, 0xe2000009, 0xa15c0405, 0x1ad0001f, 0x10006b00, 0x82d1840b,
+ 0xd800282b, 0x17c07c1f, 0x82839801, 0xd8002aea, 0x17c07c1f, 0x1a00001f,
+ 0x10006c60, 0x82740409, 0xe2000009, 0x18c0001f, 0x10006240, 0xc0c02fc0,
+ 0x17c07c1f, 0xa15d0405, 0x1ad0001f, 0x10006b00, 0x82d2040b, 0xd8002a4b,
+ 0x17c07c1f, 0x82041801, 0xd8002b68, 0x17c07c1f, 0xa1d30407, 0xc2803a80,
+ 0x1291841f, 0x1b00001f, 0x7fffd7ff, 0xf0000000, 0x17c07c1f, 0xe0f07f16,
+ 0x1380201f, 0xe0f07f1e, 0x1380201f, 0xe0f07f0e, 0x1b80001f, 0x20000100,
+ 0xe0f07f0c, 0xe0f07f0d, 0xe0f07e0d, 0xf0000000, 0x17c07c1f, 0xe0f07f0d,
+ 0xe0f07f0f, 0xe0f07f1e, 0xe0f07f12, 0x1b80001f, 0x2000000a, 0xf0000000,
+ 0x17c07c1f, 0xe0e00016, 0x1380201f, 0xe0e0001e, 0x1380201f, 0xe0e0000e,
+ 0xe0e0000c, 0xe0e0000d, 0xf0000000, 0x17c07c1f, 0xe0e0000f, 0xe0e0001e,
+ 0xe0e00012, 0xf0000000, 0x17c07c1f, 0x1212841f, 0xa1d08407, 0xd8203128,
+ 0x80eab401, 0xd80030a3, 0x02200408, 0x1a00001f, 0x10006814, 0xe2000003,
+ 0xf0000000, 0x17c07c1f, 0xa1d00407, 0x1211041f, 0x02200408, 0x1b80001f,
+ 0x20000104, 0x80ca3401, 0xd8003363, 0x17c07c1f, 0xd8003208, 0x17c07c1f,
+ 0x1a00001f, 0x10006814, 0xe2000001, 0xf0000000, 0x17c07c1f, 0xd800346a,
+ 0x17c07c1f, 0xe2e00036, 0xe2e0003e, 0x1380201f, 0xe2e0003c, 0xd82035aa,
+ 0x17c07c1f, 0x1b80001f, 0x20000018, 0xe2e0007c, 0x1b80001f, 0x20000003,
+ 0xe2e0005c, 0xe2e0004c, 0xe2e0004d, 0xf0000000, 0x17c07c1f, 0xa1d40407,
+ 0x1391841f, 0xf0000000, 0x17c07c1f, 0xd800370a, 0x17c07c1f, 0xe2e0004f,
+ 0xe2e0006f, 0xe2e0002f, 0xd82037aa, 0x17c07c1f, 0xe2e0002e, 0xe2e0003e,
+ 0xe2e00032, 0xf0000000, 0x17c07c1f, 0x82481801, 0xd82038c9, 0x17c07c1f,
+ 0x1b80001f, 0x20000050, 0xd8003969, 0x17c07c1f, 0x18d0001f, 0x10006604,
+ 0x10cf8c1f, 0xd82037e3, 0x17c07c1f, 0xf0000000, 0x17c07c1f, 0x1ad0001f,
+ 0x10006b00, 0x82c0280b, 0xd80039ab, 0x17c07c1f, 0xf0000000, 0x17c07c1f,
+ 0x1a00001f, 0x10006b18, 0x1a50001f, 0x10006b18, 0xa2402809, 0xe2000009,
+ 0xf0000000, 0x17c07c1f, 0xe2200000, 0x1a700008, 0x17c07c1f, 0x17c07c1f,
+ 0x82482401, 0xd8003ba9, 0x17c07c1f, 0xf0000000, 0x17c07c1f, 0xe2200004,
+ 0x1a700008, 0x17c07c1f, 0x17c07c1f, 0x82482401, 0xd8203cc9, 0x17c07c1f,
+ 0xf0000000, 0x17c07c1f, 0xe220004f, 0xe220000f, 0xe220002f, 0xe220002e,
+ 0xe220003e, 0xe2200032, 0xf0000000, 0x17c07c1f, 0xe2200036, 0x1a50001f,
+ 0x1000660c, 0x82400809, 0xd8203ee9, 0x17c07c1f, 0xe220003e, 0x1a50001f,
+ 0x10006610, 0x82400809, 0xd8203fa9, 0x17c07c1f, 0xe220007e, 0xe220007c,
+ 0xe220005c, 0xe220004c, 0xe220004d, 0xf0000000, 0x17c07c1f, 0xc7c03dc0,
+ 0x17c07c1f, 0xe2400001, 0x1259081f, 0x1a10001f, 0x1000660c, 0x82002408,
+ 0xd82041a8, 0x17c07c1f, 0x1a10001f, 0x10006c60, 0xa2002808, 0x1a40001f,
+ 0x10006c60, 0xe2400008, 0xf0000000, 0x17c07c1f, 0xc7c03dc0, 0x17c07c1f,
+ 0xd800450a, 0x1254041f, 0xe8208000, 0x10006248, 0x00000000, 0x1a10001f,
+ 0x10006248, 0x82002408, 0xd8004428, 0x17c07c1f, 0xf0000000, 0x17c07c1f,
+ 0xe8208000, 0x10006244, 0x00000001, 0x1a10001f, 0x10006244, 0x82002408,
+ 0xd8204568, 0x17c07c1f, 0xf0000000, 0x17c07c1f, 0x18d0001f, 0x10006c60,
+ 0x82800c0a, 0x18c0001f, 0x10006c60, 0xe0c0000a, 0xe240001f, 0x1259081f,
+ 0x1a90001f, 0x1000660c, 0x82802809, 0xd800474a, 0x17c07c1f, 0xc7c03ec0,
+ 0x17c07c1f, 0xf0000000, 0x17c07c1f, 0xd80049ea, 0x1254041f, 0xe8208000,
+ 0x10006248, 0x00000001, 0x1a90001f, 0x10006248, 0x8280240a, 0xd820490a,
+ 0x17c07c1f, 0xd0004ae0, 0x17c07c1f, 0xe8208000, 0x10006244, 0x00000000,
+ 0x1a90001f, 0x10006244, 0x8280240a, 0xd8004a4a, 0x17c07c1f, 0xc7c03ec0,
+ 0x17c07c1f, 0xf0000000, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
@@ -124,78 +146,188 @@
0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
- 0x17c07c1f, 0x17c07c1f, 0x1840001f, 0x00000001, 0xa1d48407, 0x1990001f,
- 0x10006b08, 0x1a50001f, 0x10006610, 0x8246a401, 0xe8208000, 0x10006b6c,
- 0x00000000, 0x1b00001f, 0x2f7be75f, 0x81469801, 0xd8004305, 0x17c07c1f,
- 0x1b80001f, 0xd00f0000, 0x8880000c, 0x2f7be75f, 0xd8005da2, 0x17c07c1f,
- 0xd0004340, 0x17c07c1f, 0x1b80001f, 0x500f0000, 0xe8208000, 0x10006354,
- 0xfffe7b47, 0xc0c06940, 0x81401801, 0xd80048e5, 0x17c07c1f, 0x81f60407,
- 0x18c0001f, 0x10006200, 0xc0c05e60, 0x12807c1f, 0xe8208000, 0x1000625c,
- 0x00000001, 0x1b80001f, 0x20000080, 0xc0c05e60, 0x1280041f, 0x18c0001f,
- 0x10006204, 0xc0c06200, 0x1280041f, 0x18c0001f, 0x10006208, 0xc0c05e60,
- 0x12807c1f, 0xe8208000, 0x10006244, 0x00000001, 0x1b80001f, 0x20000080,
- 0xc0c05e60, 0x1280041f, 0x18d0001f, 0x10200200, 0x18c0001f, 0x10006290,
- 0xc0c05e60, 0x1280041f, 0xe8208000, 0x10006404, 0x00003101, 0xc2803780,
- 0x1292041f, 0x81469801, 0xd8204a45, 0x17c07c1f, 0x1b00001f, 0x2f7be75f,
- 0x1b80001f, 0x30000004, 0x8880000c, 0x2f7be75f, 0xd8005802, 0x17c07c1f,
- 0xc0c064c0, 0x17c07c1f, 0x18c0001f, 0x10006294, 0xe0f07fff, 0xe0e00fff,
- 0xe0e000ff, 0x81449801, 0xd8004c85, 0x17c07c1f, 0x1a00001f, 0x10006604,
- 0xe2200003, 0xc0c06580, 0x17c07c1f, 0xe2200005, 0xc0c06580, 0x17c07c1f,
- 0xa1d38407, 0xa1d98407, 0x1800001f, 0x00000012, 0x1800001f, 0x00000e12,
- 0x1800001f, 0x03800e12, 0x1800001f, 0x038e0e12, 0xe8208000, 0x10006310,
- 0x0b1600f8, 0x1b00001f, 0xbfffe7ff, 0x1b80001f, 0x90100000, 0x80c00400,
- 0xd8204fa3, 0xa1d58407, 0xa1dd8407, 0x1b00001f, 0x3fffefff, 0xd0004e60,
- 0x17c07c1f, 0x1890001f, 0x100063e8, 0x88c0000c, 0x2f7be75f, 0xd80051c3,
- 0x17c07c1f, 0x80c40001, 0xd8005143, 0x17c07c1f, 0x1b00001f, 0xbfffe7ff,
- 0xd0005180, 0x17c07c1f, 0x1b00001f, 0x7ffff7ff, 0xd0004e60, 0x17c07c1f,
- 0x80c40001, 0xd82052c3, 0x17c07c1f, 0xa1de0407, 0x1b00001f, 0x7fffe7ff,
- 0xd0004e60, 0x17c07c1f, 0x18c0001f, 0x10006294, 0xe0e001fe, 0xe0e003fc,
- 0xe0e007f8, 0xe0e00ff0, 0x1b80001f, 0x20000020, 0xe0f07ff0, 0xe0f07f00,
- 0x81449801, 0xd80055a5, 0x17c07c1f, 0x1a00001f, 0x10006604, 0xe2200002,
- 0xc0c06580, 0x17c07c1f, 0xe2200004, 0xc0c06580, 0x17c07c1f, 0x1b80001f,
- 0x200016a8, 0x1800001f, 0x03800e12, 0x1b80001f, 0x20000300, 0x1800001f,
- 0x00000e12, 0x1b80001f, 0x20000300, 0x1800001f, 0x00000012, 0x1b80001f,
- 0x20000104, 0x10007c1f, 0x81f38407, 0x81f98407, 0x81f90407, 0x81f40407,
- 0x1b80001f, 0x200016a8, 0x81401801, 0xd8005da5, 0x17c07c1f, 0xe8208000,
- 0x10006404, 0x00002101, 0x18c0001f, 0x10006290, 0x1212841f, 0xc0c05fe0,
- 0x12807c1f, 0xc0c05fe0, 0x1280041f, 0x18c0001f, 0x10006208, 0x1212841f,
- 0xc0c05fe0, 0x12807c1f, 0xe8208000, 0x10006244, 0x00000000, 0x1b80001f,
- 0x20000080, 0xc0c05fe0, 0x1280041f, 0xe8208000, 0x10200268, 0x000ffffe,
- 0x18c0001f, 0x10006204, 0x1212841f, 0xc0c06340, 0x1280041f, 0x18c0001f,
- 0x10006200, 0x1212841f, 0xc0c05fe0, 0x12807c1f, 0xe8208000, 0x1000625c,
- 0x00000000, 0x1b80001f, 0x20000080, 0xc0c05fe0, 0x1280041f, 0x19c0001f,
- 0x01411820, 0x1ac0001f, 0x55aa55aa, 0x10007c1f, 0xf0000000, 0xd8005f0a,
- 0x17c07c1f, 0xe2e0004f, 0xe2e0006f, 0xe2e0002f, 0xd8205faa, 0x17c07c1f,
- 0xe2e0002e, 0xe2e0003e, 0xe2e00032, 0xf0000000, 0x17c07c1f, 0xd80060aa,
- 0x17c07c1f, 0xe2e00036, 0xe2e0003e, 0x1380201f, 0xe2e0003c, 0xd82061ca,
- 0x17c07c1f, 0x1380201f, 0xe2e0007c, 0x1b80001f, 0x20000003, 0xe2e0005c,
- 0xe2e0004c, 0xe2e0004d, 0xf0000000, 0x17c07c1f, 0xd8206309, 0x17c07c1f,
- 0xe2e0000d, 0xe2e0000c, 0xe2e0001c, 0xe2e0001e, 0xe2e00016, 0xe2e00012,
- 0xf0000000, 0x17c07c1f, 0xd8206489, 0x17c07c1f, 0xe2e00016, 0x1380201f,
- 0xe2e0001e, 0x1380201f, 0xe2e0001c, 0x1380201f, 0xe2e0000c, 0xe2e0000d,
- 0xf0000000, 0x17c07c1f, 0xa1d40407, 0x1391841f, 0xa1d90407, 0x1393041f,
- 0xf0000000, 0x17c07c1f, 0x18d0001f, 0x10006604, 0x10cf8c1f, 0xd8206583,
- 0x17c07c1f, 0xf0000000, 0x17c07c1f, 0xe8208000, 0x11008014, 0x00000002,
- 0xe8208000, 0x11008020, 0x00000101, 0xe8208000, 0x11008004, 0x000000d0,
- 0x1a00001f, 0x11008000, 0xd800684a, 0xe220005d, 0xd820686a, 0xe2200000,
- 0xe2200001, 0xe8208000, 0x11008024, 0x00000001, 0x1b80001f, 0x20000424,
- 0xf0000000, 0x17c07c1f, 0xa1d10407, 0x1b80001f, 0x20000020, 0xf0000000,
- 0x17c07c1f
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f,
+ 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x17c07c1f, 0x1840001f, 0x00000001,
+ 0xe8208000, 0x10006b18, 0x00000000, 0xe8208000, 0x10006c00, 0x00000000,
+ 0x11407c1f, 0x1a10001f, 0x1000660c, 0x8166a001, 0x82662001, 0xa150a405,
+ 0x8265a001, 0xa1512405, 0x82652001, 0xa151a405, 0x8264a001, 0xa1562405,
+ 0x1990001f, 0x10006b08, 0x82089801, 0xd800a6e8, 0x17c07c1f, 0xd000a320,
+ 0x17c07c1f, 0x1100241f, 0x1b00001f, 0x3ffec6fd, 0x82461401, 0xd8008d29,
+ 0x17c07c1f, 0x1a10001f, 0x10006720, 0x82002001, 0x82201408, 0x82201008,
+ 0xd82085a8, 0x17c07c1f, 0x1a00001f, 0x10006c40, 0xc7c03b80, 0x17c07c1f,
+ 0xa1400405, 0x1a10001f, 0x10006720, 0x8200a001, 0x82209408, 0x82209008,
+ 0xd8208728, 0x17c07c1f, 0x1a00001f, 0x10006c44, 0xc7c03b80, 0x17c07c1f,
+ 0xa1508405, 0x1a10001f, 0x10006720, 0x82012001, 0x82211408, 0x82211008,
+ 0xd82088a8, 0x17c07c1f, 0x1a00001f, 0x10006c48, 0xc7c03b80, 0x17c07c1f,
+ 0xa1510405, 0x1a10001f, 0x10006720, 0x8201a001, 0x82219408, 0x82219008,
+ 0xd8208a28, 0x17c07c1f, 0x1a00001f, 0x10006c4c, 0xc7c03b80, 0x17c07c1f,
+ 0xa1518405, 0xa260141f, 0x8a400009, 0x0000000f, 0xd8008d29, 0x17c07c1f,
+ 0x82661401, 0x82661009, 0xd8208d29, 0x17c07c1f, 0x1a50001f, 0x10006720,
+ 0x828c2401, 0xd8208b4a, 0x17c07c1f, 0x1a00001f, 0x10006c50, 0xe8208000,
+ 0x10006c54, 0x00000001, 0xc7c03b80, 0x17c07c1f, 0xa1560405, 0x1b80001f,
+ 0x90100000, 0x82261401, 0xd8008ee8, 0x17c07c1f, 0x8a000004, 0x0000100f,
+ 0xd8008e48, 0x17c07c1f, 0xd8208eec, 0x17c07c1f, 0x1a00001f, 0x10006c50,
+ 0xc7c03ca0, 0x17c07c1f, 0x81760405, 0x82461401, 0xd800a269, 0x17c07c1f,
+ 0x82001401, 0xd82093c8, 0x17c07c1f, 0x82401001, 0xd8009109, 0x17c07c1f,
+ 0x8a40000c, 0x07fde7ff, 0x1a10001f, 0x10006918, 0x822e2001, 0xa2402009,
+ 0xd82093c9, 0x17c07c1f, 0x1a40001f, 0x10006c24, 0x1a10001f, 0x10006918,
+ 0x8a000008, 0xf0000000, 0xa2003008, 0xe2400008, 0x1a00001f, 0x10006c40,
+ 0xc7c03ca0, 0x17c07c1f, 0x81600405, 0xe8208000, 0x10006f00, 0x00000000,
+ 0xe8208000, 0x10006b30, 0x00000000, 0xe8208000, 0x100063e0, 0x00000001,
+ 0x82009401, 0xd82098a8, 0x17c07c1f, 0x82409001, 0xd80095e9, 0x17c07c1f,
+ 0x824db001, 0x1a10001f, 0x10006918, 0x822ea001, 0xa2402009, 0x1a90001f,
+ 0x10006b04, 0x82a0a801, 0xb24c312a, 0xd82098a9, 0x17c07c1f, 0x1a40001f,
+ 0x10006c28, 0x1a10001f, 0x10006918, 0x8a000008, 0xf0000000, 0xa2003008,
+ 0xe2400008, 0x1a00001f, 0x10006c44, 0xc7c03ca0, 0x17c07c1f, 0x81708405,
+ 0xe8208000, 0x10006f04, 0x00000000, 0xe8208000, 0x10006b34, 0x00000000,
+ 0xe8208000, 0x100063e0, 0x00000002, 0x82011401, 0xd8209d88, 0x17c07c1f,
+ 0x82411001, 0xd8009ac9, 0x17c07c1f, 0x824e3001, 0x1a10001f, 0x10006918,
+ 0x822f2001, 0xa2402009, 0x1a90001f, 0x10006b04, 0x82a12801, 0xb24c312a,
+ 0xd8209d89, 0x17c07c1f, 0x1a40001f, 0x10006c2c, 0x1a10001f, 0x10006918,
+ 0x8a000008, 0xf0000000, 0xa2003008, 0xe2400008, 0x1a00001f, 0x10006c48,
+ 0xc7c03ca0, 0x17c07c1f, 0x81710405, 0xe8208000, 0x10006f08, 0x00000000,
+ 0xe8208000, 0x10006b38, 0x00000000, 0xe8208000, 0x100063e0, 0x00000004,
+ 0x82019401, 0xd820a268, 0x17c07c1f, 0x82419001, 0xd8009fa9, 0x17c07c1f,
+ 0x824eb001, 0x1a10001f, 0x10006918, 0x822fa001, 0xa2402009, 0x1a90001f,
+ 0x10006b04, 0x82a1a801, 0xb24c312a, 0xd820a269, 0x17c07c1f, 0x1a40001f,
+ 0x10006c30, 0x1a10001f, 0x10006918, 0x8a000008, 0xf0000000, 0xa2003008,
+ 0xe2400008, 0x1a00001f, 0x10006c4c, 0xc7c03ca0, 0x17c07c1f, 0x81718405,
+ 0xe8208000, 0x10006f0c, 0x00000000, 0xe8208000, 0x10006b3c, 0x00000000,
+ 0xe8208000, 0x100063e0, 0x00000008, 0x8a000004, 0xffff0000, 0x6aa00008,
+ 0xabcd0000, 0xd800a62a, 0x17c07c1f, 0x1a50001f, 0x10006b00, 0x8a000009,
+ 0xffff0000, 0x6aa00008, 0xbeef0000, 0xd800836a, 0x17c07c1f, 0x6aa00008,
+ 0xabcd0000, 0xd800836a, 0x17c07c1f, 0x6aa00008, 0x50d10000, 0xd800a6ea,
+ 0x17c07c1f, 0x6aa00008, 0xdcba0000, 0xd800a62a, 0x1100241f, 0x1b80001f,
+ 0x20000104, 0xd000a320, 0x17c07c1f, 0x8a000004, 0xffff0000, 0xa9000008,
+ 0x0000dead, 0xf0000000, 0x17c07c1f, 0xa1d50407, 0x1b80001f, 0x2000037e,
+ 0x81f50407, 0xa1d48407, 0x1990001f, 0x10006b08, 0xe8208000, 0x10006b18,
+ 0x00000000, 0x11407c1f, 0x1b00001f, 0x3fffc7ff, 0x1b80001f, 0xd00f0000,
+ 0xd800c9ec, 0x17c07c1f, 0xa1578405, 0xe8208000, 0x10006354, 0xfffff423,
+ 0x82059801, 0xd820aa48, 0x17c07c1f, 0xe8208000, 0x10006354, 0xfffff421,
+ 0x1b80001f, 0x20000020, 0x82801801, 0xd800afca, 0x17c07c1f, 0x81f60407,
+ 0x1a00001f, 0x10006c40, 0xc7c03b80, 0x17c07c1f, 0xa1580405, 0xc20039a0,
+ 0x1290041f, 0xa1d10407, 0x82809801, 0xd800afca, 0x17c07c1f, 0x1a00001f,
+ 0x10006c54, 0x82a11801, 0xe200000a, 0x1a00001f, 0x10006c50, 0xc7c03b80,
+ 0x17c07c1f, 0xa1590405, 0xc20039a0, 0x1290841f, 0x82819801, 0xd800afca,
+ 0x17c07c1f, 0x1a00001f, 0x10006290, 0xc2003dc0, 0x17c07c1f, 0x1b80001f,
+ 0x20000027, 0x82811801, 0xa1d1a807, 0xa15a0405, 0xc20039a0, 0x1291041f,
+ 0xc2803a80, 0x1292041f, 0x82499801, 0xd800b149, 0x17c07c1f, 0x1a00001f,
+ 0x10006294, 0xe8208000, 0x10006294, 0x0003ffff, 0xe2203fff, 0xe22003ff,
+ 0xd000b1a0, 0x17c07c1f, 0xe8208000, 0x10006294, 0x0003fc3f, 0xc20039a0,
+ 0x1293041f, 0x82021801, 0xd800b3a8, 0x17c07c1f, 0x1a10001f, 0x10000004,
+ 0x1a40001f, 0x10000004, 0x82378408, 0xe2400008, 0x1b80001f, 0x2000000a,
+ 0xa1d40407, 0x1b80001f, 0x20000003, 0x82049801, 0xd800b4c8, 0x17c07c1f,
+ 0xe8208000, 0x10006604, 0x00000001, 0xc0c037e0, 0x17c07c1f, 0xa15b0405,
+ 0x82879801, 0xd800b86a, 0x17c07c1f, 0xa1d38407, 0x82829801, 0xd800b5ca,
+ 0x17c07c1f, 0xa1d98407, 0xa0108400, 0xa0148400, 0xa0188400, 0x82829801,
+ 0xd800b86a, 0x17c07c1f, 0xa0120400, 0xa0150400, 0xa0158400, 0xa01f0400,
+ 0xa0190400, 0xa0198400, 0x82891801, 0xd800b86a, 0x17c07c1f, 0x1a10001f,
+ 0x10018000, 0x82398408, 0x1a40001f, 0x10018000, 0xe2400008, 0xe8208000,
+ 0x10006310, 0x0b160008, 0xe8208000, 0x10006c00, 0x0000000f, 0x1b00001f,
+ 0xbfffc7ff, 0x82861801, 0xb2859941, 0xd820baca, 0x17c07c1f, 0xe8208000,
+ 0x10006c00, 0x0000003c, 0x1b80001f, 0x90100000, 0xd000bba0, 0x17c07c1f,
+ 0x1b80001f, 0x90100000, 0x82000001, 0xc8c00008, 0x17c07c1f, 0xd000bc00,
+ 0x17c07c1f, 0x82028001, 0xc8c01568, 0x17c07c1f, 0x820f1c01, 0xc8e01868,
+ 0x17c07c1f, 0x1b00001f, 0x3fffc7ff, 0x82499801, 0xd800be49, 0x17c07c1f,
+ 0x1a00001f, 0x10006294, 0xe22007fe, 0xe2200ffc, 0xe2201ff8, 0xe2203ff0,
+ 0xe2203fe0, 0xe2203fc0, 0xd000c080, 0x17c07c1f, 0xe8208000, 0x10006294,
+ 0x0003fc1f, 0xe8208000, 0x10006294, 0x0003fc0f, 0xe8208000, 0x10006294,
+ 0x0003fc0e, 0xe8208000, 0x10006294, 0x0003fc0c, 0xe8208000, 0x10006294,
+ 0x0003fc08, 0xe8208000, 0x10006294, 0x0003fc00, 0x1b80001f, 0x20000020,
+ 0xe8208000, 0x10006294, 0x0003ffc0, 0xe8208000, 0x10006294, 0x0003fc00,
+ 0x82049801, 0xd800c2a8, 0x17c07c1f, 0xe8208000, 0x10006604, 0x00000000,
+ 0xc0c037e0, 0x17c07c1f, 0xa15b8405, 0x82891801, 0xd800c40a, 0x17c07c1f,
+ 0x1a10001f, 0x10018000, 0xa2198408, 0x1a40001f, 0x10018000, 0xe2400008,
+ 0x1b80001f, 0x2000001a, 0x80388400, 0x80390400, 0x80398400, 0x803f0400,
+ 0x1b80001f, 0x20000300, 0x80348400, 0x80350400, 0x80358400, 0x1b80001f,
+ 0x20000104, 0x10007c1f, 0x81f38407, 0x81f98407, 0x81f40407, 0x82801801,
+ 0xd800c9ea, 0x17c07c1f, 0x82809801, 0xd800c88a, 0x17c07c1f, 0x82819801,
+ 0xd800c7ea, 0x17c07c1f, 0x82811801, 0x81f1a807, 0x1a00001f, 0x10006290,
+ 0xc2003ec0, 0x1097841f, 0xa15a8405, 0x1a00001f, 0x10006c50, 0xc7c03ca0,
+ 0x17c07c1f, 0xa1598405, 0x1a00001f, 0x10006c40, 0xc7c03ca0, 0x17c07c1f,
+ 0xa1588405, 0x1a10001f, 0x10000004, 0x1a40001f, 0x10000004, 0xa2178408,
+ 0xe2400008, 0x82079401, 0xd800cc28, 0x17c07c1f, 0x82001801, 0xd800cc28,
+ 0x17c07c1f, 0xa1570405, 0x13007c1f, 0x1b80001f, 0xd00f0000, 0x1a00001f,
+ 0x10006c40, 0xc7c03b80, 0x17c07c1f, 0x1a00001f, 0x10006c40, 0xc7c03ca0,
+ 0x17c07c1f, 0xa1db0407, 0x81f10407, 0xa1d60407, 0x81f48407, 0xe8208000,
+ 0x10006b00, 0x00000000, 0x1ac0001f, 0x55aa55aa, 0x82289801, 0xd800a328,
+ 0x17c07c1f, 0xf0000000, 0x17c07c1f
};
/*
* PCM binary for suspend scenario
*/
static const struct pcm_desc suspend_pcm_ca7 = {
- .version = "pcm_suspend_20150805_V1",
- .base = suspend_binary_ca7,
- .size = 847,
- .sess = 2,
- .replace = 0,
- .vec0 = EVENT_VEC(11, 1, 0, 0),
- .vec1 = EVENT_VEC(12, 1, 0, 54),
- .vec2 = EVENT_VEC(30, 1, 0, 143),
- .vec3 = EVENT_VEC(31, 1, 0, 277),
+ .version = "SPM_FW_v0.1_6SPMC",
+ .base = suspend_binary_ca7,
+ .size = 1647,
+ .sess = 2,
+ .replace = 0,
+ .vec0 = EVENT_VEC(11, 1, 0, 0), /* FUNC_26M_WAKEUP */
+ .vec1 = EVENT_VEC(12, 1, 0, 131), /* FUNC_26M_SLEEP */
+ .vec2 = EVENT_VEC(30, 1, 0, 195), /* FUNC_APSRC_WAKEUP */
+ .vec3 = EVENT_VEC(31, 1, 0, 264), /* FUNC_APSRC_SLEEP */
+ .vec4 = EVENT_VEC(11, 1, 0, 171), /* FUNC_26MIDLE_WAKEUP */
+ .vec5 = EVENT_VEC(12, 1, 0, 181), /* FUNC_26MIDLE_SLEEP */
};
/*
@@ -203,27 +335,25 @@
*/
static struct pwr_ctrl spm_ctrl = {
.wake_src = WAKE_SRC_FOR_SUSPEND,
- .wake_src_md32 = WAKE_SRC_FOR_MD32,
+ .timer_val = 600,
.r0_ctrl_en = 1,
.r7_ctrl_en = 1,
.infra_dcm_lock = 1,
.wfi_op = WFI_OP_AND,
- .pcm_apsrc_req = 0,
.ca7top_idle_mask = 0,
- .ca15top_idle_mask = 0,
+ .ca15top_idle_mask = 1,
.mcusys_idle_mask = 0,
- .disp_req_mask = 0,
+ .disp0_req_mask = 0,
.mfg_req_mask = 0,
- .md32_req_mask = 1,
.srclkenai_mask = 1,
.ca7_wfi0_en = 1,
.ca7_wfi1_en = 1,
.ca7_wfi2_en = 1,
.ca7_wfi3_en = 1,
- .ca15_wfi0_en = 1,
- .ca15_wfi1_en = 1,
- .ca15_wfi2_en = 1,
- .ca15_wfi3_en = 1,
+ .ca15_wfi0_en = 0,
+ .ca15_wfi1_en = 0,
+ .ca15_wfi2_en = 0,
+ .ca15_wfi3_en = 0,
};
/*
@@ -233,6 +363,9 @@
{
struct pwr_ctrl *pwrctrl;
+ struct wake_status wakesta;
+ spm_get_wakeup_status(&wakesta);
+ spm_output_wake_reason(&wakesta);
pwrctrl = &spm_ctrl;
set_pwrctrl_pcm_flags(pwrctrl, spm_flags);
@@ -245,12 +378,23 @@
is_infra_pdn(pwrctrl->pcm_flags));
spm_reset_and_init_pcm();
+ spm_kick_im_to_fetch(&suspend_pcm_ca7);
spm_init_pcm_register();
+ spm_init_event_vector(&suspend_pcm_ca7);
+ spm_write(SPM_PCM_MAS_PAUSE_MASK, 0xffffffff);
+ spm_write(SPM_PCM_REG_DATA_INI, 0);
+ spm_write(SPM_PCM_PWR_IO_EN, PCM_PWRIO_EN_R0 | PCM_PWRIO_EN_R7);
+
+ uint32_t con0 = spm_read(SPM_PCM_CON0) & ~(CON0_IM_KICK | CON0_PCM_KICK);
+ spm_write(SPM_PCM_CON0, con0 | CON0_CFG_KEY | CON0_PCM_KICK);
+ spm_write(SPM_PCM_CON0, con0 | CON0_CFG_KEY);
+
spm_set_power_control(pwrctrl);
+ pwrctrl->timer_val = pwrctrl->timer_val * 32768;
spm_set_wakeup_event(pwrctrl);
spm_kick_pcm_to_run(pwrctrl);
- spm_init_event_vector(&suspend_pcm_ca7);
- spm_kick_im_to_fetch(&suspend_pcm_ca7);
+
+ spm_write(SPM_PCM_RESERVE, (spm_read(SPM_PCM_RESERVE) & ~PCM_CMD_MASK) | PCM_CMD_SUSPEND_PCM);
}
/*
diff --git a/plat/mediatek/mt8516/include/plat_private.h b/plat/mediatek/mt8516/include/plat_private.h
index cd92d34..bc63aa0 100644
--- a/plat/mediatek/mt8516/include/plat_private.h
+++ b/plat/mediatek/mt8516/include/plat_private.h
@@ -20,6 +20,7 @@
void plat_cci_init(void);
void plat_cci_enable(void);
void plat_cci_disable(void);
+void plat_mt_gic_init(void);
/* Declarations for plat_topology.c */
int mt_setup_topology(void);
diff --git a/plat/mediatek/mt8516/plat_pm.c b/plat/mediatek/mt8516/plat_pm.c
index 16a16b5..9809c4c 100644
--- a/plat/mediatek/mt8516/plat_pm.c
+++ b/plat/mediatek/mt8516/plat_pm.c
@@ -412,7 +412,7 @@
if (MTK_SYSTEM_PWR_STATE(state) == MTK_LOCAL_STATE_OFF) {
/* Enable the gic cpu interface */
- plat_arm_gic_init();
+ plat_mt_gic_init();
spm_system_suspend_finish();
enable_scu(mpidr);
}
@@ -556,7 +556,7 @@
/* Assert system power domain is available on the platform */
assert(PLAT_MAX_PWR_LVL >= MTK_PWR_LVL2);
- plat_arm_gic_init();
+ plat_mt_gic_init();
}
static const plat_psci_ops_t plat_plat_pm_ops = {