diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-11-22 13:13:49 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-11-23 14:51:57 +0100 |
commit | a2228ffc4fd7bfa4bc0ed38958888b66ba67d051 (patch) | |
tree | dacbf6c070239c1797fa6bcaac3a1e4147b84b59 | |
parent | spec: Adjust enabled-by for no-cache specs (diff) | |
download | rtems-central-a2228ffc4fd7bfa4bc0ed38958888b66ba67d051.tar.bz2 |
spec: Add GRLIB errata
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 |