[ARCH] arm32ve: Don't use static variables in early mmu setup

Signed-off-by: Jean-Christophe DUBOIS <jcd@tribudubois.net>
[ARM32VE] read HSCTLR instead of SCTLR in proc_setup

Signed-off-by: Jean-Christophe DUBOIS <jcd@tribudubois.net>
[ARM32VE] Add default dummy early print implementation for non SUNXI.

Signed-off-by: Jean-Christophe DUBOIS <jcd@tribudubois.net>
[CORE] Move size_t and ssize_t to generic code

The size_t and ssize_t types are not architecture dependent hence
move them to generic code in vmm_types.h

Signed-off-by: Anup Patel <anup@brainfault.org>
[ARM] Move interrupt controller and timer code to drivers

This patch moves most of the ARM interrupt controller and timer drivers
to drivers directory.

This is a preparatory patch for having multiplatform (or unified) Xvisor
binary which can boot on multiple ARM boards.

Signed-off-by: Anup Patel <anup@brainfault.org>
[ARM] Improve generic board to support ARMv5, ARMv6, ARMv7, and ARMv8 CPUs

Currently, the generic board support only supported ARMv8 CPUs. This patch
extends generic board to also support ARMv5, ARMv6, ARMv7 and ARMv7 (with
virtualization) CPUs.

With this patch in-place we can create multiplatform Xvisor binary will
boot on multiple boards for given ARM family.

The patch does not add DTS files for all ARM boards but eventually we will
have it for all ARM boards and board specific directories will go away.

Signed-off-by: Anup Patel <anup@brainfault.org>
[ARM] arm32: Fix compile warning when CONFIG_SMP is disabled

The source file arch/arm/cpu/arm32ve/cpu_vcpu_helper.c gets compile
time warning for invalidate_icache() function call when CONFIG_SMP
is disabled. This patch fixes this compile time warning.

Signed-off-by: Anup Patel <anup@brainfault.org>
[DRIVERS] Simplify VIC driver and Versatile board support.

Currently, the VIC driver was cured and expected board specific
code to explicitly call vic_init() and vic_active_irq().

This patch makes VIC driver fully device tree based and also
simplifies Versatile board support.

Signed-off-by: Anup Patel <anup@brainfault.org>
[ARM] Add support for ARMv5 boards in generic board support

The patch completes the generic board support by allowing ARMv5 boards
using generic board support.

As part of this patch, we also rename arch/arm/cpu/arm32/cpu_proc_arm926.S
to arch/arm/cpu/arm32/cpu_proc_v5.S so that it can be used for both ARM926
and Generic-v5 CPUs.

Signed-off-by: Anup Patel <anup@brainfault.org>
[ARM] generic: Minor fix in versatilepb.dtsi

Make host cpu description in versatilepb.dtsi same as other
generic board DTSi files.

Signed-off-by: Anup Patel <anup@brainfault.org>
[ARM] Improve proc_setup_smp_id() for unknown CPUs

Currently, the proc_setup_smp_id() function would just hang when
running on unknow CPUs.

This not fare because with multiplatform generic board available
for all ARM families, people will try Xvisor binary on unknown
boards which are never tried before.

This patch improves proc_setup_smp_id() so that for unknown CPUs
we consider Affinity0 field of MPIDR as CPU ID of unknown CPU.

Signed-off-by: Anup Patel <anup@brainfault.org>
Merge remote-tracking branch 'upstream/master' into A20

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

Conflicts:
	arch/arm/board/common/sunxi/openconf.cfg
	arch/arm/board/openconf.cfg
	drivers/irqchip/objects.mk
Merge remote-tracking branch 'upstream/master' into A20

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

Conflicts:
	arch/arm/cpu/arm32ve/objects.mk