aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MAINTAINERS1
-rw-r--r--tests/tcg/tricore/Makefile.softmmu-target15
-rw-r--r--tests/tcg/tricore/link.ld60
3 files changed, 76 insertions, 0 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index 7572859..40bba0f 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -349,6 +349,7 @@ S: Maintained
F: target/tricore/
F: hw/tricore/
F: include/hw/tricore/
+F: tests/tcg/tricore/
Multiarch Linux User Tests
M: Alex Bennée <alex.bennee@linaro.org>
diff --git a/tests/tcg/tricore/Makefile.softmmu-target b/tests/tcg/tricore/Makefile.softmmu-target
new file mode 100644
index 0000000..d64a99b
--- /dev/null
+++ b/tests/tcg/tricore/Makefile.softmmu-target
@@ -0,0 +1,15 @@
+TESTS_PATH = $(SRC_PATH)/tests/tcg/tricore
+
+LDFLAGS = -T$(TESTS_PATH)/link.ld
+ASFLAGS =
+
+QEMU_OPTS += -M tricore_testboard -nographic -kernel
+
+%.pS: $(TESTS_PATH)/%.S
+ $(HOST_CC) -E -o $@ $<
+
+%.o: %.pS
+ $(AS) $(ASFLAGS) -o $@ $<
+
+%.tst: %.o
+ $(LD) $(LDFLAGS) $< -o $@
diff --git a/tests/tcg/tricore/link.ld b/tests/tcg/tricore/link.ld
new file mode 100644
index 0000000..364bcdc
--- /dev/null
+++ b/tests/tcg/tricore/link.ld
@@ -0,0 +1,60 @@
+/* Default linker script, for normal executables */
+OUTPUT_FORMAT("elf32-tricore")
+OUTPUT_ARCH(tricore)
+ENTRY(_start)
+
+/* the internal ram description */
+MEMORY
+{
+ text_ram (rx!p): org = 0x80000000, len = 15K
+ data_ram (w!xp): org = 0xd0000000, len = 130K
+}
+/*
+ * Define the sizes of the user and system stacks.
+ */
+__USTACK_SIZE = DEFINED (__USTACK_SIZE) ? __USTACK_SIZE : 1K ;
+/*
+ * Define the start address and the size of the context save area.
+ */
+__CSA_BEGIN = 0xd0000000 ;
+__CSA_SIZE = 8k ;
+__CSA_END = __CSA_BEGIN + __CSA_SIZE ;
+
+SECTIONS
+{
+ .text :
+ {
+ *(.text)
+ . = ALIGN(8);
+ } > text_ram
+
+ .rodata :
+ {
+ *(.rodata)
+ *(.rodata1)
+ } > data_ram
+
+ .data :
+ {
+ . = ALIGN(8) ;
+ *(.data)
+ *(.data.*)
+ . = ALIGN(8) ;
+ __USTACK = . + __USTACK_SIZE -768;
+
+ } > data_ram
+ /*
+ * Allocate space for BSS sections.
+ */
+ .bss :
+ {
+ BSS_BASE = . ;
+ *(.bss)
+ *(COMMON)
+ . = ALIGN(8) ;
+ } > data_ram
+ /* Make sure CSA, stack and heap addresses are properly aligned. */
+ _. = ASSERT ((__CSA_BEGIN & 0x3f) == 0 , "illegal CSA start address") ;
+ _. = ASSERT ((__CSA_SIZE & 0x3f) == 0 , "illegal CSA size") ;
+
+}