[rtems-central commit] spec: Add grlib register load/store

Sebastian Huber sebh at rtems.org
Wed Jul 21 17:20:21 UTC 2021


Module:    rtems-central
Branch:    master
Commit:    e54b1d7765ef4ff522e6db6f266cf7a2cb50c792
Changeset: http://git.rtems.org/rtems-central/commit/?id=e54b1d7765ef4ff522e6db6f266cf7a2cb50c792

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Thu Jul 15 14:11:03 2021 +0200

spec: Add grlib register load/store

---

 spec/bsp/sparc/if/grlib-io-group.yml  |  19 +++++
 spec/bsp/sparc/if/grlib-io-header.yml |  16 ++++
 spec/bsp/sparc/if/grlib-load-08.yml   |  39 +++++++++
 spec/bsp/sparc/if/grlib-load-16.yml   |  39 +++++++++
 spec/bsp/sparc/if/grlib-load-32.yml   |  39 +++++++++
 spec/bsp/sparc/if/grlib-load-64.yml   |  39 +++++++++
 spec/bsp/sparc/if/grlib-store-08.yml  |  39 +++++++++
 spec/bsp/sparc/if/grlib-store-16.yml  |  39 +++++++++
 spec/bsp/sparc/if/grlib-store-32.yml  |  39 +++++++++
 spec/bsp/sparc/if/grlib-store-64.yml  |  39 +++++++++
 spec/bsp/sparc/req/grlib-load-08.yml  |  16 ++++
 spec/bsp/sparc/req/grlib-load-16.yml  |  16 ++++
 spec/bsp/sparc/req/grlib-load-32.yml  |  16 ++++
 spec/bsp/sparc/req/grlib-load-64.yml  |  16 ++++
 spec/bsp/sparc/req/grlib-store-08.yml |  16 ++++
 spec/bsp/sparc/req/grlib-store-16.yml |  16 ++++
 spec/bsp/sparc/req/grlib-store-32.yml |  16 ++++
 spec/bsp/sparc/req/grlib-store-64.yml |  16 ++++
 spec/bsp/sparc/val/grlib-io.yml       | 149 ++++++++++++++++++++++++++++++++++
 spec/testsuites/validation-dev-0.yml  |  20 +++++
 20 files changed, 644 insertions(+)

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 0000000..8056a2b
--- /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 0000000..c0d9fe6
--- /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 0000000..52b2349
--- /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 0000000..a15d031
--- /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 0000000..776a591
--- /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 0000000..010da08
--- /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 0000000..b4015ea
--- /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 0000000..f06cb5e
--- /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 0000000..c3cc9e6
--- /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 0000000..8e5c31a
--- /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 0000000..b4eaf93
--- /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 0000000..e0f0e7c
--- /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 0000000..ea8b69a
--- /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 0000000..c3e08f8
--- /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 0000000..28ec713
--- /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 0000000..b27549e
--- /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 0000000..4c8d54a
--- /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 0000000..f28ff37
--- /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 0000000..411c252
--- /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 0000000..56ad054
--- /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



More information about the vc mailing list