Skip to content

Commit

Permalink
Revert "Self Restore: Integrated build with rest of the EKB build flow."
Browse files Browse the repository at this point in the history
This reverts commit 9a74fd0f1b933fa171eaa10e0a60540160ce7aca.

Change-Id: Ib14e97fb8096c50caa9e610f1072a9ffe17c9260
Original-Change-Id: Id935d8de4ccca6a41d25e8b9465f69fad8941188
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/56661
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
  • Loading branch information
premsjha authored and op-jenkins committed Nov 13, 2018
1 parent 12ef819 commit 03fb4ce
Show file tree
Hide file tree
Showing 4 changed files with 240 additions and 0 deletions.
53 changes: 53 additions & 0 deletions import/chips/p9/procedures/utils/stopreg/self.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# IBM_PROLOG_BEGIN_TAG
# This is an automatically generated prolog.
#
# $Source: import/chips/p9/procedures/utils/stopreg/self.sh $
#
# OpenPOWER HCODE Project
#
# COPYRIGHT 2016,2018
# [+] International Business Machines Corp.
#
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied. See the License for the specific language governing
# permissions and limitations under the License.
#
# IBM_PROLOG_END_TAG
#first first. Remove object file and executable file.

#!/bin/bash
SELF_REST_PATH=$PROJECT_ROOT/chips/p9/procedures/utils/stopreg
SRC=$SELF_REST_PATH/p9_core_restore_routines.S
OBJ=$SELF_REST_PATH/p9_core_restore_routines.o
IMG=$SELF_REST_PATH/selfRest
LINK=$SELF_REST_PATH/link.c
OBJDUMP="/opt/mcp/shared/powerpc64-gcc-20150516/wrappers/powerpc64-unknown-linux-gnu-objdump "
#set compiler path
ASMFILE="/opt/mcp/shared/powerpc64-gcc-20150516/wrappers/powerpc64-unknown-linux-gnu-gcc "
ASFLAGS="-save-temps -std=c99 -c -O3 -nostdlib -mcpu=power7 -mbig-endian -ffreestanding -mabi=elfv1"
#linker script after C preprocessing
LINK_SCRIPT=$SELF_REST_PATH/selfLink
if [ -f $IMG ]
then
rm -f $IMG_MAP
rm -f $DIS
rm -f $IMG.bin
fi
#set linker path
LOAD=/opt/mcp/shared/powerpc64-gcc-20150516/wrappers/powerpc64-unknown-linux-gnu-ld
#passing linker through pre-processor
$ASMFILE -E -c -P $LINK -o $LINK_SCRIPT
#compiling Source file
$ASMFILE $SRC $ASFLAGS -o $OBJ
#linking
$LOAD -T$LINK_SCRIPT -Map $IMG.map -Bstatic -o $IMG.bin $OBJ
$OBJDUMP -d $OBJ >$IMG.list
13 changes: 13 additions & 0 deletions import/chips/p9/procedures/utils/stopreg/selfLink
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
OUTPUT_FORMAT(binary)
MEMORY
{
selfRestoreRegion (rx) : ORIGIN = 0x00, LENGTH = 0x2100
}
SECTIONS
{
. = 0;
. = ALIGN(128);
_SELF_RESTORE_START = .;
.selfRestore _SELF_RESTORE_START :
{ *(.selfRestore) } > selfRestoreRegion
}
146 changes: 146 additions & 0 deletions import/chips/p9/procedures/utils/stopreg/selfRest.list
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@

/gsa/ausgsa/projects/i/indiateam01/premjha2/ekb/chips/p9/procedures/utils/stopreg/p9_core_restore_routines.o: file format elf64-powerpc


Disassembly of section .selfRestore:

0000000000000000 <_start>:
...

0000000000000100 <_sreset_hndlr>:
100: 7e 99 4a a6 mfspr r20,313
104: 39 14 20 00 addi r8,r20,8192
108: 7d 1a 03 a6 mtsrr0 r8
10c: 7e a0 00 a6 mfmsr r21
110: 62 b5 10 00 ori r21,r21,4096
114: 7e bb 03 a6 mtsrr1 r21
118: 4c 00 00 24 rfid
...
200: 00 00 02 00 attn
...
300: 00 00 02 00 attn
...
380: 00 00 02 00 attn
...
400: 00 00 02 00 attn
...
480: 00 00 02 00 attn
...
500: 00 00 02 00 attn
...
600: 00 00 02 00 attn
...
700: 00 00 02 00 attn
...
800: 00 00 02 00 attn
...
900: 00 00 02 00 attn
...
980: 00 00 02 00 attn
...
a00: 00 00 02 00 attn
...
b00: 00 00 02 00 attn
...
c00: 00 00 02 00 attn
...
d00: 00 00 02 00 attn
...
e00: 00 00 02 00 attn
...
e20: 00 00 02 00 attn
...
e40: 00 00 02 00 attn
...
e60: 00 00 02 00 attn
...
e80: 00 00 02 00 attn
...
ea0: 00 00 02 00 attn
...
ec0: 00 00 02 00 attn
...
ee0: 00 00 02 00 attn
...
f00: 00 00 02 00 attn
...
f20: 00 00 02 00 attn
...
f40: 00 00 02 00 attn
...
f60: 00 00 02 00 attn
...
f80: 00 00 02 00 attn
...
1200: 7d 59 4b a6 mtspr 313,r10
1204: 7c 00 03 e4 slbia
1208: 4c 00 02 e4 .long 0x4c0002e4
120c: 00 00 02 00 attn
...
1280: a6 4b 59 7d lhzu r18,22909(r11)
1284: e4 03 00 7c lfdp f0,124(r3)
1288: e4 02 00 4c lfdp f0,76(r2)
128c: 00 02 00 00 .long 0x20000
...

0000000000002000 <thread_launcher_start>:
2000: 7c 5f fa a6 mfspr r2,1023
2004: 39 00 01 e0 li r8,480
2008: 7d 14 43 a6 mtspr 276,r8
200c: 7c 95 42 a6 mfspr r4,277
2010: 78 84 07 e1 clrldi. r4,r4,63
2014: 41 82 00 1c beq 2030 <core_is_not_fused>

0000000000002018 <core_is_fused>:
2018: 78 45 ef e2 rldicl r5,r2,61,63
201c: 78 a5 0f a4 rldicr r5,r5,1,62
2020: 78 48 07 e0 clrldi r8,r2,63
2024: 7c a5 42 14 add r5,r5,r8
2028: 78 46 ff a2 rldicl r6,r2,63,62
202c: 48 00 00 0c b 2038 <jump_thread_restore>

0000000000002030 <core_is_not_fused>:
2030: 78 45 f7 a2 rldicl r5,r2,62,62
2034: 78 46 07 a0 clrldi r6,r2,62

0000000000002038 <jump_thread_restore>:
2038: 78 48 e7 62 rldicl r8,r2,60,61
203c: 79 08 17 64 rldicr r8,r8,2,61
2040: 7c a5 42 14 add r5,r5,r8
2044: 7c 79 4a a6 mfspr r3,313
2048: 78 a7 6c a4 rldicr r7,r5,13,50
204c: 7c e7 1a 14 add r7,r7,r3
2050: 38 e7 21 00 addi r7,r7,8448
2054: 78 c8 5d 24 rldicr r8,r6,11,52
2058: 7d 07 42 14 add r8,r7,r8
205c: 39 88 04 00 addi r12,r8,1024
2060: 7d 08 03 a6 mtlr r8
2064: 4e 80 00 21 blrl

0000000000002068 <thread_restore_return>:
2068: 2c 06 00 00 cmpwi r6,0
206c: 40 82 00 1c bne 2088 <core_reg_restore_return>

0000000000002070 <wait_until_single_thread>:
2070: 7d 15 42 a6 mfspr r8,277
2074: 79 08 e7 22 rldicl r8,r8,60,60
2078: 2c 08 00 07 cmpwi r8,7
207c: 40 82 ff f4 bne 2070 <wait_until_single_thread>
2080: 7d 88 03 a6 mtlr r12
2084: 4e 80 00 21 blrl

0000000000002088 <core_reg_restore_return>:
2088: 7e bb 03 a6 mtsrr1 r21
208c: 39 14 12 00 addi r8,r20,4608
2090: 7a b5 07 e1 clrldi. r21,r21,63
2094: 41 82 00 08 beq 209c <skip_le1_offset>
2098: 39 14 12 80 addi r8,r20,4736

000000000000209c <skip_le1_offset>:
209c: 2c 06 00 00 cmpwi r6,0
20a0: 41 82 00 08 beq 20a8 <update_srr0>
20a4: 39 08 00 04 addi r8,r8,4

00000000000020a8 <update_srr0>:
20a8: 7d 1a 03 a6 mtsrr0 r8
20ac: 4c 00 00 24 rfid
28 changes: 28 additions & 0 deletions import/chips/p9/procedures/utils/stopreg/selfRest.map
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@

Memory Configuration

Name Origin Length Attributes
selfRestoreRegion 0x0000000000000000 0x0000000000002100 xr
*default* 0x0000000000000000 0xffffffffffffffff

Linker script and memory map

0x0000000000000000 . = 0x0
0x0000000000000000 . = ALIGN (0x80)
0x0000000000000000 _SELF_RESTORE_START = .

.selfRestore 0x0000000000000000 0x20b0
*(.selfRestore)
.selfRestore 0x0000000000000000 0x20b0 /gsa/ausgsa/projects/i/indiateam01/premjha2/ekb/chips/p9/procedures/utils/stopreg/p9_core_restore_routines.o
0x0000000000000000 _start
LOAD /gsa/ausgsa/projects/i/indiateam01/premjha2/ekb/chips/p9/procedures/utils/stopreg/p9_core_restore_routines.o
OUTPUT(/gsa/ausgsa/projects/i/indiateam01/premjha2/ekb/chips/p9/procedures/utils/stopreg/selfRest.bin binary)

.text 0x00000000000020b0 0x0
.text 0x00000000000020b0 0x0 /gsa/ausgsa/projects/i/indiateam01/premjha2/ekb/chips/p9/procedures/utils/stopreg/p9_core_restore_routines.o

.data 0x00000000000020b0 0x0
.data 0x00000000000020b0 0x0 /gsa/ausgsa/projects/i/indiateam01/premjha2/ekb/chips/p9/procedures/utils/stopreg/p9_core_restore_routines.o

.bss 0x00000000000020b0 0x0
.bss 0x00000000000020b0 0x0 /gsa/ausgsa/projects/i/indiateam01/premjha2/ekb/chips/p9/procedures/utils/stopreg/p9_core_restore_routines.o

0 comments on commit 03fb4ce

Please sign in to comment.