mirror of https://github.com/xemu-project/xemu.git
target-arm queue:
* tests/migration-test: Fix read off end of aarch64_kernel array * Fix sve_zcr_len_for_el off-by-one error * hw/arm/sbsa-ref: Silence Coverity nit * vfp_helper: Call set_fpscr_to_host before updating to FPSCR -----BEGIN PGP SIGNATURE----- iQJNBAABCAA3FiEE4aXFk81BneKOgxXPPCUl7RQ2DN4FAl0jQ1AZHHBldGVyLm1h eWRlbGxAbGluYXJvLm9yZwAKCRA8JSXtFDYM3lryD/9VUC6qIGdI36Q2LQ8p7zqb GDP3GeIc+1vWUZBzjv9WnjF8NYx6ZaOtiXYSbyOsyWxGVWNpxcA0/ZL7Hv1762PO vnpIgDVi52RemwZujrI8LXRQnQmDdd2WZtnwRWwXWQGOLE8o1aqc69PpPiX/tlxw 0BFKAOVpTmmtYGzySAsf+0TrpqLMx94sdmjGE02YvhHULp63KAc1s88qMzjwrgSA l5r8VGrAlOL1AE8VZMV08nnLaX4yU2iW8yzqdN6RJhkbhNR3jWvjUQaTKcnfGp+N e4+VEnp4RKo4K6gpE3XMmGh9O82xWHLQp18ysFRzhuJCoC6M0uBZNBOYyAFE/yLw zLIUXSROxFQGryoNcf7gyFgwudnbfVvQ0P4IWY3fwzlVU+YXot/qOGKRoiX5l/Pv cuH0gPGYtTYz5/qymnhQK2kWjCnCLi4t1u/qld118zXtrngsxBve35d17iZBdKzC R+4cCfgRccwrE93Jni4pfyjDMW6pUfeKWdMtYFM0X7CF8SO0aB6+tu5ZKFdU6GwY TpBSIUXR1M//VoCmLAsT2IX2o1jDHHEL79PBFkSxLrlJZNknVxD3PxNvaTlJbd+8 ebjlgWo5ktZFdTd9v5g8Qz6A2jCVn37SSUamaITJo1lK1dUmc7xzIxjtXjxdFmH8 nJ/B77ok06vHwViAOKLdTg== =Oh1v -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20190708' into staging target-arm queue: * tests/migration-test: Fix read off end of aarch64_kernel array * Fix sve_zcr_len_for_el off-by-one error * hw/arm/sbsa-ref: Silence Coverity nit * vfp_helper: Call set_fpscr_to_host before updating to FPSCR # gpg: Signature made Mon 08 Jul 2019 14:21:20 BST # gpg: using RSA key E1A5C593CD419DE28E8315CF3C2525ED14360CDE # gpg: issuer "peter.maydell@linaro.org" # gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>" [ultimate] # gpg: aka "Peter Maydell <pmaydell@gmail.com>" [ultimate] # gpg: aka "Peter Maydell <pmaydell@chiark.greenend.org.uk>" [ultimate] # Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83 15CF 3C25 25ED 1436 0CDE * remotes/pmaydell/tags/pull-target-arm-20190708: target/arm/vfp_helper: Call set_fpscr_to_host before updating to FPSCR hw/arm/sbsa-ref: Remove unnecessary check for secure_sysmem == NULL tests/migration-test: Fix read off end of aarch64_kernel array target/arm: Fix sve_zcr_len_for_el Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
df34fe314b
|
@ -254,8 +254,6 @@ static void sbsa_flash_map(SBSAMachineState *sms,
|
|||
* sysmem is the system memory space. secure_sysmem is the secure view
|
||||
* of the system, and the first flash device should be made visible only
|
||||
* there. The second flash device is visible to both secure and nonsecure.
|
||||
* If sysmem == secure_sysmem this means there is no separate Secure
|
||||
* address space and both flash devices are generally visible.
|
||||
*/
|
||||
hwaddr flashsize = sbsa_ref_memmap[SBSA_FLASH].size / 2;
|
||||
hwaddr flashbase = sbsa_ref_memmap[SBSA_FLASH].base;
|
||||
|
@ -591,7 +589,7 @@ static void sbsa_ref_init(MachineState *machine)
|
|||
SBSAMachineState *sms = SBSA_MACHINE(machine);
|
||||
MachineClass *mc = MACHINE_GET_CLASS(machine);
|
||||
MemoryRegion *sysmem = get_system_memory();
|
||||
MemoryRegion *secure_sysmem = NULL;
|
||||
MemoryRegion *secure_sysmem = g_new(MemoryRegion, 1);
|
||||
MemoryRegion *ram = g_new(MemoryRegion, 1);
|
||||
bool firmware_loaded;
|
||||
const CPUArchIdList *possible_cpus;
|
||||
|
@ -615,13 +613,11 @@ static void sbsa_ref_init(MachineState *machine)
|
|||
* containing the system memory at low priority; any secure-only
|
||||
* devices go in at higher priority and take precedence.
|
||||
*/
|
||||
secure_sysmem = g_new(MemoryRegion, 1);
|
||||
memory_region_init(secure_sysmem, OBJECT(machine), "secure-memory",
|
||||
UINT64_MAX);
|
||||
memory_region_add_subregion_overlap(secure_sysmem, 0, sysmem, -1);
|
||||
|
||||
firmware_loaded = sbsa_firmware_init(sms, sysmem,
|
||||
secure_sysmem ?: sysmem);
|
||||
firmware_loaded = sbsa_firmware_init(sms, sysmem, secure_sysmem);
|
||||
|
||||
if (machine->kernel_filename && firmware_loaded) {
|
||||
error_report("sbsa-ref: No fw_cfg device on this machine, "
|
||||
|
|
|
@ -5283,10 +5283,10 @@ uint32_t sve_zcr_len_for_el(CPUARMState *env, int el)
|
|||
if (el <= 1) {
|
||||
zcr_len = MIN(zcr_len, 0xf & (uint32_t)env->vfp.zcr_el[1]);
|
||||
}
|
||||
if (el < 2 && arm_feature(env, ARM_FEATURE_EL2)) {
|
||||
if (el <= 2 && arm_feature(env, ARM_FEATURE_EL2)) {
|
||||
zcr_len = MIN(zcr_len, 0xf & (uint32_t)env->vfp.zcr_el[2]);
|
||||
}
|
||||
if (el < 3 && arm_feature(env, ARM_FEATURE_EL3)) {
|
||||
if (arm_feature(env, ARM_FEATURE_EL3)) {
|
||||
zcr_len = MIN(zcr_len, 0xf & (uint32_t)env->vfp.zcr_el[3]);
|
||||
}
|
||||
return zcr_len;
|
||||
|
|
|
@ -197,6 +197,8 @@ void HELPER(vfp_set_fpscr)(CPUARMState *env, uint32_t val)
|
|||
val &= 0xf7c0009f;
|
||||
}
|
||||
|
||||
vfp_set_fpscr_to_host(env, val);
|
||||
|
||||
/*
|
||||
* We don't implement trapped exception handling, so the
|
||||
* trap enable bits, IDE|IXE|UFE|OFE|DZE|IOE are all RAZ/WI (not RES0!)
|
||||
|
@ -217,8 +219,6 @@ void HELPER(vfp_set_fpscr)(CPUARMState *env, uint32_t val)
|
|||
env->vfp.qc[1] = 0;
|
||||
env->vfp.qc[2] = 0;
|
||||
env->vfp.qc[3] = 0;
|
||||
|
||||
vfp_set_fpscr_to_host(env, val);
|
||||
}
|
||||
|
||||
void vfp_set_fpscr(CPUARMState *env, uint32_t val)
|
||||
|
|
|
@ -91,23 +91,13 @@ static const char *tmpfs;
|
|||
*/
|
||||
#include "tests/migration/i386/a-b-bootblock.h"
|
||||
#include "tests/migration/aarch64/a-b-kernel.h"
|
||||
|
||||
static void init_bootfile(const char *bootpath, void *content)
|
||||
{
|
||||
FILE *bootfile = fopen(bootpath, "wb");
|
||||
|
||||
g_assert_cmpint(fwrite(content, 512, 1, bootfile), ==, 1);
|
||||
fclose(bootfile);
|
||||
}
|
||||
|
||||
#include "tests/migration/s390x/a-b-bios.h"
|
||||
|
||||
static void init_bootfile_s390x(const char *bootpath)
|
||||
static void init_bootfile(const char *bootpath, void *content, size_t len)
|
||||
{
|
||||
FILE *bootfile = fopen(bootpath, "wb");
|
||||
size_t len = sizeof(s390x_elf);
|
||||
|
||||
g_assert_cmpint(fwrite(s390x_elf, len, 1, bootfile), ==, 1);
|
||||
g_assert_cmpint(fwrite(content, len, 1, bootfile), ==, 1);
|
||||
fclose(bootfile);
|
||||
}
|
||||
|
||||
|
@ -537,7 +527,9 @@ static int test_migrate_start(QTestState **from, QTestState **to,
|
|||
got_stop = false;
|
||||
bootpath = g_strdup_printf("%s/bootsect", tmpfs);
|
||||
if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
|
||||
init_bootfile(bootpath, x86_bootsect);
|
||||
/* the assembled x86 boot sector should be exactly one sector large */
|
||||
assert(sizeof(x86_bootsect) == 512);
|
||||
init_bootfile(bootpath, x86_bootsect, sizeof(x86_bootsect));
|
||||
extra_opts = use_shmem ? get_shmem_opts("150M", shmem_path) : NULL;
|
||||
cmd_src = g_strdup_printf("-machine accel=%s -m 150M"
|
||||
" -name source,debug-threads=on"
|
||||
|
@ -555,7 +547,7 @@ static int test_migrate_start(QTestState **from, QTestState **to,
|
|||
start_address = X86_TEST_MEM_START;
|
||||
end_address = X86_TEST_MEM_END;
|
||||
} else if (g_str_equal(arch, "s390x")) {
|
||||
init_bootfile_s390x(bootpath);
|
||||
init_bootfile(bootpath, s390x_elf, sizeof(s390x_elf));
|
||||
extra_opts = use_shmem ? get_shmem_opts("128M", shmem_path) : NULL;
|
||||
cmd_src = g_strdup_printf("-machine accel=%s -m 128M"
|
||||
" -name source,debug-threads=on"
|
||||
|
@ -590,7 +582,7 @@ static int test_migrate_start(QTestState **from, QTestState **to,
|
|||
start_address = PPC_TEST_MEM_START;
|
||||
end_address = PPC_TEST_MEM_END;
|
||||
} else if (strcmp(arch, "aarch64") == 0) {
|
||||
init_bootfile(bootpath, aarch64_kernel);
|
||||
init_bootfile(bootpath, aarch64_kernel, sizeof(aarch64_kernel));
|
||||
extra_opts = use_shmem ? get_shmem_opts("150M", shmem_path) : NULL;
|
||||
cmd_src = g_strdup_printf("-machine virt,accel=%s,gic-version=max "
|
||||
"-name vmsource,debug-threads=on -cpu max "
|
||||
|
|
Loading…
Reference in New Issue