summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-11-22 13:13:49 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-11-23 14:51:57 +0100
commita2228ffc4fd7bfa4bc0ed38958888b66ba67d051 (patch)
treedacbf6c070239c1797fa6bcaac3a1e4147b84b59
parentspec: Adjust enabled-by for no-cache specs (diff)
downloadrtems-central-a2228ffc4fd7bfa4bc0ed38958888b66ba67d051.tar.bz2
spec: Add GRLIB errata
-rw-r--r--spec-glossary/glossary/gr712rc.yml15
-rw-r--r--spec-glossary/glossary/gr740.yml15
-rw-r--r--spec-glossary/glossary/sparc.yml13
-rw-r--r--spec-glossary/glossary/system-on-chip.yml18
-rw-r--r--spec/bsp/sparc/leon3/if/idle-thread.yml14
-rw-r--r--spec/bsp/sparc/leon3/req/errata-b2bst-nop.yml16
-rw-r--r--spec/bsp/sparc/leon3/req/errata-gr712rc-01.yml17
-rw-r--r--spec/bsp/sparc/leon3/req/errata-gr712rc-02.yml17
-rw-r--r--spec/bsp/sparc/leon3/req/errata-gr712rc-03.yml17
-rw-r--r--spec/bsp/sparc/leon3/req/errata-gr712rc-04.yml17
-rw-r--r--spec/bsp/sparc/leon3/req/errata-gr712rc-05.yml17
-rw-r--r--spec/bsp/sparc/leon3/req/errata-gr712rc-06.yml17
-rw-r--r--spec/bsp/sparc/leon3/req/errata-gr712rc-07.yml17
-rw-r--r--spec/bsp/sparc/leon3/req/errata-gr712rc-08.yml17
-rw-r--r--spec/bsp/sparc/leon3/req/errata-gr712rc-09.yml17
-rw-r--r--spec/bsp/sparc/leon3/req/errata-gr712rc-10.yml17
-rw-r--r--spec/bsp/sparc/leon3/req/errata-gr712rc-11.yml19
-rw-r--r--spec/bsp/sparc/leon3/req/errata-gr712rc-12.yml19
-rw-r--r--spec/bsp/sparc/leon3/req/errata-gr712rc-13.yml19
-rw-r--r--spec/bsp/sparc/leon3/req/errata-gr712rc-14.yml17
-rw-r--r--spec/bsp/sparc/leon3/req/errata-gr712rc-15.yml19
-rw-r--r--spec/bsp/sparc/leon3/req/errata-gr712rc-16.yml19
-rw-r--r--spec/bsp/sparc/leon3/req/errata-gr712rc-17.yml19
-rw-r--r--spec/bsp/sparc/leon3/req/errata-gr712rc-18.yml17
-rw-r--r--spec/bsp/sparc/leon3/req/errata-gr712rc-19.yml17
-rw-r--r--spec/bsp/sparc/leon3/req/errata-gr712rc-20.yml19
-rw-r--r--spec/bsp/sparc/leon3/req/errata-gr712rc-compiler-fix.yml22
-rw-r--r--spec/bsp/sparc/leon3/req/errata-gr740-18-1.yml17
-rw-r--r--spec/bsp/sparc/leon3/req/errata-gr740-18-2.yml17
-rw-r--r--spec/bsp/sparc/leon3/req/errata-gr740-18-3.yml17
-rw-r--r--spec/bsp/sparc/leon3/req/errata-gr740-18-4.yml17
-rw-r--r--spec/bsp/sparc/leon3/req/errata-gr740-20-1.yml17
-rw-r--r--spec/bsp/sparc/leon3/req/errata-gr740-20-2.yml17
-rw-r--r--spec/bsp/sparc/leon3/req/errata-tn-0018-macro-fix.yml16
-rw-r--r--spec/bsp/sparc/leon3/req/errata-tn-0018-macro-wait-iflush.yml14
-rw-r--r--spec/bsp/sparc/leon3/req/errata-tn-0018-macro-write-psr.yml15
-rw-r--r--spec/bsp/sparc/leon3/req/errata-tn-0018-macros.yml15
-rw-r--r--spec/bsp/sparc/leon3/req/idle-task-body.yml15
-rw-r--r--spec/bsp/sparc/leon3/req/idle-task-power-down-errata.yml15
-rw-r--r--spec/bsp/sparc/leon3/req/idle-task-power-down.yml16
-rw-r--r--spec/bsp/sparc/leon3/val/errata-gr712rc-01.yml13
-rw-r--r--spec/bsp/sparc/leon3/val/errata-gr712rc-02.yml13
-rw-r--r--spec/bsp/sparc/leon3/val/errata-gr712rc-03.yml13
-rw-r--r--spec/bsp/sparc/leon3/val/errata-gr712rc-04.yml13
-rw-r--r--spec/bsp/sparc/leon3/val/errata-gr712rc-05.yml13
-rw-r--r--spec/bsp/sparc/leon3/val/errata-gr712rc-06.yml13
-rw-r--r--spec/bsp/sparc/leon3/val/errata-gr712rc-07.yml14
-rw-r--r--spec/bsp/sparc/leon3/val/errata-gr712rc-08.yml28
-rw-r--r--spec/bsp/sparc/leon3/val/errata-gr712rc-09.yml14
-rw-r--r--spec/bsp/sparc/leon3/val/errata-gr712rc-10.yml13
-rw-r--r--spec/bsp/sparc/leon3/val/errata-gr712rc-11.yml13
-rw-r--r--spec/bsp/sparc/leon3/val/errata-gr712rc-12.yml13
-rw-r--r--spec/bsp/sparc/leon3/val/errata-gr712rc-14.yml13
-rw-r--r--spec/bsp/sparc/leon3/val/errata-gr712rc-15.yml13
-rw-r--r--spec/bsp/sparc/leon3/val/errata-gr712rc-18.yml13
-rw-r--r--spec/bsp/sparc/leon3/val/errata-gr712rc-19.yml20
-rw-r--r--spec/bsp/sparc/leon3/val/errata-gr740-18-1.yml13
-rw-r--r--spec/bsp/sparc/leon3/val/errata-gr740-18-2.yml13
-rw-r--r--spec/bsp/sparc/leon3/val/errata-gr740-18-3.yml13
-rw-r--r--spec/bsp/sparc/leon3/val/errata-gr740-18-4.yml13
-rw-r--r--spec/bsp/sparc/leon3/val/errata-gr740-20-1.yml13
-rw-r--r--spec/bsp/sparc/leon3/val/errata-gr740-20-2.yml13
-rw-r--r--spec/bsp/sparc/leon3/val/errata-tn-0018-fp.yml23
-rw-r--r--spec/bsp/sparc/leon3/val/errata-tn-0018-interrupt-disable-enable.yml21
-rw-r--r--spec/bsp/sparc/leon3/val/errata-tn-0018-interrupts.yml19
-rw-r--r--spec/bsp/sparc/leon3/val/errata-tn-0018-macros.yml21
-rw-r--r--spec/bsp/sparc/leon3/val/errata-tn-0018-syscall.yml15
-rw-r--r--spec/bsp/sparc/leon3/val/errata-tn-0018-window-flush.yml16
-rw-r--r--spec/bsp/sparc/leon3/val/errata-tn-0018-window-overflow.yml13
-rw-r--r--spec/bsp/sparc/leon3/val/errata-tn-0018-window-underflow.yml13
-rw-r--r--spec/bsp/sparc/leon3/val/gr712rc.yml58
-rw-r--r--spec/req/errata.yml15
-rw-r--r--spec/testsuites/bsp-sparc-leon3-gr712rc.yml19
73 files changed, 1218 insertions, 0 deletions
diff --git a/spec-glossary/glossary/gr712rc.yml b/spec-glossary/glossary/gr712rc.yml
new file mode 100644
index 00000000..d47f6229
--- /dev/null
+++ b/spec-glossary/glossary/gr712rc.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+glossary-type: term
+links:
+- role: glossary-member
+ uid: ../glossary-general
+term: GR712RC
+text: |
+ The
+ `GR712RC <https://www.gaisler.com/index.php/products/components/gr712rc>`_
+ is a ${system-on-chip:/term} containing two processors of the ${sparc:/term}
+ ${target-arch:/term}.
+type: glossary
diff --git a/spec-glossary/glossary/gr740.yml b/spec-glossary/glossary/gr740.yml
new file mode 100644
index 00000000..98514072
--- /dev/null
+++ b/spec-glossary/glossary/gr740.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+glossary-type: term
+links:
+- role: glossary-member
+ uid: ../glossary-general
+term: GR740
+text: |
+ The
+ `GR740 <https://www.gaisler.com/index.php/products/components/gr740>`_
+ is a ${system-on-chip:/term} containing four processors of the ${sparc:/term}
+ ${target-arch:/term}.
+type: glossary
diff --git a/spec-glossary/glossary/sparc.yml b/spec-glossary/glossary/sparc.yml
new file mode 100644
index 00000000..a03dc4e6
--- /dev/null
+++ b/spec-glossary/glossary/sparc.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+glossary-type: term
+links:
+- role: glossary-member
+ uid: ../glossary-general
+term: SPARC
+text: |
+ This term is an acronym for `Scalable Processor ARChitecture
+ <https://sparc.org/>`_. See also ${target-arch:/term}.
+type: glossary
diff --git a/spec-glossary/glossary/system-on-chip.yml b/spec-glossary/glossary/system-on-chip.yml
new file mode 100644
index 00000000..2a31debe
--- /dev/null
+++ b/spec-glossary/glossary/system-on-chip.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+glossary-type: term
+links:
+- role: glossary-member
+ uid: ../glossary-general
+term: system on a chip
+text: |
+ This project uses the `system on a chip definition of Wikipedia
+ <https://en.wikipedia.org/wiki/System_on_a_chip>`_: "A system on a chip (SoC)
+ is an integrated circuit (also known as a *chip*) that integrates all or
+ most components of a computer or other electronic system."
+
+ Systems on a chip are ${target:/term} systems for applications using
+ ${rtems:/term}.
+type: glossary
diff --git a/spec/bsp/sparc/leon3/if/idle-thread.yml b/spec/bsp/sparc/leon3/if/idle-thread.yml
new file mode 100644
index 00000000..ac24ba93
--- /dev/null
+++ b/spec/bsp/sparc/leon3/if/idle-thread.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+index-entries: []
+interface-type: unspecified-function
+links:
+- role: interface-placement
+ uid: ../../../if/header
+- role: interface-ingroup
+ uid: ../../../if/group
+name: bsp_idle_thread
+references: []
+type: interface
diff --git a/spec/bsp/sparc/leon3/req/errata-b2bst-nop.yml b/spec/bsp/sparc/leon3/req/errata-b2bst-nop.yml
new file mode 100644
index 00000000..b0ac2740
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-b2bst-nop.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: sparc/gr712rc
+links:
+- role: requirement-refinement
+ uid: errata-gr712rc-13
+non-functional-type: design
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+ The software product shall use the define ``SPARC_LEON3FT_B2BST_NOP`` in
+ ${/glossary/assemblerlanguage:/term} ${/glossary/sourcecode:/term} to insert
+ ``nop`` instructions required by the errata workaround.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/errata-gr712rc-01.yml b/spec/bsp/sparc/leon3/req/errata-gr712rc-01.yml
new file mode 100644
index 00000000..2be31fb7
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-gr712rc-01.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: sparc/gr712rc
+links:
+- role: requirement-refinement
+ uid: /req/errata
+non-functional-type: design
+rationale: null
+references:
+- identifier: https://www.gaisler.com/doc/gr712rc-usermanual.pdf
+ type: url
+requirement-type: non-functional
+text: |
+ The software product shall take the errata 1 (FTAHBRAM: On-chip Memory not
+ cacheable) into account.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/errata-gr712rc-02.yml b/spec/bsp/sparc/leon3/req/errata-gr712rc-02.yml
new file mode 100644
index 00000000..236a3215
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-gr712rc-02.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: sparc/gr712rc
+links:
+- role: requirement-refinement
+ uid: /req/errata
+non-functional-type: design
+rationale: null
+references:
+- identifier: https://www.gaisler.com/doc/gr712rc-usermanual.pdf
+ type: url
+requirement-type: non-functional
+text: |
+ The software product shall take the errata 2 (CAN OC: interrupt can be
+ cleared before read) into account.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/errata-gr712rc-03.yml b/spec/bsp/sparc/leon3/req/errata-gr712rc-03.yml
new file mode 100644
index 00000000..42763952
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-gr712rc-03.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: sparc/gr712rc
+links:
+- role: requirement-refinement
+ uid: /req/errata
+non-functional-type: design
+rationale: null
+references:
+- identifier: https://www.gaisler.com/doc/gr712rc-usermanual.pdf
+ type: url
+requirement-type: non-functional
+text: |
+ The software product shall take the errata 3 (GRSPW2: interrupt can be lost)
+ into account.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/errata-gr712rc-04.yml b/spec/bsp/sparc/leon3/req/errata-gr712rc-04.yml
new file mode 100644
index 00000000..b5b8ffab
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-gr712rc-04.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: sparc/gr712rc
+links:
+- role: requirement-refinement
+ uid: /req/errata
+non-functional-type: design
+rationale: null
+references:
+- identifier: https://www.gaisler.com/doc/gr712rc-usermanual.pdf
+ type: url
+requirement-type: non-functional
+text: |
+ The software product shall take the errata 4 (GRSPW2: CRC calculation
+ partially incorrect) into account.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/errata-gr712rc-05.yml b/spec/bsp/sparc/leon3/req/errata-gr712rc-05.yml
new file mode 100644
index 00000000..872be292
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-gr712rc-05.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: sparc/gr712rc
+links:
+- role: requirement-refinement
+ uid: /req/errata
+non-functional-type: design
+rationale: null
+references:
+- identifier: https://www.gaisler.com/doc/gr712rc-usermanual.pdf
+ type: url
+requirement-type: non-functional
+text: |
+ The software product shall take the errata 5 (SPICTRL: transfers in progress
+ bit not cleared) into account.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/errata-gr712rc-06.yml b/spec/bsp/sparc/leon3/req/errata-gr712rc-06.yml
new file mode 100644
index 00000000..c4bfe8a2
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-gr712rc-06.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: sparc/gr712rc
+links:
+- role: requirement-refinement
+ uid: /req/errata
+non-functional-type: design
+rationale: null
+references:
+- identifier: https://www.gaisler.com/doc/gr712rc-usermanual.pdf
+ type: url
+requirement-type: non-functional
+text: |
+ The software product shall take the errata 6 (SPICTRL: back-to-back
+ transfers) into account.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/errata-gr712rc-07.yml b/spec/bsp/sparc/leon3/req/errata-gr712rc-07.yml
new file mode 100644
index 00000000..ad99df76
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-gr712rc-07.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: sparc/gr712rc
+links:
+- role: requirement-refinement
+ uid: /req/errata
+non-functional-type: design
+rationale: null
+references:
+- identifier: https://www.gaisler.com/doc/gr712rc-usermanual.pdf
+ type: url
+requirement-type: non-functional
+text: |
+ The software product shall take the errata 7 (FTMCTLR: EDAC usage with 8-bit
+ wide memory) into account.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/errata-gr712rc-08.yml b/spec/bsp/sparc/leon3/req/errata-gr712rc-08.yml
new file mode 100644
index 00000000..11aba411
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-gr712rc-08.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: sparc/gr712rc
+links:
+- role: requirement-refinement
+ uid: /req/errata
+non-functional-type: design
+rationale: null
+references:
+- identifier: https://www.gaisler.com/doc/gr712rc-usermanual.pdf
+ type: url
+requirement-type: non-functional
+text: |
+ The software product shall take the errata 8 (LEON3FT Cache Controller:
+ Incorrect Bus Access After Power-Down) into account.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/errata-gr712rc-09.yml b/spec/bsp/sparc/leon3/req/errata-gr712rc-09.yml
new file mode 100644
index 00000000..dcccacaa
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-gr712rc-09.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: sparc/gr712rc
+links:
+- role: requirement-refinement
+ uid: /req/errata
+non-functional-type: design
+rationale: null
+references:
+- identifier: https://www.gaisler.com/doc/gr712rc-usermanual.pdf
+ type: url
+requirement-type: non-functional
+text: |
+ The software product shall take the errata 9 (Failing SDRAM Access After
+ Uncorrectable EDAC Error) into account.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/errata-gr712rc-10.yml b/spec/bsp/sparc/leon3/req/errata-gr712rc-10.yml
new file mode 100644
index 00000000..8a4edfd2
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-gr712rc-10.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: sparc/gr712rc
+links:
+- role: requirement-refinement
+ uid: /req/errata
+non-functional-type: design
+rationale: null
+references:
+- identifier: https://www.gaisler.com/doc/gr712rc-usermanual.pdf
+ type: url
+requirement-type: non-functional
+text: |
+ The software product shall take the errata 10 (MIL-STD-1553B core duplicate
+ interrupt assertion) into account.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/errata-gr712rc-11.yml b/spec/bsp/sparc/leon3/req/errata-gr712rc-11.yml
new file mode 100644
index 00000000..b5601f38
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-gr712rc-11.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: sparc/gr712rc
+links:
+- role: requirement-refinement
+ uid: /req/errata
+non-functional-type: design
+rationale: null
+references:
+- identifier: https://www.gaisler.com/doc/gr712rc-usermanual.pdf
+ type: url
+- identifier: https://www.gaisler.com/doc/antn/GRLIB-TN-0002.pdf
+ type: url
+requirement-type: non-functional
+text: |
+ The software product shall take the errata 11 (Technical Note on LEON SRMMU
+ Behaviour) into account.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/errata-gr712rc-12.yml b/spec/bsp/sparc/leon3/req/errata-gr712rc-12.yml
new file mode 100644
index 00000000..1a5378e8
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-gr712rc-12.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: sparc/gr712rc
+links:
+- role: requirement-refinement
+ uid: /req/errata
+non-functional-type: design
+rationale: null
+references:
+- identifier: https://www.gaisler.com/doc/gr712rc-usermanual.pdf
+ type: url
+- identifier: https://www.gaisler.com/doc/antn/GRLIB-TN-0008.pdf
+ type: url
+requirement-type: non-functional
+text: |
+ The software product shall take the errata 12 (Technical Note on GRETH
+ Ethernet Controller Behaviour) into account.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/errata-gr712rc-13.yml b/spec/bsp/sparc/leon3/req/errata-gr712rc-13.yml
new file mode 100644
index 00000000..c15b7cf9
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-gr712rc-13.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: sparc/gr712rc
+links:
+- role: requirement-refinement
+ uid: /req/errata
+non-functional-type: design
+rationale: null
+references:
+- identifier: https://www.gaisler.com/doc/gr712rc-usermanual.pdf
+ type: url
+- identifier: https://www.gaisler.com/doc/antn/GRLIB-TN-0009.pdf
+ type: url
+requirement-type: non-functional
+text: |
+ The software product shall take the errata 13 (Technical Note on Stale Cache
+ Entry After Store with Data Tag Parity Error) into account.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/errata-gr712rc-14.yml b/spec/bsp/sparc/leon3/req/errata-gr712rc-14.yml
new file mode 100644
index 00000000..db362c45
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-gr712rc-14.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: sparc/gr712rc
+links:
+- role: requirement-refinement
+ uid: /req/errata
+non-functional-type: design
+rationale: null
+references:
+- identifier: https://www.gaisler.com/doc/gr712rc-usermanual.pdf
+ type: url
+requirement-type: non-functional
+text: |
+ The software product shall take the errata 14 (Never disable the TLB when the
+ MMU is enabled) into account.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/errata-gr712rc-15.yml b/spec/bsp/sparc/leon3/req/errata-gr712rc-15.yml
new file mode 100644
index 00000000..5bea43db
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-gr712rc-15.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: sparc/gr712rc
+links:
+- role: requirement-refinement
+ uid: /req/errata
+non-functional-type: design
+rationale: null
+references:
+- identifier: https://www.gaisler.com/doc/gr712rc-usermanual.pdf
+ type: url
+- identifier: https://www.gaisler.com/doc/antn/GRLIB-TN-0011.pdf
+ type: url
+requirement-type: non-functional
+text: |
+ The software product shall take the errata 15 (Technical Note on LEON3/FT AHB
+ Lock Release During Atomic Operation) into account.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/errata-gr712rc-16.yml b/spec/bsp/sparc/leon3/req/errata-gr712rc-16.yml
new file mode 100644
index 00000000..86ca0c3f
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-gr712rc-16.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: sparc/gr712rc
+links:
+- role: requirement-refinement
+ uid: /req/errata
+non-functional-type: design
+rationale: null
+references:
+- identifier: https://www.gaisler.com/doc/gr712rc-usermanual.pdf
+ type: url
+- identifier: https://www.gaisler.com/doc/antn/GRLIB-TN-0012.pdf
+ type: url
+requirement-type: non-functional
+text: |
+ The software product shall take the errata 16 (Technical Note on GR712RC
+ Incorrect Annulation of Floating-point Operation on) into account.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/errata-gr712rc-17.yml b/spec/bsp/sparc/leon3/req/errata-gr712rc-17.yml
new file mode 100644
index 00000000..46e17838
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-gr712rc-17.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: sparc/gr712rc
+links:
+- role: requirement-refinement
+ uid: /req/errata
+non-functional-type: design
+rationale: null
+references:
+- identifier: https://www.gaisler.com/doc/gr712rc-usermanual.pdf
+ type: url
+- identifier: https://www.gaisler.com/doc/antn/GRLIB-TN-0013.pdf
+ type: url
+requirement-type: non-functional
+text: |
+ The software product shall take the errata 17 (Technical Note on GRFPU
+ Floating-point controller: Missing FDIV/FSQRT Result) into account.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/errata-gr712rc-18.yml b/spec/bsp/sparc/leon3/req/errata-gr712rc-18.yml
new file mode 100644
index 00000000..ecd0782a
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-gr712rc-18.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: sparc/gr712rc
+links:
+- role: requirement-refinement
+ uid: /req/errata
+non-functional-type: design
+rationale: null
+references:
+- identifier: https://www.gaisler.com/doc/gr712rc-usermanual.pdf
+ type: url
+requirement-type: non-functional
+text: |
+ The software product shall take the errata 18 (Don’t break into debug mode on
+ RETT instructions) into account.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/errata-gr712rc-19.yml b/spec/bsp/sparc/leon3/req/errata-gr712rc-19.yml
new file mode 100644
index 00000000..3dda9714
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-gr712rc-19.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: sparc/gr712rc
+links:
+- role: requirement-refinement
+ uid: /req/errata
+non-functional-type: design
+rationale: null
+references:
+- identifier: https://www.gaisler.com/doc/gr712rc-usermanual.pdf
+ type: url
+requirement-type: non-functional
+text: |
+ The software product shall take the errata 19 (Stores to ASI 0x1C may update
+ data cache) into account.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/errata-gr712rc-20.yml b/spec/bsp/sparc/leon3/req/errata-gr712rc-20.yml
new file mode 100644
index 00000000..d649af9a
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-gr712rc-20.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: sparc/gr712rc
+links:
+- role: requirement-refinement
+ uid: /req/errata
+non-functional-type: design
+rationale: null
+references:
+- identifier: https://www.gaisler.com/doc/gr712rc-usermanual.pdf
+ type: url
+- identifier: https://www.gaisler.com/doc/antn/GRLIB-TN-0018.pdf
+ type: url
+requirement-type: non-functional
+text: |
+ The software product shall take the errata 20 (Technical Note on LEON3FT RETT
+ Restart Errata) into account.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/errata-gr712rc-compiler-fix.yml b/spec/bsp/sparc/leon3/req/errata-gr712rc-compiler-fix.yml
new file mode 100644
index 00000000..d472cca3
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-gr712rc-compiler-fix.yml
@@ -0,0 +1,22 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: sparc/gr712rc
+links:
+- role: requirement-refinement
+ uid: errata-gr712rc-13
+- role: requirement-refinement
+ uid: errata-gr712rc-16
+- role: requirement-refinement
+ uid: errata-gr712rc-17
+- role: requirement-refinement
+ uid: errata-gr712rc-20
+non-functional-type: design
+rationale: |
+ This compiler option enables workarounds for chip errata.
+references: []
+requirement-type: non-functional
+text: |
+ The software product shall be compiled using the ``-mfix-gr712rc`` compiler
+ option.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/errata-gr740-18-1.yml b/spec/bsp/sparc/leon3/req/errata-gr740-18-1.yml
new file mode 100644
index 00000000..60824cdb
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-gr740-18-1.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: sparc/gr740
+links:
+- role: requirement-refinement
+ uid: /req/errata
+non-functional-type: design
+rationale: null
+references:
+- identifier: https://www.gaisler.com/doc/gr740/GR740-UM-DS-2-5.pdf
+ type: url
+requirement-type: non-functional
+text: |
+ The software product shall take the errata 18-2 (PCI master/initiator lockup
+ due to write burst waitstates) into account.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/errata-gr740-18-2.yml b/spec/bsp/sparc/leon3/req/errata-gr740-18-2.yml
new file mode 100644
index 00000000..3433fd55
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-gr740-18-2.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: sparc/gr740
+links:
+- role: requirement-refinement
+ uid: /req/errata
+non-functional-type: design
+rationale: null
+references:
+- identifier: https://www.gaisler.com/doc/gr740/GR740-UM-DS-2-5.pdf
+ type: url
+requirement-type: non-functional
+text: |
+ The software product shall take the errata 18-1 (SpaceWire router missing
+ first byte after EEP on links with downstream congestion) into account.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/errata-gr740-18-3.yml b/spec/bsp/sparc/leon3/req/errata-gr740-18-3.yml
new file mode 100644
index 00000000..c81b3008
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-gr740-18-3.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: sparc/gr740
+links:
+- role: requirement-refinement
+ uid: /req/errata
+non-functional-type: design
+rationale: null
+references:
+- identifier: https://www.gaisler.com/doc/gr740/GR740-UM-DS-2-5.pdf
+ type: url
+requirement-type: non-functional
+text: |
+ The software product shall take the errata 18-3 (L2 cache scrubber
+ malfunction on uncorrectable error when SH option disabled into account.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/errata-gr740-18-4.yml b/spec/bsp/sparc/leon3/req/errata-gr740-18-4.yml
new file mode 100644
index 00000000..01678ff8
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-gr740-18-4.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: sparc/gr740
+links:
+- role: requirement-refinement
+ uid: /req/errata
+non-functional-type: design
+rationale: null
+references:
+- identifier: https://www.gaisler.com/doc/gr740/GR740-UM-DS-2-5.pdf
+ type: url
+requirement-type: non-functional
+text: |
+ The software product shall take the errata 18-4 (SpaceWire router block of
+ output ports used for distributing multicast packets) into account.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/errata-gr740-20-1.yml b/spec/bsp/sparc/leon3/req/errata-gr740-20-1.yml
new file mode 100644
index 00000000..847f77e8
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-gr740-20-1.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: sparc/gr740
+links:
+- role: requirement-refinement
+ uid: /req/errata
+non-functional-type: design
+rationale: null
+references:
+- identifier: https://www.gaisler.com/doc/gr740/GR740-UM-DS-2-5.pdf
+ type: url
+requirement-type: non-functional
+text: |
+ The software product shall take the errata 20-1 (Stores to ASI 0x1C
+ (MMU/cache bypass) can update data cache contents) into account.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/errata-gr740-20-2.yml b/spec/bsp/sparc/leon3/req/errata-gr740-20-2.yml
new file mode 100644
index 00000000..f63cfeec
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-gr740-20-2.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: sparc/gr740
+links:
+- role: requirement-refinement
+ uid: /req/errata
+non-functional-type: design
+rationale: null
+references:
+- identifier: https://www.gaisler.com/doc/gr740/GR740-UM-DS-2-5.pdf
+ type: url
+requirement-type: non-functional
+text: |
+ The software product shall take the errata 20-2 (LEON4 Statistics Unit time
+ stamp register unavailable) into account.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/errata-tn-0018-macro-fix.yml b/spec/bsp/sparc/leon3/req/errata-tn-0018-macro-fix.yml
new file mode 100644
index 00000000..a80aed69
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-tn-0018-macro-fix.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr712rc
+links:
+- role: requirement-refinement
+ uid: errata-tn-0018-macros
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+ The ``TN0018_FIX`` macro shall provide an instruction sequence for
+ *Workaround #1* to be placed immediatly before a ``jumpl`` followed by
+ ``rett`` pair.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/errata-tn-0018-macro-wait-iflush.yml b/spec/bsp/sparc/leon3/req/errata-tn-0018-macro-wait-iflush.yml
new file mode 100644
index 00000000..d3b376e1
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-tn-0018-macro-wait-iflush.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr712rc
+links:
+- role: requirement-refinement
+ uid: errata-tn-0018-macros
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+ The ``TN0018_WAIT_IFLUSH`` macro shall flush the instruction cache.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/errata-tn-0018-macro-write-psr.yml b/spec/bsp/sparc/leon3/req/errata-tn-0018-macro-write-psr.yml
new file mode 100644
index 00000000..eb37d1d5
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-tn-0018-macro-write-psr.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr712rc
+links:
+- role: requirement-refinement
+ uid: errata-tn-0018-macros
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+ The ``TN0018_WRITE_PSR`` macro shall write the source register to register
+ ``%psr``.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/errata-tn-0018-macros.yml b/spec/bsp/sparc/leon3/req/errata-tn-0018-macros.yml
new file mode 100644
index 00000000..2392bbbf
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/errata-tn-0018-macros.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: sparc/gr712rc
+links:
+- role: requirement-refinement
+ uid: errata-gr712rc-20
+non-functional-type: design
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+ The software product shall provide ${/glossary/assemblerlanguage:/term}
+ macros to help implementing workarounds for the errata.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/idle-task-body.yml b/spec/bsp/sparc/leon3/req/idle-task-body.yml
new file mode 100644
index 00000000..d7a24f0d
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/idle-task-body.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: bsps/sparc/leon3
+links:
+- role: interface-function
+ uid: ../../../if/acfg-idle-task-body
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+ The ${/glossary/bsp:/term} shall define
+ ${../../../if/acfg-idle-task-body:/name} to ${../if/idle-thread:/name}.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/idle-task-power-down-errata.yml b/spec/bsp/sparc/leon3/req/idle-task-power-down-errata.yml
new file mode 100644
index 00000000..8e2c1623
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/idle-task-power-down-errata.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: bsps/sparc/leon3
+links:
+- role: interface-function
+ uid: idle-task-body
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+ The ${../if/idle-thread:/name} function shall be implemented according to
+ ``Workaround 2`` of {errata-gr712rc-08}.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/req/idle-task-power-down.yml b/spec/bsp/sparc/leon3/req/idle-task-power-down.yml
new file mode 100644
index 00000000..a8a71a47
--- /dev/null
+++ b/spec/bsp/sparc/leon3/req/idle-task-power-down.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: bsps/sparc/leon3
+links:
+- role: interface-function
+ uid: idle-task-body
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+ The ${../if/idle-thread:/name} function shall perform an endless loop which
+ sets the processor into the power-down mode using a write to ``%asr19`` in
+ each iteration.
+type: requirement
diff --git a/spec/bsp/sparc/leon3/val/errata-gr712rc-01.yml b/spec/bsp/sparc/leon3/val/errata-gr712rc-01.yml
new file mode 100644
index 00000000..5146e85d
--- /dev/null
+++ b/spec/bsp/sparc/leon3/val/errata-gr712rc-01.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr712rc
+links:
+- role: validation
+ uid: ../req/errata-gr712rc-01
+method: by-review-of-design
+references: []
+text: |
+ The errata of the ${/glossary/gr712rc:/term} is not applicable to the
+ software product since it does not use the on-chip memory.
+type: validation
diff --git a/spec/bsp/sparc/leon3/val/errata-gr712rc-02.yml b/spec/bsp/sparc/leon3/val/errata-gr712rc-02.yml
new file mode 100644
index 00000000..8c928e43
--- /dev/null
+++ b/spec/bsp/sparc/leon3/val/errata-gr712rc-02.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr712rc
+links:
+- role: validation
+ uid: ../req/errata-gr712rc-02
+method: by-review-of-design
+references: []
+text: |
+ The errata of the ${/glossary/gr712rc:/term} is not applicable to the
+ software product since it does not provide a high-level CAN driver.
+type: validation
diff --git a/spec/bsp/sparc/leon3/val/errata-gr712rc-03.yml b/spec/bsp/sparc/leon3/val/errata-gr712rc-03.yml
new file mode 100644
index 00000000..ee3b2f18
--- /dev/null
+++ b/spec/bsp/sparc/leon3/val/errata-gr712rc-03.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr712rc
+links:
+- role: validation
+ uid: ../req/errata-gr712rc-03
+method: by-review-of-design
+references: []
+text: |
+ The errata of the ${/glossary/gr712rc:/term} is not applicable to the
+ software product since it does not provide a high-level SpaceWire driver.
+type: validation
diff --git a/spec/bsp/sparc/leon3/val/errata-gr712rc-04.yml b/spec/bsp/sparc/leon3/val/errata-gr712rc-04.yml
new file mode 100644
index 00000000..86f7e2d3
--- /dev/null
+++ b/spec/bsp/sparc/leon3/val/errata-gr712rc-04.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr712rc
+links:
+- role: validation
+ uid: ../req/errata-gr712rc-04
+method: by-review-of-design
+references: []
+text: |
+ The errata of the ${/glossary/gr712rc:/term} is not applicable to the
+ software product since it does not provide a high-level SpaceWire driver.
+type: validation
diff --git a/spec/bsp/sparc/leon3/val/errata-gr712rc-05.yml b/spec/bsp/sparc/leon3/val/errata-gr712rc-05.yml
new file mode 100644
index 00000000..57064bca
--- /dev/null
+++ b/spec/bsp/sparc/leon3/val/errata-gr712rc-05.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr712rc
+links:
+- role: validation
+ uid: ../req/errata-gr712rc-05
+method: by-review-of-design
+references: []
+text: |
+ The errata of the ${/glossary/gr712rc:/term} is not applicable to the
+ software product since it does not provide a high-level SPI driver.
+type: validation
diff --git a/spec/bsp/sparc/leon3/val/errata-gr712rc-06.yml b/spec/bsp/sparc/leon3/val/errata-gr712rc-06.yml
new file mode 100644
index 00000000..b67b72cf
--- /dev/null
+++ b/spec/bsp/sparc/leon3/val/errata-gr712rc-06.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr712rc
+links:
+- role: validation
+ uid: ../req/errata-gr712rc-06
+method: by-review-of-design
+references: []
+text: |
+ The errata of the ${/glossary/gr712rc:/term} is not applicable to the
+ software product since it does not provide a high-level SPI driver.
+type: validation
diff --git a/spec/bsp/sparc/leon3/val/errata-gr712rc-07.yml b/spec/bsp/sparc/leon3/val/errata-gr712rc-07.yml
new file mode 100644
index 00000000..a036aabb
--- /dev/null
+++ b/spec/bsp/sparc/leon3/val/errata-gr712rc-07.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr712rc
+links:
+- role: validation
+ uid: ../req/errata-gr712rc-07
+method: by-review-of-design
+references: []
+text: |
+ The errata of the ${/glossary/gr712rc:/term} is not applicable to the
+ software product since it is not responsible to configure the SRAM or PROM
+ memory.
+type: validation
diff --git a/spec/bsp/sparc/leon3/val/errata-gr712rc-08.yml b/spec/bsp/sparc/leon3/val/errata-gr712rc-08.yml
new file mode 100644
index 00000000..e64ca676
--- /dev/null
+++ b/spec/bsp/sparc/leon3/val/errata-gr712rc-08.yml
@@ -0,0 +1,28 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: bsps/sparc/leon3
+links:
+- role: validation
+ uid: ../req/errata-gr712rc-08
+- role: validation
+ uid: ../req/idle-task-power-down
+- role: validation
+ uid: ../req/idle-task-power-down-errata
+method: by-inspection
+references:
+- identifier: bsps/sparc/leon3/start/bspidle.S
+ hash: gmJydgDbHmV9_F0Ru0dQ_v78f8_UXwEKnAp5LpQVn98=
+ type: file
+text: |
+ Inspection of the referenced ${/glossary/sourcecode:/term} file showed that
+ the ``Workaround 2`` is implemented. Contrary to the recommendation in the
+ errata workaround description, the stack pointer is used as the source
+ operand of the load instruction. This is not an issue, since the idle thread
+ does not use the loaded value. Inspection showed also that an infinite loop
+ is implemented which uses a write to ``%asr19`` to enter the power-down mode.
+
+ The errata workaround is implemented unconditionally since it is harmless and
+ may be considered a performance optimization. It is some sort of a data
+ cache prefetch.
+type: validation
diff --git a/spec/bsp/sparc/leon3/val/errata-gr712rc-09.yml b/spec/bsp/sparc/leon3/val/errata-gr712rc-09.yml
new file mode 100644
index 00000000..4aa75326
--- /dev/null
+++ b/spec/bsp/sparc/leon3/val/errata-gr712rc-09.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr712rc
+links:
+- role: validation
+ uid: ../req/errata-gr712rc-09
+method: by-review-of-design
+references: []
+text: |
+ The errata of the ${/glossary/gr712rc:/term} is not applicable to the
+ software product since it assumes that the boot loader correctly configured
+ the memory controller.
+type: validation
diff --git a/spec/bsp/sparc/leon3/val/errata-gr712rc-10.yml b/spec/bsp/sparc/leon3/val/errata-gr712rc-10.yml
new file mode 100644
index 00000000..425ea2d9
--- /dev/null
+++ b/spec/bsp/sparc/leon3/val/errata-gr712rc-10.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr712rc
+links:
+- role: validation
+ uid: ../req/errata-gr712rc-10
+method: by-review-of-design
+references: []
+text: |
+ The errata of the ${/glossary/gr712rc:/term} is not applicable to the
+ software product since it does not provide a high-level MIL-STD-1553B driver.
+type: validation
diff --git a/spec/bsp/sparc/leon3/val/errata-gr712rc-11.yml b/spec/bsp/sparc/leon3/val/errata-gr712rc-11.yml
new file mode 100644
index 00000000..f40df33a
--- /dev/null
+++ b/spec/bsp/sparc/leon3/val/errata-gr712rc-11.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr712rc
+links:
+- role: validation
+ uid: ../req/errata-gr712rc-11
+method: by-review-of-design
+references: []
+text: |
+ The errata of the ${/glossary/gr712rc:/term} is not applicable to the
+ software product since it does not use the MMU.
+type: validation
diff --git a/spec/bsp/sparc/leon3/val/errata-gr712rc-12.yml b/spec/bsp/sparc/leon3/val/errata-gr712rc-12.yml
new file mode 100644
index 00000000..92555d44
--- /dev/null
+++ b/spec/bsp/sparc/leon3/val/errata-gr712rc-12.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr712rc
+links:
+- role: validation
+ uid: ../req/errata-gr712rc-12
+method: by-review-of-design
+references: []
+text: |
+ The errata of the ${/glossary/gr712rc:/term} is not applicable to the
+ software product since it does not provide a high-level GRETH driver.
+type: validation
diff --git a/spec/bsp/sparc/leon3/val/errata-gr712rc-14.yml b/spec/bsp/sparc/leon3/val/errata-gr712rc-14.yml
new file mode 100644
index 00000000..d8190e2b
--- /dev/null
+++ b/spec/bsp/sparc/leon3/val/errata-gr712rc-14.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr712rc
+links:
+- role: validation
+ uid: ../req/errata-gr712rc-14
+method: by-review-of-design
+references: []
+text: |
+ The errata of the ${/glossary/gr712rc:/term} is not applicable to the
+ software product since it does not use the MMU.
+type: validation
diff --git a/spec/bsp/sparc/leon3/val/errata-gr712rc-15.yml b/spec/bsp/sparc/leon3/val/errata-gr712rc-15.yml
new file mode 100644
index 00000000..52c4522e
--- /dev/null
+++ b/spec/bsp/sparc/leon3/val/errata-gr712rc-15.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr712rc
+links:
+- role: validation
+ uid: ../req/errata-gr712rc-15
+method: by-review-of-design
+references: []
+text: |
+ The errata of the ${/glossary/gr712rc:/term} is not applicable to the
+ software product since it does not use the MMU.
+type: validation
diff --git a/spec/bsp/sparc/leon3/val/errata-gr712rc-18.yml b/spec/bsp/sparc/leon3/val/errata-gr712rc-18.yml
new file mode 100644
index 00000000..048e5098
--- /dev/null
+++ b/spec/bsp/sparc/leon3/val/errata-gr712rc-18.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr712rc
+links:
+- role: validation
+ uid: ../req/errata-gr712rc-18
+method: by-review-of-design
+references: []
+text: |
+ The errata of the ${/glossary/gr712rc:/term} is not applicable to the
+ software product since it does not break into debug mode.
+type: validation
diff --git a/spec/bsp/sparc/leon3/val/errata-gr712rc-19.yml b/spec/bsp/sparc/leon3/val/errata-gr712rc-19.yml
new file mode 100644
index 00000000..44e23cf3
--- /dev/null
+++ b/spec/bsp/sparc/leon3/val/errata-gr712rc-19.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr712rc
+links:
+- role: validation
+ uid: ../req/errata-gr712rc-19
+method: by-inspection
+references:
+- identifier: bsps/sparc/leon3/include/bsp/leon3.h
+ hash: IYTJZM16nwK8qVHx9RLtXeHB1s5Ab-yEixVEWzgVp9Q=
+ type: file
+- identifier: cpukit/score/cpu/sparc/include/libcpu/grlib-tn-0018.h
+ hash: 2H6O61TZYKcwDpr_dKrDOe8xkMNjXz45Oh6bwL5b2vM=
+ type: file
+text: |
+ The ${/glossary/sourcecode:/term} of the software product was reviewed for
+ uses of the ``sta`` instruction with the ASI set to 0x1c. No use of this
+ instruction was found.
+type: validation
diff --git a/spec/bsp/sparc/leon3/val/errata-gr740-18-1.yml b/spec/bsp/sparc/leon3/val/errata-gr740-18-1.yml
new file mode 100644
index 00000000..3c84ce93
--- /dev/null
+++ b/spec/bsp/sparc/leon3/val/errata-gr740-18-1.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr740
+links:
+- role: validation
+ uid: ../req/errata-gr740-18-1
+method: by-analysis
+references: []
+text: |
+ The errata of the ${/glossary/gr740:/term} is not applicable to the software
+ product since it does not provide a high-level SpaceWire driver.
+type: validation
diff --git a/spec/bsp/sparc/leon3/val/errata-gr740-18-2.yml b/spec/bsp/sparc/leon3/val/errata-gr740-18-2.yml
new file mode 100644
index 00000000..7ea4b59f
--- /dev/null
+++ b/spec/bsp/sparc/leon3/val/errata-gr740-18-2.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr740
+links:
+- role: validation
+ uid: ../req/errata-gr740-18-2
+method: by-analysis
+references: []
+text: |
+ The errata of the ${/glossary/gr740:/term} is not applicable to the software
+ product since it does not provide a high-level PCI driver.
+type: validation
diff --git a/spec/bsp/sparc/leon3/val/errata-gr740-18-3.yml b/spec/bsp/sparc/leon3/val/errata-gr740-18-3.yml
new file mode 100644
index 00000000..906f7bcc
--- /dev/null
+++ b/spec/bsp/sparc/leon3/val/errata-gr740-18-3.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr740
+links:
+- role: validation
+ uid: ../req/errata-gr740-18-3
+method: by-analysis
+references: []
+text: |
+ The errata of the ${/glossary/gr740:/term} is not applicable to the software
+ product since it not responsible for the L2 cache scrubber.
+type: validation
diff --git a/spec/bsp/sparc/leon3/val/errata-gr740-18-4.yml b/spec/bsp/sparc/leon3/val/errata-gr740-18-4.yml
new file mode 100644
index 00000000..6e04ab83
--- /dev/null
+++ b/spec/bsp/sparc/leon3/val/errata-gr740-18-4.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr740
+links:
+- role: validation
+ uid: ../req/errata-gr740-18-4
+method: by-analysis
+references: []
+text: |
+ The errata of the ${/glossary/gr740:/term} is not applicable to the software
+ product since it does not provide a high-level SpaceWire driver.
+type: validation
diff --git a/spec/bsp/sparc/leon3/val/errata-gr740-20-1.yml b/spec/bsp/sparc/leon3/val/errata-gr740-20-1.yml
new file mode 100644
index 00000000..60c0a526
--- /dev/null
+++ b/spec/bsp/sparc/leon3/val/errata-gr740-20-1.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr740
+links:
+- role: validation
+ uid: ../req/errata-gr740-20-1
+method: by-analysis
+references: []
+text: |
+ The errata of the ${/glossary/gr740:/term} is not applicable to the software
+ product since it does not use the MMU.
+type: validation
diff --git a/spec/bsp/sparc/leon3/val/errata-gr740-20-2.yml b/spec/bsp/sparc/leon3/val/errata-gr740-20-2.yml
new file mode 100644
index 00000000..47319579
--- /dev/null
+++ b/spec/bsp/sparc/leon3/val/errata-gr740-20-2.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr740
+links:
+- role: validation
+ uid: ../req/errata-gr740-20-2
+method: by-analysis
+references: []
+text: |
+ The errata of the ${/glossary/gr740:/term} is not applicable to the software
+ product since it does not use the LEON4 Statistics Unit.
+type: validation
diff --git a/spec/bsp/sparc/leon3/val/errata-tn-0018-fp.yml b/spec/bsp/sparc/leon3/val/errata-tn-0018-fp.yml
new file mode 100644
index 00000000..43d3cd79
--- /dev/null
+++ b/spec/bsp/sparc/leon3/val/errata-tn-0018-fp.yml
@@ -0,0 +1,23 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr712rc
+links:
+- role: validation
+ uid: ../req/errata-gr712rc-20
+method: by-inspection
+references:
+- identifier: cpukit/score/cpu/sparc/syscall.S
+ hash: QDjhpRe0UrN3OhoVJEGSnJU0028ZHBGjXYFXrZsRwO4=
+ type: file
+text: |
+ The ``syscall_irqdis_fp`` trap handler always jumps back to a floating-point
+ instruction, thus no workaround is necessary.
+
+ The ``syscall_lazy_fp_switch`` trap handler always jumps back to a
+ floating-point instruction or terminates the system with a jump to
+ ``_Internal_error()``, thus no workaround is necessary. The
+ ``_Internal_error()`` function starts with a ``save`` instruction. Also this
+ function terminates the system, so that the ``rett`` instruction should never
+ be in the instruction cache since the code path is only executed once.
+type: validation
diff --git a/spec/bsp/sparc/leon3/val/errata-tn-0018-interrupt-disable-enable.yml b/spec/bsp/sparc/leon3/val/errata-tn-0018-interrupt-disable-enable.yml
new file mode 100644
index 00000000..0360c316
--- /dev/null
+++ b/spec/bsp/sparc/leon3/val/errata-tn-0018-interrupt-disable-enable.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr712rc
+links:
+- role: validation
+ uid: ../req/errata-gr712rc-20
+method: by-inspection
+references:
+- identifier: cpukit/score/cpu/sparc/include/rtems/score/sparc.h
+ hash: PRwOyOwR1b2y0Pno_KTXlY-o0QXIm_TfVZM24eDmt0s=
+ type: file
+- identifier: cpukit/score/cpu/sparc/sparc-counter-asm.S
+ hash: X8UNM08ffHOazOxa3gY4Vqsn2ZJmX8rrM3drT_8QpLQ=
+ type: file
+text: |
+ For the ``syscall_irqdis`` and ``syscall_irqen`` traps a workaround was
+ implemented by inserting a ``nop`` instruction in system call generation.
+ Thus the corresponding trap handler always returns to a non-``jmpl``
+ instruction.
+type: validation
diff --git a/spec/bsp/sparc/leon3/val/errata-tn-0018-interrupts.yml b/spec/bsp/sparc/leon3/val/errata-tn-0018-interrupts.yml
new file mode 100644
index 00000000..26becb79
--- /dev/null
+++ b/spec/bsp/sparc/leon3/val/errata-tn-0018-interrupts.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr712rc
+links:
+- role: validation
+ uid: ../req/errata-gr712rc-20
+method: by-inspection
+references:
+- identifier: cpukit/score/cpu/sparc/cpu_asm.S
+ hash: ZvR01zogfIGxPsSTqTesSMRDXlQFV9I0TOZ9eUAsQt8=
+ type: file
+- identifier: cpukit/score/cpu/sparc/sparc-isr-handler.S
+ hash: J6qNYoUFUVXetylnUNrz7MY1jrBs4AbuS5mxyZ4FxEc=
+ type: file
+text: |
+ A special ``rett`` sequence errata workaround was implemented for the
+ interrupt trap handler.
+type: validation
diff --git a/spec/bsp/sparc/leon3/val/errata-tn-0018-macros.yml b/spec/bsp/sparc/leon3/val/errata-tn-0018-macros.yml
new file mode 100644
index 00000000..d24ee1aa
--- /dev/null
+++ b/spec/bsp/sparc/leon3/val/errata-tn-0018-macros.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr712rc
+links:
+- role: validation
+ uid: ../req/errata-tn-0018-macro-fix
+- role: validation
+ uid: ../req/errata-tn-0018-macro-wait-iflush
+- role: validation
+ uid: ../req/errata-tn-0018-macro-write-psr
+method: by-inspection
+references:
+- identifier: cpukit/score/cpu/sparc/include/libcpu/grlib-tn-0018.h
+ hash: 2H6O61TZYKcwDpr_dKrDOe8xkMNjXz45Oh6bwL5b2vM=
+ type: file
+text: |
+ The ${/glossary/sourcecode:/term} of the software product was reviewed for a
+ correct implementation of the errata workaround support macros. The macros
+ are correctly implemented.
+type: validation
diff --git a/spec/bsp/sparc/leon3/val/errata-tn-0018-syscall.yml b/spec/bsp/sparc/leon3/val/errata-tn-0018-syscall.yml
new file mode 100644
index 00000000..e36251d5
--- /dev/null
+++ b/spec/bsp/sparc/leon3/val/errata-tn-0018-syscall.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr712rc
+links:
+- role: validation
+ uid: ../req/errata-gr712rc-20
+method: by-inspection
+references:
+- identifier: cpukit/score/cpu/sparc/syscall.S
+ hash: QDjhpRe0UrN3OhoVJEGSnJU0028ZHBGjXYFXrZsRwO4=
+ type: file
+text: |
+ The ``syscall`` trap handler shuts down the system and never returns.
+type: validation
diff --git a/spec/bsp/sparc/leon3/val/errata-tn-0018-window-flush.yml b/spec/bsp/sparc/leon3/val/errata-tn-0018-window-flush.yml
new file mode 100644
index 00000000..136dc115
--- /dev/null
+++ b/spec/bsp/sparc/leon3/val/errata-tn-0018-window-flush.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr712rc
+links:
+- role: validation
+ uid: ../req/errata-gr712rc-20
+method: by-inspection
+references:
+- identifier: cpukit/score/cpu/sparc/window.S
+ hash: C4nky3WMzvibNRRv3cK3dmmbw0erz-RV3t1CL6ZV2dk=
+ type: file
+text: |
+ A special ``rett`` sequence errata workaround was implemented for the window
+ flush trap handler.
+type: validation
diff --git a/spec/bsp/sparc/leon3/val/errata-tn-0018-window-overflow.yml b/spec/bsp/sparc/leon3/val/errata-tn-0018-window-overflow.yml
new file mode 100644
index 00000000..67374229
--- /dev/null
+++ b/spec/bsp/sparc/leon3/val/errata-tn-0018-window-overflow.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr712rc
+links:
+- role: validation
+ uid: ../req/errata-gr712rc-20
+method: by-analysis
+references: []
+text: |
+ There is no errata workaround necessary for the window overflow trap, since
+ the window overflow trap always returns to a ``save`` instruction.
+type: validation
diff --git a/spec/bsp/sparc/leon3/val/errata-tn-0018-window-underflow.yml b/spec/bsp/sparc/leon3/val/errata-tn-0018-window-underflow.yml
new file mode 100644
index 00000000..945a6f3b
--- /dev/null
+++ b/spec/bsp/sparc/leon3/val/errata-tn-0018-window-underflow.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr712rc
+links:
+- role: validation
+ uid: ../req/errata-gr712rc-20
+method: by-analysis
+references: []
+text: |
+ There is no errata workaround necessary for the window underflow trap, since
+ the window underflow trap always returns to a ``restore`` instruction.
+type: validation
diff --git a/spec/bsp/sparc/leon3/val/gr712rc.yml b/spec/bsp/sparc/leon3/val/gr712rc.yml
new file mode 100644
index 00000000..33d8df62
--- /dev/null
+++ b/spec/bsp/sparc/leon3/val/gr712rc.yml
@@ -0,0 +1,58 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links: []
+test-actions:
+- action-brief: |
+ Validate the use of the ``-mfix-gr712rc`` compiler option.
+ action-code: |
+ const char *s;
+ checks:
+ - brief: |
+ Check that the compiler built-in define ``__FIX_LEON3FT_B2BST`` is
+ defined.
+ code: |
+ #if !defined(__FIX_LEON3FT_B2BST)
+ #error "__FIX_LEON3FT_B2BST is not defined"
+ #endif
+ links:
+ - role: validation
+ uid: ../req/errata-gr712rc-compiler-fix
+ - brief: |
+ Check that the compiler built-in define ``__FIX_LEON3FT_TN0018`` is
+ defined.
+ code: |
+ #if !defined(__FIX_LEON3FT_TN0018)
+ #error "__FIX_LEON3FT_TN0018 is not defined"
+ #endif
+ links:
+ - role: validation
+ uid: ../req/errata-gr712rc-compiler-fix
+ - brief: |
+ Check that the ``SPARC_LEON3FT_B2BST_NOP`` define expands to a ``nop``
+ instruction.
+ code: |
+ s = RTEMS_XSTRING( SPARC_LEON3FT_B2BST_NOP );
+ T_true( IsEqualIgnoreWhiteSpace( s, "nop" ) );
+ links:
+ - role: validation
+ uid: ../req/errata-b2bst-nop
+ links: []
+test-brief: |
+ This test case collection provides validation test cases for the
+ ``sparc/gr712rc`` ${/glossary/bsp:/term}.
+test-context: []
+test-context-support: null
+test-description: null
+test-header: null
+test-includes:
+- bsp.h
+test-local-includes:
+- tx-support.h
+test-setup: null
+test-stop: null
+test-support: null
+test-target: testsuites/validation/tc-bsp-sparc-leon3-gr712rc.c
+test-teardown: null
+type: test-case
diff --git a/spec/req/errata.yml b/spec/req/errata.yml
new file mode 100644
index 00000000..cd990ff8
--- /dev/null
+++ b/spec/req/errata.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: root
+non-functional-type: design
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+ The software product shall take ${/glossary/target:/term} errata into
+ account.
+type: requirement
diff --git a/spec/testsuites/bsp-sparc-leon3-gr712rc.yml b/spec/testsuites/bsp-sparc-leon3-gr712rc.yml
new file mode 100644
index 00000000..c0f788a6
--- /dev/null
+++ b/spec/testsuites/bsp-sparc-leon3-gr712rc.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: sparc/gr712rc
+links:
+- role: requirement-refinement
+ uid: /req/test-suites
+test-brief: |
+ This validation test suite contains BSP-specific test cases.
+test-code: |
+ const char rtems_test_name[] = "${.:/test-suite-name}";
+
+ #include "ts-default.h"
+test-description: null
+test-includes: []
+test-local-includes: []
+test-suite-name: BspSparcLeon3Gr712rc
+test-target: testsuites/validation/ts-bsp-sparc-leon3-gr712rc.c
+type: test-suite