# Debug ARC (RPMh hardware block) Source: [https://docs.qualcomm.com/doc/80-88500-3/topic/debugging_rpmh_hardware_block_arc.html](https://docs.qualcomm.com/doc/80-88500-3/topic/debugging_rpmh_hardware_block_arc.html) ARC handles complex hardware blocks that need additional coordination. - Coordinates between ARC and other accelerators when needed (CPRF, VRM, DDR\_AUX, and so on) - Vote units are in operating level ## Voltage rails - CX or MX - SSC\_CX or SSC\_MX - VDD\_MSS - EBI - GFX - General resources with power states - XO - DDR\_SS ## Debug scenarios CMM script checks the following when it parses for each resource (for example, power rail). - General status - Vote from each client - Internal state The following debugging scenarios are considered. - ARC has not transitioned a state of resource – debug is done by reviewing the internal state of the resource - ARC does not go to the expected state - Debug is done by reviewing votes from each client - Further debug is done by reviewing the internal state of the resource ## ARC dump script The `arc_dump.cmm [op=]` script dumps information for each ARC resource. If the output file not specified, the script dumps the output on the TRACE32 area. For RM list and DRV list, check the generated ARC dump. RM0 : cx Status Enable: 1 OLs Curr : 0x2 Agg : 0x1 Dest : 0x1 Solved: 0x0 Seq : 0x1 Sequencer Busy : 1 //Seq busy–‘hang’ PC : 108 Instr : 0x400F Votes DRV0 : 0x0 DRV1 : 0x0 DRV2 : 0x1* //Decider DRV ... //Other DRV votes DRV29 : 0x0 RM1 : mx ... //Other RM details ARC_RM Map ARC_DRV MapCopy to clipboard ## ARC dump script for DRV filter The `arc_dump.cmm drvs=mss,aop [op=]` command enables you to filter output to specific DRVs. For MSS\_SW and AOP dumps, the following are applicable: - Vote on each ARC resource - Current and destination OLs - Sequencer state The following is the dump script for the DRV filter: DRV10 : mss RM0 : cx vote : 0x0 curr_ol : 0x6 dest_ol : 0x6 seq_busy: 0x0 ... //Intermediate RMs RM6 : mss vote : 0x4* //Decider vote curr_ol : 0x4 dest_ol : 0x4 seq_busy: 0x0 ... DRV6 : aop RM0 : cx vote : 0x6* //Decider vote curr_ol : 0x6 dest_ol : 0x6 seq_busy: 0x0 ... //Rest of RMsCopy to clipboard ## ARC dump script for RM filter The `arc_dump.cmm rms=mx,mss [op=]` command enables you to filter the output to a specific RM. For CX and MSS resource dumps, the following are applicable. - Various operating levels - Sequencer state - DRV votes The following is the dump script for the RM filter. RM1 : mx Status Enable: 1 OLs Curr : 0x4 Agg : 0x4 Dest : 0x4 Solved : 0x0 Seq : 0x4 Sequencer Busy : 0 PC : 36 Instr : 0x5005 Votes DRV0 : 0x0 DRV1 : 0x0 DRV2 : 0x4* //Decider DRV ... //Other DRV votes DRV29 : 0x0 RM6 : mss ... //MSS details Copy to clipboard **Parent Topic:** [RPMh debugging](https://docs.qualcomm.com/doc/80-88500-3/topic/81_RPMh_hardening_and_debugging_.html) Last Published: Sep 26, 2023 [Previous Topic Debug AOP script](https://docs.qualcomm.com/bundle/publicresource/80-88500-3/topics/82_Debug_AOP_script.md) [Next Topic Debug BCM (RPMh hardware block)](https://docs.qualcomm.com/bundle/publicresource/80-88500-3/topics/debugging_bcm_rpmh_hardware_block.md)