diff options
Diffstat (limited to 'src/build/citest/etc/patches/p8_inst.act')
-rw-r--r-- | src/build/citest/etc/patches/p8_inst.act | 1275 |
1 files changed, 1246 insertions, 29 deletions
diff --git a/src/build/citest/etc/patches/p8_inst.act b/src/build/citest/etc/patches/p8_inst.act index 523acd32b..f9b47ae21 100644 --- a/src/build/citest/etc/patches/p8_inst.act +++ b/src/build/citest/etc/patches/p8_inst.act @@ -2,7 +2,8 @@ # Flag PTR/DCR# Userid Date Description # ---- -------- -------- -------- ----------- -# D841334 dcrowell 06/11/11 File Created +# D841334 dcrowell 06/11/11 File Created +# @01 D846452 dcrowell 07/31/12 Add Winkle/IPI support # Actions work like this: @@ -11,10 +12,6 @@ # # See p8.chip for THREADSTATE bit definitions -#NOTE: Hostboot patched version is hardcoded to Core5 -#NOTE: Hostboot patched version does not set NIA for SRESET - - ################### ## Scom Triggers ## @@ -24,8 +21,8 @@ CAUSE_EFFECT CHIPLETS ex { LABEL=[Sreset Instructions - cXt0] WATCH=[REG(MYCHIPLET,0x013000)] # RAS Control Reg CAUSE: TARGET=[REG(MYCHIPLET,0x013000)] OP=[BIT,ON] BIT=[60] # SRESET - #EFFECT: TARGET=[PROCREG(nia, 5, 0)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)] - EFFECT: TARGET=[MODULE(startInstructions, 5, 0)] OP=[MODULECALL] + EFFECT: TARGET=[PROCREG(nia, MYCORE, 0)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)] + EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 0)] OP=[MODULECALL] # Clear quiesce, por, maint mode, and all idle states # Set running, active EFFECT: TARGET=[THREADSTATE(MYCHIPLET,0x0)] OP=[EQUALTO,BUF] DATA=[LITERAL(32,28000000)] @@ -36,8 +33,8 @@ CAUSE_EFFECT CHIPLETS ex { LABEL=[Sreset Instructions - cXt1] WATCH=[REG(MYCHIPLET,0x013010)] # RAS Control Reg CAUSE: TARGET=[REG(MYCHIPLET,0x013010)] OP=[BIT,ON] BIT=[60] # SRESET - #EFFECT: TARGET=[PROCREG(nia, 5, 1)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)] - EFFECT: TARGET=[MODULE(startInstructions, 5, 1)] OP=[MODULECALL] # Start Hostboot + EFFECT: TARGET=[PROCREG(nia, MYCORE, 1)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)] + EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 1)] OP=[MODULECALL] # Start Hostboot # Clear quiesce, por, maint mode, and all idle states # Set running, active EFFECT: TARGET=[THREADSTATE(MYCHIPLET,0x1)] OP=[EQUALTO,BUF] DATA=[LITERAL(32,28000000)] @@ -48,8 +45,8 @@ CAUSE_EFFECT CHIPLETS ex { LABEL=[Sreset Instructions - cXt2] WATCH=[REG(MYCHIPLET,0x013020)] # RAS Control Reg CAUSE: TARGET=[REG(MYCHIPLET,0x013020)] OP=[BIT,ON] BIT=[60] # SRESET - #EFFECT: TARGET=[PROCREG(nia, 5, 2)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)] - EFFECT: TARGET=[MODULE(startInstructions, 5, 2)] OP=[MODULECALL] # Start Hostboot + EFFECT: TARGET=[PROCREG(nia, MYCORE, 2)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)] + EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 2)] OP=[MODULECALL] # Start Hostboot # Clear quiesce, por, maint mode, and all idle states # Set running, active EFFECT: TARGET=[THREADSTATE(MYCHIPLET,0x2)] OP=[EQUALTO,BUF] DATA=[LITERAL(32,28000000)] @@ -60,8 +57,8 @@ CAUSE_EFFECT CHIPLETS ex { LABEL=[Sreset Instructions - cXt3] WATCH=[REG(MYCHIPLET,0x013030)] # RAS Control Reg CAUSE: TARGET=[REG(MYCHIPLET,0x013030)] OP=[BIT,ON] BIT=[60] # SRESET - #EFFECT: TARGET=[PROCREG(nia, 5, 3)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)] - EFFECT: TARGET=[MODULE(startInstructions, 5, 3)] OP=[MODULECALL] # Start Hostboot + EFFECT: TARGET=[PROCREG(nia, MYCORE, 3)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)] + EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 3)] OP=[MODULECALL] # Start Hostboot # Clear quiesce, por, maint mode, and all idle states # Set running, active EFFECT: TARGET=[THREADSTATE(MYCHIPLET,0x3)] OP=[EQUALTO,BUF] DATA=[LITERAL(32,28000000)] @@ -72,8 +69,8 @@ CAUSE_EFFECT CHIPLETS ex { LABEL=[Sreset Instructions - cXt4] WATCH=[REG(MYCHIPLET,0x013040)] # RAS Control Reg CAUSE: TARGET=[REG(MYCHIPLET,0x013040)] OP=[BIT,ON] BIT=[60] # SRESET - #EFFECT: TARGET=[PROCREG(nia, 5, 4)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)] - EFFECT: TARGET=[MODULE(startInstructions, 5, 4)] OP=[MODULECALL] # Start Hostboot + EFFECT: TARGET=[PROCREG(nia, MYCORE, 4)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)] + EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 4)] OP=[MODULECALL] # Start Hostboot # Clear quiesce, por, maint mode, and all idle states # Set running, active EFFECT: TARGET=[THREADSTATE(MYCHIPLET,0x4)] OP=[EQUALTO,BUF] DATA=[LITERAL(32,28000000)] @@ -84,8 +81,8 @@ CAUSE_EFFECT CHIPLETS ex { LABEL=[Sreset Instructions - cXt5] WATCH=[REG(MYCHIPLET,0x013050)] # RAS Control Reg CAUSE: TARGET=[REG(MYCHIPLET,0x013050)] OP=[BIT,ON] BIT=[60] # SRESET - #EFFECT: TARGET=[PROCREG(nia, 5, 5)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)] - EFFECT: TARGET=[MODULE(startInstructions, 5, 5)] OP=[MODULECALL] # Start Hostboot + EFFECT: TARGET=[PROCREG(nia, MYCORE, 5)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)] + EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 5)] OP=[MODULECALL] # Start Hostboot # Clear quiesce, por, maint mode, and all idle states # Set running, active EFFECT: TARGET=[THREADSTATE(MYCHIPLET,0x5)] OP=[EQUALTO,BUF] DATA=[LITERAL(32,28000000)] @@ -96,8 +93,8 @@ CAUSE_EFFECT CHIPLETS ex { LABEL=[Sreset Instructions - cXt6] WATCH=[REG(MYCHIPLET,0x013060)] # RAS Control Reg CAUSE: TARGET=[REG(MYCHIPLET,0x013060)] OP=[BIT,ON] BIT=[60] # SRESET - #EFFECT: TARGET=[PROCREG(nia, 5, 6)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)] - EFFECT: TARGET=[MODULE(startInstructions, 5, 6)] OP=[MODULECALL] # Start Hostboot + EFFECT: TARGET=[PROCREG(nia, MYCORE, 6)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)] + EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 6)] OP=[MODULECALL] # Start Hostboot # Clear quiesce, por, maint mode, and all idle states # Set running, active EFFECT: TARGET=[THREADSTATE(MYCHIPLET,0x6)] OP=[EQUALTO,BUF] DATA=[LITERAL(32,28000000)] @@ -108,8 +105,8 @@ CAUSE_EFFECT CHIPLETS ex { LABEL=[Sreset Instructions - cXt7] WATCH=[REG(MYCHIPLET,0x013070)] # RAS Control Reg CAUSE: TARGET=[REG(MYCHIPLET,0x013070)] OP=[BIT,ON] BIT=[60] # SRESET - #EFFECT: TARGET=[PROCREG(nia, 5, 7)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)] - EFFECT: TARGET=[MODULE(startInstructions, 5, 7)] OP=[MODULECALL] # Start Hostboot + EFFECT: TARGET=[PROCREG(nia, MYCORE, 7)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)] + EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 7)] OP=[MODULECALL] # Start Hostboot # Clear quiesce, por, maint mode, and all idle states # Set running, active EFFECT: TARGET=[THREADSTATE(MYCHIPLET,0x7)] OP=[EQUALTO,BUF] DATA=[LITERAL(32,28000000)] @@ -123,7 +120,7 @@ CAUSE_EFFECT CHIPLETS ex { LABEL=[Start Instructions - cXt0] WATCH=[REG(MYCHIPLET,0x013000)] # RAS Control Reg CAUSE: TARGET=[REG(MYCHIPLET,0x013000)] OP=[BIT,ON] BIT=[62] # Start - EFFECT: TARGET=[MODULE(startInstructions, 5, 0)] OP=[MODULECALL] + EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 0)] OP=[MODULECALL] # Clear quiesce, por, maint mode # Set running # Leave other bits alone @@ -135,7 +132,7 @@ CAUSE_EFFECT CHIPLETS ex { LABEL=[Start Instructions - cXt1] WATCH=[REG(MYCHIPLET,0x013010)] # RAS Control Reg CAUSE: TARGET=[REG(MYCHIPLET,0x013010)] OP=[BIT,ON] BIT=[62] # Start - EFFECT: TARGET=[MODULE(startInstructions, 5, 1)] OP=[MODULECALL] # Start Hostboot + EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 1)] OP=[MODULECALL] # Start Hostboot # Clear quiesce, por, maint mode # Set running # Leave other bits alone @@ -147,7 +144,7 @@ CAUSE_EFFECT CHIPLETS ex { LABEL=[Start Instructions - cXt2] WATCH=[REG(MYCHIPLET,0x013020)] # RAS Control Reg CAUSE: TARGET=[REG(MYCHIPLET,0x013020)] OP=[BIT,ON] BIT=[62] # Start - EFFECT: TARGET=[MODULE(startInstructions, 5, 2)] OP=[MODULECALL] # Start Hostboot + EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 2)] OP=[MODULECALL] # Start Hostboot # Clear quiesce, por, maint mode # Set running # Leave other bits alone @@ -159,7 +156,7 @@ CAUSE_EFFECT CHIPLETS ex { LABEL=[Start Instructions - cXt3] WATCH=[REG(MYCHIPLET,0x013030)] # RAS Control Reg CAUSE: TARGET=[REG(MYCHIPLET,0x013030)] OP=[BIT,ON] BIT=[62] # Start - EFFECT: TARGET=[MODULE(startInstructions, 5, 3)] OP=[MODULECALL] # Start Hostboot + EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 3)] OP=[MODULECALL] # Start Hostboot # Clear quiesce, por, maint mode # Set running # Leave other bits alone @@ -171,7 +168,7 @@ CAUSE_EFFECT CHIPLETS ex { LABEL=[Start Instructions - cXt4] WATCH=[REG(MYCHIPLET,0x013040)] # RAS Control Reg CAUSE: TARGET=[REG(MYCHIPLET,0x013040)] OP=[BIT,ON] BIT=[62] # Start - EFFECT: TARGET=[MODULE(startInstructions, 5, 4)] OP=[MODULECALL] # Start Hostboot + EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 4)] OP=[MODULECALL] # Start Hostboot # Clear quiesce, por, maint mode # Set running # Leave other bits alone @@ -183,7 +180,7 @@ CAUSE_EFFECT CHIPLETS ex { LABEL=[Start Instructions - cXt5] WATCH=[REG(MYCHIPLET,0x013050)] # RAS Control Reg CAUSE: TARGET=[REG(MYCHIPLET,0x013050)] OP=[BIT,ON] BIT=[62] # Start - EFFECT: TARGET=[MODULE(startInstructions, 5, 5)] OP=[MODULECALL] # Start Hostboot + EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 5)] OP=[MODULECALL] # Start Hostboot # Clear quiesce, por, maint mode # Set running # Leave other bits alone @@ -195,7 +192,7 @@ CAUSE_EFFECT CHIPLETS ex { LABEL=[Start Instructions - cXt6] WATCH=[REG(MYCHIPLET,0x013062)] # RAS Control Reg CAUSE: TARGET=[REG(MYCHIPLET,0x013062)] OP=[BIT,ON] BIT=[62] # Start - EFFECT: TARGET=[MODULE(startInstructions, 5, 6)] OP=[MODULECALL] # Start Hostboot + EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 6)] OP=[MODULECALL] # Start Hostboot # Clear quiesce, por, maint mode # Set running # Leave other bits alone @@ -207,7 +204,7 @@ CAUSE_EFFECT CHIPLETS ex { LABEL=[Start Instructions - cXt7] WATCH=[REG(MYCHIPLET,0x013070)] # RAS Control Reg CAUSE: TARGET=[REG(MYCHIPLET,0x013070)] OP=[BIT,ON] BIT=[62] # Start - EFFECT: TARGET=[MODULE(startInstructions, 5, 7)] OP=[MODULECALL] # Start Hostboot + EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 7)] OP=[MODULECALL] # Start Hostboot # Clear quiesce, por, maint mode # Set running # Leave other bits alone @@ -583,3 +580,1223 @@ CAUSE_EFFECT CHIPLETS ex { ELSE: TARGET=[REG(MYCHIPLET,0x013072)] OP=[BIT,OFF] BIT=[21] #core_is_in_maintenance_mode } +#@01 begin +##### Winkle ##### +CAUSE_EFFECT CHIPLETS ex { + LABEL=[Status - Winkle - cXt0] + WATCH=[THREADSTATE(MYCHIPLET,0x0)] + WATCH=[REG(MYCHIPLET,0x013004)] + # active=0,nap=0,sleep=0,winkle=1 + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x0)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)] + # 4:5=11, 23:25=111 + EFFECT: TARGET=[REG(MYCHIPLET,0x013004)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C0001C0 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)] +} +CAUSE_EFFECT CHIPLETS ex { + LABEL=[Status - Winkle - cXt1] + WATCH=[THREADSTATE(MYCHIPLET,0x1)] + WATCH=[REG(MYCHIPLET,0x013014)] + # active=0,nap=0,sleep=0,winkle=1 + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x1)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)] + # 4:5=11, 23:25=111 + EFFECT: TARGET=[REG(MYCHIPLET,0x013014)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C0001C0 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)] +} +CAUSE_EFFECT CHIPLETS ex { + LABEL=[Status - Winkle - cXt2] + WATCH=[THREADSTATE(MYCHIPLET,0x2)] + WATCH=[REG(MYCHIPLET,0x013024)] + # active=0,nap=0,sleep=0,winkle=1 + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x2)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)] + # 4:5=11, 23:25=111 + EFFECT: TARGET=[REG(MYCHIPLET,0x013024)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C0001C0 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)] +} +CAUSE_EFFECT CHIPLETS ex { + LABEL=[Status - Winkle - cXt3] + WATCH=[THREADSTATE(MYCHIPLET,0x3)] + WATCH=[REG(MYCHIPLET,0x013034)] + # active=0,nap=0,sleep=0,winkle=1 + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x3)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)] + # 4:5=11, 23:25=111 + EFFECT: TARGET=[REG(MYCHIPLET,0x013034)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C0001C0 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)] +} +CAUSE_EFFECT CHIPLETS ex { + LABEL=[Status - Winkle - cXt4] + WATCH=[THREADSTATE(MYCHIPLET,0x4)] + WATCH=[REG(MYCHIPLET,0x013044)] + # active=0,nap=0,sleep=0,winkle=1 + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x4)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)] + # 4:5=11, 23:25=111 + EFFECT: TARGET=[REG(MYCHIPLET,0x013044)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C0001C0 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)] +} +CAUSE_EFFECT CHIPLETS ex { + LABEL=[Status - Winkle - cXt5] + WATCH=[THREADSTATE(MYCHIPLET,0x5)] + WATCH=[REG(MYCHIPLET,0x013054)] + # active=0,nap=0,sleep=0,winkle=1 + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x5)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)] + # 4:5=11, 23:25=111 + EFFECT: TARGET=[REG(MYCHIPLET,0x013054)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C0001C0 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)] +} +CAUSE_EFFECT CHIPLETS ex { + LABEL=[Status - Winkle - cXt6] + WATCH=[THREADSTATE(MYCHIPLET,0x6)] + WATCH=[REG(MYCHIPLET,0x013064)] + # active=0,nap=0,sleep=0,winkle=1 + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x6)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)] + # 4:5=11, 23:25=111 + EFFECT: TARGET=[REG(MYCHIPLET,0x013064)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C0001C0 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)] +} +CAUSE_EFFECT CHIPLETS ex { + LABEL=[Status - Winkle - cXt7] + WATCH=[THREADSTATE(MYCHIPLET,0x7)] + WATCH=[REG(MYCHIPLET,0x013074)] + # active=0,nap=0,sleep=0,winkle=1 + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x7)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)] + # 4:5=11, 23:25=111 + EFFECT: TARGET=[REG(MYCHIPLET,0x013074)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C0001C0 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)] +} + +##### Sleep ##### +CAUSE_EFFECT CHIPLETS ex { + LABEL=[Status - Sleep - cXt0] + WATCH=[THREADSTATE(MYCHIPLET,0x0)] + WATCH=[REG(MYCHIPLET,0x013004)] + # active=0,nap=0,sleep=1,winkle=0 + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x0)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,02000000)] MASK=[LITERAL(32,0F000000)] + # 4:5=11, 23:25=110 + EFFECT: TARGET=[REG(MYCHIPLET,0x013004)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C000180 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)] +} +CAUSE_EFFECT CHIPLETS ex { + LABEL=[Status - Sleep - cXt1] + WATCH=[THREADSTATE(MYCHIPLET,0x1)] + WATCH=[REG(MYCHIPLET,0x013014)] + # active=0,nap=0,sleep=1,winkle=0 + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x1)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,02000000)] MASK=[LITERAL(32,0F000000)] + # 4:5=11, 23:25=110 + EFFECT: TARGET=[REG(MYCHIPLET,0x013014)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C000180 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)] +} +CAUSE_EFFECT CHIPLETS ex { + LABEL=[Status - Sleep - cXt2] + WATCH=[THREADSTATE(MYCHIPLET,0x2)] + WATCH=[REG(MYCHIPLET,0x013024)] + # active=0,nap=0,sleep=1,winkle=0 + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x2)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,02000000)] MASK=[LITERAL(32,0F000000)] + # 4:5=11, 23:25=110 + EFFECT: TARGET=[REG(MYCHIPLET,0x013024)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C000180 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)] +} +CAUSE_EFFECT CHIPLETS ex { + LABEL=[Status - Sleep - cXt3] + WATCH=[THREADSTATE(MYCHIPLET,0x3)] + WATCH=[REG(MYCHIPLET,0x013034)] + # active=0,nap=0,sleep=1,winkle=0 + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x3)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,02000000)] MASK=[LITERAL(32,0F000000)] + # 4:5=11, 23:25=110 + EFFECT: TARGET=[REG(MYCHIPLET,0x013034)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C000180 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)] +} +CAUSE_EFFECT CHIPLETS ex { + LABEL=[Status - Sleep - cXt4] + WATCH=[THREADSTATE(MYCHIPLET,0x4)] + WATCH=[REG(MYCHIPLET,0x013044)] + # active=0,nap=0,sleep=1,winkle=0 + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x4)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,02000000)] MASK=[LITERAL(32,0F000000)] + # 4:5=11, 23:25=110 + EFFECT: TARGET=[REG(MYCHIPLET,0x013044)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C000180 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)] +} +CAUSE_EFFECT CHIPLETS ex { + LABEL=[Status - Sleep - cXt5] + WATCH=[THREADSTATE(MYCHIPLET,0x5)] + WATCH=[REG(MYCHIPLET,0x013054)] + # active=0,nap=0,sleep=1,winkle=0 + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x5)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,02000000)] MASK=[LITERAL(32,0F000000)] + # 4:5=11, 23:25=110 + EFFECT: TARGET=[REG(MYCHIPLET,0x013054)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C000180 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)] +} +CAUSE_EFFECT CHIPLETS ex { + LABEL=[Status - Sleep - cXt6] + WATCH=[THREADSTATE(MYCHIPLET,0x6)] + WATCH=[REG(MYCHIPLET,0x013064)] + # active=0,nap=0,sleep=1,winkle=0 + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x6)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,02000000)] MASK=[LITERAL(32,0F000000)] + # 4:5=11, 23:25=110 + EFFECT: TARGET=[REG(MYCHIPLET,0x013064)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C000180 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)] +} +CAUSE_EFFECT CHIPLETS ex { + LABEL=[Status - Sleep - cXt7] + WATCH=[THREADSTATE(MYCHIPLET,0x7)] + WATCH=[REG(MYCHIPLET,0x013074)] + # active=0,nap=0,sleep=1,winkle=0 + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x7)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,02000000)] MASK=[LITERAL(32,0F000000)] + # 4:5=11, 23:25=110 + EFFECT: TARGET=[REG(MYCHIPLET,0x013074)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C000180 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)] +} + +##### Active ##### + +CAUSE_EFFECT CHIPLETS ex { + LABEL=[Status - Active - cXt0] + WATCH=[THREADSTATE(MYCHIPLET,0x0)] + WATCH=[REG(MYCHIPLET,0x013004)] + # active=1,nap=0,sleep=0,winkle=0 + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x0)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,08000000)] MASK=[LITERAL(32,0F000000)] + # 4:5=00, 23:25=000 + EFFECT: TARGET=[REG(MYCHIPLET,0x013004)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,00000000 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)] +} +CAUSE_EFFECT CHIPLETS ex { + LABEL=[Status - Active - cXt1] + WATCH=[THREADSTATE(MYCHIPLET,0x1)] + WATCH=[REG(MYCHIPLET,0x013014)] + # active=1,nap=0,sleep=0,winkle=0 + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x1)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,08000000)] MASK=[LITERAL(32,0F000000)] + # 4:5=00, 23:25=000 + EFFECT: TARGET=[REG(MYCHIPLET,0x013014)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,00000000 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)] +} +CAUSE_EFFECT CHIPLETS ex { + LABEL=[Status - Active - cXt2] + WATCH=[THREADSTATE(MYCHIPLET,0x2)] + WATCH=[REG(MYCHIPLET,0x013024)] + # active=1,nap=0,sleep=0,winkle=0 + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x2)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,08000000)] MASK=[LITERAL(32,0F000000)] + # 4:5=00, 23:25=000 + EFFECT: TARGET=[REG(MYCHIPLET,0x013024)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,00000000 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)] +} +CAUSE_EFFECT CHIPLETS ex { + LABEL=[Status - Active - cXt3] + WATCH=[THREADSTATE(MYCHIPLET,0x3)] + WATCH=[REG(MYCHIPLET,0x013034)] + # active=1,nap=0,sleep=0,winkle=0 + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x3)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,08000000)] MASK=[LITERAL(32,0F000000)] + # 4:5=00, 23:25=000 + EFFECT: TARGET=[REG(MYCHIPLET,0x013034)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,00000000 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)] +} +CAUSE_EFFECT CHIPLETS ex { + LABEL=[Status - Active - cXt4] + WATCH=[THREADSTATE(MYCHIPLET,0x4)] + WATCH=[REG(MYCHIPLET,0x013044)] + # active=1,nap=0,sleep=0,winkle=0 + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x4)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,08000000)] MASK=[LITERAL(32,0F000000)] + # 4:5=00, 23:25=000 + EFFECT: TARGET=[REG(MYCHIPLET,0x013044)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,00000000 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)] +} +CAUSE_EFFECT CHIPLETS ex { + LABEL=[Status - Active - cXt5] + WATCH=[THREADSTATE(MYCHIPLET,0x5)] + WATCH=[REG(MYCHIPLET,0x013054)] + # active=1,nap=0,sleep=0,winkle=0 + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x5)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,08000000)] MASK=[LITERAL(32,0F000000)] + # 4:5=00, 23:25=000 + EFFECT: TARGET=[REG(MYCHIPLET,0x013054)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,00000000 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)] +} +CAUSE_EFFECT CHIPLETS ex { + LABEL=[Status - Active - cXt6] + WATCH=[THREADSTATE(MYCHIPLET,0x6)] + WATCH=[REG(MYCHIPLET,0x013064)] + # active=1,nap=0,sleep=0,winkle=0 + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x6)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,08000000)] MASK=[LITERAL(32,0F000000)] + # 4:5=00, 23:25=000 + EFFECT: TARGET=[REG(MYCHIPLET,0x013064)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,00000000 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)] +} +CAUSE_EFFECT CHIPLETS ex { + LABEL=[Status - Active - cXt7] + WATCH=[THREADSTATE(MYCHIPLET,0x7)] + WATCH=[REG(MYCHIPLET,0x013074)] + # active=1,nap=0,sleep=0,winkle=0 + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x7)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,08000000)] MASK=[LITERAL(32,0F000000)] + # 4:5=00, 23:25=000 + EFFECT: TARGET=[REG(MYCHIPLET,0x013074)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,00000000 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)] +} + + +################### +## HAP Triggers ## + +# HAP Actions work like this: +# Simics sets bits in HAP regs (below) +# Action will set status bit in THREADSTATE +# Changes to THREADSTATE regspace will update status bits in Scom regs + +# Each bit represents the state of a given core/thread, and the bit +# position is computed as: +# +# bit = core * threadsPerCore + thread +# +#0xFF000020, 64 # ADDR_LOGIC_THREAD_BREAKPOINT +#0xFF000030, 64 # ADDR_LOGIC_THREAD_NAP +#0xFF000040, 64 # ADDR_LOGIC_THREAD_SLEEP +#0xFF000050, 64 # ADDR_LOGIC_THREAD_SRESET +#0xFF000060, 64 # ADDR_LOGIC_THREAD_WINKLE + +#### Winkle #### +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c1t0] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[8] + EFFECT: TARGET=[THREADSTATE(0x11000000)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x11000000)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c1t1] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[9] + EFFECT: TARGET=[THREADSTATE(0x11000001)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x11000001)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c1t2] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[10] + EFFECT: TARGET=[THREADSTATE(0x11000002)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x11000002)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c1t3] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[11] + EFFECT: TARGET=[THREADSTATE(0x11000003)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x11000003)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c1t4] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[12] + EFFECT: TARGET=[THREADSTATE(0x11000004)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x11000004)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c1t5] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[13] + EFFECT: TARGET=[THREADSTATE(0x11000005)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x11000005)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c1t6] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[14] + EFFECT: TARGET=[THREADSTATE(0x11000006)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x11000006)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c1t7] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[15] + EFFECT: TARGET=[THREADSTATE(0x11000007)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x11000007)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c2t0] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[16] + EFFECT: TARGET=[THREADSTATE(0x12000000)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x12000000)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c2t1] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[17] + EFFECT: TARGET=[THREADSTATE(0x12000001)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x12000001)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c2t2] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[18] + EFFECT: TARGET=[THREADSTATE(0x12000002)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x12000002)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c2t3] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[19] + EFFECT: TARGET=[THREADSTATE(0x12000003)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x12000003)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c2t4] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[20] + EFFECT: TARGET=[THREADSTATE(0x12000004)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x12000004)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c2t5] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[21] + EFFECT: TARGET=[THREADSTATE(0x12000005)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x12000005)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c2t6] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[22] + EFFECT: TARGET=[THREADSTATE(0x12000006)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x12000006)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c2t7] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[23] + EFFECT: TARGET=[THREADSTATE(0x12000007)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x12000007)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c3t0] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[24] + EFFECT: TARGET=[THREADSTATE(0x13000000)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x13000000)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c3t1] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[25] + EFFECT: TARGET=[THREADSTATE(0x13000001)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x13000001)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c3t2] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[26] + EFFECT: TARGET=[THREADSTATE(0x13000002)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x13000002)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c3t3] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[27] + EFFECT: TARGET=[THREADSTATE(0x13000003)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x13000003)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c3t4] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[28] + EFFECT: TARGET=[THREADSTATE(0x13000004)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x13000004)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c3t5] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[29] + EFFECT: TARGET=[THREADSTATE(0x13000005)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x13000005)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c3t6] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[30] + EFFECT: TARGET=[THREADSTATE(0x13000006)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x13000006)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c3t7] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[31] + EFFECT: TARGET=[THREADSTATE(0x13000007)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x13000007)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c4t0] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[32] + EFFECT: TARGET=[THREADSTATE(0x14000000)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x14000000)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c4t1] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[33] + EFFECT: TARGET=[THREADSTATE(0x14000001)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x14000001)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c4t2] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[34] + EFFECT: TARGET=[THREADSTATE(0x14000002)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x14000002)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c4t3] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[35] + EFFECT: TARGET=[THREADSTATE(0x14000003)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x14000003)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c4t4] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[36] + EFFECT: TARGET=[THREADSTATE(0x14000004)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x14000004)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c4t5] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[37] + EFFECT: TARGET=[THREADSTATE(0x14000005)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x14000005)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c4t6] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[38] + EFFECT: TARGET=[THREADSTATE(0x14000006)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x14000006)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c4t7] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[39] + EFFECT: TARGET=[THREADSTATE(0x14000007)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x14000007)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c5t0] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[40] + EFFECT: TARGET=[THREADSTATE(0x15000000)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x15000000)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c5t1] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[41] + EFFECT: TARGET=[THREADSTATE(0x15000001)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x15000001)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c5t2] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[42] + EFFECT: TARGET=[THREADSTATE(0x15000002)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x15000002)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c5t3] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[43] + EFFECT: TARGET=[THREADSTATE(0x15000003)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x15000003)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c5t4] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[44] + EFFECT: TARGET=[THREADSTATE(0x15000004)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x15000004)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c5t5] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[45] + EFFECT: TARGET=[THREADSTATE(0x15000005)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x15000005)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c5t6] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[46] + EFFECT: TARGET=[THREADSTATE(0x15000006)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x15000006)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c5t7] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[47] + EFFECT: TARGET=[THREADSTATE(0x15000007)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x15000007)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c6t0] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[48] + EFFECT: TARGET=[THREADSTATE(0x16000000)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x16000000)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c6t1] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[49] + EFFECT: TARGET=[THREADSTATE(0x16000001)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x16000001)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c6t2] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[50] + EFFECT: TARGET=[THREADSTATE(0x16000002)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x16000002)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c6t3] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[51] + EFFECT: TARGET=[THREADSTATE(0x16000003)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x16000003)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c6t4] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[52] + EFFECT: TARGET=[THREADSTATE(0x16000004)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x16000004)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c6t5] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[53] + EFFECT: TARGET=[THREADSTATE(0x16000005)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x16000005)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c6t6] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[54] + EFFECT: TARGET=[THREADSTATE(0x16000006)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x16000006)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} +CAUSE_EFFECT { + LABEL=[HAP - Winkle - c6t7] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[55] + EFFECT: TARGET=[THREADSTATE(0x16000007)] OP=[BIT,ON] BIT=[7] #winkle=1 + ELSE: TARGET=[THREADSTATE(0x16000007)] OP=[BIT,OFF] BIT=[7] #winkle=0 +} + + +#### Active #### +CAUSE_EFFECT { + LABEL=[HAP - Active - c1t0] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[8] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[8] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[8] #no sleep + EFFECT: TARGET=[THREADSTATE(0x11000000)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x11000000)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c1t1] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[9] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[9] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[9] #no sleep + EFFECT: TARGET=[THREADSTATE(0x11000001)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x11000001)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c1t2] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[10] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[10] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[10] #no sleep + EFFECT: TARGET=[THREADSTATE(0x11000002)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x11000002)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c1t3] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[11] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[11] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[11] #no sleep + EFFECT: TARGET=[THREADSTATE(0x11000003)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x11000003)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c1t4] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[12] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[12] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[12] #no sleep + EFFECT: TARGET=[THREADSTATE(0x11000004)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x11000004)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c1t5] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[13] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[13] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[13] #no sleep + EFFECT: TARGET=[THREADSTATE(0x11000005)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x11000005)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c1t6] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[14] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[14] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[14] #no sleep + EFFECT: TARGET=[THREADSTATE(0x11000006)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x11000006)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c1t7] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[15] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[15] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[15] #no sleep + EFFECT: TARGET=[THREADSTATE(0x11000007)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x11000007)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c2t0] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[16] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[16] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[16] #no sleep + EFFECT: TARGET=[THREADSTATE(0x12000000)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x12000000)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c2t1] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[17] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[17] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[17] #no sleep + EFFECT: TARGET=[THREADSTATE(0x12000001)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x12000001)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c2t2] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[18] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[18] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[18] #no sleep + EFFECT: TARGET=[THREADSTATE(0x12000002)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x12000002)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c2t3] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[19] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[19] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[19] #no sleep + EFFECT: TARGET=[THREADSTATE(0x12000003)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x12000003)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c2t4] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[20] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[20] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[20] #no sleep + EFFECT: TARGET=[THREADSTATE(0x12000004)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x12000004)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c2t5] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[21] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[21] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[21] #no sleep + EFFECT: TARGET=[THREADSTATE(0x12000005)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x12000005)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c2t6] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[22] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[22] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[22] #no sleep + EFFECT: TARGET=[THREADSTATE(0x12000006)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x12000006)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c2t7] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[23] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[23] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[23] #no sleep + EFFECT: TARGET=[THREADSTATE(0x12000007)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x12000007)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c3t0] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[24] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[24] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[24] #no sleep + EFFECT: TARGET=[THREADSTATE(0x13000000)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x13000000)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c3t1] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[25] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[25] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[25] #no sleep + EFFECT: TARGET=[THREADSTATE(0x13000001)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x13000001)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c3t2] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[26] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[26] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[26] #no sleep + EFFECT: TARGET=[THREADSTATE(0x13000002)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x13000002)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c3t3] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[27] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[27] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[27] #no sleep + EFFECT: TARGET=[THREADSTATE(0x13000003)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x13000003)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c3t4] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[28] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[28] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[28] #no sleep + EFFECT: TARGET=[THREADSTATE(0x13000004)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x13000004)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c3t5] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[29] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[29] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[29] #no sleep + EFFECT: TARGET=[THREADSTATE(0x13000005)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x13000005)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c3t6] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[30] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[30] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[30] #no sleep + EFFECT: TARGET=[THREADSTATE(0x13000006)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x13000006)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c3t7] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[31] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[31] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[31] #no sleep + EFFECT: TARGET=[THREADSTATE(0x13000007)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x13000007)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c4t0] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[32] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[32] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[32] #no sleep + EFFECT: TARGET=[THREADSTATE(0x14000000)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x14000000)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c4t1] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[33] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[33] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[33] #no sleep + EFFECT: TARGET=[THREADSTATE(0x14000001)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x14000001)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c4t2] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[34] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[34] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[34] #no sleep + EFFECT: TARGET=[THREADSTATE(0x14000002)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x14000002)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c4t3] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[35] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[35] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[35] #no sleep + EFFECT: TARGET=[THREADSTATE(0x14000003)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x14000003)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c4t4] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[36] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[36] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[36] #no sleep + EFFECT: TARGET=[THREADSTATE(0x14000004)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x14000004)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c4t5] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[37] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[37] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[37] #no sleep + EFFECT: TARGET=[THREADSTATE(0x14000005)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x14000005)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c4t6] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[38] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[38] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[38] #no sleep + EFFECT: TARGET=[THREADSTATE(0x14000006)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x14000006)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c4t7] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[39] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[39] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[39] #no sleep + EFFECT: TARGET=[THREADSTATE(0x14000007)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x14000007)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c5t0] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[40] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[40] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[40] #no sleep + EFFECT: TARGET=[THREADSTATE(0x15000000)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x15000000)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c5t1] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[41] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[41] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[41] #no sleep + EFFECT: TARGET=[THREADSTATE(0x15000001)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x15000001)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c5t2] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[42] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[42] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[42] #no sleep + EFFECT: TARGET=[THREADSTATE(0x15000002)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x15000002)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c5t3] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[43] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[43] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[43] #no sleep + EFFECT: TARGET=[THREADSTATE(0x15000003)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x15000003)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c5t4] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[44] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[44] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[44] #no sleep + EFFECT: TARGET=[THREADSTATE(0x15000004)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x15000004)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c5t5] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[45] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[45] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[45] #no sleep + EFFECT: TARGET=[THREADSTATE(0x15000005)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x15000005)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c5t6] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[46] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[46] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[46] #no sleep + EFFECT: TARGET=[THREADSTATE(0x15000006)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x15000006)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c5t7] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[47] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[47] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[47] #no sleep + EFFECT: TARGET=[THREADSTATE(0x15000007)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x15000007)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c6t0] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[48] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[48] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[48] #no sleep + EFFECT: TARGET=[THREADSTATE(0x16000000)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x16000000)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c6t1] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[49] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[49] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[49] #no sleep + EFFECT: TARGET=[THREADSTATE(0x16000001)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x16000001)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c6t2] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[50] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[50] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[50] #no sleep + EFFECT: TARGET=[THREADSTATE(0x16000002)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x16000002)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c6t3] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[51] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[51] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[51] #no sleep + EFFECT: TARGET=[THREADSTATE(0x16000003)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x16000003)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c6t4] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[52] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[52] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[52] #no sleep + EFFECT: TARGET=[THREADSTATE(0x16000004)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x16000004)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c6t5] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[53] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[53] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[53] #no sleep + EFFECT: TARGET=[THREADSTATE(0x16000005)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x16000005)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c6t6] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[54] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[54] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[54] #no sleep + EFFECT: TARGET=[THREADSTATE(0x16000006)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x16000006)] OP=[BIT,OFF] BIT=[4] #active=0 +} + +CAUSE_EFFECT { + LABEL=[HAP - Active - c6t7] + WATCH=[LOGIC(0xFF000030)] + WATCH=[LOGIC(0xFF000050)] + WATCH=[LOGIC(0xFF000060)] + CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[55] #no winkle + CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[55] #no nap + CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[55] #no sleep + EFFECT: TARGET=[THREADSTATE(0x16000007)] OP=[BIT,ON] BIT=[4] #active=1 + ELSE: TARGET=[THREADSTATE(0x16000007)] OP=[BIT,OFF] BIT=[4] #active=0 +} + + + +#### Sreset #### +#CAUSE_EFFECT { +# LABEL=[HAP - Sreset - c5t0] +# WATCH=[LOGIC(0xFF000050)] +# CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[40] #c5t0 +# EFFECT: TARGET=[THREADSTATE(0x15000000)] OP=[BIT,ON] BIT=[4] #active=1 +# EFFECT: TARGET=[THREADSTATE(0x15000000)] OP=[BIT,OFF] BIT=[5] #nap=0 +# EFFECT: TARGET=[THREADSTATE(0x15000000)] OP=[BIT,OFF] BIT=[6] #sleep=0 +# EFFECT: TARGET=[THREADSTATE(0x15000000)] OP=[BIT,OFF] BIT=[7] #winkle=0 +#} + +########################################## +# SBE Master Winkle Wakeup +CAUSE_EFFECT CHIPLETS ex { + LABEL=[Master Winkle Wakeup] + WATCH=[THREADSTATE(MYCHIPLET,0x0)] + WATCH=[THREADSTATE(MYCHIPLET,0x1)] + WATCH=[THREADSTATE(MYCHIPLET,0x2)] + WATCH=[THREADSTATE(MYCHIPLET,0x3)] + WATCH=[THREADSTATE(MYCHIPLET,0x4)] + WATCH=[THREADSTATE(MYCHIPLET,0x5)] + WATCH=[THREADSTATE(MYCHIPLET,0x6)] + WATCH=[THREADSTATE(MYCHIPLET,0x7)] + # active=0,nap=0,sleep=0,winkle=1 on all 8 threads + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x0)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)] + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x1)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)] + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x2)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)] + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x3)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)] + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x4)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)] + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x5)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)] + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x6)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)] + CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x7)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)] + # check that substep_deadman_start program is running in SBE @todo: Hostboot RTC:41412 + #CAUSE: TARGET=[FSIMBOX(0x1C)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0000F012 00000000)] MASK=[LITERAL(64,0000FFFF 00000000)] + # Restore LPCR for wake-up options. + EFFECT: TARGET=[PROCREG(lpcr, MYCORE, 0)] OP=[BIT,ON] BIT=[49] + EFFECT: TARGET=[PROCREG(lpcr, MYCORE, 1)] OP=[BIT,ON] BIT=[49] + EFFECT: TARGET=[PROCREG(lpcr, MYCORE, 2)] OP=[BIT,ON] BIT=[49] + EFFECT: TARGET=[PROCREG(lpcr, MYCORE, 3)] OP=[BIT,ON] BIT=[49] + EFFECT: TARGET=[PROCREG(lpcr, MYCORE, 4)] OP=[BIT,ON] BIT=[49] + EFFECT: TARGET=[PROCREG(lpcr, MYCORE, 5)] OP=[BIT,ON] BIT=[49] + EFFECT: TARGET=[PROCREG(lpcr, MYCORE, 6)] OP=[BIT,ON] BIT=[49] + EFFECT: TARGET=[PROCREG(lpcr, MYCORE, 7)] OP=[BIT,ON] BIT=[49] + # Clear Timebase (to simulate core losing state). + EFFECT: TARGET=[PROCREG(tb, MYCORE, 0)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000000)] + # Send IPI to thread + EFFECT: TARGET=[MODULE(interProcessorInterrupt, MYCORE, 0 )] OP=[MODULECALL] + EFFECT: TARGET=[MODULE(interProcessorInterrupt, MYCORE, 1 )] OP=[MODULECALL] + EFFECT: TARGET=[MODULE(interProcessorInterrupt, MYCORE, 2 )] OP=[MODULECALL] + EFFECT: TARGET=[MODULE(interProcessorInterrupt, MYCORE, 3 )] OP=[MODULECALL] + EFFECT: TARGET=[MODULE(interProcessorInterrupt, MYCORE, 4 )] OP=[MODULECALL] + EFFECT: TARGET=[MODULE(interProcessorInterrupt, MYCORE, 5 )] OP=[MODULECALL] + EFFECT: TARGET=[MODULE(interProcessorInterrupt, MYCORE, 6 )] OP=[MODULECALL] + EFFECT: TARGET=[MODULE(interProcessorInterrupt, MYCORE, 7 )] OP=[MODULECALL] + EFFECT: TARGET=[THREADSTATE(MYCHIPLET,0x0)] OP=[BIT,OFF] BIT=[7] +} + +#@01 end |