diff options
author | Brian Stegmiller <bjs@us.ibm.com> | 2015-11-15 10:52:28 -0600 |
---|---|---|
committer | Patrick Williams <iawillia@us.ibm.com> | 2015-12-11 15:30:29 -0600 |
commit | cb1f5614326054b025774dae1a37ad5bdf07902d (patch) | |
tree | 4b5ef74fd7aac1b7bba91da711da867ccb870920 /src/kernel/start.S | |
parent | bedb0a1a1818ebe6d683028926ccaec14fdb9f8d (diff) | |
download | talos-hostboot-cb1f5614326054b025774dae1a37ad5bdf07902d.tar.gz talos-hostboot-cb1f5614326054b025774dae1a37ad5bdf07902d.zip |
HOSTBOOT: Support fused cores
Change-Id: I2ad133be733ee9e41590b3b8bd60bd6abe69d1a9
RTC: 126786
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/22054
Tested-by: Jenkins Server
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/kernel/start.S')
-rw-r--r-- | src/kernel/start.S | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/kernel/start.S b/src/kernel/start.S index 13351b893..dbb499751 100644 --- a/src/kernel/start.S +++ b/src/kernel/start.S @@ -867,15 +867,15 @@ UNIMPL_INTERRUPT_NOADDR(vector_unavail, 0xF20) UNIMPL_INTERRUPT_NOADDR(vsx_unavail, 0xF40) UNIMPL_INTERRUPT_NOADDR(fac_unavail, 0xF60) - ;// @fn kernel_execute_winkle + ;// @fn kernel_execute_stop ;// ;// Saves kernel state into a specified task structure and then executes - ;// the winkle instruction. + ;// the stop instruction. ;// ;// @param r3 - task_t* to save kernel state into. ;// -.global kernel_execute_winkle -kernel_execute_winkle: +.global kernel_execute_stop +kernel_execute_stop: ;// Move save area to SPRG3 for kernel_save_task. mtsprg3 r3 @@ -883,7 +883,7 @@ kernel_execute_winkle: mflr r3 mtsrr0 r3 - ;// Load winkle instruction address into the "return to" address (SPRG0). + ;// Load stop instruction address into the "return to" address (SPRG0). lis r3, 1f@h ori r3, r3, 1f@l mtsprg0 r3 @@ -891,9 +891,12 @@ kernel_execute_winkle: ;// Save kernel state. b kernel_save_task - ;// Execute winkle. + ;// Execute stop. 1: - rvwinkle + ;// Magic instruction(7015) to allow simics to trigger thread wakeup + rlwimi r27,r27,0,6,23 + ;// When GCC supports 'stop', you can use it + .long 0x4C0002E4 .section .data .balign 1024 |