diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2016-07-24 09:27:11 +1000 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2016-08-22 15:26:51 +1000 |
commit | ad0eb2ca2ca7cab621f990a694746198cbc94ed1 (patch) | |
tree | 6e54f3b96625ebdd95fe8e6188c6fbbd51082490 /hw | |
parent | 3476b2ad3a5a53c92ec5e358dd9c28f5ef09c96d (diff) | |
download | skiboot-ad0eb2ca2ca7cab621f990a694746198cbc94ed1.zip skiboot-ad0eb2ca2ca7cab621f990a694746198cbc94ed1.tar.gz skiboot-ad0eb2ca2ca7cab621f990a694746198cbc94ed1.tar.bz2 |
Rename rvwinkle patch to reset patch and install at boot
The patch code itself is unchanged (for now...). Install it during
boot so we will be able to use power management instructions. We
can't just have a proper exception code built at 0x100 as this is
otherwise one of our entry points.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'hw')
-rw-r--r-- | hw/slw.c | 16 |
1 files changed, 7 insertions, 9 deletions
@@ -151,17 +151,15 @@ static void slw_do_rvwinkle(void *data) static void slw_patch_reset(void) { - extern uint32_t rvwinkle_patch_start; - extern uint32_t rvwinkle_patch_end; uint32_t *src, *dst, *sav; - BUILD_ASSERT((&rvwinkle_patch_end - &rvwinkle_patch_start) <= + BUILD_ASSERT((&reset_patch_end - &reset_patch_start) <= MAX_RESET_PATCH_SIZE); - src = &rvwinkle_patch_start; + src = &reset_patch_start; dst = (uint32_t *)0x100; sav = slw_saved_reset; - while(src < &rvwinkle_patch_end) { + while(src < &reset_patch_end) { *(sav++) = *(dst); *(dst++) = *(src++); } @@ -170,14 +168,14 @@ static void slw_patch_reset(void) static void slw_unpatch_reset(void) { - extern uint32_t rvwinkle_patch_start; - extern uint32_t rvwinkle_patch_end; + extern uint32_t reset_patch_start; + extern uint32_t reset_patch_end; uint32_t *src, *dst, *sav; - src = &rvwinkle_patch_start; + src = &reset_patch_start; dst = (uint32_t *)0x100; sav = slw_saved_reset; - while(src < &rvwinkle_patch_end) { + while(src < &reset_patch_end) { *(dst++) = *(sav++); src++; } |