summaryrefslogtreecommitdiff
path: root/bsps/include/dev/grlib/spwrmap.h
diff options
context:
space:
mode:
Diffstat (limited to 'bsps/include/dev/grlib/spwrmap.h')
-rw-r--r--bsps/include/dev/grlib/spwrmap.h1090
1 files changed, 1090 insertions, 0 deletions
diff --git a/bsps/include/dev/grlib/spwrmap.h b/bsps/include/dev/grlib/spwrmap.h
new file mode 100644
index 0000000000..df1b5300d1
--- /dev/null
+++ b/bsps/include/dev/grlib/spwrmap.h
@@ -0,0 +1,1090 @@
+/* SPDX-License-Identifier: BSD-2-Clause */
+
+/**
+ * @file
+ *
+ * @ingroup RTEMSDeviceGRLIB
+ *
+ * @brief This header file defines the SPWRMAP register block interface.
+ */
+
+/*
+ * Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * This file is part of the RTEMS quality process and was automatically
+ * generated. If you find something that needs to be fixed or
+ * worded better please post a report or patch to an RTEMS mailing list
+ * or raise a bug report:
+ *
+ * https://www.rtems.org/bugs.html
+ *
+ * For information on updating and regenerating please refer to the How-To
+ * section in the Software Requirements Engineering chapter of the
+ * RTEMS Software Engineering manual. The manual is provided as a part of
+ * a release. For development sources please refer to the online
+ * documentation at:
+ *
+ * https://docs.rtems.org
+ */
+
+/* Generated from spec:/dev/grlib/if/spwrmap-header */
+
+#ifndef _DEV_GRLIB_SPWRMAP_H
+#define _DEV_GRLIB_SPWRMAP_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Generated from spec:/dev/grlib/if/spwrmap */
+
+/**
+ * @defgroup DevGrlibIfSpwrmap SpaceWire Remote Memory Access Protocol (RMAP)
+ *
+ * @ingroup RTEMSDeviceGRLIB
+ *
+ * @brief This group contains the SpaceWire Remote Memory Access Protocol
+ * (RMAP) interfaces.
+ *
+ * @{
+ */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapRTPMAP RTPMAP
+ *
+ * @brief Routing table port mapping, addresses 1-12 and 32-255
+ *
+ * @{
+ */
+
+#define SPWRMAP_RTPMAP_PE_SHIFT 1
+#define SPWRMAP_RTPMAP_PE_MASK 0x1ffeU
+#define SPWRMAP_RTPMAP_PE_GET( _reg ) \
+ ( ( ( _reg ) >> 1 ) & 0xfffU )
+#define SPWRMAP_RTPMAP_PE( _val ) ( ( _val ) << 1 )
+
+#define SPWRMAP_RTPMAP_PD 0x1U
+
+/** @} */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapRTACTRL RTACTRL
+ *
+ * @brief Routing table address control, addresses 1-12 and 32-255
+ *
+ * @{
+ */
+
+#define SPWRMAP_RTACTRL_SR 0x8U
+
+#define SPWRMAP_RTACTRL_EN 0x4U
+
+#define SPWRMAP_RTACTRL_PR 0x2U
+
+#define SPWRMAP_RTACTRL_HD 0x1U
+
+/** @} */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapPCTRLCFG PCTRLCFG
+ *
+ * @brief Port control, port 0 (configuration port)
+ *
+ * @{
+ */
+
+#define SPWRMAP_PCTRLCFG_PL 0x20000U
+
+#define SPWRMAP_PCTRLCFG_TS 0x10000U
+
+#define SPWRMAP_PCTRLCFG_TR 0x200U
+
+/** @} */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapPCTRL PCTRL
+ *
+ * @brief Port control, ports 1-12 (SpaceWire ports and AMBA ports)
+ *
+ * @{
+ */
+
+#define SPWRMAP_PCTRL_RD_SHIFT 24
+#define SPWRMAP_PCTRL_RD_MASK 0xff000000U
+#define SPWRMAP_PCTRL_RD_GET( _reg ) \
+ ( ( ( _reg ) >> 24 ) & 0xffU )
+#define SPWRMAP_PCTRL_RD( _val ) ( ( _val ) << 24 )
+
+#define SPWRMAP_PCTRL_ST 0x200000U
+
+#define SPWRMAP_PCTRL_SR 0x100000U
+
+#define SPWRMAP_PCTRL_AD 0x80000U
+
+#define SPWRMAP_PCTRL_LR 0x40000U
+
+#define SPWRMAP_PCTRL_PL 0x20000U
+
+#define SPWRMAP_PCTRL_TS 0x10000U
+
+#define SPWRMAP_PCTRL_IC 0x8000U
+
+#define SPWRMAP_PCTRL_ET 0x4000U
+
+#define SPWRMAP_PCTRL_DI 0x400U
+
+#define SPWRMAP_PCTRL_TR 0x200U
+
+#define SPWRMAP_PCTRL_PR 0x100U
+
+#define SPWRMAP_PCTRL_TF 0x80U
+
+#define SPWRMAP_PCTRL_RS 0x40U
+
+#define SPWRMAP_PCTRL_TE 0x20U
+
+#define SPWRMAP_PCTRL_CE 0x8U
+
+#define SPWRMAP_PCTRL_AS 0x4U
+
+#define SPWRMAP_PCTRL_LS 0x2U
+
+#define SPWRMAP_PCTRL_LD 0x1U
+
+/** @} */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapPSTSCFG PSTSCFG
+ *
+ * @brief Port status, port 0 (configuration port)
+ *
+ * @{
+ */
+
+#define SPWRMAP_PSTSCFG_EO 0x80000000U
+
+#define SPWRMAP_PSTSCFG_EE 0x40000000U
+
+#define SPWRMAP_PSTSCFG_PL 0x20000000U
+
+#define SPWRMAP_PSTSCFG_TT 0x10000000U
+
+#define SPWRMAP_PSTSCFG_PT 0x8000000U
+
+#define SPWRMAP_PSTSCFG_HC 0x4000000U
+
+#define SPWRMAP_PSTSCFG_PI 0x2000000U
+
+#define SPWRMAP_PSTSCFG_CE 0x1000000U
+
+#define SPWRMAP_PSTSCFG_EC_SHIFT 20
+#define SPWRMAP_PSTSCFG_EC_MASK 0xf00000U
+#define SPWRMAP_PSTSCFG_EC_GET( _reg ) \
+ ( ( ( _reg ) >> 20 ) & 0xfU )
+#define SPWRMAP_PSTSCFG_EC( _val ) ( ( _val ) << 20 )
+
+#define SPWRMAP_PSTSCFG_TS 0x40000U
+
+#define SPWRMAP_PSTSCFG_ME 0x20000U
+
+#define SPWRMAP_PSTSCFG_IP_SHIFT 7
+#define SPWRMAP_PSTSCFG_IP_MASK 0xf80U
+#define SPWRMAP_PSTSCFG_IP_GET( _reg ) \
+ ( ( ( _reg ) >> 7 ) & 0x1fU )
+#define SPWRMAP_PSTSCFG_IP( _val ) ( ( _val ) << 7 )
+
+#define SPWRMAP_PSTSCFG_CP 0x10U
+
+#define SPWRMAP_PSTSCFG_PC_SHIFT 0
+#define SPWRMAP_PSTSCFG_PC_MASK 0xfU
+#define SPWRMAP_PSTSCFG_PC_GET( _reg ) \
+ ( ( ( _reg ) >> 0 ) & 0xfU )
+#define SPWRMAP_PSTSCFG_PC( _val ) ( ( _val ) << 0 )
+
+/** @} */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapPSTS PSTS
+ *
+ * @brief Port status, ports 1-12 (SpaceWire ports and AMBA ports)
+ *
+ * @{
+ */
+
+#define SPWRMAP_PSTS_PT_SHIFT 30
+#define SPWRMAP_PSTS_PT_MASK 0xc0000000U
+#define SPWRMAP_PSTS_PT_GET( _reg ) \
+ ( ( ( _reg ) >> 30 ) & 0x3U )
+#define SPWRMAP_PSTS_PT( _val ) ( ( _val ) << 30 )
+
+#define SPWRMAP_PSTS_PL 0x20000000U
+
+#define SPWRMAP_PSTS_TT 0x10000000U
+
+#define SPWRMAP_PSTS_RS 0x8000000U
+
+#define SPWRMAP_PSTS_SR 0x4000000U
+
+#define SPWRMAP_PSTS_LR 0x400000U
+
+#define SPWRMAP_PSTS_SP 0x200000U
+
+#define SPWRMAP_PSTS_AC 0x100000U
+
+#define SPWRMAP_PSTS_TS 0x40000U
+
+#define SPWRMAP_PSTS_ME 0x20000U
+
+#define SPWRMAP_PSTS_TF 0x10000U
+
+#define SPWRMAP_PSTS_RE 0x8000U
+
+#define SPWRMAP_PSTS_LS_SHIFT 12
+#define SPWRMAP_PSTS_LS_MASK 0x7000U
+#define SPWRMAP_PSTS_LS_GET( _reg ) \
+ ( ( ( _reg ) >> 12 ) & 0x7U )
+#define SPWRMAP_PSTS_LS( _val ) ( ( _val ) << 12 )
+
+#define SPWRMAP_PSTS_IP_SHIFT 7
+#define SPWRMAP_PSTS_IP_MASK 0xf80U
+#define SPWRMAP_PSTS_IP_GET( _reg ) \
+ ( ( ( _reg ) >> 7 ) & 0x1fU )
+#define SPWRMAP_PSTS_IP( _val ) ( ( _val ) << 7 )
+
+#define SPWRMAP_PSTS_PR 0x40U
+
+#define SPWRMAP_PSTS_PB 0x20U
+
+#define SPWRMAP_PSTS_IA 0x10U
+
+#define SPWRMAP_PSTS_CE 0x8U
+
+#define SPWRMAP_PSTS_ER 0x4U
+
+#define SPWRMAP_PSTS_DE 0x2U
+
+#define SPWRMAP_PSTS_PE 0x1U
+
+/** @} */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapPTIMER PTIMER
+ *
+ * @brief Port timer reload, ports 0-12
+ *
+ * @{
+ */
+
+#define SPWRMAP_PTIMER_RL_SHIFT 0
+#define SPWRMAP_PTIMER_RL_MASK 0xffffU
+#define SPWRMAP_PTIMER_RL_GET( _reg ) \
+ ( ( ( _reg ) >> 0 ) & 0xffffU )
+#define SPWRMAP_PTIMER_RL( _val ) ( ( _val ) << 0 )
+
+/** @} */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapPCTRL2CFG PCTRL2CFG
+ *
+ * @brief Port control 2, port 0 (configuration port)
+ *
+ * @{
+ */
+
+#define SPWRMAP_PCTRL2CFG_SM_SHIFT 24
+#define SPWRMAP_PCTRL2CFG_SM_MASK 0xff000000U
+#define SPWRMAP_PCTRL2CFG_SM_GET( _reg ) \
+ ( ( ( _reg ) >> 24 ) & 0xffU )
+#define SPWRMAP_PCTRL2CFG_SM( _val ) ( ( _val ) << 24 )
+
+#define SPWRMAP_PCTRL2CFG_SV_SHIFT 16
+#define SPWRMAP_PCTRL2CFG_SV_MASK 0xff0000U
+#define SPWRMAP_PCTRL2CFG_SV_GET( _reg ) \
+ ( ( ( _reg ) >> 16 ) & 0xffU )
+#define SPWRMAP_PCTRL2CFG_SV( _val ) ( ( _val ) << 16 )
+
+#define SPWRMAP_PCTRL2CFG_OR 0x8000U
+
+/** @} */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapPCTRL2 PCTRL2
+ *
+ * @brief Port control 2, ports 1-12 (SpaceWire ports and AMBA ports)
+ *
+ * @{
+ */
+
+#define SPWRMAP_PCTRL2_SM_SHIFT 24
+#define SPWRMAP_PCTRL2_SM_MASK 0xff000000U
+#define SPWRMAP_PCTRL2_SM_GET( _reg ) \
+ ( ( ( _reg ) >> 24 ) & 0xffU )
+#define SPWRMAP_PCTRL2_SM( _val ) ( ( _val ) << 24 )
+
+#define SPWRMAP_PCTRL2_SV_SHIFT 16
+#define SPWRMAP_PCTRL2_SV_MASK 0xff0000U
+#define SPWRMAP_PCTRL2_SV_GET( _reg ) \
+ ( ( ( _reg ) >> 16 ) & 0xffU )
+#define SPWRMAP_PCTRL2_SV( _val ) ( ( _val ) << 16 )
+
+#define SPWRMAP_PCTRL2_OR 0x8000U
+
+#define SPWRMAP_PCTRL2_UR 0x4000U
+
+#define SPWRMAP_PCTRL2_AT 0x1000U
+
+#define SPWRMAP_PCTRL2_AR 0x800U
+
+#define SPWRMAP_PCTRL2_IT 0x400U
+
+#define SPWRMAP_PCTRL2_IR 0x200U
+
+#define SPWRMAP_PCTRL2_SD_SHIFT 1
+#define SPWRMAP_PCTRL2_SD_MASK 0x3eU
+#define SPWRMAP_PCTRL2_SD_GET( _reg ) \
+ ( ( ( _reg ) >> 1 ) & 0x1fU )
+#define SPWRMAP_PCTRL2_SD( _val ) ( ( _val ) << 1 )
+
+#define SPWRMAP_PCTRL2_SC 0x1U
+
+/** @} */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapRTRCFG RTRCFG
+ *
+ * @brief Router configuration / status
+ *
+ * @{
+ */
+
+#define SPWRMAP_RTRCFG_SP_SHIFT 27
+#define SPWRMAP_RTRCFG_SP_MASK 0xf8000000U
+#define SPWRMAP_RTRCFG_SP_GET( _reg ) \
+ ( ( ( _reg ) >> 27 ) & 0x1fU )
+#define SPWRMAP_RTRCFG_SP( _val ) ( ( _val ) << 27 )
+
+#define SPWRMAP_RTRCFG_AP_SHIFT 22
+#define SPWRMAP_RTRCFG_AP_MASK 0x7c00000U
+#define SPWRMAP_RTRCFG_AP_GET( _reg ) \
+ ( ( ( _reg ) >> 22 ) & 0x1fU )
+#define SPWRMAP_RTRCFG_AP( _val ) ( ( _val ) << 22 )
+
+#define SPWRMAP_RTRCFG_SR 0x8000U
+
+#define SPWRMAP_RTRCFG_PE 0x4000U
+
+#define SPWRMAP_RTRCFG_IC 0x2000U
+
+#define SPWRMAP_RTRCFG_IS 0x1000U
+
+#define SPWRMAP_RTRCFG_IP 0x800U
+
+#define SPWRMAP_RTRCFG_AI 0x400U
+
+#define SPWRMAP_RTRCFG_AT 0x200U
+
+#define SPWRMAP_RTRCFG_IE 0x100U
+
+#define SPWRMAP_RTRCFG_RE 0x80U
+
+#define SPWRMAP_RTRCFG_EE 0x40U
+
+#define SPWRMAP_RTRCFG_SA 0x10U
+
+#define SPWRMAP_RTRCFG_TF 0x8U
+
+#define SPWRMAP_RTRCFG_ME 0x4U
+
+#define SPWRMAP_RTRCFG_TA 0x2U
+
+#define SPWRMAP_RTRCFG_PP 0x1U
+
+/** @} */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapTC TC
+ *
+ * @brief Time-code
+ *
+ * @{
+ */
+
+#define SPWRMAP_TC_RE 0x200U
+
+#define SPWRMAP_TC_EN 0x100U
+
+#define SPWRMAP_TC_CF_SHIFT 6
+#define SPWRMAP_TC_CF_MASK 0xc0U
+#define SPWRMAP_TC_CF_GET( _reg ) \
+ ( ( ( _reg ) >> 6 ) & 0x3U )
+#define SPWRMAP_TC_CF( _val ) ( ( _val ) << 6 )
+
+#define SPWRMAP_TC_TC_SHIFT 0
+#define SPWRMAP_TC_TC_MASK 0x3fU
+#define SPWRMAP_TC_TC_GET( _reg ) \
+ ( ( ( _reg ) >> 0 ) & 0x3fU )
+#define SPWRMAP_TC_TC( _val ) ( ( _val ) << 0 )
+
+/** @} */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapVER VER
+ *
+ * @brief Version / instance ID
+ *
+ * @{
+ */
+
+#define SPWRMAP_VER_MA_SHIFT 24
+#define SPWRMAP_VER_MA_MASK 0xff000000U
+#define SPWRMAP_VER_MA_GET( _reg ) \
+ ( ( ( _reg ) >> 24 ) & 0xffU )
+#define SPWRMAP_VER_MA( _val ) ( ( _val ) << 24 )
+
+#define SPWRMAP_VER_MI_SHIFT 16
+#define SPWRMAP_VER_MI_MASK 0xff0000U
+#define SPWRMAP_VER_MI_GET( _reg ) \
+ ( ( ( _reg ) >> 16 ) & 0xffU )
+#define SPWRMAP_VER_MI( _val ) ( ( _val ) << 16 )
+
+#define SPWRMAP_VER_PA_SHIFT 8
+#define SPWRMAP_VER_PA_MASK 0xff00U
+#define SPWRMAP_VER_PA_GET( _reg ) \
+ ( ( ( _reg ) >> 8 ) & 0xffU )
+#define SPWRMAP_VER_PA( _val ) ( ( _val ) << 8 )
+
+#define SPWRMAP_VER_ID_SHIFT 0
+#define SPWRMAP_VER_ID_MASK 0xffU
+#define SPWRMAP_VER_ID_GET( _reg ) \
+ ( ( ( _reg ) >> 0 ) & 0xffU )
+#define SPWRMAP_VER_ID( _val ) ( ( _val ) << 0 )
+
+/** @} */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapIDIV IDIV
+ *
+ * @brief Initialization divisor
+ *
+ * @{
+ */
+
+#define SPWRMAP_IDIV_ID_SHIFT 0
+#define SPWRMAP_IDIV_ID_MASK 0xffU
+#define SPWRMAP_IDIV_ID_GET( _reg ) \
+ ( ( ( _reg ) >> 0 ) & 0xffU )
+#define SPWRMAP_IDIV_ID( _val ) ( ( _val ) << 0 )
+
+/** @} */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapCFGWE CFGWE
+ *
+ * @brief Configuration port write enable
+ *
+ * @{
+ */
+
+#define SPWRMAP_CFGWE_WE 0x1U
+
+/** @} */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapPRESCALER PRESCALER
+ *
+ * @brief Timer prescaler reload
+ *
+ * @{
+ */
+
+#define SPWRMAP_PRESCALER_RL_SHIFT 0
+#define SPWRMAP_PRESCALER_RL_MASK 0xffffU
+#define SPWRMAP_PRESCALER_RL_GET( _reg ) \
+ ( ( ( _reg ) >> 0 ) & 0xffffU )
+#define SPWRMAP_PRESCALER_RL( _val ) ( ( _val ) << 0 )
+
+/** @} */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapIMASK IMASK
+ *
+ * @brief Interrupt mask
+ *
+ * @{
+ */
+
+#define SPWRMAP_IMASK_PE 0x400U
+
+#define SPWRMAP_IMASK_SR 0x200U
+
+#define SPWRMAP_IMASK_RS 0x100U
+
+#define SPWRMAP_IMASK_TT 0x80U
+
+#define SPWRMAP_IMASK_PL 0x40U
+
+#define SPWRMAP_IMASK_TS 0x20U
+
+#define SPWRMAP_IMASK_AC 0x10U
+
+#define SPWRMAP_IMASK_RE 0x8U
+
+#define SPWRMAP_IMASK_IA 0x4U
+
+#define SPWRMAP_IMASK_LE 0x2U
+
+#define SPWRMAP_IMASK_ME 0x1U
+
+/** @} */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapIPMASK IPMASK
+ *
+ * @brief Interrupt port mask
+ *
+ * @{
+ */
+
+#define SPWRMAP_IPMASK_IE_SHIFT 0
+#define SPWRMAP_IPMASK_IE_MASK 0xfffffU
+#define SPWRMAP_IPMASK_IE_GET( _reg ) \
+ ( ( ( _reg ) >> 0 ) & 0xfffffU )
+#define SPWRMAP_IPMASK_IE( _val ) ( ( _val ) << 0 )
+
+/** @} */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapPIP PIP
+ *
+ * @brief Port interrupt pending
+ *
+ * @{
+ */
+
+#define SPWRMAP_PIP_IP_SHIFT 0
+#define SPWRMAP_PIP_IP_MASK 0xfffffU
+#define SPWRMAP_PIP_IP_GET( _reg ) \
+ ( ( ( _reg ) >> 0 ) & 0xfffffU )
+#define SPWRMAP_PIP_IP( _val ) ( ( _val ) << 0 )
+
+/** @} */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapICODEGEN ICODEGEN
+ *
+ * @brief Interrupt code generation
+ *
+ * @{
+ */
+
+#define SPWRMAP_ICODEGEN_HI 0x200000U
+
+#define SPWRMAP_ICODEGEN_UA 0x100000U
+
+#define SPWRMAP_ICODEGEN_AH 0x80000U
+
+#define SPWRMAP_ICODEGEN_IT 0x40000U
+
+#define SPWRMAP_ICODEGEN_TE 0x20000U
+
+#define SPWRMAP_ICODEGEN_EN 0x10000U
+
+#define SPWRMAP_ICODEGEN_IN_SHIFT 0
+#define SPWRMAP_ICODEGEN_IN_MASK 0x3fU
+#define SPWRMAP_ICODEGEN_IN_GET( _reg ) \
+ ( ( ( _reg ) >> 0 ) & 0x3fU )
+#define SPWRMAP_ICODEGEN_IN( _val ) ( ( _val ) << 0 )
+
+/** @} */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapISR0 ISR0
+ *
+ * @brief Interrupt code distribution ISR register, interrupt 0-31
+ *
+ * @{
+ */
+
+#define SPWRMAP_ISR0_IB_SHIFT 0
+#define SPWRMAP_ISR0_IB_MASK 0xffffffffU
+#define SPWRMAP_ISR0_IB_GET( _reg ) \
+ ( ( ( _reg ) >> 0 ) & 0xffffffffU )
+#define SPWRMAP_ISR0_IB( _val ) ( ( _val ) << 0 )
+
+/** @} */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapISR1 ISR1
+ *
+ * @brief Interrupt code distribution ISR register, interrupt 32-63
+ *
+ * @{
+ */
+
+#define SPWRMAP_ISR1_IB_SHIFT 0
+#define SPWRMAP_ISR1_IB_MASK 0xffffffffU
+#define SPWRMAP_ISR1_IB_GET( _reg ) \
+ ( ( ( _reg ) >> 0 ) & 0xffffffffU )
+#define SPWRMAP_ISR1_IB( _val ) ( ( _val ) << 0 )
+
+/** @} */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapISRTIMER ISRTIMER
+ *
+ * @brief Interrupt code distribution ISR timer reload
+ *
+ * @{
+ */
+
+#define SPWRMAP_ISRTIMER_RL_SHIFT 0
+#define SPWRMAP_ISRTIMER_RL_MASK 0xffffU
+#define SPWRMAP_ISRTIMER_RL_GET( _reg ) \
+ ( ( ( _reg ) >> 0 ) & 0xffffU )
+#define SPWRMAP_ISRTIMER_RL( _val ) ( ( _val ) << 0 )
+
+/** @} */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapAITIMER AITIMER
+ *
+ * @brief Interrupt code distribution ACK-to-INT timer reload
+ *
+ * @{
+ */
+
+#define SPWRMAP_AITIMER_RL_SHIFT 0
+#define SPWRMAP_AITIMER_RL_MASK 0xffffU
+#define SPWRMAP_AITIMER_RL_GET( _reg ) \
+ ( ( ( _reg ) >> 0 ) & 0xffffU )
+#define SPWRMAP_AITIMER_RL( _val ) ( ( _val ) << 0 )
+
+/** @} */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapISRCTIMER ISRCTIMER
+ *
+ * @brief Interrupt code distribution ISR change timer reload
+ *
+ * @{
+ */
+
+#define SPWRMAP_ISRCTIMER_RL_SHIFT 0
+#define SPWRMAP_ISRCTIMER_RL_MASK 0x1fU
+#define SPWRMAP_ISRCTIMER_RL_GET( _reg ) \
+ ( ( ( _reg ) >> 0 ) & 0x1fU )
+#define SPWRMAP_ISRCTIMER_RL( _val ) ( ( _val ) << 0 )
+
+/** @} */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapLRUNSTAT LRUNSTAT
+ *
+ * @brief Link running status
+ *
+ * @{
+ */
+
+#define SPWRMAP_LRUNSTAT_LR_SHIFT 1
+#define SPWRMAP_LRUNSTAT_LR_MASK 0x7fffeU
+#define SPWRMAP_LRUNSTAT_LR_GET( _reg ) \
+ ( ( ( _reg ) >> 1 ) & 0x3ffffU )
+#define SPWRMAP_LRUNSTAT_LR( _val ) ( ( _val ) << 1 )
+
+/** @} */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapCAP CAP
+ *
+ * @brief Capability
+ *
+ * @{
+ */
+
+#define SPWRMAP_CAP_AF_SHIFT 24
+#define SPWRMAP_CAP_AF_MASK 0x3000000U
+#define SPWRMAP_CAP_AF_GET( _reg ) \
+ ( ( ( _reg ) >> 24 ) & 0x3U )
+#define SPWRMAP_CAP_AF( _val ) ( ( _val ) << 24 )
+
+#define SPWRMAP_CAP_PF_SHIFT 20
+#define SPWRMAP_CAP_PF_MASK 0x700000U
+#define SPWRMAP_CAP_PF_GET( _reg ) \
+ ( ( ( _reg ) >> 20 ) & 0x7U )
+#define SPWRMAP_CAP_PF( _val ) ( ( _val ) << 20 )
+
+#define SPWRMAP_CAP_RM_SHIFT 16
+#define SPWRMAP_CAP_RM_MASK 0x70000U
+#define SPWRMAP_CAP_RM_GET( _reg ) \
+ ( ( ( _reg ) >> 16 ) & 0x7U )
+#define SPWRMAP_CAP_RM( _val ) ( ( _val ) << 16 )
+
+#define SPWRMAP_CAP_AS 0x4000U
+
+#define SPWRMAP_CAP_AX 0x2000U
+
+#define SPWRMAP_CAP_DP 0x1000U
+
+#define SPWRMAP_CAP_ID 0x800U
+
+#define SPWRMAP_CAP_SD 0x400U
+
+#define SPWRMAP_CAP_PC_SHIFT 5
+#define SPWRMAP_CAP_PC_MASK 0x3e0U
+#define SPWRMAP_CAP_PC_GET( _reg ) \
+ ( ( ( _reg ) >> 5 ) & 0x1fU )
+#define SPWRMAP_CAP_PC( _val ) ( ( _val ) << 5 )
+
+#define SPWRMAP_CAP_CC_SHIFT 0
+#define SPWRMAP_CAP_CC_MASK 0x1fU
+#define SPWRMAP_CAP_CC_GET( _reg ) \
+ ( ( ( _reg ) >> 0 ) & 0x1fU )
+#define SPWRMAP_CAP_CC( _val ) ( ( _val ) << 0 )
+
+/** @} */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapPNPVEND PNPVEND
+ *
+ * @brief SpaceWire Plug-and-Play - Device Vendor and Product ID
+ *
+ * @{
+ */
+
+#define SPWRMAP_PNPVEND_VI_SHIFT 16
+#define SPWRMAP_PNPVEND_VI_MASK 0xffff0000U
+#define SPWRMAP_PNPVEND_VI_GET( _reg ) \
+ ( ( ( _reg ) >> 16 ) & 0xffffU )
+#define SPWRMAP_PNPVEND_VI( _val ) ( ( _val ) << 16 )
+
+#define SPWRMAP_PNPVEND_PI_SHIFT 0
+#define SPWRMAP_PNPVEND_PI_MASK 0x3ffffffU
+#define SPWRMAP_PNPVEND_PI_GET( _reg ) \
+ ( ( ( _reg ) >> 0 ) & 0x3ffffffU )
+#define SPWRMAP_PNPVEND_PI( _val ) ( ( _val ) << 0 )
+
+/** @} */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapPNPUVEND PNPUVEND
+ *
+ * @brief SpaceWire Plug-and-Play - Unit Vendor and Product ID
+ *
+ * @{
+ */
+
+#define SPWRMAP_PNPUVEND_VI_SHIFT 16
+#define SPWRMAP_PNPUVEND_VI_MASK 0xffff0000U
+#define SPWRMAP_PNPUVEND_VI_GET( _reg ) \
+ ( ( ( _reg ) >> 16 ) & 0xffffU )
+#define SPWRMAP_PNPUVEND_VI( _val ) ( ( _val ) << 16 )
+
+#define SPWRMAP_PNPUVEND_PI_SHIFT 0
+#define SPWRMAP_PNPUVEND_PI_MASK 0x3ffffffU
+#define SPWRMAP_PNPUVEND_PI_GET( _reg ) \
+ ( ( ( _reg ) >> 0 ) & 0x3ffffffU )
+#define SPWRMAP_PNPUVEND_PI( _val ) ( ( _val ) << 0 )
+
+/** @} */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapPNPUSN PNPUSN
+ *
+ * @brief SpaceWire Plug-and-Play - Unit Serial Number
+ *
+ * @{
+ */
+
+#define SPWRMAP_PNPUSN_SN_SHIFT 0
+#define SPWRMAP_PNPUSN_SN_MASK 0xffffffffU
+#define SPWRMAP_PNPUSN_SN_GET( _reg ) \
+ ( ( ( _reg ) >> 0 ) & 0xffffffffU )
+#define SPWRMAP_PNPUSN_SN( _val ) ( ( _val ) << 0 )
+
+/** @} */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapMAXPLEN MAXPLEN
+ *
+ * @brief Maximum packet length, ports 0-12
+ *
+ * @{
+ */
+
+#define SPWRMAP_MAXPLEN_ML_SHIFT 0
+#define SPWRMAP_MAXPLEN_ML_MASK 0x1ffffffU
+#define SPWRMAP_MAXPLEN_ML_GET( _reg ) \
+ ( ( ( _reg ) >> 0 ) & 0x1ffffffU )
+#define SPWRMAP_MAXPLEN_ML( _val ) ( ( _val ) << 0 )
+
+/** @} */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapCREDCNT CREDCNT
+ *
+ * @brief Credit counter, ports 1-8
+ *
+ * @{
+ */
+
+#define SPWRMAP_CREDCNT_OC_SHIFT 6
+#define SPWRMAP_CREDCNT_OC_MASK 0xfc0U
+#define SPWRMAP_CREDCNT_OC_GET( _reg ) \
+ ( ( ( _reg ) >> 6 ) & 0x3fU )
+#define SPWRMAP_CREDCNT_OC( _val ) ( ( _val ) << 6 )
+
+#define SPWRMAP_CREDCNT_IC_SHIFT 0
+#define SPWRMAP_CREDCNT_IC_MASK 0x3fU
+#define SPWRMAP_CREDCNT_IC_GET( _reg ) \
+ ( ( ( _reg ) >> 0 ) & 0x3fU )
+#define SPWRMAP_CREDCNT_IC( _val ) ( ( _val ) << 0 )
+
+/** @} */
+
+/**
+ * @defgroup DevGrlibIfSpwrmapRTCOMB RTCOMB
+ *
+ * @brief Routing table, combined port mapping and address control, addresses
+ * 1-255
+ *
+ * @{
+ */
+
+#define SPWRMAP_RTCOMB_SR 0x80000000U
+
+#define SPWRMAP_RTCOMB_EN 0x40000000U
+
+#define SPWRMAP_RTCOMB_PR 0x20000000U
+
+#define SPWRMAP_RTCOMB_HD 0x10000000U
+
+#define SPWRMAP_RTCOMB_PE_SHIFT 1
+#define SPWRMAP_RTCOMB_PE_MASK 0xffffeU
+#define SPWRMAP_RTCOMB_PE_GET( _reg ) \
+ ( ( ( _reg ) >> 1 ) & 0x7ffffU )
+#define SPWRMAP_RTCOMB_PE( _val ) ( ( _val ) << 1 )
+
+#define SPWRMAP_RTCOMB_PD 0x1U
+
+/** @} */
+
+/**
+ * @brief This set of defines the SpaceWire Remote Memory Access Protocol
+ * (RMAP) address map.
+ */
+typedef struct {
+ uint32_t reserved_0_4;
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapRTPMAP.
+ */
+ uint32_t rtpmap;
+
+ uint32_t reserved_8_404[ 255 ];
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapRTACTRL.
+ */
+ uint32_t rtactrl;
+
+ uint32_t reserved_408_800[ 254 ];
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapPCTRLCFG.
+ */
+ uint32_t pctrlcfg;
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapPCTRL.
+ */
+ uint32_t pctrl;
+
+ uint32_t reserved_808_880[ 30 ];
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapPSTSCFG.
+ */
+ uint32_t pstscfg;
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapPSTS.
+ */
+ uint32_t psts;
+
+ uint32_t reserved_888_900[ 30 ];
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapPTIMER.
+ */
+ uint32_t ptimer;
+
+ uint32_t reserved_904_980[ 31 ];
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapPCTRL2CFG.
+ */
+ uint32_t pctrl2cfg;
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapPCTRL2.
+ */
+ uint32_t pctrl2;
+
+ uint32_t reserved_988_a00[ 30 ];
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapRTRCFG.
+ */
+ uint32_t rtrcfg;
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapTC.
+ */
+ uint32_t tc;
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapVER.
+ */
+ uint32_t ver;
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapIDIV.
+ */
+ uint32_t idiv;
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapCFGWE.
+ */
+ uint32_t cfgwe;
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapPRESCALER.
+ */
+ uint32_t prescaler;
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapIMASK.
+ */
+ uint32_t imask;
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapIPMASK.
+ */
+ uint32_t ipmask;
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapPIP.
+ */
+ uint32_t pip;
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapICODEGEN.
+ */
+ uint32_t icodegen;
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapISR0.
+ */
+ uint32_t isr0;
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapISR1.
+ */
+ uint32_t isr1;
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapISRTIMER.
+ */
+ uint32_t isrtimer;
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapAITIMER.
+ */
+ uint32_t aitimer;
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapISRCTIMER.
+ */
+ uint32_t isrctimer;
+
+ uint32_t reserved_a3c_a40;
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapLRUNSTAT.
+ */
+ uint32_t lrunstat;
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapCAP.
+ */
+ uint32_t cap;
+
+ uint32_t reserved_a48_a50[ 2 ];
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapPNPVEND.
+ */
+ uint32_t pnpvend;
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapPNPUVEND.
+ */
+ uint32_t pnpuvend;
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapPNPUSN.
+ */
+ uint32_t pnpusn;
+
+ uint32_t reserved_a5c_e00[ 233 ];
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapMAXPLEN.
+ */
+ uint32_t maxplen;
+
+ uint32_t reserved_e04_e84[ 32 ];
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapCREDCNT.
+ */
+ uint32_t credcnt;
+
+ uint32_t reserved_e88_1004[ 95 ];
+
+ /**
+ * @brief See @ref DevGrlibIfSpwrmapRTCOMB.
+ */
+ uint32_t rtcomb;
+} spwrmap;
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DEV_GRLIB_SPWRMAP_H */