summaryrefslogtreecommitdiffstats
path: root/src/securerom/branchtable.S
diff options
context:
space:
mode:
Diffstat (limited to 'src/securerom/branchtable.S')
-rw-r--r--src/securerom/branchtable.S88
1 files changed, 41 insertions, 47 deletions
diff --git a/src/securerom/branchtable.S b/src/securerom/branchtable.S
index d3c1c8608..86a1f92a8 100644
--- a/src/securerom/branchtable.S
+++ b/src/securerom/branchtable.S
@@ -25,74 +25,68 @@
#****************************************************************************
#* branch table - a more stable location for software entering rom code
#****************************************************************************
-# adr function
-# 0 instruction_start
-# 2 .SHA512_Init
-# 4 .SHA512_Update
-# 6 .SHA512_Final
-# 8 .SHA512_Hash
-# A .ec_verify
-# C .ROM_verify
-# 100 rom_sreset
-branchtable:
- .section ".branchtable","ax"
+.include "kernel/ppcconsts.S"
- .globl _instruction_start
-_instruction_start:
- b instruction_start
- nop
+branchtable:
+ .section ".branchtable","ax"
- .globl _SHA512_Init
+ .globl _SHA512_Init
_SHA512_Init:
- li r0, .L.SHA512_Init@l
- b springboard
+ li r0, .L.SHA512_Init@l
+ b springboard
- .globl _SHA512_Update
+ .globl _SHA512_Update
_SHA512_Update:
- li r0, .L.SHA512_Update@l
- b springboard
+ li r0, .L.SHA512_Update@l
+ b springboard
- .globl _SHA512_Final
+ .globl _SHA512_Final
_SHA512_Final:
- li r0, .L.SHA512_Final@l
- b springboard
+ li r0, .L.SHA512_Final@l
+ b springboard
- .globl _SHA512_Hash
+ .globl _SHA512_Hash
_SHA512_Hash:
- li r0, .L.SHA512_Hash@l
- b springboard
+ li r0, .L.SHA512_Hash@l
+ b springboard
- .globl _ec_verify
+ .globl _ec_verify
_ec_verify:
- li r0, .L.ec_verify@l
- b springboard
+ li r0, .L.ec_verify@l
+ b springboard
- .globl _ROM_verify
+ .globl _ROM_verify
_ROM_verify:
- li r0, .L.ROM_verify@l
- b springboard
+ li r0, .L.ROM_verify@l
+ b springboard
#define CFAR 28
springboard:
- b boingboing
+ b boingboing
boingboing:
- mfspr r2, CFAR // get address of springboard
- addi r2, r2, _instruction_start-springboard // base address
- add r0, r0, r2 // calculate entry relative
- addi r2, r2, 0x4000 //TOC+0x8000 part 1
- addi r2, r2, (__toc_start+0x4000)@l //TOC+0x8000 part 2
- mtctr r0
- bctr // jump
+ mfspr r2, CFAR ;// get address of springboard
+ addi r2, r2, _SHA512_Init-springboard ;// base address
+ add r0, r0, r2 ;// calculate entry relative
+ addi r2, r2, 0x4000 ;//TOC+0x8000 part 1
+ addi r2, r2, (__toc_start+0x4000)@l ;//TOC+0x8000 part 2
+ mtctr r0
+ bctr ;// jump
# could put other assembly ocde routines here to conserver ROM space
# including the sreset routine
-# need to align on bootrombase+0x100 !!!
- .org .branchtable+0x100
- .globl _rom_sreset
+# need to align on securerombase+0x100 !!!
+ .org .branchtable+0x100
+ .globl _rom_sreset
_rom_sreset:
- li r0, rom_sreset@l
- b springboard
- nop
+ li r0, rom_sreset@l
+ b springboard
+ nop
+
+.section .data
+
+.global hbi_ImageId
+hbi_ImageId:
+ .space 128
OpenPOWER on IntegriCloud