feat(mte): move stacks to a separate memory region

Separates CPU stack memory region to apply different memory attribute to
the stack region specifically. This memory region is marked as "Normal
Inner Write-Back, Outer Write-Back, Read-Allocate, Write-Allocate
Non-transient memory." for now.
Zeroes the stack section on the image entry.

Signed-off-by: Maksims Svecovs <maksims.svecovs@arm.com>
Change-Id: Iaa68c7d16cae73c31e3741f94d2c6c85ca457b19
diff --git a/inc/hf/arch/init.h b/inc/hf/arch/init.h
index 5205e4e..6063975 100644
--- a/inc/hf/arch/init.h
+++ b/inc/hf/arch/init.h
@@ -8,6 +8,9 @@
 
 #pragma once
 
+#include "hf/mm.h"
+#include "hf/mpool.h"
+
 /**
  * Performs arch specific boot time initialization.
  *
@@ -15,3 +18,11 @@
  * possible.
  */
 void arch_one_time_init(void);
+
+/**
+ * Updates the hypervisor page table such that the stack address range
+ * is mapped into the address space at the corresponding address range in the
+ * architecture-specific mode.
+ */
+bool arch_stack_mm_init(struct mm_stage1_locked stage1_locked,
+			struct mpool *ppool);