aboutsummaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
authorNicholas Piggin <npiggin@gmail.com>2017-11-29 15:36:59 +1000
committerStewart Smith <stewart@linux.vnet.ibm.com>2017-12-03 22:10:55 -0600
commitb41553c2240240fee094830b0ef80699791ca47d (patch)
treed491ae7ca1ff455678e7ba2797ead513bd6855df /asm
parent9c565ee6bca4b665d9d1120bfff5e88ee80615bc (diff)
downloadskiboot-b41553c2240240fee094830b0ef80699791ca47d.zip
skiboot-b41553c2240240fee094830b0ef80699791ca47d.tar.gz
skiboot-b41553c2240240fee094830b0ef80699791ca47d.tar.bz2
asm/head: move opal entry token check into C
Move opal_check_token from asm to C. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'asm')
-rw-r--r--asm/head.S13
1 files changed, 2 insertions, 11 deletions
diff --git a/asm/head.S b/asm/head.S
index a786ba1..68a4e7b 100644
--- a/asm/head.S
+++ b/asm/head.S
@@ -964,7 +964,7 @@ opal_entry:
LOAD_ADDR_FROM_TOC(%r12, reboot_in_progress)
lbz %r12,0(%r12)
cmpwi %r12,0
- bne 3f
+ bne 2f
/* Check entry */
mr %r3,%r1
@@ -986,13 +986,9 @@ opal_entry:
* function pointer. Also check the token.
* For ELFv2 ABI, the local entry point is used so no need for r12.
*/
- cmpldi %r0,OPAL_LAST
- bgt- 2f
sldi %r0,%r0,3
LOAD_ADDR_FROM_TOC(%r12, opal_branch_table)
ldx %r0,%r12,%r0
- cmpldi %r0,0
- beq- 2f
mtctr %r0
/* Jump ! */
@@ -1007,12 +1003,7 @@ opal_entry:
ld %r1,STACK_GPR1(%r1)
blr
-2: /* Bad token */
- ld %r3,STACK_GPR0(%r1)
- bl opal_bad_token
- b 1b
-
-3: /* Reboot in progress, reject all calls */
+2: /* Reboot in progress, reject all calls */
li %r3,OPAL_BUSY
b 1b