summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-07-15 14:11:03 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-07-21 16:27:58 +0200
commite54b1d7765ef4ff522e6db6f266cf7a2cb50c792 (patch)
tree9033a4eb01d318ce52b6f84b1fe69271641efa95
parentspec: Add grlib register blocks (diff)
downloadrtems-central-e54b1d7765ef4ff522e6db6f266cf7a2cb50c792.tar.bz2
spec: Add grlib register load/store
-rw-r--r--spec/bsp/sparc/if/grlib-io-group.yml19
-rw-r--r--spec/bsp/sparc/if/grlib-io-header.yml16
-rw-r--r--spec/bsp/sparc/if/grlib-load-08.yml39
-rw-r--r--spec/bsp/sparc/if/grlib-load-16.yml39
-rw-r--r--spec/bsp/sparc/if/grlib-load-32.yml39
-rw-r--r--spec/bsp/sparc/if/grlib-load-64.yml39
-rw-r--r--spec/bsp/sparc/if/grlib-store-08.yml39
-rw-r--r--spec/bsp/sparc/if/grlib-store-16.yml39
-rw-r--r--spec/bsp/sparc/if/grlib-store-32.yml39
-rw-r--r--spec/bsp/sparc/if/grlib-store-64.yml39
-rw-r--r--spec/bsp/sparc/req/grlib-load-08.yml16
-rw-r--r--spec/bsp/sparc/req/grlib-load-16.yml16
-rw-r--r--spec/bsp/sparc/req/grlib-load-32.yml16
-rw-r--r--spec/bsp/sparc/req/grlib-load-64.yml16
-rw-r--r--spec/bsp/sparc/req/grlib-store-08.yml16
-rw-r--r--spec/bsp/sparc/req/grlib-store-16.yml16
-rw-r--r--spec/bsp/sparc/req/grlib-store-32.yml16
-rw-r--r--spec/bsp/sparc/req/grlib-store-64.yml16
-rw-r--r--spec/bsp/sparc/val/grlib-io.yml149
-rw-r--r--spec/testsuites/validation-dev-0.yml20
20 files changed, 644 insertions, 0 deletions
diff --git a/spec/bsp/sparc/if/grlib-io-group.yml b/spec/bsp/sparc/if/grlib-io-group.yml
new file mode 100644
index 00000000..8056a2bd
--- /dev/null
+++ b/spec/bsp/sparc/if/grlib-io-group.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+ This group contains the GRLIB register load/store API.
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+description: null
+enabled-by: true
+identifier: RTEMSDeviceGRLIBIO
+index-entries: []
+interface-type: group
+links:
+- role: interface-placement
+ uid: grlib-io-header
+- role: interface-ingroup
+ uid: /dev/grlib/if/group
+name: Register Load/Store
+text: |
+ The GRLIB API shall contain the GRLIB Register Load/Store API.
+type: interface
diff --git a/spec/bsp/sparc/if/grlib-io-header.yml b/spec/bsp/sparc/if/grlib-io-header.yml
new file mode 100644
index 00000000..c0d9fe64
--- /dev/null
+++ b/spec/bsp/sparc/if/grlib-io-header.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+ This header file defines the register load/store interface.
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+index-entries: []
+interface-type: header-file
+links:
+- role: interface-placement
+ uid: /if/domain
+- role: interface-ingroup
+ uid: grlib-io-group
+path: grlib/io.h
+prefix: bsps/sparc/include
+type: interface
diff --git a/spec/bsp/sparc/if/grlib-load-08.yml b/spec/bsp/sparc/if/grlib-load-08.yml
new file mode 100644
index 00000000..52b23493
--- /dev/null
+++ b/spec/bsp/sparc/if/grlib-load-08.yml
@@ -0,0 +1,39 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+ Loads the memory-mapped unsigned 8-bit register.
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+ default:
+ attributes: null
+ body: |
+ ${/c/if/uint8_t:/name} value;
+
+ __asm__ volatile ( "ldub [%1], %0" : "=&r" ( value ) : "r" ( ${.:/params[0]/name} ) );
+
+ return value;
+ params:
+ - const volatile ${/c/if/uint8_t:/name} *${.:/params[0]/name}
+ return: ${/c/if/uint8_t:/name}
+ variants: []
+description: null
+enabled-by: true
+index-entries: []
+interface-type: function
+links:
+- role: interface-placement
+ uid: grlib-io-header
+- role: interface-ingroup
+ uid: grlib-io-group
+name: grlib_load_8
+notes: null
+params:
+- description: |
+ is the address of the memory-mapped unsigned 8-bit register to load.
+ dir: null
+ name: address
+return:
+ return: |
+ Returns the loaded register value.
+ return-values: []
+type: interface
diff --git a/spec/bsp/sparc/if/grlib-load-16.yml b/spec/bsp/sparc/if/grlib-load-16.yml
new file mode 100644
index 00000000..a15d0317
--- /dev/null
+++ b/spec/bsp/sparc/if/grlib-load-16.yml
@@ -0,0 +1,39 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+ Loads the memory-mapped unsigned 16-bit register.
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+ default:
+ attributes: null
+ body: |
+ ${/c/if/uint16_t:/name} value;
+
+ __asm__ volatile ( "lduh [%1], %0" : "=&r" ( value ) : "r" ( ${.:/params[0]/name} ) );
+
+ return value;
+ params:
+ - const volatile ${/c/if/uint16_t:/name} *${.:/params[0]/name}
+ return: ${/c/if/uint16_t:/name}
+ variants: []
+description: null
+enabled-by: true
+index-entries: []
+interface-type: function
+links:
+- role: interface-placement
+ uid: grlib-io-header
+- role: interface-ingroup
+ uid: grlib-io-group
+name: grlib_load_16
+notes: null
+params:
+- description: |
+ is the address of the memory-mapped unsigned 16-bit register to load.
+ dir: null
+ name: address
+return:
+ return: |
+ Returns the loaded register value.
+ return-values: []
+type: interface
diff --git a/spec/bsp/sparc/if/grlib-load-32.yml b/spec/bsp/sparc/if/grlib-load-32.yml
new file mode 100644
index 00000000..776a5910
--- /dev/null
+++ b/spec/bsp/sparc/if/grlib-load-32.yml
@@ -0,0 +1,39 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+ Loads the memory-mapped unsigned 32-bit register.
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+ default:
+ attributes: null
+ body: |
+ ${/c/if/uint32_t:/name} value;
+
+ __asm__ volatile ( "ld [%1], %0" : "=&r" ( value ) : "r" ( ${.:/params[0]/name} ) );
+
+ return value;
+ params:
+ - const volatile ${/c/if/uint32_t:/name} *${.:/params[0]/name}
+ return: ${/c/if/uint32_t:/name}
+ variants: []
+description: null
+enabled-by: true
+index-entries: []
+interface-type: function
+links:
+- role: interface-placement
+ uid: grlib-io-header
+- role: interface-ingroup
+ uid: grlib-io-group
+name: grlib_load_32
+notes: null
+params:
+- description: |
+ is the address of the memory-mapped unsigned 32-bit register to load.
+ dir: null
+ name: address
+return:
+ return: |
+ Returns the loaded register value.
+ return-values: []
+type: interface
diff --git a/spec/bsp/sparc/if/grlib-load-64.yml b/spec/bsp/sparc/if/grlib-load-64.yml
new file mode 100644
index 00000000..010da080
--- /dev/null
+++ b/spec/bsp/sparc/if/grlib-load-64.yml
@@ -0,0 +1,39 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+ Loads the memory-mapped unsigned 64-bit register.
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+ default:
+ attributes: null
+ body: |
+ ${/c/if/uint64_t:/name} value;
+
+ __asm__ volatile ( "ldd [%1], %0" : "=&U" ( value ) : "r" ( ${.:/params[0]/name} ) );
+
+ return value;
+ params:
+ - const volatile ${/c/if/uint64_t:/name} *${.:/params[0]/name}
+ return: ${/c/if/uint64_t:/name}
+ variants: []
+description: null
+enabled-by: true
+index-entries: []
+interface-type: function
+links:
+- role: interface-placement
+ uid: grlib-io-header
+- role: interface-ingroup
+ uid: grlib-io-group
+name: grlib_load_64
+notes: null
+params:
+- description: |
+ is the address of the memory-mapped unsigned 64-bit register to load.
+ dir: null
+ name: address
+return:
+ return: |
+ Returns the loaded register value.
+ return-values: []
+type: interface
diff --git a/spec/bsp/sparc/if/grlib-store-08.yml b/spec/bsp/sparc/if/grlib-store-08.yml
new file mode 100644
index 00000000..b4015ea9
--- /dev/null
+++ b/spec/bsp/sparc/if/grlib-store-08.yml
@@ -0,0 +1,39 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+ Stores the value to the memory-mapped unsigned 8-bit register.
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+ default:
+ attributes: null
+ body: |
+ __asm__ volatile ( "stb %0, [%1]" : : "r" ( ${.:/params[1]/name} ), "r" ( ${.:/params[0]/name} ) );
+ params:
+ - volatile ${/c/if/uint8_t:/name} *${.:/params[0]/name}
+ - ${/c/if/uint8_t:/name} ${.:/params[1]/name}
+ return: void
+ variants: []
+description: null
+enabled-by: true
+index-entries: []
+interface-type: function
+links:
+- role: interface-placement
+ uid: grlib-io-header
+- role: interface-ingroup
+ uid: grlib-io-group
+name: grlib_store_8
+notes: null
+params:
+- description: |
+ is the address of the memory-mapped unsigned 8-bit register.
+ dir: null
+ name: address
+- description: |
+ is the value to store.
+ dir: null
+ name: value
+return:
+ return: null
+ return-values: []
+type: interface
diff --git a/spec/bsp/sparc/if/grlib-store-16.yml b/spec/bsp/sparc/if/grlib-store-16.yml
new file mode 100644
index 00000000..f06cb5e8
--- /dev/null
+++ b/spec/bsp/sparc/if/grlib-store-16.yml
@@ -0,0 +1,39 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+ Stores the value to the memory-mapped unsigned 16-bit register.
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+ default:
+ attributes: null
+ body: |
+ __asm__ volatile ( "sth %0, [%1]" : : "r" ( ${.:/params[1]/name} ), "r" ( ${.:/params[0]/name} ) );
+ params:
+ - volatile ${/c/if/uint16_t:/name} *${.:/params[0]/name}
+ - ${/c/if/uint16_t:/name} ${.:/params[1]/name}
+ return: void
+ variants: []
+description: null
+enabled-by: true
+index-entries: []
+interface-type: function
+links:
+- role: interface-placement
+ uid: grlib-io-header
+- role: interface-ingroup
+ uid: grlib-io-group
+name: grlib_store_16
+notes: null
+params:
+- description: |
+ is the address of the memory-mapped unsigned 16-bit register.
+ dir: null
+ name: address
+- description: |
+ is the value to store.
+ dir: null
+ name: value
+return:
+ return: null
+ return-values: []
+type: interface
diff --git a/spec/bsp/sparc/if/grlib-store-32.yml b/spec/bsp/sparc/if/grlib-store-32.yml
new file mode 100644
index 00000000..c3cc9e6a
--- /dev/null
+++ b/spec/bsp/sparc/if/grlib-store-32.yml
@@ -0,0 +1,39 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+ Stores the value to the memory-mapped unsigned 32-bit register.
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+ default:
+ attributes: null
+ body: |
+ __asm__ volatile ( "st %0, [%1]" : : "r" ( ${.:/params[1]/name} ), "r" ( ${.:/params[0]/name} ) );
+ params:
+ - volatile ${/c/if/uint32_t:/name} *${.:/params[0]/name}
+ - ${/c/if/uint32_t:/name} ${.:/params[1]/name}
+ return: void
+ variants: []
+description: null
+enabled-by: true
+index-entries: []
+interface-type: function
+links:
+- role: interface-placement
+ uid: grlib-io-header
+- role: interface-ingroup
+ uid: grlib-io-group
+name: grlib_store_32
+notes: null
+params:
+- description: |
+ is the address of the memory-mapped unsigned 32-bit register.
+ dir: null
+ name: address
+- description: |
+ is the value to store.
+ dir: null
+ name: value
+return:
+ return: null
+ return-values: []
+type: interface
diff --git a/spec/bsp/sparc/if/grlib-store-64.yml b/spec/bsp/sparc/if/grlib-store-64.yml
new file mode 100644
index 00000000..8e5c31a8
--- /dev/null
+++ b/spec/bsp/sparc/if/grlib-store-64.yml
@@ -0,0 +1,39 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+ Stores the value to the memory-mapped unsigned 64-bit register.
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+ default:
+ attributes: null
+ body: |
+ __asm__ volatile ( "std %0, [%1]" : : "U" ( ${.:/params[1]/name} ), "r" ( ${.:/params[0]/name} ) );
+ params:
+ - volatile ${/c/if/uint64_t:/name} *${.:/params[0]/name}
+ - ${/c/if/uint64_t:/name} ${.:/params[1]/name}
+ return: void
+ variants: []
+description: null
+enabled-by: true
+index-entries: []
+interface-type: function
+links:
+- role: interface-placement
+ uid: grlib-io-header
+- role: interface-ingroup
+ uid: grlib-io-group
+name: grlib_store_64
+notes: null
+params:
+- description: |
+ is the address of the memory-mapped unsigned 64-bit register.
+ dir: null
+ name: address
+- description: |
+ is the value to store.
+ dir: null
+ name: value
+return:
+ return: null
+ return-values: []
+type: interface
diff --git a/spec/bsp/sparc/req/grlib-load-08.yml b/spec/bsp/sparc/req/grlib-load-08.yml
new file mode 100644
index 00000000..b4eaf93e
--- /dev/null
+++ b/spec/bsp/sparc/req/grlib-load-08.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: true
+links:
+- role: interface-function
+ uid: ../if/grlib-load-08
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+ The ${../if/grlib-load-08:/name} directive shall load an unsigned 8-bit
+ value from the address specified by ${../if/grlib-load-08:/params[0]/name}
+ and return it.
+type: requirement
diff --git a/spec/bsp/sparc/req/grlib-load-16.yml b/spec/bsp/sparc/req/grlib-load-16.yml
new file mode 100644
index 00000000..e0f0e7c8
--- /dev/null
+++ b/spec/bsp/sparc/req/grlib-load-16.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: true
+links:
+- role: interface-function
+ uid: ../if/grlib-load-16
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+ The ${../if/grlib-load-16:/name} directive shall load an unsigned 16-bit value
+ from the address specified by ${../if/grlib-load-16:/params[0]/name} and
+ return it.
+type: requirement
diff --git a/spec/bsp/sparc/req/grlib-load-32.yml b/spec/bsp/sparc/req/grlib-load-32.yml
new file mode 100644
index 00000000..ea8b69ae
--- /dev/null
+++ b/spec/bsp/sparc/req/grlib-load-32.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: true
+links:
+- role: interface-function
+ uid: ../if/grlib-load-32
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+ The ${../if/grlib-load-32:/name} directive shall load an unsigned 32-bit value
+ from the address specified by ${../if/grlib-load-32:/params[0]/name} and
+ return it.
+type: requirement
diff --git a/spec/bsp/sparc/req/grlib-load-64.yml b/spec/bsp/sparc/req/grlib-load-64.yml
new file mode 100644
index 00000000..c3e08f89
--- /dev/null
+++ b/spec/bsp/sparc/req/grlib-load-64.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: true
+links:
+- role: interface-function
+ uid: ../if/grlib-load-64
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+ The ${../if/grlib-load-64:/name} directive shall load an unsigned 64-bit value
+ from the address specified by ${../if/grlib-load-64:/params[0]/name} and
+ return it.
+type: requirement
diff --git a/spec/bsp/sparc/req/grlib-store-08.yml b/spec/bsp/sparc/req/grlib-store-08.yml
new file mode 100644
index 00000000..28ec713b
--- /dev/null
+++ b/spec/bsp/sparc/req/grlib-store-08.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: true
+links:
+- role: interface-function
+ uid: ../if/grlib-store-08
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+ The ${../if/grlib-store-08:/name} directive shall store the unsigned 8-bit
+ value specified by ${../if/grlib-store-08:/params[1]/name} to the address
+ specified by ${../if/grlib-store-08:/params[0]/name}.
+type: requirement
diff --git a/spec/bsp/sparc/req/grlib-store-16.yml b/spec/bsp/sparc/req/grlib-store-16.yml
new file mode 100644
index 00000000..b27549e4
--- /dev/null
+++ b/spec/bsp/sparc/req/grlib-store-16.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: true
+links:
+- role: interface-function
+ uid: ../if/grlib-store-16
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+ The ${../if/grlib-store-16:/name} directive shall store the unsigned 16-bit
+ value specified by ${../if/grlib-store-16:/params[1]/name} to the address
+ specified by ${../if/grlib-store-16:/params[0]/name}.
+type: requirement
diff --git a/spec/bsp/sparc/req/grlib-store-32.yml b/spec/bsp/sparc/req/grlib-store-32.yml
new file mode 100644
index 00000000..4c8d54a8
--- /dev/null
+++ b/spec/bsp/sparc/req/grlib-store-32.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: true
+links:
+- role: interface-function
+ uid: ../if/grlib-store-32
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+ The ${../if/grlib-store-32:/name} directive shall store the unsigned 32-bit
+ value specified by ${../if/grlib-store-32:/params[1]/name} to the address
+ specified by ${../if/grlib-store-32:/params[0]/name}.
+type: requirement
diff --git a/spec/bsp/sparc/req/grlib-store-64.yml b/spec/bsp/sparc/req/grlib-store-64.yml
new file mode 100644
index 00000000..f28ff374
--- /dev/null
+++ b/spec/bsp/sparc/req/grlib-store-64.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: true
+links:
+- role: interface-function
+ uid: ../if/grlib-store-64
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+ The ${../if/grlib-store-64:/name} directive shall store the unsigned 64-bit
+ value specified by ${../if/grlib-store-64:/params[1]/name} to the address
+ specified by ${../if/grlib-store-64:/params[0]/name}.
+type: requirement
diff --git a/spec/bsp/sparc/val/grlib-io.yml b/spec/bsp/sparc/val/grlib-io.yml
new file mode 100644
index 00000000..411c2524
--- /dev/null
+++ b/spec/bsp/sparc/val/grlib-io.yml
@@ -0,0 +1,149 @@
+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: |
+ Call ${../if/grlib-load-08:/name} to load a prepared value.
+ action-code: |
+ uint8_t reg_8;
+ uint8_t val_8;
+
+ reg_8 = 0x81;
+ val_8 = grlib_load_8( &reg_8 );
+ checks:
+ - brief: |
+ Check that the returned value is equal to the prepared value.
+ code: |
+ T_step_eq_u8( ${step}, val_8, 0x81 );
+ links:
+ - role: validation
+ uid: ../req/grlib-load-08
+ links: []
+- action-brief: |
+ Call ${../if/grlib-load-16:/name} to load a prepared value.
+ action-code: |
+ uint16_t reg_16;
+ uint16_t val_16;
+
+ reg_16 = 0x8001;
+ val_16 = grlib_load_16( &reg_16 );
+ checks:
+ - brief: |
+ Check that the returned value is equal to the prepared value.
+ code: |
+ T_step_eq_u16( ${step}, val_16, 0x8001 );
+ links:
+ - role: validation
+ uid: ../req/grlib-load-16
+ links: []
+- action-brief: |
+ Call ${../if/grlib-load-32:/name} to load a prepared value.
+ action-code: |
+ uint32_t reg_32;
+ uint32_t val_32;
+
+ reg_32 = 0x80000001;
+ val_32 = grlib_load_32( &reg_32 );
+ checks:
+ - brief: |
+ Check that the returned value is equal to the prepared value.
+ code: |
+ T_step_eq_u32( ${step}, val_32, 0x80000001 );
+ links:
+ - role: validation
+ uid: ../req/grlib-load-32
+ links: []
+- action-brief: |
+ Call ${../if/grlib-load-64:/name} to load a prepared value.
+ action-code: |
+ uint64_t reg_64;
+ uint64_t val_64;
+
+ reg_64 = 0x8000000000000001;
+ val_64 = grlib_load_64( &reg_64 );
+ checks:
+ - brief: |
+ Check that the returned value is equal to the prepared value.
+ code: |
+ T_step_eq_u64( ${step}, val_64, 0x8000000000000001 );
+ links:
+ - role: validation
+ uid: ../req/grlib-load-64
+ links: []
+- action-brief: |
+ Call ${../if/grlib-store-08:/name} to store a value to an object.
+ action-code: |
+ uint8_t reg_8;
+
+ grlib_store_8( &reg_8, 0x81 );
+ checks:
+ - brief: |
+ Check that the value of the object is equal to the stored value.
+ code: |
+ T_step_eq_u8( ${step}, reg_8, 0x81 );
+ links:
+ - role: validation
+ uid: ../req/grlib-store-08
+ links: []
+- action-brief: |
+ Call ${../if/grlib-store-16:/name} to store a value to an object.
+ action-code: |
+ uint16_t reg_16;
+
+ grlib_store_16( &reg_16, 0x8001 );
+ checks:
+ - brief: |
+ Check that the value of the object is equal to the stored value.
+ code: |
+ T_step_eq_u16( ${step}, reg_16, 0x8001 );
+ links:
+ - role: validation
+ uid: ../req/grlib-store-16
+ links: []
+- action-brief: |
+ Call ${../if/grlib-store-32:/name} to store a value to an object.
+ action-code: |
+ uint32_t reg_32;
+
+ grlib_store_32( &reg_32, 0x80000001 );
+ checks:
+ - brief: |
+ Check that the value of the object is equal to the stored value.
+ code: |
+ T_step_eq_u32( ${step}, reg_32, 0x80000001 );
+ links:
+ - role: validation
+ uid: ../req/grlib-store-32
+ links: []
+- action-brief: |
+ Call ${../if/grlib-store-64:/name} to store a value to an object.
+ action-code: |
+ uint64_t reg_64;
+
+ grlib_store_64( &reg_64, 0x8000000000000001 );
+ checks:
+ - brief: |
+ Check that the value of the object is equal to the stored value.
+ code: |
+ T_step_eq_u64( ${step}, reg_64, 0x8000000000000001 );
+ links:
+ - role: validation
+ uid: ../req/grlib-store-64
+ links: []
+test-brief: |
+ Tests the SPARC-specific GRLIB API.
+test-context: []
+test-context-support: null
+test-description: null
+test-header: null
+test-includes:
+- dev/grlib/io.h
+test-local-includes: []
+test-setup: null
+test-stop: null
+test-support: null
+test-target: testsuites/validation/tc-bsp-sparc-leon3.c
+test-teardown: null
+type: test-case
diff --git a/spec/testsuites/validation-dev-0.yml b/spec/testsuites/validation-dev-0.yml
new file mode 100644
index 00000000..56ad0542
--- /dev/null
+++ b/spec/testsuites/validation-dev-0.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: true
+links:
+- role: requirement-refinement
+ uid: /req/test-suites
+test-brief: |
+ This general purpose validation test suite provides enough resources to run
+ ${/glossary/target:/term}-specific tests.
+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: ValidationDev0
+test-target: testsuites/validation/ts-validation-dev-0.c
+type: test-suite