summaryrefslogtreecommitdiffstats
path: root/spec/build/bsps
diff options
context:
space:
mode:
authorKinsey Moore <kinsey.moore@oarcorp.com>2020-11-16 13:36:51 -0600
committerJoel Sherrill <joel@rtems.org>2020-12-04 07:57:15 -0600
commita92d4ae685d93ed8a36b281a16876908a6dfeaef (patch)
treeefd83d13bacbed019eaeff3cff14b90406c5b00e /spec/build/bsps
parentzynq-uart: Fix set_attributes implementation (diff)
downloadrtems-a92d4ae685d93ed8a36b281a16876908a6dfeaef.tar.bz2
Add AArch64 ZynpMP BSP
This adds a BSP family that runs on the Xilinx Ultrascale+ MPSOC (ZynqMP) family of chips. It is configured to be usable on the Qemu ZCU102 machine definition and should be almost trivially portable to ZynqMP development boards and custom hardware. It is also configured to be usable with libbsd.
Diffstat (limited to 'spec/build/bsps')
-rw-r--r--spec/build/bsps/aarch64/xilinx-zynqmp/abi.yml22
-rw-r--r--spec/build/bsps/aarch64/xilinx-zynqmp/bspqemuilp32.yml21
-rw-r--r--spec/build/bsps/aarch64/xilinx-zynqmp/bspqemulp64.yml21
-rw-r--r--spec/build/bsps/aarch64/xilinx-zynqmp/grp.yml44
-rw-r--r--spec/build/bsps/aarch64/xilinx-zynqmp/linkcmds_ilp32.yml72
-rw-r--r--spec/build/bsps/aarch64/xilinx-zynqmp/linkcmds_lp64.yml71
-rw-r--r--spec/build/bsps/aarch64/xilinx-zynqmp/obj.yml37
-rw-r--r--spec/build/bsps/aarch64/xilinx-zynqmp/optclkuart.yml20
-rw-r--r--spec/build/bsps/aarch64/xilinx-zynqmp/optloadoff.yml18
-rw-r--r--spec/build/bsps/aarch64/xilinx-zynqmp/optnocachelen.yml18
-rw-r--r--spec/build/bsps/aarch64/xilinx-zynqmp/optramlen.yml18
-rw-r--r--spec/build/bsps/aarch64/xilinx-zynqmp/optramori.yml18
-rw-r--r--spec/build/bsps/aarch64/xilinx-zynqmp/tstqemu.yml53
-rw-r--r--spec/build/bsps/arm/xilinx-zynq/grp.yml2
-rw-r--r--spec/build/bsps/arm/xilinx-zynqmp/bspxilinxzynqmp.yml2
-rw-r--r--spec/build/bsps/arm/xilinx-zynqmp/optconminor.yml15
-rw-r--r--spec/build/bsps/optconminor.yml (renamed from spec/build/bsps/arm/xilinx-zynq/optconminor.yml)0
17 files changed, 435 insertions, 17 deletions
diff --git a/spec/build/bsps/aarch64/xilinx-zynqmp/abi.yml b/spec/build/bsps/aarch64/xilinx-zynqmp/abi.yml
new file mode 100644
index 0000000000..92e7d631a6
--- /dev/null
+++ b/spec/build/bsps/aarch64/xilinx-zynqmp/abi.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- split: null
+- env-append: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 On-Line Applications Research (OAR)
+default:
+- -mcpu=cortex-a53
+default-by-variant:
+- value:
+ - -mcpu=cortex-a53
+ - -mabi=ilp32
+ variants:
+ - aarch64/xilinx_zynqmp_ilp32
+description: |
+ ABI flags
+enabled-by: true
+links: []
+name: ABI_FLAGS
+type: build
diff --git a/spec/build/bsps/aarch64/xilinx-zynqmp/bspqemuilp32.yml b/spec/build/bsps/aarch64/xilinx-zynqmp/bspqemuilp32.yml
new file mode 100644
index 0000000000..90979b7822
--- /dev/null
+++ b/spec/build/bsps/aarch64/xilinx-zynqmp/bspqemuilp32.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: aarch64
+bsp: xilinx_zynqmp_ilp32
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 On-Line Applications Research (OAR)
+cppflags: []
+enabled-by: true
+family: xilinx-zynqmp
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: tstqemu
+- role: build-dependency
+ uid: linkcmds_ilp32
+source: []
+type: build
diff --git a/spec/build/bsps/aarch64/xilinx-zynqmp/bspqemulp64.yml b/spec/build/bsps/aarch64/xilinx-zynqmp/bspqemulp64.yml
new file mode 100644
index 0000000000..5e3c561f06
--- /dev/null
+++ b/spec/build/bsps/aarch64/xilinx-zynqmp/bspqemulp64.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+arch: aarch64
+bsp: xilinx_zynqmp_lp64
+build-type: bsp
+cflags: []
+copyrights:
+- Copyright (C) 2020 On-Line Applications Research (OAR)
+cppflags: []
+enabled-by: true
+family: xilinx-zynqmp
+includes: []
+install: []
+links:
+- role: build-dependency
+ uid: grp
+- role: build-dependency
+ uid: tstqemu
+- role: build-dependency
+ uid: linkcmds_lp64
+source: []
+type: build
diff --git a/spec/build/bsps/aarch64/xilinx-zynqmp/grp.yml b/spec/build/bsps/aarch64/xilinx-zynqmp/grp.yml
new file mode 100644
index 0000000000..499947eddf
--- /dev/null
+++ b/spec/build/bsps/aarch64/xilinx-zynqmp/grp.yml
@@ -0,0 +1,44 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: group
+copyrights:
+- Copyright (C) 2020 On-Line Applications Research (OAR)
+enabled-by: true
+includes: []
+install: []
+ldflags: []
+links:
+- role: build-dependency
+ uid: ../grp
+- role: build-dependency
+ uid: ../start
+- role: build-dependency
+ uid: abi
+- role: build-dependency
+ uid: obj
+- role: build-dependency
+ uid: optloadoff
+- role: build-dependency
+ uid: optnocachelen
+- role: build-dependency
+ uid: optramlen
+- role: build-dependency
+ uid: optramori
+- role: build-dependency
+ uid: optclkuart
+- role: build-dependency
+ uid: ../../optconminor
+- role: build-dependency
+ uid: ../../obj
+- role: build-dependency
+ uid: ../../objirq
+- role: build-dependency
+ uid: ../../optcachedata
+- role: build-dependency
+ uid: ../../optcacheinst
+- role: build-dependency
+ uid: ../../opto2
+- role: build-dependency
+ uid: ../../bspopts
+type: build
+use-after: []
+use-before: []
diff --git a/spec/build/bsps/aarch64/xilinx-zynqmp/linkcmds_ilp32.yml b/spec/build/bsps/aarch64/xilinx-zynqmp/linkcmds_ilp32.yml
new file mode 100644
index 0000000000..aea07cdeec
--- /dev/null
+++ b/spec/build/bsps/aarch64/xilinx-zynqmp/linkcmds_ilp32.yml
@@ -0,0 +1,72 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: config-file
+content: |
+ /* SPDX-License-Identifier: BSD-2-Clause */
+
+ /*
+ * Copyright (C) 2020 On-Line Applications Research Corporation (OAR)
+ * Written by Kinsey Moore <kinsey.moore@oarcorp.com>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+ MEMORY {
+ RAM : ORIGIN = ${BSP_XILINX_ZYNQMP_RAM_BASE} + ${BSP_XILINX_ZYNQMP_LOAD_OFFSET}, LENGTH = ${BSP_XILINX_ZYNQMP_RAM_LENGTH} - ${BSP_XILINX_ZYNQMP_LOAD_OFFSET} - ${BSP_XILINX_ZYNQMP_NOCACHE_LENGTH}
+ NOCACHE : ORIGIN = ${BSP_XILINX_ZYNQMP_RAM_BASE} + ${BSP_XILINX_ZYNQMP_RAM_LENGTH} - ${BSP_XILINX_ZYNQMP_NOCACHE_LENGTH}, LENGTH = ${BSP_XILINX_ZYNQMP_NOCACHE_LENGTH}
+ }
+
+ REGION_ALIAS ("REGION_START", RAM);
+ REGION_ALIAS ("REGION_VECTOR", RAM);
+ REGION_ALIAS ("REGION_TEXT", RAM);
+ REGION_ALIAS ("REGION_TEXT_LOAD", RAM);
+ REGION_ALIAS ("REGION_RODATA", RAM);
+ REGION_ALIAS ("REGION_RODATA_LOAD", RAM);
+ REGION_ALIAS ("REGION_DATA", RAM);
+ REGION_ALIAS ("REGION_DATA_LOAD", RAM);
+ REGION_ALIAS ("REGION_FAST_TEXT", RAM);
+ REGION_ALIAS ("REGION_FAST_TEXT_LOAD", RAM);
+ REGION_ALIAS ("REGION_FAST_DATA", RAM);
+ REGION_ALIAS ("REGION_FAST_DATA_LOAD", RAM);
+ REGION_ALIAS ("REGION_BSS", RAM);
+ REGION_ALIAS ("REGION_WORK", RAM);
+ REGION_ALIAS ("REGION_STACK", RAM);
+ REGION_ALIAS ("REGION_NOCACHE", NOCACHE);
+ REGION_ALIAS ("REGION_NOCACHE_LOAD", NOCACHE);
+
+ bsp_stack_exception_size = DEFINED (bsp_stack_exception_size) ? bsp_stack_exception_size : 1024;
+
+ bsp_section_rwbarrier_align = DEFINED (bsp_section_rwbarrier_align) ? bsp_section_rwbarrier_align : 1M;
+
+ bsp_vector_table_in_start_section = 1;
+
+ OUTPUT_FORMAT ("elf32-littleaarch64")
+ OUTPUT_ARCH (aarch64:ilp32)
+ bsp_set_align = 4;
+
+ INCLUDE linkcmds.base
+copyrights:
+- Copyright (C) 2020 On-Line Applications Research (OAR)
+enabled-by: true
+install-path: ${BSP_LIBDIR}
+links: []
+target: linkcmds
+type: build
diff --git a/spec/build/bsps/aarch64/xilinx-zynqmp/linkcmds_lp64.yml b/spec/build/bsps/aarch64/xilinx-zynqmp/linkcmds_lp64.yml
new file mode 100644
index 0000000000..045ab16d0a
--- /dev/null
+++ b/spec/build/bsps/aarch64/xilinx-zynqmp/linkcmds_lp64.yml
@@ -0,0 +1,71 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: config-file
+content: |
+ /* SPDX-License-Identifier: BSD-2-Clause */
+
+ /*
+ * Copyright (C) 2020 On-Line Applications Research Corporation (OAR)
+ * Written by Kinsey Moore <kinsey.moore@oarcorp.com>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+ MEMORY {
+ RAM : ORIGIN = ${BSP_XILINX_ZYNQMP_RAM_BASE} + ${BSP_XILINX_ZYNQMP_LOAD_OFFSET}, LENGTH = ${BSP_XILINX_ZYNQMP_RAM_LENGTH} - ${BSP_XILINX_ZYNQMP_LOAD_OFFSET} - ${BSP_XILINX_ZYNQMP_NOCACHE_LENGTH}
+ NOCACHE : ORIGIN = ${BSP_XILINX_ZYNQMP_RAM_BASE} + ${BSP_XILINX_ZYNQMP_RAM_LENGTH} - ${BSP_XILINX_ZYNQMP_NOCACHE_LENGTH}, LENGTH = ${BSP_XILINX_ZYNQMP_NOCACHE_LENGTH}
+ }
+
+ REGION_ALIAS ("REGION_START", RAM);
+ REGION_ALIAS ("REGION_VECTOR", RAM);
+ REGION_ALIAS ("REGION_TEXT", RAM);
+ REGION_ALIAS ("REGION_TEXT_LOAD", RAM);
+ REGION_ALIAS ("REGION_RODATA", RAM);
+ REGION_ALIAS ("REGION_RODATA_LOAD", RAM);
+ REGION_ALIAS ("REGION_DATA", RAM);
+ REGION_ALIAS ("REGION_DATA_LOAD", RAM);
+ REGION_ALIAS ("REGION_FAST_TEXT", RAM);
+ REGION_ALIAS ("REGION_FAST_TEXT_LOAD", RAM);
+ REGION_ALIAS ("REGION_FAST_DATA", RAM);
+ REGION_ALIAS ("REGION_FAST_DATA_LOAD", RAM);
+ REGION_ALIAS ("REGION_BSS", RAM);
+ REGION_ALIAS ("REGION_WORK", RAM);
+ REGION_ALIAS ("REGION_STACK", RAM);
+ REGION_ALIAS ("REGION_NOCACHE", NOCACHE);
+ REGION_ALIAS ("REGION_NOCACHE_LOAD", NOCACHE);
+
+ bsp_stack_exception_size = DEFINED (bsp_stack_exception_size) ? bsp_stack_exception_size : 1024;
+
+ bsp_section_rwbarrier_align = DEFINED (bsp_section_rwbarrier_align) ? bsp_section_rwbarrier_align : 1M;
+
+ bsp_vector_table_in_start_section = 1;
+
+ OUTPUT_FORMAT ("elf64-littleaarch64")
+ OUTPUT_ARCH (aarch64)
+
+ INCLUDE linkcmds.base
+copyrights:
+- Copyright (C) 2020 On-Line Applications Research (OAR)
+enabled-by: true
+install-path: ${BSP_LIBDIR}
+links: []
+target: linkcmds
+type: build
diff --git a/spec/build/bsps/aarch64/xilinx-zynqmp/obj.yml b/spec/build/bsps/aarch64/xilinx-zynqmp/obj.yml
new file mode 100644
index 0000000000..2ca4ef093b
--- /dev/null
+++ b/spec/build/bsps/aarch64/xilinx-zynqmp/obj.yml
@@ -0,0 +1,37 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: objects
+cflags: []
+copyrights:
+- Copyright (C) 2020 On-Line Applications Research (OAR)
+cppflags: []
+cxxflags: []
+enabled-by: true
+includes: []
+install:
+- destination: ${BSP_INCLUDEDIR}
+ source:
+ - bsps/aarch64/xilinx-zynqmp/include/bsp.h
+ - bsps/aarch64/xilinx-zynqmp/include/tm27.h
+- destination: ${BSP_INCLUDEDIR}/bsp
+ source:
+ - bsps/aarch64/xilinx-zynqmp/include/bsp/irq.h
+links: []
+source:
+- bsps/aarch64/shared/cache/cache.c
+- bsps/aarch64/xilinx-zynqmp/console/console.c
+- bsps/aarch64/xilinx-zynqmp/start/bspstart.c
+- bsps/aarch64/xilinx-zynqmp/start/bspstarthooks.c
+- bsps/shared/dev/getentropy/getentropy-cpucounter.c
+- bsps/shared/dev/serial/console-termios-init.c
+- bsps/shared/dev/serial/console-termios.c
+- bsps/shared/start/bspfatal-default.c
+- bsps/shared/start/bspgetworkarea-default.c
+- bsps/shared/start/bspreset-arm-psci.c
+- bsps/shared/start/sbrk.c
+- bsps/shared/dev/irq/arm-gicv2.c
+- bsps/aarch64/shared/irq/irq-arm-gicvx-aarch64.c
+- bsps/shared/irq/irq-default-handler.c
+- bsps/shared/dev/btimer/btimer-cpucounter.c
+- bsps/shared/dev/clock/arm-generic-timer.c
+- bsps/aarch64/shared/clock/arm-generic-timer-aarch64.c
+type: build
diff --git a/spec/build/bsps/aarch64/xilinx-zynqmp/optclkuart.yml b/spec/build/bsps/aarch64/xilinx-zynqmp/optclkuart.yml
new file mode 100644
index 0000000000..d663d6f640
--- /dev/null
+++ b/spec/build/bsps/aarch64/xilinx-zynqmp/optclkuart.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 On-Line Applications Research (OAR)
+default: 100000000
+default-by-variant:
+- value: 100000000
+ variants:
+ - aarch64/xilinx_zynqmp_ilp32.*
+ - aarch64/xilinx_zynqmp_lp64.*
+description: |
+ Zynq UART clock frequency in Hz
+enabled-by: true
+format: '{}'
+links: []
+name: ZYNQ_CLOCK_UART
+type: build
diff --git a/spec/build/bsps/aarch64/xilinx-zynqmp/optloadoff.yml b/spec/build/bsps/aarch64/xilinx-zynqmp/optloadoff.yml
new file mode 100644
index 0000000000..4546006c7e
--- /dev/null
+++ b/spec/build/bsps/aarch64/xilinx-zynqmp/optloadoff.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 On-Line Applications Research (OAR)
+default: 32768
+default-by-variant: []
+description: |
+ offset of RAM region from memory area base
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: BSP_XILINX_ZYNQMP_LOAD_OFFSET
+type: build
diff --git a/spec/build/bsps/aarch64/xilinx-zynqmp/optnocachelen.yml b/spec/build/bsps/aarch64/xilinx-zynqmp/optnocachelen.yml
new file mode 100644
index 0000000000..58d2c34b41
--- /dev/null
+++ b/spec/build/bsps/aarch64/xilinx-zynqmp/optnocachelen.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 On-Line Applications Research (OAR)
+default: 0x100000
+default-by-variant: []
+description: |
+ length of nocache RAM region
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: BSP_XILINX_ZYNQMP_NOCACHE_LENGTH
+type: build
diff --git a/spec/build/bsps/aarch64/xilinx-zynqmp/optramlen.yml b/spec/build/bsps/aarch64/xilinx-zynqmp/optramlen.yml
new file mode 100644
index 0000000000..4599773985
--- /dev/null
+++ b/spec/build/bsps/aarch64/xilinx-zynqmp/optramlen.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 On-Line Applications Research (OAR)
+default: 0x10000000
+default-by-variant: []
+description: |
+ length of memory area available to the BSP
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: BSP_XILINX_ZYNQMP_RAM_LENGTH
+type: build
diff --git a/spec/build/bsps/aarch64/xilinx-zynqmp/optramori.yml b/spec/build/bsps/aarch64/xilinx-zynqmp/optramori.yml
new file mode 100644
index 0000000000..73c89995ba
--- /dev/null
+++ b/spec/build/bsps/aarch64/xilinx-zynqmp/optramori.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-integer: null
+- assert-uint32: null
+- env-assign: null
+- format-and-define: null
+build-type: option
+copyrights:
+- Copyright (C) 2020 On-Line Applications Research (OAR)
+default: 0x40018000
+default-by-variant: []
+description: |
+ base address of memory area available to the BSP
+enabled-by: true
+format: '{:#010x}'
+links: []
+name: BSP_XILINX_ZYNQMP_RAM_BASE
+type: build
diff --git a/spec/build/bsps/aarch64/xilinx-zynqmp/tstqemu.yml b/spec/build/bsps/aarch64/xilinx-zynqmp/tstqemu.yml
new file mode 100644
index 0000000000..d0efba65cd
--- /dev/null
+++ b/spec/build/bsps/aarch64/xilinx-zynqmp/tstqemu.yml
@@ -0,0 +1,53 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- set-test-state:
+ # expected to fail
+ minimum: exclude
+
+ # test broken under 64bit due to SIZE_MAX differences
+ validation-0: expected-fail
+
+ # don't compile due to toolchain issues
+ spconfig01: exclude
+ spmisc01: exclude
+
+ # tests that are passing intermittently
+ spcpucounter01: indeterminate
+ rtmonuse: indeterminate
+ sp37: indeterminate
+ sp68: indeterminate
+ sp04: indeterminate
+ sp20: indeterminate
+ sp69: indeterminate
+ rtmonusxtimes01: indeterminate
+ spedfsched02: indeterminate
+ spedfsched04: indeterminate
+ psxtimes01: indeterminate
+ sprmsched01: indeterminate
+ sptimecounter02: indeterminate
+ sptimecounter04: indeterminate
+ ttest02: indeterminate
+
+ # tests that pass nominally, but fail under Qemu when the host is under
+ # heavy load
+ psx12: indeterminate
+ spintrcritical03: indeterminate
+ spintrcritical04: indeterminate
+ spintrcritical05: indeterminate
+build-type: option
+copyrights:
+- Copyright (C) 2020 On-Line Applications Research (OAR)
+default: null
+default-by-variant: []
+description: ''
+enabled-by: true
+links:
+- role: build-dependency
+ uid: ../../tstnoiconv
+- role: build-dependency
+ uid: ../../tstnojffs2
+- role: build-dependency
+ uid: ../../tstnolibdl
+- role: build-dependency
+ uid: ../../tstnorfs
+type: build
diff --git a/spec/build/bsps/arm/xilinx-zynq/grp.yml b/spec/build/bsps/arm/xilinx-zynq/grp.yml
index 264308e6ad..47f38ebcfd 100644
--- a/spec/build/bsps/arm/xilinx-zynq/grp.yml
+++ b/spec/build/bsps/arm/xilinx-zynq/grp.yml
@@ -32,7 +32,7 @@ links:
- role: build-dependency
uid: optconirq
- role: build-dependency
- uid: optconminor
+ uid: ../../optconminor
- role: build-dependency
uid: optint0len
- role: build-dependency
diff --git a/spec/build/bsps/arm/xilinx-zynqmp/bspxilinxzynqmp.yml b/spec/build/bsps/arm/xilinx-zynqmp/bspxilinxzynqmp.yml
index 92da7904c9..0704c691b2 100644
--- a/spec/build/bsps/arm/xilinx-zynqmp/bspxilinxzynqmp.yml
+++ b/spec/build/bsps/arm/xilinx-zynqmp/bspxilinxzynqmp.yml
@@ -40,7 +40,7 @@ links:
- role: build-dependency
uid: optconirq
- role: build-dependency
- uid: optconminor
+ uid: ../../optconminor
- role: build-dependency
uid: optgentmrfreq
- role: build-dependency
diff --git a/spec/build/bsps/arm/xilinx-zynqmp/optconminor.yml b/spec/build/bsps/arm/xilinx-zynqmp/optconminor.yml
deleted file mode 100644
index 55074c6dac..0000000000
--- a/spec/build/bsps/arm/xilinx-zynqmp/optconminor.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-actions:
-- get-boolean: null
-- define-condition: null
-build-type: option
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-default: true
-default-by-variant: []
-description: |
- minor number of console device
-enabled-by: true
-links: []
-name: BSP_CONSOLE_MINOR
-type: build
diff --git a/spec/build/bsps/arm/xilinx-zynq/optconminor.yml b/spec/build/bsps/optconminor.yml
index 55074c6dac..55074c6dac 100644
--- a/spec/build/bsps/arm/xilinx-zynq/optconminor.yml
+++ b/spec/build/bsps/optconminor.yml