summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/acpi-test-data/pc/DSDTbin5144 -> 5131 bytes
-rw-r--r--tests/acpi-test-data/pc/DSDT.bridgebin7003 -> 6990 bytes
-rw-r--r--tests/acpi-test-data/pc/DSDT.cphpbin5607 -> 5594 bytes
-rw-r--r--tests/acpi-test-data/pc/DSDT.dimmpxmbin6803 -> 6790 bytes
-rw-r--r--tests/acpi-test-data/pc/DSDT.ipmikcsbin5216 -> 5203 bytes
-rw-r--r--tests/acpi-test-data/pc/DSDT.memhpbin6509 -> 6496 bytes
-rw-r--r--tests/acpi-test-data/pc/DSDT.numamembin5150 -> 5137 bytes
-rw-r--r--tests/acpi-test-data/pc/SRAT.dimmpxmbin472 -> 392 bytes
-rw-r--r--tests/acpi-test-data/pc/SRAT.memhpbin264 -> 264 bytes
-rw-r--r--tests/acpi-test-data/q35/DSDTbin7828 -> 7815 bytes
-rw-r--r--tests/acpi-test-data/q35/DSDT.bridgebin7845 -> 7832 bytes
-rw-r--r--tests/acpi-test-data/q35/DSDT.cphpbin8291 -> 8278 bytes
-rw-r--r--tests/acpi-test-data/q35/DSDT.dimmpxmbin9487 -> 9474 bytes
-rw-r--r--tests/acpi-test-data/q35/DSDT.ipmibtbin7903 -> 7890 bytes
-rw-r--r--tests/acpi-test-data/q35/DSDT.memhpbin9193 -> 9180 bytes
-rw-r--r--tests/acpi-test-data/q35/DSDT.numamembin7834 -> 7821 bytes
-rw-r--r--tests/acpi-test-data/q35/SRAT.dimmpxmbin472 -> 392 bytes
-rw-r--r--tests/acpi-test-data/q35/SRAT.memhpbin264 -> 264 bytes
-rw-r--r--tests/docker/Makefile.include1
-rw-r--r--tests/docker/dockerfiles/centos7.docker2
-rw-r--r--tests/docker/dockerfiles/fedora-i386-cross.docker9
-rw-r--r--tests/docker/dockerfiles/fedora.docker102
-rw-r--r--tests/docker/dockerfiles/ubuntu.docker61
-rw-r--r--tests/machine-none-test.c1
-rw-r--r--tests/tcg/xtensa/Makefile1
-rw-r--r--tests/tcg/xtensa/linker.ld.S37
-rw-r--r--tests/tcg/xtensa/test_phys_mem.S124
-rw-r--r--tests/tcg/xtensa/vectors.S16
-rw-r--r--tests/tpm-crb-test.c1
-rw-r--r--tests/tpm-emu.c11
-rw-r--r--tests/tpm-emu.h1
-rw-r--r--tests/tpm-tis-test.c1
32 files changed, 318 insertions, 50 deletions
diff --git a/tests/acpi-test-data/pc/DSDT b/tests/acpi-test-data/pc/DSDT
index 99f05a5027..c6adfe32d5 100644
--- a/tests/acpi-test-data/pc/DSDT
+++ b/tests/acpi-test-data/pc/DSDT
Binary files differ
diff --git a/tests/acpi-test-data/pc/DSDT.bridge b/tests/acpi-test-data/pc/DSDT.bridge
index cf23343e64..f01fa3ad4e 100644
--- a/tests/acpi-test-data/pc/DSDT.bridge
+++ b/tests/acpi-test-data/pc/DSDT.bridge
Binary files differ
diff --git a/tests/acpi-test-data/pc/DSDT.cphp b/tests/acpi-test-data/pc/DSDT.cphp
index c99c49f437..3295d81c7f 100644
--- a/tests/acpi-test-data/pc/DSDT.cphp
+++ b/tests/acpi-test-data/pc/DSDT.cphp
Binary files differ
diff --git a/tests/acpi-test-data/pc/DSDT.dimmpxm b/tests/acpi-test-data/pc/DSDT.dimmpxm
index 38661cb13e..f6ec911b11 100644
--- a/tests/acpi-test-data/pc/DSDT.dimmpxm
+++ b/tests/acpi-test-data/pc/DSDT.dimmpxm
Binary files differ
diff --git a/tests/acpi-test-data/pc/DSDT.ipmikcs b/tests/acpi-test-data/pc/DSDT.ipmikcs
index 5e970fda72..2633a8cecf 100644
--- a/tests/acpi-test-data/pc/DSDT.ipmikcs
+++ b/tests/acpi-test-data/pc/DSDT.ipmikcs
Binary files differ
diff --git a/tests/acpi-test-data/pc/DSDT.memhp b/tests/acpi-test-data/pc/DSDT.memhp
index 1fe6871aa2..e31ef50296 100644
--- a/tests/acpi-test-data/pc/DSDT.memhp
+++ b/tests/acpi-test-data/pc/DSDT.memhp
Binary files differ
diff --git a/tests/acpi-test-data/pc/DSDT.numamem b/tests/acpi-test-data/pc/DSDT.numamem
index 224cfdd9e9..71a975b3e2 100644
--- a/tests/acpi-test-data/pc/DSDT.numamem
+++ b/tests/acpi-test-data/pc/DSDT.numamem
Binary files differ
diff --git a/tests/acpi-test-data/pc/SRAT.dimmpxm b/tests/acpi-test-data/pc/SRAT.dimmpxm
index 5aa6f693ef..f5c0267ea2 100644
--- a/tests/acpi-test-data/pc/SRAT.dimmpxm
+++ b/tests/acpi-test-data/pc/SRAT.dimmpxm
Binary files differ
diff --git a/tests/acpi-test-data/pc/SRAT.memhp b/tests/acpi-test-data/pc/SRAT.memhp
index 5de8a100a4..e508b4ae3c 100644
--- a/tests/acpi-test-data/pc/SRAT.memhp
+++ b/tests/acpi-test-data/pc/SRAT.memhp
Binary files differ
diff --git a/tests/acpi-test-data/q35/DSDT b/tests/acpi-test-data/q35/DSDT
index aa402cca66..7576ffcd05 100644
--- a/tests/acpi-test-data/q35/DSDT
+++ b/tests/acpi-test-data/q35/DSDT
Binary files differ
diff --git a/tests/acpi-test-data/q35/DSDT.bridge b/tests/acpi-test-data/q35/DSDT.bridge
index fc3e79c583..c623cc5d72 100644
--- a/tests/acpi-test-data/q35/DSDT.bridge
+++ b/tests/acpi-test-data/q35/DSDT.bridge
Binary files differ
diff --git a/tests/acpi-test-data/q35/DSDT.cphp b/tests/acpi-test-data/q35/DSDT.cphp
index fd3cb34218..7ac526e466 100644
--- a/tests/acpi-test-data/q35/DSDT.cphp
+++ b/tests/acpi-test-data/q35/DSDT.cphp
Binary files differ
diff --git a/tests/acpi-test-data/q35/DSDT.dimmpxm b/tests/acpi-test-data/q35/DSDT.dimmpxm
index 14904e8ea2..3837792dec 100644
--- a/tests/acpi-test-data/q35/DSDT.dimmpxm
+++ b/tests/acpi-test-data/q35/DSDT.dimmpxm
Binary files differ
diff --git a/tests/acpi-test-data/q35/DSDT.ipmibt b/tests/acpi-test-data/q35/DSDT.ipmibt
index 332237529e..c7f431f058 100644
--- a/tests/acpi-test-data/q35/DSDT.ipmibt
+++ b/tests/acpi-test-data/q35/DSDT.ipmibt
Binary files differ
diff --git a/tests/acpi-test-data/q35/DSDT.memhp b/tests/acpi-test-data/q35/DSDT.memhp
index f0a27e1a30..8fba0baf79 100644
--- a/tests/acpi-test-data/q35/DSDT.memhp
+++ b/tests/acpi-test-data/q35/DSDT.memhp
Binary files differ
diff --git a/tests/acpi-test-data/q35/DSDT.numamem b/tests/acpi-test-data/q35/DSDT.numamem
index 8c9fa445b0..6c0d4f2bcb 100644
--- a/tests/acpi-test-data/q35/DSDT.numamem
+++ b/tests/acpi-test-data/q35/DSDT.numamem
Binary files differ
diff --git a/tests/acpi-test-data/q35/SRAT.dimmpxm b/tests/acpi-test-data/q35/SRAT.dimmpxm
index 5aa6f693ef..f5c0267ea2 100644
--- a/tests/acpi-test-data/q35/SRAT.dimmpxm
+++ b/tests/acpi-test-data/q35/SRAT.dimmpxm
Binary files differ
diff --git a/tests/acpi-test-data/q35/SRAT.memhp b/tests/acpi-test-data/q35/SRAT.memhp
index 5de8a100a4..e508b4ae3c 100644
--- a/tests/acpi-test-data/q35/SRAT.memhp
+++ b/tests/acpi-test-data/q35/SRAT.memhp
Binary files differ
diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index d3101afecd..6e03235ab9 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -25,6 +25,7 @@ IMAGES ?= %
CUR_TIME := $(shell date +%Y-%m-%d-%H.%M.%S.$$$$)
DOCKER_SRC_COPY := $(BUILD_DIR)/docker-src.$(CUR_TIME)
+.DELETE_ON_ERROR: $(DOCKER_SRC_COPY)
$(DOCKER_SRC_COPY):
@mkdir $@
$(if $(SRC_ARCHIVE), \
diff --git a/tests/docker/dockerfiles/centos7.docker b/tests/docker/dockerfiles/centos7.docker
index 83462b7205..0a04bfbed8 100644
--- a/tests/docker/dockerfiles/centos7.docker
+++ b/tests/docker/dockerfiles/centos7.docker
@@ -18,10 +18,10 @@ ENV PACKAGES \
libfdt-devel \
librdmacm-devel \
lzo-devel \
- nettle-devel \
make \
mesa-libEGL-devel \
mesa-libgbm-devel \
+ nettle-devel \
pixman-devel \
SDL-devel \
spice-glib-devel \
diff --git a/tests/docker/dockerfiles/fedora-i386-cross.docker b/tests/docker/dockerfiles/fedora-i386-cross.docker
index 8fbef2fa53..a4fd895b07 100644
--- a/tests/docker/dockerfiles/fedora-i386-cross.docker
+++ b/tests/docker/dockerfiles/fedora-i386-cross.docker
@@ -1,14 +1,13 @@
FROM fedora:latest
ENV PACKAGES \
gcc \
- glibc-static.i686 \
- glibc-devel.i686 \
- glib2-devel.i686 \
- zlib-devel.i686 \
glib2-devel.i686 \
+ glibc-devel.i686 \
+ glibc-static.i686 \
+ gnutls-devel.i686 \
nettle-devel.i686 \
pixman-devel.i686 \
- gnutls-devel.i686
+ zlib-devel.i686
RUN dnf install -y $PACKAGES
RUN rpm -q $PACKAGES | sort > /packages.txt
diff --git a/tests/docker/dockerfiles/fedora.docker b/tests/docker/dockerfiles/fedora.docker
index 7d1d008002..0c4eb9e49c 100644
--- a/tests/docker/dockerfiles/fedora.docker
+++ b/tests/docker/dockerfiles/fedora.docker
@@ -1,24 +1,90 @@
FROM fedora:28
ENV PACKAGES \
- ccache gettext git tar PyYAML sparse flex bison python3 bzip2 hostname \
- gcc gcc-c++ llvm clang make perl which bc findutils glib2-devel \
- libaio-devel pixman-devel zlib-devel libfdt-devel libasan libubsan \
- bluez-libs-devel brlapi-devel bzip2-devel \
- device-mapper-multipath-devel glusterfs-api-devel gnutls-devel \
- gtk3-devel libattr-devel libcap-devel libcap-ng-devel libcurl-devel \
- libjpeg-devel libpng-devel librbd-devel libssh2-devel libusbx-devel \
- libxml2-devel lzo-devel ncurses-devel nettle-devel nss-devel \
- numactl-devel SDL2-devel snappy-devel spice-server-devel \
- systemtap-sdt-devel usbredir-devel virglrenderer-devel vte3-devel \
- xen-devel \
- mingw32-pixman mingw32-glib2 mingw32-gmp mingw32-SDL2 mingw32-pkg-config \
- mingw32-gtk3 mingw32-gnutls mingw32-nettle mingw32-libtasn1 \
- mingw32-libjpeg-turbo mingw32-libpng mingw32-curl mingw32-libssh2 \
+ bc \
+ bison \
+ bluez-libs-devel \
+ brlapi-devel \
+ bzip2 \
+ bzip2-devel \
+ ccache \
+ clang \
+ device-mapper-multipath-devel \
+ findutils \
+ flex \
+ gcc \
+ gcc-c++ \
+ gettext \
+ git \
+ glib2-devel \
+ glusterfs-api-devel \
+ gnutls-devel \
+ gtk3-devel \
+ hostname \
+ libaio-devel \
+ libasan \
+ libattr-devel \
+ libcap-devel \
+ libcap-ng-devel \
+ libcurl-devel \
+ libfdt-devel \
+ libjpeg-devel \
+ libpng-devel \
+ librbd-devel \
+ libssh2-devel \
+ libubsan \
+ libusbx-devel \
+ libxml2-devel \
+ llvm \
+ lzo-devel \
+ make \
mingw32-bzip2 \
- mingw64-pixman mingw64-glib2 mingw64-gmp mingw64-SDL2 mingw64-pkg-config \
- mingw64-gtk3 mingw64-gnutls mingw64-nettle mingw64-libtasn1 \
- mingw64-libjpeg-turbo mingw64-libpng mingw64-curl mingw64-libssh2 \
- mingw64-bzip2
+ mingw32-curl \
+ mingw32-glib2 \
+ mingw32-gmp \
+ mingw32-gnutls \
+ mingw32-gtk3 \
+ mingw32-libjpeg-turbo \
+ mingw32-libpng \
+ mingw32-libssh2 \
+ mingw32-libtasn1 \
+ mingw32-nettle \
+ mingw32-pixman \
+ mingw32-pkg-config \
+ mingw32-SDL2 \
+ mingw64-bzip2 \
+ mingw64-curl \
+ mingw64-glib2 \
+ mingw64-gmp \
+ mingw64-gnutls \
+ mingw64-gtk3 \
+ mingw64-libjpeg-turbo \
+ mingw64-libpng \
+ mingw64-libssh2 \
+ mingw64-libtasn1 \
+ mingw64-nettle \
+ mingw64-pixman \
+ mingw64-pkg-config \
+ mingw64-SDL2 \
+ ncurses-devel \
+ nettle-devel \
+ nss-devel \
+ numactl-devel \
+ perl \
+ pixman-devel \
+ python3 \
+ PyYAML \
+ SDL2-devel \
+ snappy-devel \
+ sparse \
+ spice-server-devel \
+ systemtap-sdt-devel \
+ tar \
+ usbredir-devel \
+ virglrenderer-devel \
+ vte3-devel \
+ which \
+ xen-devel \
+ zlib-devel
ENV QEMU_CONFIGURE_OPTS --python=/usr/bin/python3
RUN dnf install -y $PACKAGES
diff --git a/tests/docker/dockerfiles/ubuntu.docker b/tests/docker/dockerfiles/ubuntu.docker
index 7d724e7f53..36e2b17de5 100644
--- a/tests/docker/dockerfiles/ubuntu.docker
+++ b/tests/docker/dockerfiles/ubuntu.docker
@@ -2,16 +2,59 @@ FROM ubuntu:16.04
RUN echo "deb http://archive.ubuntu.com/ubuntu/ trusty universe multiverse" >> \
/etc/apt/sources.list
ENV PACKAGES flex bison \
- libusb-1.0-0-dev libiscsi-dev librados-dev libncurses5-dev libncursesw5-dev \
- libseccomp-dev libgnutls-dev libssh2-1-dev libspice-server-dev \
- libspice-protocol-dev libnss3-dev libfdt-dev \
- libgtk-3-dev libvte-2.91-dev libsdl2-dev libpng12-dev libpixman-1-dev \
- libvdeplug-dev liblzo2-dev libsnappy-dev libbz2-dev libxen-dev librdmacm-dev libibverbs-dev \
- libsasl2-dev libjpeg-turbo8-dev xfslibs-dev libcap-ng-dev libbrlapi-dev libcurl4-gnutls-dev \
- libbluetooth-dev librbd-dev libaio-dev glusterfs-common libnuma-dev libepoxy-dev libdrm-dev libgbm-dev \
- libjemalloc-dev libcacard-dev libusbredirhost-dev libnfs-dev libcap-dev libattr1-dev \
+ ccache \
+ clang \
+ gcc \
+ gettext \
+ git \
+ glusterfs-common \
+ libaio-dev \
+ libattr1-dev \
+ libbluetooth-dev \
+ libbrlapi-dev \
+ libbz2-dev \
+ libcacard-dev \
+ libcap-dev \
+ libcap-ng-dev \
+ libcurl4-gnutls-dev \
+ libdrm-dev \
+ libepoxy-dev \
+ libfdt-dev \
+ libgbm-dev \
+ libgnutls-dev \
+ libgtk-3-dev \
+ libibverbs-dev \
+ libiscsi-dev \
+ libjemalloc-dev \
+ libjpeg-turbo8-dev \
+ liblzo2-dev \
+ libncurses5-dev \
+ libncursesw5-dev \
+ libnfs-dev \
+ libnss3-dev \
+ libnuma-dev \
+ libpixman-1-dev \
+ libpng12-dev \
+ librados-dev \
+ librbd-dev \
+ librdmacm-dev \
+ libsasl2-dev \
+ libsdl2-dev \
+ libseccomp-dev \
+ libsnappy-dev \
+ libspice-protocol-dev \
+ libspice-server-dev \
+ libssh2-1-dev \
+ libusb-1.0-0-dev \
+ libusbredirhost-dev \
+ libvdeplug-dev \
+ libvte-2.91-dev \
+ libxen-dev \
+ make \
+ python-yaml \
+ sparse \
texinfo \
- gettext git make ccache python-yaml gcc clang sparse
+ xfslibs-dev
RUN apt-get update && \
apt-get -y install $PACKAGES
RUN dpkg -l $PACKAGES | sort > /packages.txt
diff --git a/tests/machine-none-test.c b/tests/machine-none-test.c
index 7e72466354..2b3b750500 100644
--- a/tests/machine-none-test.c
+++ b/tests/machine-none-test.c
@@ -44,7 +44,6 @@ static struct arch2cpu cpus_map[] = {
{ "or1k", "or1200" },
{ "ppc", "604" },
{ "ppc64", "power8e_v2.1" },
- { "ppcemb", "440epb" },
{ "s390x", "qemu" },
{ "sh4", "sh7750r" },
{ "sh4eb", "sh7751r" },
diff --git a/tests/tcg/xtensa/Makefile b/tests/tcg/xtensa/Makefile
index 091518c055..2f5691f75b 100644
--- a/tests/tcg/xtensa/Makefile
+++ b/tests/tcg/xtensa/Makefile
@@ -44,6 +44,7 @@ TESTCASES += test_mmu.tst
TESTCASES += test_mul16.tst
TESTCASES += test_mul32.tst
TESTCASES += test_nsa.tst
+TESTCASES += test_phys_mem.tst
ifdef XT
TESTCASES += test_pipeline.tst
endif
diff --git a/tests/tcg/xtensa/linker.ld.S b/tests/tcg/xtensa/linker.ld.S
index 5902302cf8..d0f33157ca 100644
--- a/tests/tcg/xtensa/linker.ld.S
+++ b/tests/tcg/xtensa/linker.ld.S
@@ -24,64 +24,71 @@ SECTIONS
.vector :
{
+#if XCHAL_HAVE_WINDOWED
. = XCHAL_WINDOW_OF4_VECOFS;
*(.vector.window_overflow_4)
- *(.vector.window_overflow_4.*)
. = XCHAL_WINDOW_UF4_VECOFS;
*(.vector.window_underflow_4)
- *(.vector.window_underflow_4.*)
. = XCHAL_WINDOW_OF8_VECOFS;
*(.vector.window_overflow_8)
- *(.vector.window_overflow_8.*)
. = XCHAL_WINDOW_UF8_VECOFS;
*(.vector.window_underflow_8)
- *(.vector.window_underflow_8.*)
. = XCHAL_WINDOW_OF12_VECOFS;
*(.vector.window_overflow_12)
- *(.vector.window_overflow_12.*)
. = XCHAL_WINDOW_UF12_VECOFS;
*(.vector.window_underflow_12)
- *(.vector.window_underflow_12.*)
-
+#endif
#if XCHAL_NUM_INTLEVELS + XCHAL_HAVE_NMI >= 2
. = XCHAL_INTLEVEL2_VECOFS;
*(.vector.level2)
- *(.vector.level2.*)
#endif
#if XCHAL_NUM_INTLEVELS + XCHAL_HAVE_NMI >= 3
. = XCHAL_INTLEVEL3_VECOFS;
*(.vector.level3)
- *(.vector.level3.*)
#endif
#if XCHAL_NUM_INTLEVELS + XCHAL_HAVE_NMI >= 4
. = XCHAL_INTLEVEL4_VECOFS;
*(.vector.level4)
- *(.vector.level4.*)
#endif
#if XCHAL_NUM_INTLEVELS + XCHAL_HAVE_NMI >= 5
. = XCHAL_INTLEVEL5_VECOFS;
*(.vector.level5)
- *(.vector.level5.*)
#endif
#if XCHAL_NUM_INTLEVELS + XCHAL_HAVE_NMI >= 6
. = XCHAL_INTLEVEL6_VECOFS;
*(.vector.level6)
- *(.vector.level6.*)
#endif
#if XCHAL_NUM_INTLEVELS + XCHAL_HAVE_NMI >= 7
. = XCHAL_INTLEVEL7_VECOFS;
*(.vector.level7)
- *(.vector.level7.*)
#endif
. = XCHAL_KERNEL_VECOFS;
*(.vector.kernel)
- *(.vector.kernel.*)
. = XCHAL_USER_VECOFS;
*(.vector.user)
- *(.vector.user.*)
. = XCHAL_DOUBLEEXC_VECOFS;
*(.vector.double)
+ } > ram
+
+ .vector.text :
+ {
+ *(.vector.window_overflow_4.*)
+ *(.vector.window_underflow_4.*)
+ *(.vector.window_overflow_8.*)
+ *(.vector.window_underflow_8.*)
+ *(.vector.window_overflow_12.*)
+ *(.vector.window_underflow_12.*)
+
+ *(.vector.level2.*)
+ *(.vector.level3.*)
+ *(.vector.level4.*)
+ *(.vector.level5.*)
+ *(.vector.level6.*)
+ *(.vector.level7.*)
+
+ *(.vector.kernel.*)
+ *(.vector.user.*)
*(.vector.double.*)
} > ram
diff --git a/tests/tcg/xtensa/test_phys_mem.S b/tests/tcg/xtensa/test_phys_mem.S
new file mode 100644
index 0000000000..aae0a793a7
--- /dev/null
+++ b/tests/tcg/xtensa/test_phys_mem.S
@@ -0,0 +1,124 @@
+#include "macros.inc"
+
+test_suite phys_mem
+
+.purgem test_init
+
+.macro test_init
+ movi a2, 0xc0000003 /* PPN */
+ movi a3, 0xc0000004 /* VPN */
+ wdtlb a2, a3
+ witlb a2, a3
+ movi a2, 0xc0000000
+ wsr a2, ptevaddr
+.endm
+
+test inst_fetch_get_pte_no_phys
+ set_vector kernel, 2f
+
+ movi a2, 0x20000000
+ jx a2
+2:
+ movi a2, 0x20000000
+ rsr a3, excvaddr
+ assert eq, a2, a3
+ rsr a3, epc1
+ assert eq, a2, a3
+ rsr a3, exccause
+ movi a2, 16
+ assert eq, a2, a3
+test_end
+
+test read_get_pte_no_phys
+ set_vector kernel, 2f
+
+ movi a2, 0x20000000
+1:
+ l32i a3, a2, 0
+ test_fail
+2:
+ movi a2, 0x20000000
+ rsr a3, excvaddr
+ assert eq, a2, a3
+ movi a2, 1b
+ rsr a3, epc1
+ assert eq, a2, a3
+ rsr a3, exccause
+ movi a2, 24
+ assert eq, a2, a3
+test_end
+
+test write_get_pte_no_phys
+ set_vector kernel, 2f
+
+ movi a2, 0x20000000
+1:
+ s32i a3, a2, 0
+ test_fail
+2:
+ movi a2, 0x20000000
+ rsr a3, excvaddr
+ assert eq, a2, a3
+ movi a2, 1b
+ rsr a3, epc1
+ assert eq, a2, a3
+ rsr a3, exccause
+ movi a2, 24
+ assert eq, a2, a3
+test_end
+
+test inst_fetch_no_phys
+ set_vector kernel, 2f
+
+ movi a2, 0xc0000000
+ jx a2
+2:
+ movi a2, 0xc0000000
+ rsr a3, excvaddr
+ assert eq, a2, a3
+ rsr a3, epc1
+ assert eq, a2, a3
+ rsr a3, exccause
+ movi a2, 14
+ assert eq, a2, a3
+test_end
+
+test read_no_phys
+ set_vector kernel, 2f
+
+ movi a2, 0xc0000000
+1:
+ l32i a3, a2, 0
+ test_fail
+2:
+ movi a2, 0xc0000000
+ rsr a3, excvaddr
+ assert eq, a2, a3
+ movi a2, 1b
+ rsr a3, epc1
+ assert eq, a2, a3
+ rsr a3, exccause
+ movi a2, 15
+ assert eq, a2, a3
+test_end
+
+test write_no_phys
+ set_vector kernel, 2f
+
+ movi a2, 0xc0000000
+1:
+ s32i a3, a2, 0
+ test_fail
+2:
+ movi a2, 0xc0000000
+ rsr a3, excvaddr
+ assert eq, a2, a3
+ movi a2, 1b
+ rsr a3, epc1
+ assert eq, a2, a3
+ rsr a3, exccause
+ movi a2, 15
+ assert eq, a2, a3
+test_end
+
+test_suite_end
diff --git a/tests/tcg/xtensa/vectors.S b/tests/tcg/xtensa/vectors.S
index 265a181239..6a9cb3cde4 100644
--- a/tests/tcg/xtensa/vectors.S
+++ b/tests/tcg/xtensa/vectors.S
@@ -1,3 +1,5 @@
+#include "core-isa.h"
+
.macro vector name
.section .vector.\name
@@ -20,19 +22,33 @@ handler_\name\(): .word 0
.endm
+#if XCHAL_HAVE_WINDOWED
vector window_overflow_4
vector window_overflow_8
vector window_overflow_12
vector window_underflow_4
vector window_underflow_8
vector window_underflow_12
+#endif
+#if XCHAL_NUM_INTLEVELS + XCHAL_HAVE_NMI >= 2
vector level2
+#endif
+#if XCHAL_NUM_INTLEVELS + XCHAL_HAVE_NMI >= 3
vector level3
+#endif
+#if XCHAL_NUM_INTLEVELS + XCHAL_HAVE_NMI >= 4
vector level4
+#endif
+#if XCHAL_NUM_INTLEVELS + XCHAL_HAVE_NMI >= 5
vector level5
+#endif
+#if XCHAL_NUM_INTLEVELS + XCHAL_HAVE_NMI >= 6
vector level6
+#endif
+#if XCHAL_NUM_INTLEVELS + XCHAL_HAVE_NMI >= 7
vector level7
+#endif
vector kernel
vector user
diff --git a/tests/tpm-crb-test.c b/tests/tpm-crb-test.c
index d8f9569203..6fde579bab 100644
--- a/tests/tpm-crb-test.c
+++ b/tests/tpm-crb-test.c
@@ -151,6 +151,7 @@ int main(int argc, char **argv)
test.addr->u.q_unix.path = g_build_filename(tmp_path, "sock", NULL);
g_mutex_init(&test.data_mutex);
g_cond_init(&test.data_cond);
+ test.data_cond_signal = false;
thread = g_thread_new(NULL, tpm_emu_ctrl_thread, &test);
tpm_emu_test_wait_cond(&test);
diff --git a/tests/tpm-emu.c b/tests/tpm-emu.c
index 8c2bd53cad..125e697181 100644
--- a/tests/tpm-emu.c
+++ b/tests/tpm-emu.c
@@ -23,9 +23,14 @@ void tpm_emu_test_wait_cond(TestState *s)
gint64 end_time = g_get_monotonic_time() + 5 * G_TIME_SPAN_SECOND;
g_mutex_lock(&s->data_mutex);
- if (!g_cond_wait_until(&s->data_cond, &s->data_mutex, end_time)) {
+
+ if (!s->data_cond_signal &&
+ !g_cond_wait_until(&s->data_cond, &s->data_mutex, end_time)) {
g_assert_not_reached();
}
+
+ s->data_cond_signal = false;
+
g_mutex_unlock(&s->data_mutex);
}
@@ -72,6 +77,10 @@ void *tpm_emu_ctrl_thread(void *data)
QIOChannel *ioc;
qio_channel_socket_listen_sync(lioc, s->addr, &error_abort);
+
+ g_mutex_lock(&s->data_mutex);
+ s->data_cond_signal = true;
+ g_mutex_unlock(&s->data_mutex);
g_cond_signal(&s->data_cond);
qio_channel_wait(QIO_CHANNEL(lioc), G_IO_IN);
diff --git a/tests/tpm-emu.h b/tests/tpm-emu.h
index 08f902485e..8eb802a79e 100644
--- a/tests/tpm-emu.h
+++ b/tests/tpm-emu.h
@@ -26,6 +26,7 @@ struct tpm_hdr {
typedef struct TestState {
GMutex data_mutex;
GCond data_cond;
+ bool data_cond_signal;
SocketAddress *addr;
QIOChannel *tpm_ioc;
GThread *emu_tpm_thread;
diff --git a/tests/tpm-tis-test.c b/tests/tpm-tis-test.c
index 14754d9706..c8ec14888f 100644
--- a/tests/tpm-tis-test.c
+++ b/tests/tpm-tis-test.c
@@ -446,6 +446,7 @@ int main(int argc, char **argv)
test.addr->u.q_unix.path = g_build_filename(tmp_path, "sock", NULL);
g_mutex_init(&test.data_mutex);
g_cond_init(&test.data_cond);
+ test.data_cond_signal = false;
thread = g_thread_new(NULL, tpm_emu_ctrl_thread, &test);
tpm_emu_test_wait_cond(&test);