vmbase: Randomize stack canary value
Randomizes the stack canary value to provide better protection against
stack buffer overflow. Uses SMCCC TRNG as source of entropy. If the TRNG
backend is not present, defaults to a known constant value.
Bug: 265778654
Test: atest vmbase_example.integration_test
Change-Id: I16b053b3cfec7019fb2afb7ca3880fade713c2f8
diff --git a/vmbase/common.h b/vmbase/common.h
index 788dcf0..0f73b36 100644
--- a/vmbase/common.h
+++ b/vmbase/common.h
@@ -30,9 +30,13 @@
movk \reg, :abs_g0_nc:\imm
.endm
+.macro hvc_call func_id:req
+ mov_i x0, \func_id
+ hvc 0
+.endm
+
.macro reset_or_hang
- mov_i x0, PSCI_SYSTEM_RESET
- hvc 0
+ hvc_call PSCI_SYSTEM_RESET
999: wfi
b 999b
.endm