From ad0eb2ca2ca7cab621f990a694746198cbc94ed1 Mon Sep 17 00:00:00 2001 From: Benjamin Herrenschmidt Date: Sun, 24 Jul 2016 09:27:11 +1000 Subject: 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 Signed-off-by: Stewart Smith --- hw/slw.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) (limited to 'hw') diff --git a/hw/slw.c b/hw/slw.c index 9299430..9336679 100644 --- a/hw/slw.c +++ b/hw/slw.c @@ -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++; } -- cgit v1.1