[ARM] Setting read-only section MMU entries as read only.

The linker script sections have been reorganized and split to set
different places for read-only and read-write sections, and the
MMU L2 entries are now set as priviledged read-write access or
priviledged read-only access.

The ".init" section is divided into two parts ".init.text" for code
and ".init.data" for data. Among this ".init.text" will be read-only
and ".init.data" will be read-write.

Uninitialized data have been set into the '.bss' sections.

Signed-off-by: Jimmy Durand Wesolowski <jimmy.durand-wesolowski@openwide.fr>
[DRIVERS] Minor fix in linux/of.h

The linux compatible of_get_property() and of_find_property()
are blindly updating "lenp" retrurn pointer hence this patch
ensures that "lenp" is not-NULL before updating.

Signed-off-by: Anup Patel <anup@brainfault.org>
[ARM] Once written, set the IRQ vector as a read-only page.

To avoid IRQ vector corruption, set the IRQ vector page
as read-only.

This mean that the virtual page for vectors will be mapped
with read-only privileged and vectors data will be copied
using vmm_host_physical_write().

Signed-off-by: Jimmy Durand Wesolowski <jimmy.durand-wesolowski@openwide.fr>
Signed-off-by: Anup Patel <anup@brainfault.org>
[TESTS] Disable VFP from linux defconfig for VersatilePB guest

We dont provide VFP to VCPU of VersatilePB guest hence we disable
VFP from linux defconfig for VersatilePB guest.

Signed-off-by: Anup Patel <anup@brainfault.org>
[ARM] arm32: Simplify boot time page table setup for RW sections

We don't need to explicity setup page table for all RO and RW
sections at boot time. Instead to simplify this we explicity
setup page table for RO sections and setup remaining of code/data
area as RW area.

Signed-off-by: Anup Patel <anup@brainfault.org>
[ARM] arm32ve: arm64: Set read-only section pages as read-only

This patch updates boot time page table setup for arm32ve and
arm64 so that all read-only section pages are explicitly marked
as read-only at boot time.

This patch is very similar to "[ARM] Set read-only section pages
as read-only" contributed by Jimmy Durand Wesolowski.

Signed-off-by: Anup Patel <anup@brainfault.org>
[COMMANDS] cmd_host: Introduce new sub-command for cpu statistics

The CPU-level statistics such as utilization, interrupt processing,
and active VCPUs should be shown in tabular format via separate
sub-command of "host cpu" command.

This patch introduces "host cpu stats" sub-command for this purpose.

Signed-off-by: Anup Patel <anup@brainfault.org>
[DOCS] Initial release notes for v0.2.5 release

This is a preparatory patch for v0.2.5 relase whereby we add
initial version of release notes for v0.2.5.

Signed-off-by: Anup Patel <anup@brainfault.org>
[CORE] net: Gradually increasing timeouts for netswitch_bh_ring_dequeue()

Currently, we use fixed timeout for netswitch_bh_ring_dequeue() which
is very harsh on stream of packets which come at non-uniform rate.

In real world, packets always come at non-uniform rate hence the
timeout used in netswitch_bh_ring_dequeue() should start with minimum
and gradually increase so that if we have momemtary delays in stream
of packets then we don't accidently sleep for long time.

Signed-off-by: Anup Patel <anup@brainfault.org>
[CORE] vmm_devemu: Halt VCPU when read/write/ioread/iowrite fails

If read/write/ioread/iowrite fails then it implies that VCPU
misbehaved and tried to access invalid guest address.

Currently, we rely on arch code to handle this failure and hope
that arch code will halt the VCPU.

This patch enforces VCPU halt upon read/write/ioread/iowrite
failure from core code itself so that arch code does not have
to explicity halt VCPU.

Signed-off-by: Anup Patel <anup@brainfault.org>
[ARM] arm32: Minor improvement nested data abort handling

Nested data abort can occur in various scenarios most of
which are due code trying to access some data which is
mapped in master translation table but not mapped in
shadow translation table of normal VCPU.

There is also other common scenario where Xvisor is trying
to emulate some thing and it tries to access access guest
memory which is not yet mapped in shadow translation table
of normal VCPU.

This patch improves handling of the later scenario by
explicitly checking that DFAR is not VAPOOL address.

Signed-off-by: Anup Patel <anup@brainfault.org>