Commit 0b689da3 authored by Richard Henderson's avatar Richard Henderson Committed by Laurent Vivier
Browse files

linux-user/arm: Adjust MAX_RESERVED_VA for M-profile



Limit the virtual address space for M-profile cpus to 2GB,
so that we avoid all of the magic addresses in the top half
of the M-profile system map.

Signed-off-by: default avatarRichard Henderson <richard.henderson@linaro.org>
Reviewed-by: default avatarPeter Maydell <peter.maydell@linaro.org>
Message-Id: <20190822185929.16891-3-richard.henderson@linaro.org>
Signed-off-by: default avatarLaurent Vivier <laurent@vivier.eu>
parent 8f67b9c6
Loading
Loading
Loading
Loading
+21 −3
Original line number Diff line number Diff line
@@ -19,9 +19,27 @@
#ifndef ARM_TARGET_CPU_H
#define ARM_TARGET_CPU_H

/* We need to be able to map the commpage.
   See validate_guest_space in linux-user/elfload.c.  */
#define MAX_RESERVED_VA(CPU)  0xffff0000ul
static inline unsigned long arm_max_reserved_va(CPUState *cs)
{
    ARMCPU *cpu = ARM_CPU(cs);

    if (arm_feature(&cpu->env, ARM_FEATURE_M)) {
        /*
         * There are magic return addresses above 0xfe000000,
         * and in general a lot of M-profile system stuff in
         * the high addresses.  Restrict linux-user to the
         * cached write-back RAM in the system map.
         */
        return 0x80000000ul;
    } else {
        /*
         * We need to be able to map the commpage.
         * See validate_guest_space in linux-user/elfload.c.
         */
        return 0xffff0000ul;
    }
}
#define MAX_RESERVED_VA  arm_max_reserved_va

static inline void cpu_clone_regs(CPUARMState *env, target_ulong newsp)
{