c02b37814c
This patch adds migration test support for aarch64. The test code, which implements the same functionality as x86, is booted as a kernel in qemu. Here are the design choices we make for aarch64: * We choose this -kernel approach because aarch64 QEMU doesn't provide a built-in fw like x86 does. So instead of relying on a boot loader, we use -kernel approach for aarch64. * The serial output is sent to PL011 directly. * The physical memory base for mach-virt machine is 0x40000000. We change the start_address and end_address for aarch64. In addition to providing the binary, this patch also includes the source code and the build script in tests/migration/aarch64. So users can change the source and/or re-compile the binary as they wish. Reviewed-by: Juan Quintela <quintela@redhat.com> Reviewed-by: Andrew Jones <drjones@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Wei Huang <wei@redhat.com> Message-Id: <1538669326-28135-1-git-send-email-wei@redhat.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
36 lines
1.1 KiB
Makefile
36 lines
1.1 KiB
Makefile
#
|
|
# Copyright (c) 2018 Red Hat, Inc. and/or its affiliates
|
|
#
|
|
# This work is licensed under the terms of the GNU GPL, version 2 or later.
|
|
# See the COPYING file in the top-level directory.
|
|
#
|
|
|
|
TARGET_LIST = i386 aarch64
|
|
|
|
SRC_PATH = ../..
|
|
|
|
override define __note
|
|
/* This file is automatically generated from the assembly file in
|
|
* tests/migration/$@. Edit that file and then run "make all"
|
|
* inside tests/migration to update, and then remember to send both
|
|
* the header and the assembler differences in your patch submission.
|
|
*/
|
|
endef
|
|
export __note
|
|
|
|
find-arch-cross-cc = $(lastword $(shell grep -h "CROSS_CC_GUEST=" $(wildcard $(SRC_PATH)/$(patsubst i386,*86*,$(1))-softmmu/config-target.mak) /dev/null))
|
|
parse-cross-prefix = $(subst gcc,,$(patsubst cc,gcc,$(patsubst CROSS_CC_GUEST="%",%,$(call find-arch-cross-cc,$(1)))))
|
|
gen-cross-prefix = $(patsubst %-,CROSS_PREFIX=%-,$(call parse-cross-prefix,$(1)))
|
|
|
|
.PHONY: all $(TARGET_LIST)
|
|
|
|
all: $(TARGET_LIST)
|
|
|
|
$(TARGET_LIST):
|
|
$(MAKE) -C $@ $(call gen-cross-prefix,$@)
|
|
|
|
clean:
|
|
for target in $(TARGET_LIST); do \
|
|
$(MAKE) -C $$target clean; \
|
|
done
|