diff options
Diffstat (limited to 'roms/skiboot/asm/cvc_entry.S')
-rw-r--r-- | roms/skiboot/asm/cvc_entry.S | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/roms/skiboot/asm/cvc_entry.S b/roms/skiboot/asm/cvc_entry.S new file mode 100644 index 000000000..3f314ee46 --- /dev/null +++ b/roms/skiboot/asm/cvc_entry.S @@ -0,0 +1,52 @@ +# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later + +# Derived from automatically generated HostBoot rom_entry.S + +#include <asm-utils.h> +#include <processor.h> + +# Updated hostboot location is src/securerom/rom_entry.S. +# This also has a fix for TOC save frame pointer. + +#include <stack.h> + +.section .text + +.global __cvc_verify_v1 +.global __cvc_sha512_v1 + +__cvc_verify_v1: +__cvc_sha512_v1: + +call_rom_entry: + mflr %r0 + std %r0, 16(%r1) + stdu %r1, -128(%r1) + std %r2, STACK_TOC_OFFSET(%r1) + li %r2, 0 + mtctr %r3 + mr %r3, %r4 + mr %r4, %r5 + mr %r5, %r6 + mr %r6, %r7 + mr %r7, %r8 +#if HAVE_BIG_ENDIAN + bctrl +#else + bl $+4 +1: mflr %r9 + addi %r9,%r9,2f - 1b + mtspr SPR_HSRR0, %r9 + mfmsr %r9 + xori %r9,%r9,MSR_LE + mtspr SPR_HSRR1, %r9 + hrfid +2: .long 0x2104804e /* bctrl */ + FIXUP_ENDIAN +#endif + ld %r2, STACK_TOC_OFFSET(%r1) + addi %r1, %r1, 128 + ld %r0, 16(%r1) + mtlr %r0 + blr + |