[CORE] vmm_guest_aspace: Add APIs to add/del regions at runtime

For having PCIe host and device emulators we need capability to
add/del guest regions at runtime.

This patch protects per-guest region list using RW lock and also
implements APIs to add/del regions at runtime.

Signed-off-by: Anup Patel <anup@brainfault.org>
[CORE] vmm_guest_aspace: More improvements to region add/del APIs

This patch does few improvements to region add/del APIs:
1. Rename vmm_guest_aspace_xxx_region() APIs to vmm_guest_xxx_region() APIs
2. Introduce "initialized" flag in struct vmm_guest_aspace to ensure that
   vmm_guest_xxx_region() and other APIs fail when called before doing
   vmm_guest_aspace_init().

Signed-off-by: Anup Patel <anup@brainfault.org>
[TESTS] Use SRAM from secondary spin in ARM fast model bootwrapper

Currently, we use normal RAM address 0x84000000 for secondary spin
when compiling ARM fast model bootwrapper.

Since the secondary spin is in RAM we always face this risk of
some Xvisor code tamperring that RAM location while the secondary
CPUs spining from this RAM location.

The VExpress-A15 SRAM is not used currently hence we use SRAM for
secondary spin when compiling ARM fast model bootwrapper.

Signed-off-by: Anup Patel <anup@brainfault.org>
[ARM] Provide same menuconfig name for all board specific options

Currently, the menuconfig name for all borad specific options vary
based on board name.

For consistency and ease, we use "ARM Board Options" as menuconfig
name for all board specific options irrespective of board name.

Signed-off-by: Anup Patel <anup@brainfault.org>
[ARM] generic: Use linux-like node names for CPUs in foundation-v8 DTSi

This patch does minor cleanup in CPU node names of foundation-v8 DTSi
files.

Signed-off-by: Anup Patel <anup@brainfault.org>
[ARM] arm32: Remove CONFIG_ARMV7A_SECUREX config options

Whether security extensions are available or not is something
we should check at runtime and not as configuration options.

This patch removes CONFIG_ARMV7A_SECUREX config option from
arm32 port.

Signed-off-by: Anup Patel <anup@brainfault.org>
[CORE] vmm_stdio: Improve arch_defterm_early_putc() usage

Currently, arch_defterm_early_putc() is optional and if arch implements
it then arch_config.h will define ARCH_HAS_DEFTERM_EARLY_PRINT.

There are lot other optional arch_xxx() APIs but generally core code
provides default weak implementation of these APIs and arch code
provides hard implementation of these APIs if it wants to implement.

For consistency with other optional arch_xxx() APIs we provide default
weak implemenations of arch_defterm_early_putc() in vmm_stdio and
remove ARCH_HAS_DEFTERM_EARLY_PRINT from arch_config.h.

Signed-off-by: Anup Patel <anup@brainfault.org>
[ARM] Rename menuconfig name for CPU options

The common menuconfig name for Board options is "ARM Board Options"
hence to be consistent with this we rename menuconfig name of CPU
options to "ARM CPU Options".

Signed-off-by: Anup Patel <anup@brainfault.org>
[ARM] arm32ve: arm64: First-cut arch_defterm_early_putc() for debugging

Many times in bringing-up Xvison on new ARM board we are stuck at a point
even before arch_defterm_init() hence we are totally in the dark if we
don't have HW debugger for the new ARM board.

To solve this issue we already have arch_defterm_early_putc() which is
called even before arch_defterm_init(). This way of debugging is currently
used by Xvisor x86_64 for early prints.

This patch implements arch_defterm_early_putc() for arm32ve and arm64
boards. Eventually we will also have it for arm32 boards.

Signed-off-by: Anup Patel <anup@brainfault.org>
[ARM] ARM32VE: Add Sun7i platform DTS trees.

Signed-off-by: Jean-Christophe DUBOIS <jcd@tribudubois.net>
[ARM] arm64: Invalidate I-Cache and TLBs in proc_setup()

The bootloader might run with I-Cache or MMU enabled hence
invalidate both in proc_setup().

If bootloader is using D-Cache too then it is responsiblity
of bootloader to clean-invalidate D-Cache before jumping
into Xvisor (as-per Linux booting protocol).

Signed-off-by: Anup Patel <anup@brainfault.org>
[PATCH] [ARM] rework MMU init for LPAE configuration

Signed-off-by: Jean-Christophe DUBOIS <jcd@tribudubois.net>
Merge remote-tracking branch 'upstream/master' into A20

Signed-off-by: Jean-Christophe DUBOIS <jcd@tribudubois.net>

Conflicts:
	arch/arm/cpu/common/mmu_lpae_entry_ttbl.c
Merge remote-tracking branch 'upstream/master' into A20

Signed-off-by: Jean-Christophe DUBOIS <jcd@tribudubois.net>

Conflicts:
	arch/arm/cpu/common/mmu_lpae_entry_ttbl.c