From d903d8df4cd9cc991dca4723ab5c18e796fdf389 Mon Sep 17 00:00:00 2001 From: Daniel Hellstrom Date: Fri, 4 Sep 2020 12:43:49 +0200 Subject: leon,mptests: add BSP specific linkflags for MP tests The RTEMS MP test-suite was originally designed to two identical nodes, however the LEON devices is often operating several instances of the RTEMS MP configuration wihtin the same device sharing memory. Therefore this places the RTEMS MP nodes at different RAM location. The node1.exe and node2.exe can be started from GRMON like this on a GR712RC with 4MiB SRAM: grmon> cpu act 0 grmon> load build/sparc-gaisler-rtems5/c/gr712rc_mp/testsuites/mptests/mp01_node1.exe cpu0 grmon> stack 0x401ffff0 cpu0 grmon> load build/sparc-gaisler-rtems5/c/gr712rc_mp/testsuites/mptests/mp01_node2.exe cpu1 grmon> stack 0x403ffff0 cpu1 grmon> run --- bsps/sparc/leon3/config/gr712rc.cfg | 4 ++++ bsps/sparc/leon3/config/gr740.cfg | 4 ++++ bsps/sparc/leon3/config/leon3.cfg | 4 ++++ testsuites/mptests/Makefile.am | 26 ++++++++++++++++++++++++++ 4 files changed, 38 insertions(+) diff --git a/bsps/sparc/leon3/config/gr712rc.cfg b/bsps/sparc/leon3/config/gr712rc.cfg index e8f07315e7..78adbda14b 100644 --- a/bsps/sparc/leon3/config/gr712rc.cfg +++ b/bsps/sparc/leon3/config/gr712rc.cfg @@ -21,3 +21,7 @@ CFLAGS_OPTIMIZE_V = -O2 -g CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections LDFLAGS = -Wl,--gc-sections + +# For Multiprocessing (AMP) test-suite node1/node2 linking fit into 4MiB +MPTEST_NODE1_LDFLAGS+=-Wl,-Ttext,0x40001000 +MPTEST_NODE2_LDFLAGS+=-Wl,-Ttext,0x40200000 diff --git a/bsps/sparc/leon3/config/gr740.cfg b/bsps/sparc/leon3/config/gr740.cfg index 640a4fdd72..37c11baccd 100644 --- a/bsps/sparc/leon3/config/gr740.cfg +++ b/bsps/sparc/leon3/config/gr740.cfg @@ -20,3 +20,7 @@ CFLAGS_OPTIMIZE_V = -O2 -g CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections LDFLAGS = -Wl,--gc-sections + +# For Multiprocessing (AMP) test-suite node1/node2 linking fit into 16MiB +MPTEST_NODE1_LDFLAGS+=-Wl,-Ttext,0x00001000 +MPTEST_NODE2_LDFLAGS+=-Wl,-Ttext,0x00800000 diff --git a/bsps/sparc/leon3/config/leon3.cfg b/bsps/sparc/leon3/config/leon3.cfg index d931d6c5f1..76c0ba55af 100644 --- a/bsps/sparc/leon3/config/leon3.cfg +++ b/bsps/sparc/leon3/config/leon3.cfg @@ -15,3 +15,7 @@ CFLAGS_OPTIMIZE_V = -O2 -g CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections LDFLAGS = -Wl,--gc-sections + +# For Multiprocessing (AMP) test-suite node1/node2 linking fit into 4MiB +MPTEST_NODE1_LDFLAGS+=-Wl,-Ttext,0x40001000 +MPTEST_NODE2_LDFLAGS+=-Wl,-Ttext,0x40200000 diff --git a/testsuites/mptests/Makefile.am b/testsuites/mptests/Makefile.am index d947cb6986..7267110aaa 100644 --- a/testsuites/mptests/Makefile.am +++ b/testsuites/mptests/Makefile.am @@ -22,12 +22,14 @@ mp_docs += mp01/mp01-node1.doc mp01_node1_SOURCES = mp01/init1.c mp01/task1.c mp01/system.h mp01_node1_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_mp01) \ $(support_includes) +mp01_node1_LDFLAGS = $(AM_LDFLAGS) $(MPTEST_NODE1_LDFLAGS) mp_tests += mp01_node2 mp_screens += mp01/mp01-node2.scn mp_docs += mp01/mp01-node2.doc mp01_node2_SOURCES = mp01/init2.c mp01/task1.c mp01/system.h mp01_node2_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_mp01) \ $(support_includes) +mp01_node2_LDFLAGS = $(AM_LDFLAGS) $(MPTEST_NODE2_LDFLAGS) endif endif @@ -39,12 +41,14 @@ mp_docs += mp03/mp03-node1.doc mp03_node1_SOURCES = mp03/init1.c mp03/task1.c mp03/delay.c mp03/system.h mp03_node1_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_mp03) \ $(support_includes) +mp03_node1_LDFLAGS = $(AM_LDFLAGS) $(MPTEST_NODE1_LDFLAGS) mp_tests += mp03_node2 mp_screens += mp03/mp03-node2.scn mp_docs += mp03/mp03-node2.doc mp03_node2_SOURCES = mp03/init2.c mp03/task1.c mp03/delay.c mp03/system.h mp03_node2_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_mp03) \ $(support_includes) +mp03_node2_LDFLAGS = $(AM_LDFLAGS) $(MPTEST_NODE2_LDFLAGS) endif endif @@ -56,12 +60,14 @@ mp_docs += mp04/mp04-node1.doc mp04_node1_SOURCES = mp04/init1.c mp04/task1.c mp04/system.h mp04_node1_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_mp04) \ $(support_includes) +mp04_node1_LDFLAGS = $(AM_LDFLAGS) $(MPTEST_NODE1_LDFLAGS) mp_tests += mp04_node2 mp_screens += mp04/mp04-node2.scn mp_docs += mp04/mp04-node2.doc mp04_node2_SOURCES = mp04/init2.c mp04/task1.c mp04/system.h mp04_node2_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_mp04) \ $(support_includes) +mp04_node2_LDFLAGS = $(AM_LDFLAGS) $(MPTEST_NODE2_LDFLAGS) endif endif @@ -73,12 +79,14 @@ mp_docs += mp05/mp05-node1.doc mp05_node1_SOURCES = mp05/init1.c mp05/task1.c mp05/asr.c mp05/system.h mp05_node1_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_mp05) \ $(support_includes) +mp05_node1_LDFLAGS = $(AM_LDFLAGS) $(MPTEST_NODE1_LDFLAGS) mp_tests += mp05_node2 mp_screens += mp05/mp05-node2.scn mp_docs += mp05/mp05-node2.doc mp05_node2_SOURCES = mp05/init2.c mp05/task1.c mp05/asr.c mp05/system.h mp05_node2_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_mp05) \ $(support_includes) +mp05_node2_LDFLAGS = $(AM_LDFLAGS) $(MPTEST_NODE2_LDFLAGS) endif endif @@ -90,12 +98,14 @@ mp_docs += mp06/mp06-node1.doc mp06_node1_SOURCES = mp06/init1.c mp06/task1.c mp06/system.h mp06_node1_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_mp06) \ $(support_includes) +mp06_node1_LDFLAGS = $(AM_LDFLAGS) $(MPTEST_NODE1_LDFLAGS) mp_tests += mp06_node2 mp_screens += mp06/mp06-node2.scn mp_docs += mp06/mp06-node2.doc mp06_node2_SOURCES = mp06/init2.c mp06/task1.c mp06/system.h mp06_node2_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_mp06) \ $(support_includes) +mp06_node2_LDFLAGS = $(AM_LDFLAGS) $(MPTEST_NODE2_LDFLAGS) endif endif @@ -107,12 +117,14 @@ mp_docs += mp07/mp07-node1.doc mp07_node1_SOURCES = mp07/init1.c mp07/task1.c mp07/system.h mp07_node1_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_mp07) \ $(support_includes) +mp07_node1_LDFLAGS = $(AM_LDFLAGS) $(MPTEST_NODE1_LDFLAGS) mp_tests += mp07_node2 mp_screens += mp07/mp07-node2.scn mp_docs += mp07/mp07-node2.doc mp07_node2_SOURCES = mp07/init2.c mp07/task1.c mp07/system.h mp07_node2_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_mp07) \ $(support_includes) +mp07_node2_LDFLAGS = $(AM_LDFLAGS) $(MPTEST_NODE2_LDFLAGS) endif endif @@ -124,12 +136,14 @@ mp_docs += mp08/mp08-node1.doc mp08_node1_SOURCES = mp08/init1.c mp08/task1.c mp08/system.h mp08_node1_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_mp08) \ $(support_includes) +mp08_node1_LDFLAGS = $(AM_LDFLAGS) $(MPTEST_NODE1_LDFLAGS) mp_tests += mp08_node2 mp_screens += mp08/mp08-node2.scn mp_docs += mp08/mp08-node2.doc mp08_node2_SOURCES = mp08/init2.c mp08/task1.c mp08/system.h mp08_node2_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_mp08) \ $(support_includes) +mp08_node2_LDFLAGS = $(AM_LDFLAGS) $(MPTEST_NODE2_LDFLAGS) endif endif @@ -142,6 +156,7 @@ mp09_node1_SOURCES = mp09/init1.c mp09/task1.c mp09/recvmsg.c \ mp09/sendmsg.c mp09/system.h mp09_node1_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_mp09) \ $(support_includes) +mp09_node1_LDFLAGS = $(AM_LDFLAGS) $(MPTEST_NODE1_LDFLAGS) mp_tests += mp09_node2 mp_screens += mp09/mp09-node2.scn mp_docs += mp09/mp09-node2.doc @@ -149,6 +164,7 @@ mp09_node2_SOURCES = mp09/init2.c mp09/task1.c mp09/recvmsg.c \ mp09/sendmsg.c mp09/system.h mp09_node2_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_mp09) \ $(support_includes) +mp09_node2_LDFLAGS = $(AM_LDFLAGS) $(MPTEST_NODE2_LDFLAGS) endif endif @@ -161,6 +177,7 @@ mp10_node1_SOURCES = mp10/init1.c mp10/task1.c mp10/task2.c mp10/task3.c \ mp10/system.h mp10_node1_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_mp10) \ $(support_includes) +mp10_node1_LDFLAGS = $(AM_LDFLAGS) $(MPTEST_NODE1_LDFLAGS) mp_tests += mp10_node2 mp_screens += mp10/mp10-node2.scn mp_docs += mp10/mp10-node2.doc @@ -168,6 +185,7 @@ mp10_node2_SOURCES = mp10/init2.c mp10/task1.c mp10/task2.c mp10/task3.c \ mp10/system.h mp10_node2_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_mp10) \ $(support_includes) +mp10_node2_LDFLAGS = $(AM_LDFLAGS) $(MPTEST_NODE2_LDFLAGS) endif endif @@ -179,12 +197,14 @@ mp_docs += mp11/mp11-node1.doc mp11_node1_SOURCES = mp11/init1.c mp11/system.h mp11_node1_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_mp11) \ $(support_includes) +mp11_node1_LDFLAGS = $(AM_LDFLAGS) $(MPTEST_NODE1_LDFLAGS) mp_tests += mp11_node2 mp_screens += mp11/mp11-node2.scn mp_docs += mp11/mp11-node2.doc mp11_node2_SOURCES = mp11/init2.c mp11/system.h mp11_node2_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_mp11) \ $(support_includes) +mp11_node2_LDFLAGS = $(AM_LDFLAGS) $(MPTEST_NODE2_LDFLAGS) endif endif @@ -196,12 +216,14 @@ mp_docs += mp12/mp12-node1.doc mp12_node1_SOURCES = mp12/init1.c mp12/system.h mp12_node1_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_mp12) \ $(support_includes) +mp12_node1_LDFLAGS = $(AM_LDFLAGS) $(MPTEST_NODE1_LDFLAGS) mp_tests += mp12_node2 mp_screens += mp12/mp12-node2.scn mp_docs += mp12/mp12-node2.doc mp12_node2_SOURCES = mp12/init2.c mp12/system.h mp12_node2_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_mp12) \ $(support_includes) +mp12_node2_LDFLAGS = $(AM_LDFLAGS) $(MPTEST_NODE2_LDFLAGS) endif endif @@ -213,12 +235,14 @@ mp_docs += mp13/mp13-node1.doc mp13_node1_SOURCES = mp13/init1.c mp13/task1.c mp13/task2.c mp13/system.h mp13_node1_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_mp13) \ $(support_includes) +mp13_node1_LDFLAGS = $(AM_LDFLAGS) $(MPTEST_NODE1_LDFLAGS) mp_tests += mp13_node2 mp_screens += mp13/mp13-node2.scn mp_docs += mp13/mp13-node2.doc mp13_node2_SOURCES = mp13/init2.c mp13/task1.c mp13/task2.c mp13/system.h mp13_node2_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_mp13) \ $(support_includes) +mp13_node2_LDFLAGS = $(AM_LDFLAGS) $(MPTEST_NODE2_LDFLAGS) endif endif @@ -232,6 +256,7 @@ mp14_node1_SOURCES = mp14/init1.c mp14/exit.c mp14/delay.c \ mp14/msgtask1.c mp14/system.h mp14_node1_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_mp14) \ $(support_includes) +mp14_node1_LDFLAGS = $(AM_LDFLAGS) $(MPTEST_NODE1_LDFLAGS) mp_tests += mp14_node2 mp_screens += mp14/mp14-node2.scn mp_docs += mp14/mp14-node2.doc @@ -240,6 +265,7 @@ mp14_node2_SOURCES = mp14/init2.c mp14/exit.c mp14/delay.c \ mp14/msgtask1.c mp14/system.h mp14_node2_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_mp14) \ $(support_includes) +mp14_node2_LDFLAGS = $(AM_LDFLAGS) $(MPTEST_NODE2_LDFLAGS) endif endif -- cgit v1.2.3