xref: /openbmc/qemu/tests/tcg/arm/Makefile.softmmu-target (revision 40a770ea8b9478aefa3a60049bc67cc04ace569c)
1647aee9bSStefan Hajnoczi# -*- Mode: makefile -*-
2647aee9bSStefan Hajnoczi#
3647aee9bSStefan Hajnoczi# ARM SoftMMU tests - included from tests/tcg/Makefile
4647aee9bSStefan Hajnoczi#
5647aee9bSStefan Hajnoczi
6e8368b1cSAlex BennéeARM_SRC=$(SRC_PATH)/tests/tcg/arm/system
7647aee9bSStefan Hajnoczi
8647aee9bSStefan Hajnoczi# Set search path for all sources
9647aee9bSStefan HajnocziVPATH 		+= $(ARM_SRC)
10647aee9bSStefan Hajnoczi
11647aee9bSStefan Hajnoczi# Specific Test Rules
12647aee9bSStefan Hajnoczi
1356611e17SAlex Bennéetest-armv6m-undef: test-armv6m-undef.S
1456611e17SAlex Bennée	$(CC) -mcpu=cortex-m0 -mfloat-abi=soft \
1556611e17SAlex Bennée		-Wl,--build-id=none -x assembler-with-cpp \
168807477cSRichard Henderson		$< -o $@ -nostdlib -static \
1756611e17SAlex Bennée		-T $(ARM_SRC)/$@.ld
18647aee9bSStefan Hajnoczi
194985d876SAlex Bennéerun-test-armv6m-undef: QEMU_OPTS=-semihosting-config enable=on,target=native,chardev=output -M microbit -kernel
20d044b7c3SAlex Bennée
2156611e17SAlex BennéeARM_TESTS+=test-armv6m-undef
2256611e17SAlex Bennée
2356611e17SAlex Bennée# These objects provide the basic boot code and helper functions for all tests
2456611e17SAlex BennéeCRT_OBJS=boot.o
2556611e17SAlex Bennée
2656611e17SAlex BennéeARM_TEST_SRCS=$(wildcard $(ARM_SRC)/*.c)
2756611e17SAlex BennéeARM_TESTS+=$(patsubst $(ARM_SRC)/%.c, %, $(ARM_TEST_SRCS))
2856611e17SAlex Bennée
2956611e17SAlex BennéeCRT_PATH=$(ARM_SRC)
3056611e17SAlex BennéeLINK_SCRIPT=$(ARM_SRC)/kernel.ld
3156611e17SAlex BennéeLDFLAGS=-Wl,-T$(LINK_SCRIPT)
3256611e17SAlex BennéeCFLAGS+=-nostdlib -ggdb -O0 $(MINILIB_INC)
338807477cSRichard HendersonLDFLAGS+=-static -nostdlib $(CRT_OBJS) $(MINILIB_OBJS) -lgcc
3456611e17SAlex Bennée
3556611e17SAlex Bennée# building head blobs
3656611e17SAlex Bennée.PRECIOUS: $(CRT_OBJS)
3756611e17SAlex Bennée
3856611e17SAlex Bennée%.o: $(ARM_SRC)/%.S
39*6c180490SRichard Henderson	$(CC) $(CFLAGS) $(EXTRA_CFLAGS) -x assembler-with-cpp -Wa,--noexecstack -c $< -o $@
4056611e17SAlex Bennée
4156611e17SAlex Bennée# Build and link the tests
4256611e17SAlex Bennée%: %.c $(LINK_SCRIPT) $(CRT_OBJS) $(MINILIB_OBJS)
4356611e17SAlex Bennée	$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS)
4456611e17SAlex Bennée
4556611e17SAlex Bennéememory: CFLAGS+=-DCHECK_UNALIGNED=0
4656611e17SAlex Bennée
4756611e17SAlex Bennée# Running
4856611e17SAlex BennéeQEMU_BASE_MACHINE=-M virt -cpu max -display none
4956611e17SAlex BennéeQEMU_OPTS+=$(QEMU_BASE_MACHINE) -semihosting-config enable=on,target=native,chardev=output -kernel
5056611e17SAlex Bennée
518848c529SAlex Bennée# console test is manual only
528848c529SAlex BennéeQEMU_SEMIHOST=-serial none -chardev stdio,mux=on,id=stdio0 -semihosting-config enable=on,chardev=stdio0 -mon chardev=stdio0,mode=readline
538848c529SAlex Bennéerun-semiconsole: QEMU_OPTS=$(QEMU_BASE_MACHINE) $(QEMU_SEMIHOST)  -kernel
548848c529SAlex Bennéerun-semiconsole: semiconsole
558848c529SAlex Bennée	$(call skip-test, $<, "MANUAL ONLY")
568848c529SAlex Bennée	$(if $(V),@printf "  %-7s %s %s\n" "TO RUN" $(notdir $(QEMU)) "$(QEMU_OPTS) $<")
578848c529SAlex Bennéerun-plugin-semiconsole-with-%: semiconsole
588848c529SAlex Bennée	$(call skip-test, $<, "MANUAL ONLY")
598848c529SAlex Bennée
6056611e17SAlex Bennée# Simple Record/Replay Test
6156611e17SAlex Bennée.PHONY: memory-record
6256611e17SAlex Bennéerun-memory-record: memory-record memory
6356611e17SAlex Bennée	$(call run-test, $<, \
6456611e17SAlex Bennée	  $(QEMU) -monitor none -display none \
6556611e17SAlex Bennée		  -chardev file$(COMMA)path=$<.out$(COMMA)id=output \
6656611e17SAlex Bennée		  -icount shift=5$(COMMA)rr=record$(COMMA)rrfile=record.bin \
6756611e17SAlex Bennée		  $(QEMU_OPTS) memory)
6856611e17SAlex Bennée
6956611e17SAlex Bennée.PHONY: memory-replay
7056611e17SAlex Bennéerun-memory-replay: memory-replay run-memory-record
7156611e17SAlex Bennée	$(call run-test, $<, \
7256611e17SAlex Bennée	  $(QEMU) -monitor none -display none \
7356611e17SAlex Bennée		  -chardev file$(COMMA)path=$<.out$(COMMA)id=output \
7456611e17SAlex Bennée		  -icount shift=5$(COMMA)rr=replay$(COMMA)rrfile=record.bin \
7556611e17SAlex Bennée		  $(QEMU_OPTS) memory)
7656611e17SAlex Bennée
7756611e17SAlex BennéeEXTRA_RUNS+=run-memory-replay
7856611e17SAlex Bennée
7956611e17SAlex BennéeTESTS += $(ARM_TESTS) $(MULTIARCH_TESTS)
8056611e17SAlex BennéeEXTRA_RUNS+=$(MULTIARCH_RUNS)
81