From caba025e978778363ffee4107523f905458d00e9 Mon Sep 17 00:00:00 2001 From: Michael Scire Date: Sun, 20 Jan 2019 02:37:04 -0800 Subject: [PATCH] warmboot: fix bugs in firmware --- exosphere/lp0fw/src/cluster.c | 4 ++-- exosphere/lp0fw/src/i2c.c | 4 ++-- exosphere/lp0fw/src/misc.c | 2 +- exosphere/lp0fw/src/pmc.h | 8 ++++---- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/exosphere/lp0fw/src/cluster.c b/exosphere/lp0fw/src/cluster.c index d05de9082..bbbc4fd2f 100644 --- a/exosphere/lp0fw/src/cluster.c +++ b/exosphere/lp0fw/src/cluster.c @@ -37,7 +37,7 @@ static void cluster_pmc_enable_partition(uint32_t mask, uint32_t toggle) { /* Remove clamping. */ APBDEV_PMC_REMOVE_CLAMPING_CMD_0 = mask; - while (!(APBDEV_PMC_CLAMP_STATUS_0 & mask)) { } + while (APBDEV_PMC_CLAMP_STATUS_0 & mask) { } } void cluster_initialize_cpu(void) { @@ -113,7 +113,7 @@ void cluster_initialize_cpu(void) { /* Remove SW clamp to CRAIL. */ APBDEV_PMC_SET_SW_CLAMP_0 = 0; APBDEV_PMC_REMOVE_CLAMPING_CMD_0 = 1; - while (!(APBDEV_PMC_CLAMP_STATUS_0 & 1)) { } + while (APBDEV_PMC_CLAMP_STATUS_0 & 1) { } /* Nintendo manually counts down from 8. I am not sure why this happens. */ { diff --git a/exosphere/lp0fw/src/i2c.c b/exosphere/lp0fw/src/i2c.c index 68382b0c2..b7fafd932 100644 --- a/exosphere/lp0fw/src/i2c.c +++ b/exosphere/lp0fw/src/i2c.c @@ -27,8 +27,8 @@ void i2c_set_test_master_config_load(void) { /* Set MSTR_CONFIG_LOAD. */ I2C_I2C_CONFIG_LOAD_0 = 0x1; - while (!(I2C_I2C_CONFIG_LOAD_0 & 1)) { - /* Wait forever until it's set. */ + while (I2C_I2C_CONFIG_LOAD_0 & 1) { + /* Wait forever until it's unset. */ } } diff --git a/exosphere/lp0fw/src/misc.c b/exosphere/lp0fw/src/misc.c index 941f50981..9a795d37c 100644 --- a/exosphere/lp0fw/src/misc.c +++ b/exosphere/lp0fw/src/misc.c @@ -48,5 +48,5 @@ void misc_configure_device_dbg_settings(void) { void misc_restore_ram_svop(void) { /* This sets CFG2TMC_RAM_SVOP_PDP to 0x2. */ - APB_MISC_GP_ASDBGREG_0 |= 0x02000000; + APB_MISC_GP_ASDBGREG_0 = (APB_MISC_GP_ASDBGREG_0 & 0xFCFFFFFF) | 0x02000000; } \ No newline at end of file diff --git a/exosphere/lp0fw/src/pmc.h b/exosphere/lp0fw/src/pmc.h index 2bee565a3..908a55e8f 100644 --- a/exosphere/lp0fw/src/pmc.h +++ b/exosphere/lp0fw/src/pmc.h @@ -51,10 +51,10 @@ #define APBDEV_PMC_SECURE_SCRATCH34_0 MAKE_PMC_REG(0x368) #define APBDEV_PMC_SECURE_SCRATCH35_0 MAKE_PMC_REG(0x36C) -#define APBDEV_PMC_SECURE_SCRATCH112_0 MAKE_PMC_REG(0x718) -#define APBDEV_PMC_SECURE_SCRATCH113_0 MAKE_PMC_REG(0x71C) -#define APBDEV_PMC_SECURE_SCRATCH114_0 MAKE_PMC_REG(0x720) -#define APBDEV_PMC_SECURE_SCRATCH115_0 MAKE_PMC_REG(0x724) +#define APBDEV_PMC_SECURE_SCRATCH112_0 MAKE_PMC_REG(0xB18) +#define APBDEV_PMC_SECURE_SCRATCH113_0 MAKE_PMC_REG(0xB1C) +#define APBDEV_PMC_SECURE_SCRATCH114_0 MAKE_PMC_REG(0xB20) +#define APBDEV_PMC_SECURE_SCRATCH115_0 MAKE_PMC_REG(0xB24) #define APBDEV_PMC_IO_DPD3_REQ_0 MAKE_PMC_REG(0x45C) #define APBDEV_PMC_IO_DPD3_STATUS_0 MAKE_PMC_REG(0x460)