From d94559078015ade8301370c54ccd8773f666fec1 Mon Sep 17 00:00:00 2001 From: Patrick Williams Date: Thu, 30 Aug 2012 12:05:09 -0500 Subject: Write scratch register in start_payload / shutdown. Change-Id: I47a8ad7914c6833c476a7944be5d352f45467f3a RTC: 47725 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/1646 Tested-by: Jenkins Server Reviewed-by: Mark W. Wenning Reviewed-by: Douglas R. Gilbert Reviewed-by: A. Patrick Williams III --- src/kernel/shutdown.S | 6 ++++++ src/kernel/start.S | 30 ++++++++++++++++++++++++++---- 2 files changed, 32 insertions(+), 4 deletions(-) (limited to 'src/kernel') diff --git a/src/kernel/shutdown.S b/src/kernel/shutdown.S index 30a81ea46..2e03a58a7 100644 --- a/src/kernel/shutdown.S +++ b/src/kernel/shutdown.S @@ -154,6 +154,12 @@ kernel_shutdown_ea0_1_mode: isync ;// Raise thread priority and leave ourselves. or 3,3,3 + ;// Clear "Hostboot active" scratch register. + li r3, (0x40 + 0x38) ;// See sys/mmio.h + mtspr SPRC, r3 + li r3, 0x0 + mtspr SPRD, r3 + b 2b .section .data diff --git a/src/kernel/start.S b/src/kernel/start.S index fd15697f5..d7d4ec202 100644 --- a/src/kernel/start.S +++ b/src/kernel/start.S @@ -1,3 +1,25 @@ +# IBM_PROLOG_BEGIN_TAG +# This is an automatically generated prolog. +# +# $Source: src/kernel/start.S $ +# +# IBM CONFIDENTIAL +# +# COPYRIGHT International Business Machines Corp. 2010,2012 +# +# p1 +# +# Object Code Only (OCO) source materials +# Licensed Internal Code Source Materials +# IBM HostBoot Licensed Internal Code +# +# The source code for this program is not published or otherwise +# divested of its trade secrets, irrespective of what has been +# deposited with the U.S. Copyright Office. +# +# Origin: 30 +# +# IBM_PROLOG_END_TAG /* IBM_PROLOG_BEGIN_TAG * This is an automatically generated prolog. * @@ -676,9 +698,9 @@ system_call_fast_path: extrdi. r6, r6, 1, CPU_STATUS_MASTER beq cr0, 300f ;// Call TASK_MIGRATE_TO_MASTER if not on master. ;// Read scratch. - mtspr 276, r4 + mtspr SPRC, r4 isync - mfspr r3, 277 + mfspr r3, SPRD b 1f ;// Jump to exit point. ;// Migrate task via TASK_MIGRATE_TO_MASTER 300: @@ -703,9 +725,9 @@ system_call_fast_path: extrdi. r6, r6, 1, CPU_STATUS_MASTER beq cr0, 300b ;// Call TASK_MIGRATE_TO_MASTER if not on master. ;// Write scratch. - mtspr 276, r4 + mtspr SPRC, r4 isync - mtspr 277, r5 + mtspr SPRD, r5 b 1f ;// Jump to exit point. ;// Invalid system call, loop for debug. 5: -- cgit v1.2.3