1 OCLA The SDA command OCLA controls the Alpha EV7 On-Chip Logic Analyzer (OCLA), which collects Program Counter (PC) traces in a portion of the Alpha EV7 cache. When you use the ANALYZE/CRASH command to analyze a crash dump, only the following commands are available: - OCLA SHOW STATUS - OCLA SHOW TRACE 2 DISABLE Disables the OCLA and returns the EV7 cache set reserved for OCLA use to the system. Format: OCLA DISABLE [/CPU=n] 3 /CPU=n Specifies the CPU on which OCLA should be disabled. If /CPU is not specified, all active CPUs on the system are disabled. 2 DUMP Copies the data collected in the EV7 cache to system memory for later analysis. See the SHOW TRACE command for more information. When a system fails, data collected in the EV7 cache is automatically saved in the system dump file for each enabled OCLA. Format: OCLA DUMP [/CPU=n] 3 /CPU=n Specifies the CPU on which the OCLA should be dumped. If /CPU is not specified, all active CPUs on the system are dumped. Example: SDA> OCLA DUMP/CPU=7 OCLA PC trace dump performed for CPU 07 This command dumps the OCLA cache into system memory for CPU number 7. 2 ENABLE Enables the EV7 OCLA. Format: OCLA ENABLE [/CPU=n][/RESET] 3 /CPU=n Specifies the CPU on which OCLA should be enabled. If /CPU is not specified, all active CPUs on the system are enabled. 3 /RESET Initializes the OCLA to known values. Under certain circumstances the OCLA might not be initialized properly when the system is powered on. For more information, see the SHOW REGISTER command. 2 LOAD Loads the OCLA PC trace execlet into system memory. This command must be performed prior to any other command. Format: OCLA LOAD 2 SET Manipulates OCLA-related data. 3 REGISTER Modifies OCLA registers. 4 MISC Changes the OCLA 1 miscellaneous register. Format: OCLA SET REGISTER MISC/RESET 5 /RESET Sets the register to known values. This qualifier is required. 4 OCLA1_CTL Changes the OCLA 1 control register. Format: OCLA SET REGISTER OCLA1_CTL/RESET 5 /RESET Sets the control register to known values. This qualifier is required. 4 PC_CTL Changes the OCLA 1 PC control register. Format: OCLA SET REGISTER PC_CTL/RESET 5 /RESET Sets the control register to known values. This qualifier is required. 4 SMASK Changes the OCLA 1 select mask register. Format: OCLA SET REGISTER SMASK/RESET 5 /RESET Sets the register to known values. This qualifier is required. 4 SMATCH Changes the OCLA 1 select match register. Format: OCLA SET REGISTER SMATCH/RESET 5 /RESET Sets the register to known values. This qualifier is required. 4 TMASK Changes the OCLA 1 trigger mask register. Format: OCLA SET REGISTER TMASK/RESET 5 /RESET Sets the register to known values. This qualifier is required. 4 TMATCH Changes the OCLA 1 trigger match register. Format: OCLA SET REGISTER TMASK/RESET 5 /RESET Sets the register to known values. This qualifier is required. 2 SHOW Displays and formats information related to OCLA. 3 STATUS Displays the status of OCLAs on the system. Format: OCLA SHOW STATUS [/CPU=n] 4 /CPU=n Specifies the CPU for which to display status. If /CPU is not specified, the status of all active CPUs on the system is displayed. 4 Example SDA> OCLA SHOW STATUS EV7 OCLA status --------------- CPU 00 is enabled, no entries, no dump done CPU 01 is enabled, no entries, no dump done CPU 02 is enabled, no entries, no dump done CPU 03 is enabled, no entries, no dump done CPU 04 is enabled, no entries, no dump done CPU 05 is enabled, no entries, no dump done CPU 06 is enabled, no entries, no dump done CPU 07 is enabled, running, no entries, no dump done 3 REGISTER Shows detailed information about the OCLA control registers. This command is useful for determining whether the OCLA is in the correct state. Format: OCLA SHOW REGISTER [/CPU=n] 4 /CPU=n Specifies the CPU for which to display registers. If /CPU is not specified, all active CPUs on the system are used. 4 Example The following command displays all OCLA-related registers on the EV7 CPU. This particular CPU was enabled with the /RESET qualifier, so the values have default settings. SDA> OCLA SHOW REGISTER/CPU=7 OCLA EV7 CPU Registers for CPU: 07 ---------------------------------- ZBOX control register for CPU 07: 00000000ffffffff CBOX control register for CPU 07: 07c000001024a807 OCLA 1 MISC register for CPU 07: 0000000000000000 OCLA 1 TMATCH: 40000002ffffffff OCLA 1 SMATCH: 0000000000000000 OCLA 1 PC_TMATCH: 0000000000000000 OCLA 1 PC_SMATCH: 0000000000000000 OCLA 1 TMASK: 4000000000000000 OCLA 1 SMASK: 0000000000000000 OCLA 1 PC_TMASK: 0000000000000000 OCLA 1 PC_SMASK: 0000000000000000 OCLA 1 control register for CPU 07: c000210000002a9c Enab Run RDRST ITRIG IFULL TAG_EN TS_EN PDAT_EN SFILT TMODE IRQF IRQT TIHANG 1 1 0 0 0 0 0 0 00 00 0 0 0 TAG_SRC EXT_SRC TS_FORCE EIO WRAP SREL AMATCH AADDR 000 004 0 0 1 0 00000 02a9c OCLA 1 PC Control register for CPU 07: 000000000000003f STGSEL TRGSEL OUTSEL CDEPTH CMASK CAMEN 03 03 03 00 00000 0 3 TRACE Formats the PC data stored in system memory by a DUMP command. Format: OCLA SHOW TRACE [/CPU=n][/LAST=n][/NOPAL][/REVERSE] [/SUMMARY][/SYMBOLIZE] 4 /CPU=n Specifies the CPU for which the PC data should be formatted. If /CPU is not specified, data for all active CPUs on the system is formatted. 4 /LAST=n Displays the last n PC values. 4 /NOPAL Indicates that PAL code instructions should not be included in the output. 4 /REVERSE Displays PC values in reverse order. That is, the first value displayed is the last PC instruction executed prior to a dump or a system failure. 4 /SUMMARY Displays only the last 42 PC values. 4 /SYMBOLIZE Attempts to symbolize the PC value. (If a value cannot be symbolized, no symbol is displayed.) 4 Example The following command displays a summary of the last PC instructions executed by CPU 7 and symbolizes the PC values. In this example, lines of PAL code are identified by ",PAL Code". SDA> OCLA SHOW TRACE/CPU=7/SUM/SYM OCLA PC trace information for CPU 07 ------------------------------------ CPU 07 has 16384 valid entries 42 PC values displayed 0000002c00030358 ,PAL Code 0000002c0003035c ,PAL Code ffffffff81244c94 OCLA$DEBUG+00C94 ffffffff81244c98 OCLA$DEBUG+00C98 ffffffff81244c9c OCLA$DEBUG+00C9C ffffffff81244ca0 OCLA$DEBUG+00CA0 ffffffff81244ca4 OCLA$DEBUG+00CA4 ffffffff81244ca8 OCLA$DEBUG+00CA8 ffffffff81244cac OCLA$DEBUG+00CAC ffffffff81244cb0 OCLA$DEBUG+00CB0 ffffffff81244cd0 OCLA$DEBUG+00CD0 ffffffff81244cd4 OCLA$DEBUG+00CD4 ffffffff81244cd8 OCLA$DEBUG+00CD8 ffffffff81244cdc OCLA$DEBUG+00CDC ffffffff81244ce0 OCLA$DEBUG+00CE0 ffffffff81244ce4 OCLA$DEBUG+00CE4 ffffffff81244ce8 OCLA$DEBUG+00CE8 ... 2 START Starts the OCLA. This command causes each executed PC to be collected in the EV7 cache. Format: OCLA START [/CPU=n] 3 /CPU=n Specifies the CPU on which OCLA should be started. If /CPU is not specified, all active CPUs on the system are started. 2 STOP Stops the OCLA. The data collected in the EV7 cache can be retrieved by using the DUMP command. Format: OCLA STOP [/CPU=n] 3 /CPU=n Specifies the CPU on which the OCLA should be stopped. If /CPU is not specified, all active CPUs on the system are stopped. 2 UNLOAD Unloads the OCLA PC trace execlet from system memory. Format: OCLA UNLOAD 2 Examples These examples demonstrate how the OCLA SDA Extension typically is used. 3 Interactive_Use The OCLA SDA Extension can be used to inspect a running system. To do this, the EV7 acquisition memory needs to be read. The following commands copy the EV7 acquisition cache memory into system memory and display the collected values for CPU 0. SDA> OCLA DUMP OCLA PC trace performed for 8 CPUs SDA> OCLA SHOW TRACE/SUM/SYMBOL/CPU=0 OCLA PC trace information for CPU 00 ------------------------------------ CPU 00 has 16384 valid entries The overhead per allocation is 1208 42 PC values displayed ffffffff8012d3ac SCH$CALC_CPU_LOAD_C+0030C ffffffff8012d3b0 SCH$CALC_CPU_LOAD_C+00310 ffffffff8012d3b4 SCH$CALC_CPU_LOAD_C+00314 ffffffff8012d3b8 SCH$CALC_CPU_LOAD_C+00318 ffffffff8012d3bc SCH$CALC_CPU_LOAD_C+0031C ffffffff8012d3c0 SCH$CALC_CPU_LOAD_C+00320 ffffffff8012d4d8 SCH$CALC_CPU_LOAD_C+00438 ... 3 Starting_OCLA This example shows how to start the OCLAs on the system. The following commands load the OCLA Execlet, enable the OCLAs on each CPU in the system, and start each OCLA. At this point, the EV7 OCLAs are collecting data for each PC instruction executed by the active CPUs in the system. In the unlikely event of a system failure, PC values recorded by the OCLAs are stored in the system dump file and can later be retrieved by using the System Dump Analyzer (SDA). SDA> OCLA LOAD OCLA$PCTRACE load status = 00000001 SDA> OCLA ENABLE/RESET OCLA PC tracing enabled for 8 CPUs SDA> OCLA START OCLA PC tracing started for 8 CPUs 3 Stopping_OCLA This example shows how to stop OCLAs on the system. The following commands stop all running OCLAS, disable and free up system memory associated with each OCLA, and unload the OCLA execlet from system memory. If a STOP/CPU command is executed, the OCLA is automatically disabled, and the cache set used by the OCLA is released to the EV7 CPU. If a CPU is started by the START/CPU command, normal OCLA commands must be used to enable and start the OCLA. SDA> OCLA STOP OCLA PC tracing stopped for 8 CPUs SDA> OCLA DISABLE OCLA PC tracing disabled for 8 CPUs SDA> OCLA UNLOAD OCLA$PCTRACE unload status = 00000001