Message ID | 20200604085441.103087-6-kbastian@mail.uni-paderborn.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | tests/tcg: Add TriCore tests | expand |
Bastian Koppelmann <kbastian@mail.uni-paderborn.de> writes: > this includes the Makefile and linker script to build all the tests. > > Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de> > --- > tests/tcg/tricore/Makefile.softmmu-target | 17 +++++++ > tests/tcg/tricore/link.ld | 60 +++++++++++++++++++++++ > 2 files changed, 77 insertions(+) > create mode 100644 tests/tcg/tricore/Makefile.softmmu-target > create mode 100644 tests/tcg/tricore/link.ld > > diff --git a/tests/tcg/tricore/Makefile.softmmu-target b/tests/tcg/tricore/Makefile.softmmu-target > new file mode 100644 > index 0000000000..4a2cd6f218 > --- /dev/null > +++ b/tests/tcg/tricore/Makefile.softmmu-target > @@ -0,0 +1,17 @@ > +HOST_CC = gcc I guess you need HOST_CC to process the source file. You don't need to define it though - it should be picked up by config-host.mak included by the main tcg makefile. > + > +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 0000000000..364bcdc00a > --- /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") ; > + > +} Now would also be a good time to update the MAINTAINERS entry for tricore to include everything in tests/tcg/tricore ;-) Otherwise: Reviewed-by: 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 0000000000..4a2cd6f218 --- /dev/null +++ b/tests/tcg/tricore/Makefile.softmmu-target @@ -0,0 +1,17 @@ +HOST_CC = gcc + +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 0000000000..364bcdc00a --- /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") ; + +}
this includes the Makefile and linker script to build all the tests. Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de> --- tests/tcg/tricore/Makefile.softmmu-target | 17 +++++++ tests/tcg/tricore/link.ld | 60 +++++++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 tests/tcg/tricore/Makefile.softmmu-target create mode 100644 tests/tcg/tricore/link.ld