// SPDX-License-Identifier: LGPL-3.0-or-other // Copyright (C) 2021 Contributors to the SLS Detector Package #pragma once #define CTRLREG1 (0x0) #define CTR1_OFST (0) #define CTR1_MSK (0xffffffff << CTR1_OFST) #define CTRLREG2 (0x4) #define CTRL2_OFST (0) #define CTRL2_MSK (0xffffffff << CTRL2_OFST) #define STATUSREG1 (0x8) #define STATUS1_OFST (0) #define STATUS1_MSK (0xffffffff << STATUS1_OFST) #define STATUSREG2 (0xC) #define STATUS2_OFST (0) #define STATUS2_MSK (0xffffffff << STATUS2_OFST) #define FPGAVERSIONREG (0x10) #define COMPDATE_OFST (0) #define COMPDATE_MSK (0x00ffffff << COMPDATE_OFST) #define DETTYPE_OFST (24) #define DETTYPE_MSK (0x000000ff << DETTYPE_OFST) #define PKTPACKETLENGTHREG (0x28) #define PACKETLENGTH1G_OFST (0) #define PACKETLENGTH1G_MSK (0x0000ffff << PACKETLENGTH1G_OFST) #define PACKETLENGTH10G_OFST (16) #define PACKETLENGTH10G_MSK (0x0000ffff << PACKETLENGTH10G_OFST) #define PKTNOPACKETSREG (0x30) #define NOPACKETS1G_OFST (0) #define NOPACKETS1G_MSK (0x0000003f << NOPACKETS1G_OFST) #define NOPACKETS10G_OFST (8) #define NOPACKETS10G_MSK (0x0000003f << NOPACKETS10G_OFST) #define PKTCTRLREG (0x38) #define NSERVERS_OFST (0) #define NSERVERS_MSK (0x0000003f << NSERVERS_OFST) #define SERVERSTART_OFST (6) #define SERVERSTART_MSK (0x0000001f << SERVERSTART_OFST) #define ETHINTERF_OFST (11) #define ETHINTERF_MSK (0x00000001 << ETHINTERF_OFST) #define PKTCOORDREG1 (0x40) #define COORDX_OFST (0) #define COORDX_MSK (0x0000ffff << COORDX_OFST) #define COORDY_OFST (16) #define COORDY_MSK (0x0000ffff << COORDY_OFST) #define PKTCOORDREG2 (0x48) #define COORDZ_OFST (0) #define COORDZ_MSK (0x0000ffff << COORDZ_OFST) #define FLOWSTATUSREG (0x100) #define RSMBUSY_OFST (0) #define RSMBUSY_MSK (0x00000001 << RSMBUSY_OFST) #define RSMTRGWAIT_OFST (3) #define RSMTRGWAIT_MSK (0x00000001 << RSMTRGWAIT_OFST) #define CSMBUSY_OFST (17) #define CSMBUSY_MSK (0x00000001 << CSMBUSY_OFST) #define FLOWCONTROLREG (0x108) #define STARTF_OFST (0) #define STARTF_MSK (0x00000001 << STARTF_OFST) #define STOPF_OFST (1) #define STOPF_MSK (0x00000001 << STOPF_OFST) #define RSTF_OFST (2) #define RSTF_MSK (0x00000001 << RSTF_OFST) #define SWTRIGGERF_OFST (3) #define SWTRIGGERF_MSK (0x00000001 << SWTRIGGERF_OFST) #define TRIGGERENABLE_OFST (4) #define TRIGGERENABLE_MSK (0x00000001 << TRIGGERENABLE_OFST) #define TIMEFROMSTARTOUTREG1 (0x110) #define TIMEFROMSTARTOUT1_OFST (0) #define TIMEFROMSTARTOUT1_MSK (0xffffffff << TIMEFROMSTARTOUT1_OFST) #define TIMEFROMSTARTOUTREG2 (0x114) #define TIMEFROMSTARTOUT2_OFST (0) #define TIMEFROMSTARTOUT2_MSK (0xffffffff << TIMEFROMSTARTOUT2_OFST) #define FRAMESFROMSTARTOUTREG1 (0x118) #define FRAMESFROMSTARTOUT1_OFST (0) #define FRAMESFROMSTARTOUT1_MSK (0xffffffff << FRAMESFROMSTARTOUT1_OFST) #define FRAMESFROMSTARTOUTREG2 (0x11C) #define FRAMESFROMSTARTOUT2_OFST (0) #define FRAMESFROMSTARTOUT2_MSK (0xffffffff << FRAMESFROMSTARTOUT2_OFST) #define FRAMETIMEOUTREG1 (0x120) #define FRAMETIMEOUT1_OFST (0) #define FRAMETIMEOUT1_MSK (0xffffffff << FRAMETIMEOUT1_OFST) #define FRAMETIMEOUTREG2 (0x124) #define FRAMETIMEOUT2_OFST (0) #define FRAMETIMEOUT2_MSK (0xffffffff << FRAMETIMEOUT2_OFST) #define DELAYOUTREG1 (0x128) #define DELAYOUT1_OFST (0) #define DELAYOUT1_MSK (0xffffffff << DELAYOUT1_OFST) #define DELAYOUTREG2 (0x12C) #define DELAYOUT2_OFST (0) #define DELAYOUT2_MSK (0xffffffff << DELAYOUT2_OFST) #define CYCLESOUTREG1 (0x130) #define CYCLESOUT1_OFST (0) #define CYCLESOUT1_MSK (0xffffffff << CYCLESOUT1_OFST) #define CYCLESOUTREG2 (0x134) #define CYCLESOUT2_OFST (0) #define CYCLESOUT2_MSK (0xffffffff << CYCLESOUT2_OFST) #define FRAMESOUTREG1 (0x138) #define FRAMESOUT1_OFST (0) #define FRAMESOUT1_MSK (0xffffffff << FRAMESOUT1_OFST) #define FRAMESOUTREG2 (0x13C) #define FRAMESOUT2_OFST (0) #define FRAMESOUT2_MSK (0xffffffff << FRAMESOUT2_OFST) #define PERIODOUTREG1 (0x140) #define PERIODOUT1_OFST (0) #define PERIODOUT1_MSK (0xffffffff << PERIODOUT1_OFST) #define PERIODOUTREG2 (0x144) #define PERIODOUT2_OFST (0) #define PERIODOUT2_MSK (0xffffffff << PERIODOUT2_OFST) #define DELAYINREG1 (0x148) #define DELAYIN1_OFST (0) #define DELAYIN1_MSK (0xffffffff << DELAYIN1_OFST) #define DELAYINREG2 (0x14C) #define DELAYIN2_OFST (0) #define DELAYIN2_MSK (0xffffffff << DELAYIN2_OFST) #define CYCLESINREG1 (0x150) #define CYCLESIN1_OFST (0) #define CYCLESIN1_MSK (0xffffffff << CYCLESIN1_OFST) #define CYCLESINREG2 (0x154) #define CYCLESIN2_OFST (0) #define CYCLESIN2_MSK (0xffffffff << CYCLESIN2_OFST) #define FRAMESINREG1 (0x158) #define FRAMESIN1_OFST (0) #define FRAMESIN1_MSK (0xffffffff << FRAMESIN1_OFST) #define FRAMESINREG2 (0x15C) #define FRAMESIN2_OFST (0) #define FRAMESIN2_MSK (0xffffffff << FRAMESIN2_OFST) #define PERIODINREG1 (0x160) #define PERIODIN1_OFST (0) #define PERIODIN1_MSK (0xffffffff << PERIODIN1_OFST) #define PERIODINREG2 (0x164) #define PERIODIN2_OFST (0) #define PERIODIN2_MSK (0xffffffff << PERIODIN2_OFST) #define PATTERNOUTREG0 (0x200) #define PATTERNOUT0_OFST (0) #define PATTERNOUT0_MSK (0xffffffff << PATTERNOUT0_OFST) #define PATTERNOUTREG1 (0x204) #define PATTERNOUT1_OFST (0) #define PATTERNOUT1_MSK (0xffffffff << PATTERNOUT1_OFST) #define PATTERNINREG0 (0x208) #define PATTERNIN0_OFST (0) #define PATTERNIN0_MSK (0xffffffff << PATTERNIN0_OFST) #define PATTERNINREG1 (0x20C) #define PATTERNIN1_OFST (0) #define PATTERNIN1_MSK (0xffffffff << PATTERNIN1_OFST) #define PATTERNIOMASKREG0 (0x210) #define PATTERNIOMASK0_OFST (0) #define PATTERNIOMASK0_MSK (0xffffffff << PATTERNIOMASK0_OFST) #define PATTERNIOMASKREG1 (0x214) #define PATTERNIOMASK1_OFST (0) #define PATTERNIOMASK1_MSK (0xffffffff << PATTERNIOMASK1_OFST) #define PATTERNIOSETREG0 (0x218) #define PATTERNIOSET0_OFST (0) #define PATTERNIOSET0_MSK (0xffffffff << PATTERNIOSET0_OFST) #define PATTERNIOSETREG1 (0x21C) #define PATTERNIOSET1_OFST (0) #define PATTERNIOSET1_MSK (0xffffffff << PATTERNIOSET1_OFST) #define PATTERNCONTROLREG (0x220) #define PATTERNWRBIT_OFST (0) #define PATTERNWRBIT_MSK (0x00000001 << PATTERNWRBIT_OFST) #define PATTERNRDBIT_OFST (1) #define PATTERNRDBIT_MSK (0x00000001 << PATTERNRDBIT_OFST) #define PATTERNADDRESSPTR_OFST (16) #define PATTERNADDRESSPTR_MSK (0x00001fff << PATTERNADDRESSPTR_OFST) #define PATTERNLIMITADDRESSREG (0x228) #define PATTERNLIMITADDRESS_OFST (0) #define PATTERNLIMITADDRESS_MSK (0xffffffff << PATTERNLIMITADDRESS_OFST) #define PATTERNLOOP1ADDRESSREG (0x230) #define PATTERNLOOP1ADDRESS_OFST (0) #define PATTERNLOOP1ADDRESS_MSK (0xffffffff << PATTERNLOOP1ADDRESS_OFST) #define PATTERNNLOOPS1REG (0x238) #define PATTERNNLOOPS1_OFST (0) #define PATTERNNLOOPS1_MSK (0xffffffff << PATTERNNLOOPS1_OFST) #define PATTERNWAIT1ADDRESSREG (0x240) #define PATTERNWAIT1ADDRESS_OFST (0) #define PATTERNWAIT1ADDRESS_MSK (0xffffffff << PATTERNWAIT1ADDRESS_OFST) #define PATTERNWAIT1TIMEREG1 (0x248) #define PATTERNWAIT1TIME1_OFST (0) #define PATTERNWAIT1TIME1_MSK (0xffffffff << PATTERNWAIT1TIME1_OFST) #define PATTERNWAIT1TIMEREG2 (0x24C) #define PATTERNWAIT1TIME2_OFST (0) #define PATTERNWAIT1TIME2_MSK (0xffffffff << PATTERNWAIT1TIME2_OFST) #define PATTERNLOOP2ADDRESSREG (0x250) #define PATTERNLOOP2ADDRESS_OFST (0) #define PATTERNLOOP2ADDRESS_MSK (0xffffffff << PATTERNLOOP2ADDRESS_OFST) #define PATTERNNLOOPS2REG (0x258) #define PATTERNNLOOPS2_OFST (0) #define PATTERNNLOOPS2_MSK (0xffffffff << PATTERNNLOOPS2_OFST) #define PATTERNWAIT2ADDRESSREG (0x260) #define PATTERNWAIT2ADDRESS_OFST (0) #define PATTERNWAIT2ADDRESS_MSK (0xffffffff << PATTERNWAIT2ADDRESS_OFST) #define PATTERNWAIT2TIMEREG1 (0x268) #define PATTERNWAIT2TIME1_OFST (0) #define PATTERNWAIT2TIME1_MSK (0xffffffff << PATTERNWAIT2TIME1_OFST) #define PATTERNWAIT2TIMEREG2 (0x26C) #define PATTERNWAIT2TIME2_OFST (0) #define PATTERNWAIT2TIME2_MSK (0xffffffff << PATTERNWAIT2TIME2_OFST) #define PATTERNLOOP3ADDRESSREG (0x270) #define PATTERNLOOP3ADDRESS_OFST (0) #define PATTERNLOOP3ADDRESS_MSK (0xffffffff << PATTERNLOOP3ADDRESS_OFST) #define PATTERNNLOOPS3REG (0x278) #define PATTERNNLOOPS3_OFST (0) #define PATTERNNLOOPS3_MSK (0xffffffff << PATTERNNLOOPS3_OFST) #define PATTERNWAIT3ADDRESSREG (0x280) #define PATTERNWAIT3ADDRESS_OFST (0) #define PATTERNWAIT3ADDRESS_MSK (0xffffffff << PATTERNWAIT3ADDRESS_OFST) #define PATTERNWAIT3TIMEREG1 (0x288) #define PATTERNWAIT3TIME1_OFST (0) #define PATTERNWAIT3TIME1_MSK (0xffffffff << PATTERNWAIT3TIME1_OFST) #define PATTERNWAIT3TIMEREG2 (0x28C) #define PATTERNWAIT3TIME2_OFST (0) #define PATTERNWAIT3TIME2_MSK (0xffffffff << PATTERNWAIT3TIME2_OFST) #define PATTERNLOOP4ADDRESSREG (0x290) #define PATTERNLOOP4ADDRESS_OFST (0) #define PATTERNLOOP4ADDRESS_MSK (0xffffffff << PATTERNLOOP4ADDRESS_OFST) #define PATTERNNLOOPS4REG (0x298) #define PATTERNNLOOPS4_OFST (0) #define PATTERNNLOOPS4_MSK (0xffffffff << PATTERNNLOOPS4_OFST) #define PATTERNWAIT4ADDRESSREG (0x300) #define PATTERNWAIT4ADDRESS_OFST (0) #define PATTERNWAIT4ADDRESS_MSK (0xffffffff << PATTERNWAIT4ADDRESS_OFST) #define PATTERNWAIT4TIMEREG1 (0x308) #define PATTERNWAI4TIME1_OFST (0) #define PATTERNWAI4TIME1_MSK (0xffffffff << PATTERNWAI4TIME1_OFST) #define PATTERNWAIT4TIMEREG2 (0x30C) #define PATTERNWAIT4TIME2_OFST (0) #define PATTERNWAIT4TIME2_MSK (0xffffffff << PATTERNWAIT4TIME2_OFST) #define PATTERNLOOP5ADDRESSREG (0x310) #define PATTERNLOOP5ADDRESS_OFST (0) #define PATTERNLOOP5ADDRESS_MSK (0xffffffff << PATTERNLOOP5ADDRESS_OFST) #define PATTERNNLOOPS5REG (0x318) #define PATTERNNLOOPS5_OFST (0) #define PATTERNNLOOPS5_MSK (0xffffffff << PATTERNNLOOPS5_OFST) #define PATTERNWAIT5ADDRESSREG (0x320) #define PATTERNWAIT5ADDRESS_OFST (0) #define PATTERNWAIT5ADDRESS_MSK (0xffffffff << PATTERNWAIT5ADDRESS_OFST) #define PATTERNWAIT5TIMEREG1 (0x328) #define PATTERNWAIT5TIME1_OFST (0) #define PATTERNWAIT5TIME1_MSK (0xffffffff << PATTERNWAIT5TIME1_OFST) #define PATTERNWAIT5TIMEREG2 (0x32C) #define PATTERNWAIT5TIME2_OFST (0) #define PATTERNWAIT5TIME2_MSK (0xffffffff << PATTERNWAIT5TIME2_OFST) #define PATTERNLOOP6ADDRESSREG (0x330) #define PATTERNLOOP6ADDRESS_OFST (0) #define PATTERNLOOP6ADDRESS_MSK (0xffffffff << PATTERNLOOP6ADDRESS_OFST) #define PATTERNNLOOPS6REG (0x338) #define PATTERNNLOOPS6_OFST (0) #define PATTERNNLOOPS6_MSK (0xffffffff << PATTERNNLOOPS6_OFST) #define PATTERNWAIT6ADDRESSREG (0x340) #define PATTERNWAIT6ADDRESS_OFST (0) #define PATTERNWAIT6ADDRESS_MSK (0xffffffff << PATTERNWAIT6ADDRESS_OFST) #define PATTERNWAIT6TIMEREG1 (0x348) #define PATTERNWAIT6TIME1_OFST (0) #define PATTERNWAIT6TIME1_MSK (0xffffffff << PATTERNWAIT6TIME1_OFST) #define PATTERNWAIT6TIMEREG2 (0x34C) #define PATTERNWAIT6TIME2_OFST (0) #define PATTERNWAIT6TIME2_MSK (0xffffffff << PATTERNWAIT6TIME2_OFST) #define EXPCTRLREG (0x400) #define STARTP_OFST (0) #define STARTP_MSK (0x00000001 << STARTP_OFST) #define EXPFRAMESREG (0x408) #define NOFRAMES_OFST (0) #define NOFRAMES_MSK (0xffffffff << NOFRAMES_OFST) #define EXPTIMEREG (0x410) #define EXPTIME_OFST (0) #define EXPTIME_MSK (0xffffffff << EXPTIME_OFST)