<reponame>ssmore98/siod
seagate_sense_codes = {0: {0: {0: {0: 'No error.', 'L1': 'No Sense', 'L2': 'No Sense'},
                               31: {0: 'No Specific FRU code.',
                                    'L1': 'No Sense',
                                    'L2': 'Logical unit transitioning to another power condition'}},
                           94: {0: {0: 'No Specific FRU code.',
                                    'L1': 'No Sense',
                                    'L2': 'Drive is in power save mode for unknown reasons'},
                                1: {0: 'No Specific FRU code.',
                                    'L1': 'No Sense',
                                    'L2': 'Idle Condition Activated by timer'},
                                2: {0: 'No Specific FRU code.',
                                    'L1': 'No Sense',
                                    'L2': 'Standby condition activated by timer'},
                                3: {0: 'No Specific FRU code.',
                                    'L1': 'No Sense',
                                    'L2': 'Idle condition activated by host command'},
                                4: {0: 'No Specific FRU code.',
                                    'L1': 'No Sense',
                                    'L2': 'Standby condition activated by host command'},
                                5: {0: 'No Specific FRU code.',
                                    'L1': 'No Sense',
                                    'L2': 'Idle B condition activated by timer'},
                                6: {0: 'No Specific FRU code.',
                                    'L1': 'No Sense',
                                    'L2': 'Idle B condition activated by host command'},
                                7: {0: 'No Specific FRU code.',
                                    'L1': 'No Sense',
                                    'L2': 'Idle C condition activated by timer'},
                                8: {0: 'No Specific FRU code.',
                                    'L1': 'No Sense',
                                    'L2': 'Idle C condition activated by host command'},
                                9: {0: 'No Specific FRU code.',
                                    'L1': 'No Sense',
                                    'L2': 'Standby Y condition activated by timer'},
                                10: {0: 'No Specific FRU code.',
                                     'L1': 'No Sense',
                                     'L2': 'Standby Y conditition activated by host command'}}},
                       1: {1: {0: {157: "Recovered Media Manager's anticipatory autoseek (ATS2) XFR error.",
                                   'L1': 'Recovered Error',
                                   'L2': 'No Index/Logical Block Signal'}},
                           3: {0: {0: 'FRU code comes from the contents of the lower 8-bit of the servo fault register (address 38h).  A description of this register is attached at the end of this document.',
                                   'L1': 'Recovered Error',
                                   'L2': 'Peripheral Device Write Fault'}},
                           9: {0: {0: 'No Specific FRU code.',
                                   'L1': 'Recovered Error',
                                   'L2': 'Track Following Error'},
                               1: {0: 'No Specific FRU code.',
                                   'L1': 'Recovered Error',
                                   'L2': 'Servo Fault'},
                               13: {0: 'No Specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Write to at least one copy of a redundant file failed'},
                               14: {0: 'No Specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Redundant files have < 50% good copies'},
                               248: {0: 'No Specific FRU code.',
                                     'L1': 'Recovered Error',
                                     'L2': 'Calibration is needed but the QST is set without the Recal Only bit'},
                               255: {0: 'No Specific FRU code.',
                                     'L1': 'Recovered Error',
                                     'L2': 'Servo cal completed as part of self-test'}},
                           11: {0: {6: 'Non Volatile Cache now is volatile',
                                    48: 'Recovered Erase Error Rate Warning',
                                    50: 'Recovered Read Error Rate Warning',
                                    66: 'Recovered Program Error Rate Warning',
                                    'L1': 'Recovered Error',
                                    'L2': 'Recovered Error Rates Warnings'},
                                1: {0: 'Warning \xe2\x80\x93 Specified temperature exceeded.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Warning \xe2\x80\x93 Specified temperature exceeded'},
                                2: {0: 'No Specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Warning, Enclosure Degraded'},
                                3: {0: 'Warning \xe2\x80\x93 Specified temperature exceeded.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Warning \xe2\x80\x93 Flash temperature exceeded'},
                                4: {0: 'No Specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Warning - Flash Read Cache Capacity Degraded'},
                                6: {0: 'Warning \xe2\x80\x93 NVC now volatile. NVC specified temperature exceeded.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Warning - Non-Volatile Cache now volatile'},
                                7: {0: 'No Specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Warning, spare sector margin exceeded. NVC_WCD disabled.'},
                                38: {0: 'No Specific FRU code.',
                                     'L1': 'Recovered Error',
                                     'L2': 'Warning - Power loss management warning threshold exceeded'},
                                93: {0: 'Pre Warning.',
                                     'L1': 'Recovered Error',
                                     'L2': 'Pre-SMART Warning'},
                                225: {0: 'No Specific FRU code.',
                                      'L1': 'Recovered Error',
                                      'L2': 'Drive is exiting RAW mode, returning from high temperature'},
                                226: {0: 'No Specific FRU code.',
                                      'L1': 'Recovered Error',
                                      'L2': 'Drive is exiting RAW mode, returning from low temperature'},
                                241: {0: 'No Specific FRU code.',
                                      'L1': 'Recovered Error',
                                      'L2': 'Drive is entering RAW mode due to high temperature'},
                                242: {0: 'No Specific FRU code.',
                                      'L1': 'Recovered Error',
                                      'L2': 'Drive is entering RAW mode due to low temperature'}},
                           12: {1: {0: 'No Specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Write Error Recovered with Auto-Reallocation'},
                                2: {1: 'Data written with retries.  Auto-reallocation failed.',
                                    2: 'Data written with retries. Auto-reallocation failed with critical error, triggering Write Protection.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Write Error Recovered, Auto-Reallocation failed'}},
                           17: {0: {0: 'No Specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Unrecovered Read Error'}},
                           21: {1: {0: 'Mechanical Positioning Error.',
                                    1: 'Mechanical positioning error - Recovered servo command.',
                                    2: 'Mechanical positioning error - Recovered servo command during spinup.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Mechanical Positioning Error'}},
                           22: {0: {0: 'No Specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Data Synchronization Mark Error'}},
                           23: {1: {0: 'No specific FRU code.',
                                    17: 'PRESCAN - Recovered data with error recovery.',
                                    18: 'RAW - Recovered data with error recovery.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Recovered Data Using Retries'},
                                2: {0: 'No specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Recovered Data Using Positive Offset'},
                                3: {0: 'No specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Recovered Data Using Negative Offset'}},
                           24: {0: {0: 'No Specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Recovered Data with ECC, no retry attempted'},
                                1: {0: 'Recovered data with ECC and retries applied.',
                                    1: 'F2 \xe2\x80\x93 Recovered data with ECC and retries applied, but did normal ECC during erasure correction step.',
                                    2: 'BERP \xe2\x80\x93 Recovered data with BERP Erasure Recovery (Erasure Pointer) and retries applied.',
                                    3: 'BERP \xe2\x80\x93 Recovered data with BERP Sliding Window and retries applied.',
                                    4: 'BERP \xe2\x80\x93 Recovered data with BERP Extended Iterations and retries applied.',
                                    5: 'BERP \xe2\x80\x93 Recovered data with BERP LLR Scaling and retries applied.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Recovered Data with ECC and Retries Applied'},
                                2: {0: 'No specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Recovered Data with ECC and/or Retries, Data Auto-Reallocated'},
                                3: {0: 'Data recovered with ATIC and retries applied.',
                                    1: 'Data recovered with ATIC and retries applied, and auto-reallocated.',
                                    2: 'Data recovered with ATIC and retries applied, and re-written.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Recovered Data with ATIC and Retries Applied'},
                                4: {0: 'Data recovered with SERV and retries applied.',
                                    1: 'Data recovered with SERV and retries applied, and auto-reallocated.',
                                    2: 'Data recovered with SERV and retries applied, and re-written.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Recovered Data with SERV and Retries Applied'},
                                5: {1: 'Data recovered. Auto-reallocation failed.',
                                    2: 'Data recovered. Auto-reallocation failed with critical error, triggering Write Protection.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Recovered Data with ECC and/or Retries, Auto-Reallocation Failed'},
                                7: {0: 'No specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'ECC and/or retries, data re-written'},
                                8: {0: 'Data Recovered with BIPS/SP',
                                    1: 'Data Recovered with BIPS/SP, and auto-reallocated.',
                                    2: 'Data Recovered with BIPS/SP, and re-written.',
                                    3: 'Data Recovered with Intermediate Super Parity.',
                                    4: 'Data Recovered with Intermediate Super Parity, and auto-reallocated.',
                                    5: 'Data Recovered with Intermediate Super Parity, and re-written.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Recovered Data With Intermediate Super Parity'},
                                9: {0: 'Recovered the sector found to bad during IRAW scan with the IRAW process.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Recovered the sector found to bad during IRAW scan'}},
                           25: {0: {0: 'No Specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Defect List Error'}},
                           28: {0: {0: 'Defect list not found.',
                                    1: 'Invalid Defect list format data request.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Defect List Not Found'}},
                           31: {0: {0: 'Partial defect list transfer.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Number of defects overflows the allocated space that the Read Defect command can handle'}},
                           55: {0: {0: 'Parameter Rounded.',
                                    1: 'Limit the BytesPerSector to Maximum Sector Size.',
                                    2: 'Limit the BytesPerSector to Minimum Sector Size.',
                                    3: 'Rounded the odd BytesPerSector.',
                                    4: 'Parameter rounded in the mode page check.',
                                    5: 'Rounded the VBAR size.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Parameter Rounded'}},
                           63: {128: {0: 'No Specific FRU code.',
                                      'L1': 'Recovered Error',
                                      'L2': 'Buffer Contents Have Changed'}},
                           64: {1: {0: 'No Specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'DRAM Parity Error'},
                                2: {128: 'Spinup error recovered with buzz retries.',
                                    129: 'Spinup error recovered without buzz retries.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Spinup Error recovered with retries'}},
                           68: {0: {0: 'No Specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Internal Target Failure'}},
                           93: {0: {0: 'No Specific FRU code.',
                                    1: 'Fail Max Recovered Error threshold during DST',
                                    4: 'Reallocation.',
                                    5: 'Reallocation AST table.',
                                    6: 'Reallocation DDT table.',
                                    8: 'Auto Reallocation Failure',
                                    9: 'Impending Failure - Throughput Performance: Insufficient spare to back all NVC cache.',
                                    10: 'NVC has failed to save Torn Write data more times than the threshold (currently 10)',
                                    11: 'Failure Prediction Max Temperature Exceeded',
                                    16: 'Hardware failure.',
                                    20: 'Excessive reassigns.',
                                    22: 'Start times failure.',
                                    24: 'Instruction DBA error found during idle task.  Fixed.',
                                    32: 'General failure.',
                                    39: 'SSD Early Retired Blocks Failure',
                                    40: 'SSD Flash Life Left',
                                    41: 'Exceeded time allocated to complete Zero Disk test (seq write)',
                                    48: 'Recovered erase error rate  (SSD-Jaeger only)',
                                    49: 'Head failure.',
                                    50: 'Recovered data error rate.',
                                    55: 'Recovered TA.',
                                    56: 'Hard TA event.',
                                    64: 'Head flip.',
                                    65: 'SSE (servo seek error).',
                                    66: 'Write fault.',
                                    67: 'Seek failure.',
                                    68: 'Erase Error.',
                                    69: 'Track following errors (Hit66).',
                                    74: 'Seek performance failure.',
                                    91: 'Spinup failure.',
                                    96: 'Firmware Failure condition',
                                    97: 'RVFF system failure.',
                                    98: 'Gain adaptation failure.',
                                    99: 'Fluid Dynamic Bearing Motor leakage detection test failed.',
                                    100: 'Saving Media Cache Map Table (MCMT) to reserved zone failed.',
                                    116: 'SED NOR Key store near to end of life',
                                    117: 'Multiply threshold config.',
                                    239: 'No control table on disk.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Failure Prediction Threshold Exceeded'},
                                16: {0: 'No Specific FRU code.',
                                     'L1': 'Recovered Error',
                                     'L2': 'Failure Prediction Threshold Exceeded'},
                                255: {0: 'No Specific FRU code.',
                                      'L1': 'Recovered Error',
                                      'L2': 'False Failure Prediction Threshold Exceeded'}},
                           133: {0: {0: 'No Specific FRU code.',
                                     'L1': 'Recovered Error',
                                     'L2': '5V threshold exceeded'}},
                           140: {0: {0: 'No Specific FRU code.',
                                     'L1': 'Recovered Error',
                                     'L2': '12V threshold exceeded'}}},
                       2: {4: {0: {0: 'Logical Unit Not Ready, Cause Not Reportable.',
                                   1: 'No Specific FRU code.',
                                   2: 'Logical unit not ready, Change Definition Command in progress.',
                                   128: 'R/W system not ready.',
                                   'L1': 'Not Ready',
                                   'L2': 'Logical Unit Not Ready, Cause Not Reportable'},
                               1: {0: 'No Specific FRU code.',
                                   1: 'Logical unit not ready, excess particle sweep time required',
                                   2: 'Wait for good power loss management status.',
                                   'L1': 'Not Ready',
                                   'L2': 'Logical Unit is in Process of Becoming Ready'},
                               2: {0: 'No Specific FRU code.',
                                   1: 'Supply voltage levels not within spec',
                                   'L1': 'Not Ready',
                                   'L2': 'Drive Not Ready \xe2\x80\x93 START UNIT Required'},
                               3: {0: 'Logical Unit Not Ready, Manual Intervention Required.',
                                   1: 'Logical unit not ready, manual intervention required, Servo doesn\xe2\x80\x99t support MDW Delta-L, Servo doesn\xe2\x80\x99t support VBAR.',
                                   2: 'Logical unit not ready, manual intervention required \xe2\x80\x94CFW is configured for medium latency, but channel family is not capable of supporting medium latency.',
                                   3: 'Logical unit not ready, R/W sub-system failure.',
                                   4: 'Logical unit not ready, Drive is unmated',
                                   5: 'Logical unit not ready, R/W sub-system init failed; Invalid Servo Firmware',
                                   6: 'Logical unit not ready, R/W sub-system init failed; Invalid Servo Adaptives',
                                   7: 'Logical unit not ready, Read failure on all System Data Table copies',
                                   8: 'Logical unit not ready, Forward table read error during restore',
                                   9: 'Logical unit not ready, Scram metadata read error during restore',
                                   10: 'Logical unit not ready, GCU info restore failed',
                                   11: 'Logical unit not ready, Defect table restore failed',
                                   12: 'Logical unit not ready, Scram restore failed',
                                   13: 'Logical unit not ready, Bxor Critical Failure',
                                   15: 'Logical unit not ready, Media is corrupted but data successfully recovered via media scan',
                                   16: 'Logical unit not ready, suspect list read error',
                                   17: 'Logical unit not ready, reverse directory error during restore',
                                   18: 'Logical unit not ready, system recovery format completed but drive lost critical system data',
                                   'L1': 'Not Ready',
                                   'L2': 'Logical Unit Not Ready, Manual Intervention Required'},
                               4: {0: 'Logical unit not ready, Scram restore failed',
                                   'L1': 'Not Ready',
                                   'L2': 'Logical Unit Not Ready, Format in Progress'},
                               7: {0: 'Logical unit not ready, Scram restore failed',
                                   'L1': 'Not Ready',
                                   'L2': 'Logical Unit Not Ready, Format in Progress'},
                               9: {0: 'Logical unit not ready, self-test in progress.',
                                   1: 'Logical unit not ready, short background self-test in progress.',
                                   2: 'Logical unit not ready, extended background self-test in progress.',
                                   3: 'Logical unit not ready, short foreground self-test in progress.',
                                   4: 'Logical unit not ready, extended foreground self-test in progress.',
                                   5: 'Logical unit not ready, firmware download in progress.',
                                   6: 'Logical unit not ready, initial volume download in progress.',
                                   7: 'Logical unit not ready, session opened.',
                                   8: 'No Specific FRU code',
                                   'L1': 'Not Ready',
                                   'L2': 'Logical Unit Not Ready, H2SAT measurement is Progress'},
                               12: {0: 'No Specific FRU code.',
                                    'L1': 'Not Ready',
                                    'L2': 'Logical unit not ready, Field Adjustable Adaptive Fly Height (FAAFH)  in progress'},
                               13: {7: 'Logical unit not ready, Session is already Open.',
                                    'L1': 'Not Ready',
                                    'L2': 'Logical unit not ready, Session is already Open'},
                               17: {2: 'Logical Unit Not Ready, Notify (Enable Spinup) required',
                                    'L1': 'Not Ready',
                                    'L2': 'Logical Unit Not Ready, Notify (Enable Spinup) required'},
                               26: {0: 'Logical Unit Not Ready, Start Stop Unit Command in Progress',
                                    'L1': 'Not Ready',
                                    'L2': 'Logical Unit Not Ready, Start Stop Unit Command in Progress'},
                               27: {0: 'Logical unit not ready, sanitize in progress.',
                                    'L1': 'Not Ready',
                                    'L2': 'Logical unit not ready, sanitize in progress.'},
                               28: {0: 'No specific FRU code.',
                                    'L1': 'Not Ready',
                                    'L2': 'Logical unit not ready, additional power use not yet granted'},
                               34: {1: 'Spindle Error (Spinup Failure)',
                                    2: 'SMIF Traning Failed after 5 times attempt',
                                    'L1': 'Not Ready',
                                    'L2': 'Logical unit not ready, power cycle required.'},
                               240: {0: 'Logical unit not ready, super certify in progress.',
                                     1: 'Counterfeit attempt detected (ETF log SN or SAP SN mismatch)',
                                     'L1': 'Not Ready',
                                     'L2': 'Logical unit not ready, super certify in progress'},
                               242: {0: 'Drive has been placed in special firmware due to assert storm threshold being exceeded.',
                                     'L1': 'Not Ready',
                                     'L2': 'Logical unit not ready, Assert Storm Threshold being exceeded.'}},
                           53: {2: {1: 'Enclosure not ready, no ENCL_ACK assert.',
                                    'L1': 'Not Ready',
                                    'L2': 'Enclosure Services Unavailable'}},
                           132: {0: {0: 'Remanufacturing State.',
                                     'L1': 'Not Ready',
                                     'L2': 'Remanufacturing State'}}},
                       3: {3: {0: {0: 'No Specific FRU code.',
                                   'L1': 'Medium Error',
                                   'L2': 'Peripheral Device Write Fault'}},
                           9: {0: {0: 'Track following error.',
                                   254: 'Head flip during power cycle.',
                                   255: 'Track following error.',
                                   'L1': 'Medium Error',
                                   'L2': 'Track Following Error'},
                               4: {0: 'No Specific FRU code.',
                                   'L1': 'Medium Error',
                                   'L2': 'Head Select Fault'}},
                           10: {1: {0: 'No Specific FRU code.',
                                    1: 'Failed to write super certify log file from media backend',
                                    'L1': 'Medium Error',
                                    'L2': 'Failed to write super certify log file'},
                                2: {0: 'No Specific FRU code.',
                                    'L1': 'Medium Error',
                                    'L2': 'Failed to read super certify log file'}},
                           12: {0: {0: 'Peripheral device write fault.',
                                    1: 'Write error during single sector recovery.',
                                    2: 'Write error during gc relocation',
                                    3: 'Write is revirtualized because of a channel error - SSD',
                                    4: 'Read during preamp unsafe fault.',
                                    5: 'Flash Media Request aborted due to Graceful Channel Reset',
                                    7: 'Save SMART error log failed',
                                    8: 'Write error from media backend',
                                    9: 'SSD Uncorrectable Write Error from Media backend',
                                    10: 'SSD Erase Error.',
                                    11: 'SSD PSM Runt Buffer Page Mismatch Error',
                                    17: 'Unrecovered read error on READ step of PRESCAN.',
                                    18: 'Unrecovered read error on READ step of WRITE converted to WRITE VERIFY during RAW operation.',
                                    22: 'Unrecovered read error on READ step of Read-modify-write',
                                    128: 'BVD update error.',
                                    129: 'BVD Correctable IOEDC error.',
                                    'L1': 'Medium Error',
                                    'L2': 'Write Error'},
                                2: {0: 'Unrecovered write error - Auto reallocation failed.',
                                    1: 'Reallocate Block - Write alternate block failed, no servo defects.',
                                    2: 'Reallocate Block - Alternate block compare test failed.',
                                    3: 'Reallocate Block - Alternate block sync mark error.',
                                    4: 'Reallocate Block - Maximum allowed alternate selection exhausted.',
                                    5: 'Reallocate Block - Resource is not available for a repetitive reallocation.',
                                    6: 'Reallocate Block Failed',
                                    7: 'Reallocate Block Failed - Write Protect',
                                    8: 'Write error, autoreallocation failed from media backend',
                                    'L1': 'Medium Error',
                                    'L2': 'Write Error \xe2\x80\x93 Auto Reallocation Failed'},
                                3: {0: 'Write Error \xe2\x80\x93 Recommend Reassignment',
                                    'L1': 'Medium Error',
                                    'L2': 'Write Error \xe2\x80\x93 Recommend Reassignment'},
                                4: {0: 'WORM Error - Invalid Overlapping Address Range.',
                                    1: 'WORM Error - Written WORM Area Infringement.',
                                    2: 'WORM Error - No further writes allowed on WORM drive',
                                    3: 'WORM Error - SIM Registry Read Failed',
                                    4: 'WORM Error - SIM Registry Write Failed',
                                    5: 'WORM Error - Illegal write request after Lock',
                                    'L1': 'Illigal Request',
                                    'L2': 'Write Error - WORM'},
                                128: {3: 'Disc trace write (to clear it) failed 02.',
                                      5: 'Disc trace write failed.',
                                      6: 'Save UDS DRAM trace frames to disc failed.',
                                      8: 'Write Long disc transfer failed.',
                                      'L1': 'Medium Error',
                                      'L2': 'Write Error \xe2\x80\x93 Unified Debug System'},
                                255: {1: 'No Specific FRU code.',
                                      'L1': 'Medium Error',
                                      'L2': 'Write Error \xe2\x80\x93 Too many error recovery revs'}},
                           17: {0: {0: 'Unrecovered Read Error.',
                                    1: 'Unrecovered Read Error, too many recovery revs.',
                                    2: 'Unrecovered read error, could not read UDS save-on-update trace',
                                    3: 'Unrecovered read error, could not read UDS finished frame index file',
                                    4: 'Unrecovered read error, could not read SMART to include it in UDS',
                                    5: 'Unrecovered read error, UDS read of a finished frame file failed',
                                    6: 'Read SMART error log failed',
                                    7: 'Unrecovered read BBM on partial reallocation',
                                    8: 'Unrecovered read error on media backend',
                                    9: 'SSD Unrecovered Read Error due to ECC Failure',
                                    10: 'SSD Unrecovered Read Error due to Corrupt Bit',
                                    11: 'Unrecovered read flagged error, created with flagged write uncorrectable command',
                                    12: 'Unrecovered read error due to flash channel reset',
                                    128: 'Read during preamp unsafe fault.',
                                    129: 'EDAC HW uncorrectable error.',
                                    130: 'EDAC overrun error.',
                                    131: 'LBA corrupted with Write Long COR_DIS mode.',
                                    132: 'LBA was in Media cache, hardened upon unrec. read error during cleaning',
                                    133: 'EDAC HW uncorrectable error, Super parity or ISP valid and parity recovery attempted.',
                                    134: 'EDAC HW uncorrectable error, Super parity and ISP Invalid.',
                                    160: 'Read preamp unsafe fault with short/open fault set',
                                    'L1': 'Medium Error',
                                    'L2': 'Unrecovered Read Error'},
                                4: {0: 'Unrecovered Read Error \xe2\x80\x93 Auto Reallocation Failed',
                                    128: 'Write alternate block failed, no servo defects.',
                                    129: 'Alternate block compare test failed.',
                                    130: 'Alternate block sync mark error.',
                                    131: 'Maximum allowed alternate selection exhausted.',
                                    132: 'Resource is not available for a repetitive reallocation.',
                                    133: 'SERV HW EDAC failure.',
                                    134: 'SERV SID failure.',
                                    135: 'Number of reallocation pending Super Block exceeded limit.',
                                    136: 'Reallocation pending sector encountered during Super Block read.',
                                    137: 'Reallocation pending sector encountered during Super Block write.',
                                    'L1': 'Medium Error',
                                    'L2': 'Unrecovered Read Error \xe2\x80\x93 Auto Reallocation Failed'},
                                20: {0: 'Unrecovered read error- read pseudo-unrecovered from a WRITE LONG',
                                     'L1': 'Medium Error',
                                     'L2': 'Unrecovered Read Error \xe2\x80\x93 LBA marked bad by application'},
                                255: {1: 'Unrecovered read error- timelimit exceeded.',
                                      'L1': 'Medium Error',
                                      'L2': 'Unrecovered Read Error \xe2\x80\x93 Too many error recovery revs'}},
                           20: {1: {0: 'Record Not Found.',
                                    128: 'Search exhaust error or congen mode page directory not found',
                                    129: 'Reallocation LBA is restricted from write access or congen compressed XML not found',
                                    130: 'Reallocation LBA is restricted from read access.',
                                    131: 'Read from or Write to log page data on reserved zone failed.',
                                    'L1': 'Medium Error',
                                    'L2': 'Record Not Found'}},
                           21: {1: {0: 'No Specific FRU code.',
                                    'L1': 'Medium Error',
                                    'L2': 'Mechanical Positioning Error'},
                                3: {0: 'No Specific FRU code.',
                                    'L1': 'Medium Error',
                                    'L2': 'Unrecovered write errors due to grown servo flaws'}},
                           22: {0: {0: 'Data synchronization mark error.',
                                    128: 'Data sync timeout error.',
                                    129: 'Formatter FIFO parity error 01.',
                                    130: 'Formatter FIFO parity error 02.',
                                    131: 'Super Sector - Data sync timeout error',
                                    132: 'Disc Xfr - Data sync timeout error on sector splits',
                                    'L1': 'Medium Error',
                                    'L2': 'Data Synchronization Mark Error'},
                                1: {0: 'Data missed sync mark error.  FRU code is bits mask indicating which fragment(s) have missed sync error.  Bit n represents fragment n.',
                                    'L1': 'Medium Error',
                                    'L2': 'Data Synchronization Mark Error'}},
                           49: {0: {0: 'Medium Format Corrupted.',
                                    1: 'Corruption result of a Mode Select command.',
                                    2: 'Corruption result of a sparing changed condition.',
                                    3: 'Corruption the result of a failed LBA pattern write in Format command.',
                                    4: 'Corruption result of failed user table recovery.',
                                    5: 'Corruption of NVC global header',
                                    6: 'Medium format corrupted from media backend',
                                    7: 'Medium Format Corrupt due to flash identify failure',
                                    8: 'Medium Format Corrupt as a result of failed NVC write or invalid NVC meta data',
                                    9: 'Medium Format Corrupt due to NVC WCD Meta data corruption',
                                    10: 'Media Format Corrupt due to Write failure during MC WCD data restore to disc',
                                    11: 'Medium Format Corrupt because NVC did not burn flash',
                                    12: 'Medium Format Corrupt because Pseudo Error Masks lost after power loss',
                                    13: 'Medium Format Corrupt because unexpected Media Cache Segment Sequence Number',
                                    14: 'Medium Format Corrupt\xc2\xa0due to system reset without saving NVC data',
                                    15: 'Medium Format Corrupt due to firmware reset (jump to 0) without saving NVC data',
                                    16: 'Medium Format Corrupt due to incomplete burn but no actual power loss',
                                    18: 'Medium Format Corrupt because watchdog timer reset',
                                    19: 'Medium Format Corrupted On Assert (intentionally)',
                                    20: 'Medium Format Corrupt due to IP timeout during SCRAM',
                                    21: 'Medium Format Corrupt due to Write Parameter Error',
                                    22: 'Medium Format Corrupt due to GCU Metadata Error',
                                    24: 'Medium Format Corrupt due to System Metadata restore failure',
                                    32: 'Format Corrupt due to Download changes.',
                                    34: 'Scram user NVC restore failed',
                                    'L1': 'Medium Error',
                                    'L2': 'Medium Format Corrupted'},
                                1: {0: 'No Specific FRU code.',
                                    'L1': 'Medium Error',
                                    'L2': 'Corruption in R/W format request.'},
                                3: {0: 'Sanitize Command Failed',
                                    1: 'Sanitize Command Failed due to file access error',
                                    'L1': 'Medium Error',
                                    'L2': 'Sanitize Command Failed'},
                                145: {13: 'Corrupt WWN in drive information file.',
                                      'L1': 'Medium Error',
                                      'L2': 'Corrupt WWN in drive information file'}},
                           50: {1: {0: 'Defect list update failure.',
                                    128: 'Failed to save defect files.',
                                    129: 'Failed to save defect files post format 01.',
                                    130: 'Failed to save defect files post format 02.',
                                    131: 'Failed to save defect files post format 03.',
                                    'L1': 'Medium Error',
                                    'L2': 'Defect List Update Error'},
                                3: {0: 'No Specific FRU code.',
                                    'L1': 'Medium Error',
                                    'L2': 'Defect list longer than allocated memory.'}},
                           51: {0: {0: 'No Specific FRU code.',
                                    'L1': 'Medium Error',
                                    'L2': 'Flash not ready for access.'}},
                           68: {0: {0: 'No Specific FRU code.',
                                    'L1': 'Medium Error',
                                    'L2': 'Internal Target Failure'}},
                           93: {0: {1: 'Max Unrecovered Read Error',
                                    'L1': 'Medium Error',
                                    'L2': 'Unrecovered Read Error'}}},
                       4: {1: {0: {0: 'No index or sector pulses found.',
                                   128: 'Spin up - Media Manager error encountered.',
                                   129: 'Data field timeout error.',
                                   130: "Media Manager's TDT FIFO Counter error.",
                                   131: "Media Manager's Servo Counter error.",
                                   132: "Media Manager's Latency error.",
                                   133: "Media Manager's Index error.",
                                   134: "Media Manager's Servo error.",
                                   135: 'Media Manager errors could not be cleared successfully.',
                                   136: 'Clearing of MM errors due to a servo error failed.',
                                   137: 'SWCE/SGate overlap error.',
                                   138: 'Servo gate timeout error 01.',
                                   139: 'Servo gate timeout error 02.',
                                   140: 'Servo gate timeout error 03.',
                                   141: 'Servo gate timeout error 04.',
                                   142: 'Servo gate timeout error 05.',
                                   143: 'Super Sector - Handshake error.',
                                   144: 'Super Sector - Servo gate timeout error 01.',
                                   145: 'Super Sector - Servo gate timeout error 02.',
                                   146: 'Super Sector - Servo gate timeout error 03.',
                                   147: 'Super Sector - Servo gate timeout error 04.',
                                   148: 'Super Sector - Servo gate timeout error 05.',
                                   149: 'Servo gate timeout error during generation of Aseek Req.',
                                   150: 'BVD check timeout error.',
                                   151: 'NRZ sequencer completion timeout error.',
                                   152: 'Sequencer timeout on Media Manager event..',
                                   153: 'NRZ xfr error on Media Manager event.',
                                   154: 'Disc sequencer handshake error.',
                                   155: 'Medium Latency channel synchronization handshake error.',
                                   156: 'Fast dPES missed servo sample error.',
                                   157: "Media Manager's anticipatory autoseek (ATS2) XFR error.",
                                   158: 'When a reassigned sector is encountered, wait for the NRZ to finish the previous sector',
                                   159: 'Fast IO Data Collection out of sync with sequencer',
                                   160: 'Channel not ready rev count exhausted.  Apply to LDPC LLI channels',
                                   161: "Media Manager's anticipatory autoseek (ATS2) Servo error.",
                                   162: 'Media Manager\xe2\x80\x99s anticipatory autoseek (ATS2) Disc Pause Condition',
                                   163: 'BERP infinite loop condition',
                                   164: 'Brownout fault detected during write transfer.',
                                   165: 'Sequencer completion timeout error at reassigned sector.',
                                   166: 'Sequencer S-gate timeout error during start of sector read.',
                                   167: 'Sequencer S-gate timeout error during skipping of a new sector.',
                                   'L1': 'Hardware Error',
                                   'L2': 'No Index/Logical Block Signal'}},
                           3: {0: {2: 'Gated Channel Fault',
                                   3: 'Write Preamp Unsafe Fault',
                                   4: 'Write Servo Unsafe Fault',
                                   5: 'Read/write channel fault.',
                                   6: 'SFF fault.',
                                   7: 'Write servo field fault.',
                                   8: 'Write Servo unsafe fault.',
                                   9: 'SSD: Peripheral device write fault (flush cache failed)',
                                   16: 'Write Servo sector fault.',
                                   32: 'Read/Write channel fault.',
                                   64: 'Servo fault.',
                                   128: 'Detect of new servo flaws failed.',
                                   129: 'PSG environment fault.',
                                   130: 'Shock event occurred.',
                                   131: 'Unexpected Extended WGATE fault.',
                                   132: 'Channel detected fault during write.',
                                   133: 'Disc locked clock fault detected.',
                                   134: 'Skip Write Detect Dvgas fault',
                                   135: 'Skip Write Detect Rvgas fault',
                                   136: 'Skip Write Detect Fvgas fault',
                                   137: 'Skip Write Detect Dvgas+Rvgas+Fvgas sum threshold exceeded - last SWD fault Dvgas',
                                   138: 'Skip Write Detect Dvgas+Rvgas+Fvgas sum threshold exceeded - last SWD fault Rvgas',
                                   139: 'Skip Write Detect Dvgas+Rvgas+Fvgas sum threshold exceeded - last SWD fault Fvgas',
                                   140: 'Drive free-fall event occurred',
                                   141: 'Large Shock event occured',
                                   144: 'NRZ Write Parity fault.',
                                   145: 'Marvell 8830 TBG Unlock fault.',
                                   146: 'Marvell 8830 WClk Loss fault.',
                                   147: 'EBMS Fault Detect(EFD) Contact fault during write.',
                                   148: 'EBMS Fault Detect(EFD) Contact fault during read.',
                                   149: 'EBMS Fault Detect(EFD) SWOT fault.',
                                   150: 'Marvell SRC SFG Unlock fault.',
                                   255: "LSI 6 channel preamp attempting to write without heat, condition detected by servo and passed as servo fault ( i.e. Preamp error condition indicated by servo fault condition ). This should be recovered by a 'seek away ' performed as part of recovery step",
                                   'L1': 'Hardware Error',
                                   'L2': 'Peripheral Device Write Fault'}},
                           9: {0: {0: 'Servo track following error.',
                                   64: 'Servo fault, Normally 04/0900/80 would be changed to 04/0900/40 by the firmware.',
                                   128: 'Servo fault, Normally 04/0900/80 would be changed to 04/0900/40 by the firmware.',
                                   129: 'Servo unsafe fault during write.',
                                   130: 'EDAC block address error.',
                                   131: 'Missing MDW information reported by servo detection.',
                                   132: 'Servo command timed out.',
                                   133: 'Seek command timed out.',
                                   134: 'Seek exceeded recovery time limit.',
                                   135: 'Service drive free fall condition timed out.',
                                   136: 'The altitude has exceeded the limit',
                                   137: 'Seek command timed out on alternate sector',
                                   138: 'Super Block marked dirty.',
                                   139: 'Verify of Super Block data failed.',
                                   140: 'Servo fatal error indicated',
                                   141: 'Super Parity long word Cross Check error',
                                   142: 'Super Parity low word Cross Check error',
                                   143: 'Super Parity high word Cross Check error',
                                   144: 'Super Parity data miscompare',
                                   145: 'Invalid Anticipatry Track Seek request.',
                                   146: 'Enhance Super parity regeneration failure.',
                                   147: 'Super parity regeneration failure.',
                                   'L1': 'Hardware Error',
                                   'L2': 'Track Following Error'},
                               1: {0: 'No Specific FRU code.',
                                   'L1': 'Hardware Error',
                                   'L2': 'Servo Fault'},
                               4: {0: 'No Specific FRU code.',
                                   'L1': 'Hardware Error',
                                   'L2': 'Head Select Fault'},
                               255: {0: 'No Specific FRU code.',
                                     'L1': 'Hardware Error',
                                     'L2': 'Servo cal failed as part of self-test'}},
                           21: {1: {0: 'Mechanical Positioning Error.',
                                    128: 'Servo error encountered during drive spin-up.',
                                    129: 'Servo error encountered during drive spin-down.',
                                    130: 'Spindle failed error.',
                                    131: 'Unrecovered seek error encountered.',
                                    132: 'Servo command failed.',
                                    133: 'Servo heater timing failed.',
                                    134: 'Servo Free-Fall Protection command failed.',
                                    135: 'Servo Disc Slip Full TMFF recalibration failed.',
                                    136: 'Servo Disc Slip Head Switch Timing recalibration failed.',
                                    137: 'Servo Disc Slip Head Switch Track recalibration failed.',
                                    138: 'Servo read heat fast I/O command failed.',
                                    139: 'Spin-up attempt during G2P merge process failed.',
                                    140: 'Spin-down attempt during PList processing failed.',
                                    141: 'Spin-up attempt during PList processing failed.',
                                    'L1': 'Hardware Error',
                                    'L2': 'Mechanical Positioning Error'}},
                           22: {0: {0: 'No Specific FRU code.',
                                    'L1': 'Hardware Error',
                                    'L2': 'Data Synchronization Mark Error'}},
                           25: {0: {0: 'Defect list error.',
                                    1: 'Save user table error.',
                                    2: 'SIM file transfer error.',
                                    3: 'Persistent Reserve Save to disc fail.',
                                    4: 'Defect list error media backend',
                                    128: 'Format - Recover of saved Grown DST file failed.',
                                    129: 'Recovery of saved Non-Resident DST failed.',
                                    130: 'Clear R/W Slip List - Save of R/W Operating Parmaters file failed.',
                                    131: 'Restore Alt List File From media - Failed restoration from media file.',
                                    132: 'Save of Servo Disc Slip Parms to media failed.',
                                    133: 'Read of Servo Disc Slip Parms from media failed 1.',
                                    134: 'Read of Servo Disc Slip Parms from media failed 2.',
                                    135: 'Servo Disc Slip file - invalid format revision.',
                                    136: 'GList to PList - Recover of saved Grown DST file failed.',
                                    137: 'Clear Non-resident Grown DST - Save to media failed.',
                                    'L1': 'Hardware Error',
                                    'L2': 'Defect List Error'}},
                           28: {0: {0: 'Defect list not found.',
                                    1: 'Defect list processing error.',
                                    2: 'Read Manufacturing Info File failure.',
                                    3: 'Read Manufacturing Info File failure.',
                                    4: 'Defect list not found from media backend',
                                    50: 'Read Manufacturing Info File failure.',
                                    52: 'Read Manufacturing Info File failure.',
                                    129: 'Failure to read Primary Defects file for reporting.',
                                    130: 'Invalid entry count in Plist file.',
                                    131: 'Invalid byte extent value in Plist entry.',
                                    132: 'Process Defect Lists - Sort error due to invalid offset.',
                                    133: 'Process Defect Lists - Sort error due to invalid head.',
                                    134: 'Process Defect Lists - Sort error due to invalid cylinder.',
                                    135: 'Process Defect Lists - Unable to recover the Primary Defect files.',
                                    136: 'Failed to seek to defect files for reassign.',
                                    137: 'Failed to seek to defect files for undo-reassign.',
                                    138: 'Failure to write defects report lists file to media.',
                                    139: 'Read of defects report file from media failed.',
                                    140: 'An invalid defects report file is encountered 01.',
                                    141: 'An invalid defects report file is encountered 02',
                                    142: 'Restore of R/W User Operating Parameters file failed.',
                                    143: 'Invalid Primary Servo Flaws data encountered.',
                                    144: 'Failed to save defect files due to miscompare error.',
                                    146: 'PList overflow error while merging PSFT and PList for reporting.',
                                    147: 'Maximum certify passes of a zone exceeded.',
                                    148: 'Maximum write passes of a zone exceeded.',
                                    149: 'Primary Servo Flaws data retrieval - Unable to read file on disc.',
                                    150: 'Primary Servo Flaws data retrieval - Invalid entry count in file.',
                                    151: 'Defective Sectors List data retrieval - Unable to read file on disc.',
                                    152: 'Defective Sectors List data retrieval - Invalid file header data.',
                                    153: 'PList data retrieval - Invalid entry count in Plist file.',
                                    154: 'PList data retrieval - Unable to read Plist file on disc.',
                                    155: 'System Format - invalid entry count.',
                                    156: 'Primary TA data retrieval - Unable to read file on disc.',
                                    157: 'Primary TA data retrieval - Invalid count.',
                                    158: 'Primary TA data retrieval - Invalid sort.',
                                    159: "Process Defect Lists - Defect doesn't exist in audit space.",
                                    160: 'Retrieve Defects Report List - Not All Entries Available',
                                    161: 'Format - Invalid LBA range in PVT before update of dirty blocks.',
                                    162: 'Format - Invalid Parity Validity Table after clean of dirty blocks.',
                                    163: 'Format - Clean of dirty blocks failed.',
                                    164: 'Format - Save of Parity Validity Table to media failed.',
                                    'L1': 'Hardware Error',
                                    'L2': 'Defect List Not Found'}},
                           38: {48: {0: 'No Specific FRU code.',
                                     'L1': 'Hardware Error',
                                     'L2': 'Writing to the Flash Failed'},
                                49: {0: 'Failed to program PIC code with new firmware',
                                     'L1': 'Hardware Error',
                                     'L2': 'Writing to the PIC Failed'}},
                           41: {0: {0: 'No Specific FRU code.',
                                    'L1': 'Hardware Error',
                                    'L2': 'Flashing LED occurred.'}},
                           50: {0: {8: 'No defect spare location available',
                                    9: 'No defect spare location available for reassign block.',
                                    128: 'Processing of pending reallocation failed.',
                                    129: 'Failed to insert defect to DST.',
                                    130: 'Failed to insert Plist defect to DST.',
                                    131: 'Grown DST file full 01.',
                                    132: 'Grown DST file full 02.',
                                    133: 'Resident DST file full.',
                                    134: 'Failed to insert defective sectors associated w/grown servo flaw.',
                                    135: 'Failure to invalidate Defects Report disc files.',
                                    136: 'Format System Partition \xe2\x80\x93 Failed to insert defective system sectors associated w/ grown servo flaw.',
                                    137: 'Format System Partition \xe2\x80\x93 Failed to insert defective system sectors.',
                                    138: 'Format System Partition \xe2\x80\x93 System Defects file full.',
                                    139: 'Process Defect Lists \xe2\x80\x93 Failed to insert a client specified defect in the defect file.',
                                    140: 'ASFT \xe2\x80\x93 Max # of servo flaws per track exceeded (path #1).',
                                    141: 'ASFT \xe2\x80\x93 Max # of servo flaws per track exceeded (path #2).',
                                    142: 'ASFT full (path #1).',
                                    143: 'ASFT full (path #2).',
                                    144: 'Addition to Reassign Pending List failed.',
                                    145: 'Resource is not available for a new reallocation.',
                                    146: 'No alternates available (path #1).',
                                    147: 'Failed to insert defective sectors associated w/grown servo flaw.',
                                    148: 'Failed to deallocate compromised defects.',
                                    149: 'Format System Partition \xe2\x80\x93 Failed to deallocate compromised.',
                                    150: 'Insertion of DDT entry failed.',
                                    151: 'Compressed DDT file full.',
                                    152: 'Format \xe2\x80\x93 Failed to insert defective sectors associated w/primary servo flaw.',
                                    153: 'Defective Tracks List \xe2\x80\x93 Failed to insert grown defective sectors associated with defective track.',
                                    154: 'Defective Tracks List \xe2\x80\x93 Failed to insert primary defective sectors associated with defective track.',
                                    155: 'Defective Tracks List \xe2\x80\x93 Failed to add new entry to list.',
                                    156: 'Reallocate Block \xe2\x80\x93 Resource is not available for a partial reallocation.',
                                    157: 'Resource is not available for a partial reallocation.',
                                    158: 'Not enough non-defective sectors to allocate for BIPS parity Sectors.',
                                    159: 'BIPS defect table operation failed \xe2\x80\x93 case 1.',
                                    160: 'BIPS defect table operation failed \xe2\x80\x93 case 2.',
                                    161: 'Format \xe2\x80\x93 Failed to add defective track to DST.',
                                    162: 'Format \xe2\x80\x93 Failed to allocate spare sectors.',
                                    163: 'Pad and Fill Defects \xe2\x80\x93 Max number of skipped tracks exceeded.',
                                    164: 'Format \xe2\x80\x93 Failed to allocate spare sectors.',
                                    165: 'Format \xe2\x80\x93 More LBAs than PBAs.',
                                    166: 'Format \xe2\x80\x93 Failed to allocate spare sectors.',
                                    167: 'Format \xe2\x80\x93 Failed to allocate spare sectors.',
                                    168: 'Format \xe2\x80\x93 Failed to allocate spare sectors.',
                                    169: 'Format \xe2\x80\x93 Excessive number of slips not supported by hardware.',
                                    170: 'Invalid HW parity data for parity sector reallocation.',
                                    171: 'Format \xe2\x80\x93 Could not allocate required guard/pad around media cache area on disc',
                                    172: 'Format \xe2\x80\x93 Will not be able to save ISP/MC metadata after the format (a mis-configuration problematic to try to address before this point)',
                                    173: 'Format - Failed to allocate spare sectors.',
                                    174: 'Format - Failed to allocate spare sectors.',
                                    175: 'Format - Failed to allocate spare sectors.',
                                    176: 'Format - Failed to allocate spare sectors.',
                                    177: 'Format - Failed to update parity sectors slip list.',
                                    178: 'Format - Invalid track sector range encountered.',
                                    179: 'Format \xe2\x80\x93 Could not allocate required guard/pad around intermediate super parity area on disc',
                                    180: 'Format \xe2\x80\x93 Media Cache starting DDT entry not found.',
                                    193: 'Format - Attempt to add pad between user area and start/end of Distributed Media Cache failed',
                                    'L1': 'Hardware Error',
                                    'L2': 'DMC area padding failed'},
                                1: {0: 'Defect list update failure.',
                                    23: 'Saving of the ASFT during idle time failed',
                                    129: 'Plist file overflow error.',
                                    130: 'PSFT file overflow error.',
                                    131: 'Unable to write defect files.',
                                    132: 'Unable to update operating parms file.',
                                    133: 'Plist file overflow error.',
                                    134: 'Plist file overflow error.',
                                    'L1': 'Hardware Error',
                                    'L2': 'Defect List Update Error'}},
                           53: {0: {8: 'LIP occurred during discovery.',
                                    9: 'LIP occurred during an 8067 command.',
                                    10: 'LIP occurred during an 8045 read.',
                                    11: 'LIP occurred during an 8067 read.',
                                    12: 'LIP occurred during an 8067 write.',
                                    13: 'Parallel ESI deasserted during discovery.',
                                    14: 'Parallel ESI deasserted during an 8067 command.',
                                    15: 'Parallel ESI deasserted during an 8045 read.',
                                    16: 'Parallel ESI deasserted during an 8067 read.',
                                    17: 'Parallel ESI deasserted during an 8067 write.',
                                    'L1': 'Hardware Error',
                                    'L2': 'Unspecified Enclosure Services Failure'},
                                3: {2: 'Enclosure found but not ready \xe2\x80\x93 No Encl_Ack Negate.',
                                    4: 'Read Data Transfer Enclosure Timeout.',
                                    5: 'Write Data Transfer Enclosure Timeout.',
                                    13: 'Read Data Transfer Bad Checksum.',
                                    14: 'Write Data Transfer Enclosure Timeout.',
                                    15: 'Read Data Transfer Enclosure Timeout.',
                                    'L1': 'Hardware Error',
                                    'L2': 'Enclosure Transfer Failure'},
                                4: {4: 'Read Data Transfer Refused by Enclosure.',
                                    5: 'Write Data Transfer Refused by Enclosure.',
                                    'L1': 'Hardware Error',
                                    'L2': 'Enclosure Transfer Refused'}},
                           62: {3: {0: 'No Specific FRU code.',
                                    1: 'Logical Unit Failed Self Test \xe2\x80\x93 TestWriteRead',
                                    2: 'Logical Unit Failed Self Test \xe2\x80\x93 TestRandomRead',
                                    3: 'Logical Unit Failed Self Test \xe2\x80\x93 ScanOuterDiameter',
                                    4: 'Logical Unit Failed Self Test \xe2\x80\x93 ScanInnerDiameter',
                                    5: 'Logical Unit Failed Self Test from media backend',
                                    'L1': 'Hardware Error',
                                    'L2': 'Logical Unit Failed Self Test'},
                                4: {0: 'No Specific FRU code.',
                                    'L1': 'Hardware Error',
                                    'L2': 'H2SAT Foreground Test Failure'}},
                           64: {0: {128: 'Format \xe2\x80\x93 Exceeded max number of track rewrites during certify retries.',
                                    'L1': 'Hardware Error',
                                    'L2': 'Miscellaneous Error'},
                                1: {0: 'Buffer memory parity error.',
                                    1: 'Buffer FIFO parity error.',
                                    2: 'IOEDC error.',
                                    3: 'VBM parity error.',
                                    'L1': 'Hardware Error',
                                    'L2': 'DRAM Parity Error'},
                                145: {0: 'No Specific FRU code.',
                                      'L1': 'Hardware Error',
                                      'L2': 'Cryptographic Hardware Power-On Self-Test Failure'},
                                146: {0: 'No Specific FRU code.',
                                      'L1': 'Hardware Error',
                                      'L2': 'Cryptographic Algorithm Power-On Self-Test Failure'},
                                147: {0: 'No Specific FRU code.',
                                      'L1': 'Hardware Error',
                                      'L2': 'Conditional Random Number Generation Self-Test Failure'},
                                148: {0: 'No Specific FRU code.',
                                      'L1': 'Hardware Error',
                                      'L2': 'Hidden Root Key Error During Command Execution'},
                                149: {0: 'No Specific FRU code.',
                                      'L1': 'Hardware Error',
                                      'L2': 'Entropy Power-On Self-Test Failure'},
                                150: {0: 'No Specific FRU code.',
                                      'L1': 'Hardware Error',
                                      'L2': 'Conditional Entropy Self-Test Failure'},
                                151: {0: 'No Specific FRU code.',
                                      'L1': 'Hardware Error',
                                      'L2': 'Boot Firmware SHA-256 Power-On Self-Test Failure'},
                                152: {0: 'No Specific FRU code.',
                                      'L1': 'Hardware Error',
                                      'L2': 'Boot Firmware RSA Power-On Self-Test Failure'}},
                           66: {0: {0: 'Power-on or self-test failure.',
                                    1: 'DST failure.',
                                    2: 'SIM Spinning-up state transition failure.',
                                    3: 'SIM Drive Initialization state transition failure.',
                                    4: 'Read/write thread initialization failed.',
                                    20: 'DIC exceeds the time limits consecutively over count limit',
                                    'L1': 'Hardware Error',
                                    'L2': 'Power-On or Self-Test Failure'},
                                10: {0: 'No Specific FRU code.',
                                     'L1': 'Hardware Error',
                                     'L2': 'Port A failed loopback test'},
                                11: {0: 'No Specific FRU code.',
                                     'L1': 'Hardware Error',
                                     'L2': 'Port B failed loopback test'}},
                           68: {0: {0: 'Internal target failure',
                                    1: 'Self test buffer test failure.',
                                    2: 'Write read test failure.',
                                    3: 'Data sync timeout error.',
                                    4: 'SSD Test access error (DST)',
                                    5: 'Backend (SSD) DRAM failure (DST)',
                                    6: 'Backend (SSD) SRAM failure (DST)',
                                    7: 'Internal target failure META data test',
                                    8: 'Internal target failure System Area Check',
                                    9: 'wait for ACP to get ready for reset took too long',
                                    10: 'wait for AMP to get ready for reset took too long',
                                    11: 'FDBMotor Leakage detected.',
                                    12: 'wait for I2C to be available took too long',
                                    128: 'Write during preamp unsafe fault.',
                                    129: 'Read write channel fault.',
                                    130: 'Small form factor fault.',
                                    131: 'Write during servo field fault.',
                                    132: 'Media Manager\xe2\x80\x99s TPBA FIFO Counter error.',
                                    133: 'Media Manager\xe2\x80\x99s TPBA FIFO Under-run error.',
                                    134: 'Media Manager\xe2\x80\x99s DDT FIFO Counter error.',
                                    135: 'Media Manager\xe2\x80\x99s DDT FIFO Under-run error.',
                                    136: 'Media Manager\xe2\x80\x99s Parity error.',
                                    137: 'Media Manager\xe2\x80\x99s TDT FIFO Under-run error.',
                                    138: 'Media Manager\xe2\x80\x99s Skip Mask Under-run error.',
                                    139: 'Get Temperature request resulted in invalid temperature.',
                                    140: 'Detected unsupported H/W in a Set Voltage Margin request.',
                                    141: 'Unused Error Code.',
                                    142: 'SMART Initial buffer not ready',
                                    143: 'Formatter EDAC correction memory parity error.',
                                    144: 'NX \xe2\x80\x93 RLL1 error.',
                                    145: 'Disc Buffer parity error.',
                                    146: 'Sequencer encountered an EXE/SGATE overlap error.',
                                    147: 'Formatter Correction Buffer underrun error.',
                                    148: 'Formatter Correction Buffer overrun error.',
                                    149: 'Formatted detected NRZ interface protocol error.',
                                    150: 'Media Manager\xe2\x80\x99s MX Overrun error.',
                                    151: 'Media Manager\xe2\x80\x99s NX Overrun error.',
                                    152: 'Media Manager\xe2\x80\x99s TDT Request error.',
                                    153: 'Media Manager\xe2\x80\x99s SST Overrun error.',
                                    154: 'Servo PZT calibration failed.',
                                    155: 'Fast I/O- Servo Data Update Timeout error.',
                                    156: 'Fast I/O- First wedge Servo data Timeout error.',
                                    157: 'Fast I/O- Max samples per collection exceeded.',
                                    158: 'CR memory EDC error',
                                    159: 'SP block detected an EDC error',
                                    160: 'Preamp heater open/short fault.',
                                    161: 'RW Channel fault- Memory buffer overflow or underflow or parity error during write.',
                                    162: 'RW Channel fault- Memory buffer overflow or read data path FIFO underflow in legacy NRZ mode.',
                                    163: 'RW Channel fault- Preamp fault during R/W.',
                                    164: 'RW Channel fault- SGATE, RGATE, or WGATE overlap.',
                                    165: 'RW Channel fault- Mismatch in split sector controls or sector size controls.',
                                    166: 'RW Channel fault- Write clock or NRZ clock is not running.',
                                    167: 'RW Channel fault- SGATE, RGATE, or WGATE asserted during calibration.',
                                    168: 'RW Channel fault- RWBI changed during a read or write event.',
                                    169: 'RW Channel fault- Mode overlap flag.',
                                    170: 'RW Channel fault- Inappropriate WPLO or RPLO behavior.',
                                    171: 'RW Channel fault- Write aborted.',
                                    172: 'RW Channel fault- Bit count late.',
                                    173: 'RW Channel fault- Servo overlap error',
                                    174: 'RW Channel fault- Last data fault',
                                    176: 'PES threshold in field is too far from the same value calculated in the factory.',
                                    177: 'Not enough Harmonic Ratio samples were gathered',
                                    178: 'Sigma of Harmonic Ratio samples after all discards exceeded the limit',
                                    179: 'No EBMS contact fault, even at lowest threshold value',
                                    180: 'EBMS fault still detected at highest threshold value',
                                    181: 'Formatter detected BFI error.',
                                    182: 'Formatter FIFO Interface error.',
                                    183: 'Media sequencer- Disc sequencer Data transfer size mismatch.',
                                    184: 'Correction buffer active while disc sequencer timeout error (this error code is used to fix the hardware skip mask read transfer issue).',
                                    185: 'Seagate Iterative Decoder \xe2\x80\x93 Channel RSM fault',
                                    186: 'Seagate Iterative Decoder \xe2\x80\x93 Channel WSM fault',
                                    187: 'Seagate Iterative Decoder \xe2\x80\x93 Channel BCI fault',
                                    188: 'Seagate Iterative Decoder \xe2\x80\x93 Channel SRC fault',
                                    189: 'Seagate Iterative Decoder \xe2\x80\x93 Channel SAB fault',
                                    190: 'Seagate Iterative Decoder \xe2\x80\x93 Channel read gate overflow error',
                                    192: 'Seagate Iterative Decoder \xe2\x80\x93 Channel SMB Bus B parity error',
                                    193: 'Seagate Iterative Decoder \xe2\x80\x93 Channel SMB buffer error on write',
                                    194: 'Seagate Iterative Decoder \xe2\x80\x93 Channel SOB buffer error on write',
                                    195: 'Seagate Iterative Decoder \xe2\x80\x93 Channel SOB parity error',
                                    196: 'Seagate Iterative Decoder \xe2\x80\x93 Channel SAB buffer error',
                                    197: 'Seagate Iterative Decoder \xe2\x80\x93 Channel SAB bend error',
                                    198: 'Seagate Iterative Decoder \xe2\x80\x93 Channel LLI buffer sync error',
                                    199: 'Seagate Iterative Decoder \xe2\x80\x93 Channel LLI data length error on write',
                                    200: 'Seagate Iterative Decoder \xe2\x80\x93 Channel LLI framing error on write',
                                    201: 'Seagate Iterative Decoder \xe2\x80\x93 Channel LLI write status error',
                                    202: 'Seagate Iterative Decoder \xe2\x80\x93 Channel LLI pipe state error (Bonanza), - Channel RSM Gross Error (Caribou- Luxor)',
                                    203: 'Seagate Iterative Decoder \xe2\x80\x93 Channel decoder microcode error',
                                    204: 'Seagate Iterative Decoder \xe2\x80\x93 Channel encoder microcode error',
                                    205: 'Seagate Iterative Decoder \xe2\x80\x93 Channel NRZ parity error',
                                    206: 'Seagate Iterative Decoder \xe2\x80\x93 Symbols per Sector mismatch error',
                                    207: 'Seagate Iterative Decoder \xe2\x80\x93 Channel SMB Bus A parity error',
                                    208: 'Seagate Iterative Decoder \xe2\x80\x93 Channel SMB NRZ  parity error',
                                    209: 'Seagate Iterative Decoder \xe2\x80\x93 Channel SOB Buffer error on read',
                                    210: 'Seagate Iterative Decoder \xe2\x80\x93 Channel SMB Buffer error on read',
                                    211: 'Seagate Iterative Decoder \xe2\x80\x93 Channel LLI data length error on read',
                                    212: 'Seagate Iterative Decoder \xe2\x80\x93 Channel LLI framing error on read',
                                    217: 'Seagate Iterative Decoder \xe2\x80\x93 Channel WSM Gross error',
                                    218: 'Seagate Iterative Decoder \xe2\x80\x93 Channel ERF buffer error',
                                    224: 'Preamp low voltage error',
                                    225: 'Preamp low write data frequency at common point error',
                                    226: 'Preamp write head open error',
                                    227: 'Preamp write head shorted to ground error',
                                    228: 'Preamp TA sensor open error',
                                    229: 'Preamp temperature error',
                                    230: 'Preamp write without heat error',
                                    231: 'Preamp writer off in write error',
                                    232: 'Preamp writer output buffer error',
                                    233: 'Preamp low write data frequency at the head error',
                                    234: 'Preamp FOS error',
                                    235: 'Preamp TA or contact detect error',
                                    236: 'Preamp SWOT error',
                                    237: 'Preamp serial port communication error',
                                    238: 'HSC magnitude overflow error',
                                    240: 'RW Channel \xe2\x80\x93 RDATA valid overlap fault',
                                    241: 'RW Channel \xe2\x80\x93 RD valid gap fault',
                                    244: 'RW Channel \xe2\x80\x93 W Parity not ready',
                                    247: 'RW Channel \xe2\x80\x93 Wrong sector length',
                                    248: 'RW Channel \xe2\x80\x93 Encoder overflow error',
                                    249: 'RW Channel \xe2\x80\x93 Encoder early termination fault',
                                    250: 'RW Channel \xe2\x80\x93 Iteration parameter error',
                                    251: 'RW Channel \xe2\x80\x93 MXP write fault',
                                    252: 'RW Channel \xe2\x80\x93 Symbol count error',
                                    253: 'RW Channel \xe2\x80\x93 RD Incomplete error',
                                    254: 'RW Channel \xe2\x80\x93 RD Data VGA error',
                                    255: 'RW Channel \xe2\x80\x93 RD Data TA error',
                                    'L1': 'Hardware Error',
                                    'L2': 'Internal Target Failure'},
                                1: {2: 'RW Channel \xe2\x80\x93 RFM Wrong sector length',
                                    3: 'RW Channel \xe2\x80\x93 RFM FIFO underflow',
                                    4: 'RW Channel \xe2\x80\x93 RFM FIFO Overflow',
                                    5: 'RW Channel \xe2\x80\x93 Vector flow errors',
                                    32: 'HSC - An error occurred when attempting to open the file to be used for Harmonic Sensor Circuitry data collection.',
                                    33: 'HSC - The Standard Deviation of the VGAS data collected by the Harmonic Sensor Circuitry was zero.',
                                    34: 'HSC - The Standard Deviation of the 3rd Harmonic data collected by the Harmonic Sensor Circuitry was zero.',
                                    35: 'HSC - The Servo Loop Code returned at the completion of Harmonic Sensor Circuitry data collection was not 0.',
                                    36: 'HSC - An invalid write pattern was specified Harmonic Sensor Circuitry data collection.',
                                    37: 'AR Sensor - The AR Sensor DAC to Target calculation encountered the need to take the square root of a negative value.',
                                    38: 'AR Sensor - The AR Sensor encountered an error when attempting to open the Background Task file.',
                                    39: 'AR Sensor - The AR Sensor encountered an error when attempting to open the General Purpose Task file.',
                                    40: "AR Sensor - The size of the Background Task file is inadequate to satisfy the AR Sensor's requirements.",
                                    41: "AR Sensor - The size of the General Purpose Task file is inadequate to satisfy the AR Sensor's requirements.",
                                    42: 'AR Sensor - The FAFH Parameter File revision is incompatible with the AR Sensor.',
                                    43: 'AR Sensor - The AR Sensor Descriptor in the FAFH Parameter File is invalid.',
                                    44: 'AR Sensor - The Iterative Call Index specified when invoking the AR Sensor exceeds the maximum supported value.',
                                    45: 'AR Sensor - The AR Sensor encountered an error when performing a Track Position request.',
                                    46: 'AR Sensor - The Servo Data Sample Count specified when invoking the AR Sensor exceeds the maximum supported value.',
                                    47: 'AR Sensor - The AR Sensor encountered an error when attempting to set the read channel frequency.',
                                    48: 'AR Sensor - The 3rd Harmonic value measured by the AR Sensor was 0.',
                                    96: 'RW Channel - LOSSLOCKR fault',
                                    97: 'RW Channel - BLICNT fault',
                                    98: 'RW Channel - LLI ABORT fault',
                                    99: 'RW Channel - WG FILLR fault',
                                    100: 'RW Channel - WG FILLW fault',
                                    101: 'RW Channel - CHAN fault',
                                    102: 'RW Channel - FRAG NUM fault',
                                    103: 'RW Channel - WTG fault',
                                    104: 'RW Channel - CTG fault',
                                    105: 'RW Channel -\xc2\xa0NZRCLR fault',
                                    106: 'RW Channel - \xc2\xa0Read synthesizer prechange fail fault',
                                    107: 'RW Channel -\xc2\xa0Servo synthesizer prechange fail fault',
                                    108: 'RW Channel - Servo Error detected prior to halting Calibration Processor',
                                    109: 'RW Channel -\xc2\xa0Unable to Halt Calibration Processor',
                                    110: 'RW Channel -\xc2\xa0ADC Calibrations already disabled',
                                    111: 'RW Channel -\xc2\xa0Calibration Processor Registers have already been saved',
                                    112: 'RW Channel -\xc2\xa0Address where Calibration Processor Registers are to be saved is invalid',
                                    113: 'RW Channel -\xc2\xa0Array for saving Calibration Processor Register values is too small',
                                    114: 'RW Channel -\xc2\xa0Calibration Processor Register values to be used for AR are invalid',
                                    115: 'RW Channel -\xc2\xa0Synchronous abort complete fault',
                                    116: 'RW Channel -\xc2\xa0Preamble length fault',
                                    117: 'RW Channel -\xc2\xa0TA or media defect event fault',
                                    118: 'RW Channel -\xc2\xa0DPLL frequency overflow/underflow fault',
                                    119: 'RW Channel -\xc2\xa0Zero gain threshold exceeded fault',
                                    120: 'RW Channel -\xc2\xa0DPLL frequency deviation fault',
                                    121: 'RW Channel -\xc2\xa0Extended EVGA overflow/underflow fault',
                                    128: 'RW Channel -\xc2\xa0\xc2\xa0Read VGA gain fault',
                                    129: 'RW Channel -\xc2\xa0Acquire Peak Amplitude flag fault',
                                    130: 'RW Channel -\xc2\xa0Massive drop-out fault',
                                    131: 'RW Channel -\xc2\xa0Low Quality sync mark fault',
                                    132: 'RW Channel -\xc2\xa0NPLD load error fault',
                                    133: 'RW Channel -\xc2\xa0Write path memory fault status bit fault',
                                    134: 'RW Channel -\xc2\xa0WRPO disabled fault',
                                    135: 'RW Channel -\xc2\xa0Preamble quality monitor fault',
                                    136: 'RW Channel -\xc2\xa0Reset detection flag fault',
                                    137: 'RW Channel -\xc2\xa0Packet write fault',
                                    138: 'RW Channel -\xc2\xa0Gate command queue overflow fault',
                                    139: 'RW Channel -\xc2\xa0Gate command queue underflow fault',
                                    140: 'RW Channel -\xc2\xa0Ending write splice fault status fault',
                                    141: 'RW Channel -\xc2\xa0Write-through gap servo collision fault',
                                    142: 'RW Channel - Read Gate Fault',
                                    143: 'Error reading the Preamp Gain register during an HSC operation',
                                    144: 'Error writing the Preamp Gain register during an HSC operation',
                                    145: 'RW Channel - Calibration Processor not halted',
                                    146: 'RW Channel - Background Calibrations already stopped',
                                    147: 'RW Channel -\xc2\xa0Background Calibrations not stopped',
                                    148: 'RW Channel - Calibration Processor halt error',
                                    149: 'RW Channel - Save AR Calibration Processor registers error',
                                    150: 'RW Channel - Load AR Calibration Processor registers error',
                                    151: 'RW Channel - Restore AR Calibration Processor registers error',
                                    152: 'RW Channel - Write Markov Modulation Code Failure Type 0',
                                    153: 'RW Channel - Write Markov Modulation Code Failure Type 1',
                                    154: 'RW Channel - Write Markov Modulation Code Failure Type 2',
                                    155: 'RW Formatter - NRZ Interface Parity Randomizer Nyquist Error',
                                    156: 'RW Formatter - NRZ Interface Parity Randomizer Run Error',
                                    157: 'RW Formatter - DLT Fifo Underrun Error',
                                    158: 'RW Formatter - WDT Fifo Underrun Error',
                                    159: 'RW Formatter - M2 MI error',
                                    'L1': 'Hardware Error',
                                    'L2': 'Internal Target Failure'},
                                224: {0: 'Failure writing firmware to disc.',
                                      'L1': 'Hardware Error',
                                      'L2': 'Writing to Disc Failed'},
                                225: {0: 'Failed to reinitialize the NVC Host',
                                      'L1': 'Hardware Error',
                                      'L2': 'Writing to Disc Failed'},
                                226: {0: 'Failed to erase the NVC Header',
                                      'L1': 'Hardware Error',
                                      'L2': 'Writing to Disc Failed'},
                                227: {0: 'Failed to write NVC client data to disc',
                                      'L1': 'Hardware Error',
                                      'L2': 'Writing to Disc Failed'},
                                228: {0: 'Failed to initialize the NVC header',
                                      'L1': 'Hardware Error',
                                      'L2': 'Writing to Disc Failed'},
                                229: {0: 'Failed to initialize the NVC Host',
                                      'L1': 'Hardware Error',
                                      'L2': 'Writing to Disc Failed'},
                                230: {0: 'Failed to write MCMT during initialization',
                                      'L1': 'Hardware Error',
                                      'L2': 'Writing to Disc Failed'},
                                231: {0: 'Failed to write the ISPT during format',
                                      'L1': 'Hardware Error',
                                      'L2': 'Writing to Disc Failed'},
                                232: {0: 'Failed to clear logs during format',
                                      'L1': 'Hardware Error',
                                      'L2': 'Writing to Disc Failed'},
                                242: {0: 'No Specific FRU code.',
                                      'L1': 'Hardware Error',
                                      'L2': 'Data Integrity Check Failed on verify'},
                                246: {0: 'FRU 00 \xe2\x80\x93 09 stand for error on head 0 \xe2\x80\x93 9.',
                                      16: 'Power-on self-test failed.',
                                      'L1': 'Hardware Error',
                                      'L2': 'Data Integrity Check Failed during write'},
                                251: {0: 'No Specific FRU code.',
                                      'L1': 'Hardware Error',
                                      'L2': 'Failed to enter Raid Partial Copy Diagnostic mode'},
                                255: {0: 'No Specific FRU code.',
                                      'L1': 'Hardware Error',
                                      'L2': 'XOR CDB check error'}},
                           93: {0: {1: 'Number of Command Timeouts Exceeded',
                                    'L1': 'Hardware Error',
                                    'L2': 'Command Timeout'}},
                           101: {0: {0: 'No Specific FRU code.',
                                     'L1': 'Hardware Error',
                                     'L2': 'Voltage fault.'}},
                           128: {134: {0: 'Host IOEDC Error on Read detected by host',
                                       1: 'IOEDC error on read.',
                                       2: 'IOECC error on read.',
                                       3: 'FDE IOECC error on read.',
                                       4: 'SSD IOEDC error on read',
                                       5: 'SSD Erased Page Error',
                                       6: 'FDE Sector-bypass datatype mismatch',
                                       'L1': 'Hardware Error',
                                       'L2': 'IOEDC - DataType Error on Read'},
                                 135: {0: 'Host IOEDC Error on Write, this is unused',
                                       1: 'FDE IOEDC Error on Write detected by the FDE logic',
                                       2: 'SSD IOEDC Error on Write',
                                       128: 'Disk IOEDC parity error on write detected by formatter',
                                       129: 'IOECC and IOEDC errors occurred, which is highly probable (when IOECC is enabled) for multiple or single bit corruption.',
                                       130: 'IOECC parity error on write.',
                                       131: 'IOECC error (correctable).',
                                       'L1': 'Hardware Error',
                                       'L2': 'IOEDC Error on Write'},
                                 136: {0: 'No Specific FRU code.',
                                       'L1': 'Hardware Error',
                                       'L2': 'Host Parity Check Failed'},
                                 137: {128: 'IOEDC parity error on read detected by formatter',
                                       'L1': 'Hardware Error',
                                       'L2': 'IOEDC error on read detected by formatter'},
                                 138: {'L1': 'Hardware Error',
                                       'L2': 'Host FIFO Parity Error detected by Common Buffer',
                                       'fru': ['xx is 00, 01, 02 or 03 ( channel number )']},
                                 139: {0: 'No Specific FRU code.',
                                       'L1': 'Hardware Error',
                                       'L2': 'Host FIFO Parity Error detected by frame buffer logic'},
                                 140: {0: 'No Specific FRU code.',
                                       1: 'For Read Host Data Frame Buffer Parity Error.',
                                       2: 'For Write Host Data Frame Buffer Parity Error.',
                                       3: 'SSD Buffer Memory Parity Error',
                                       4: 'Host Data Frame Buffer Uncorrectable ECC Error.',
                                       'L1': 'Hardware Error',
                                       'L2': 'Host Data Frame Buffer Uncorrectable ECC Error'},
                                 141: {0: 'No Specific FRU code.',
                                       'L1': 'Hardware Error',
                                       'L2': 'Host Data Frame Buffer Protection Error'},
                                 142: {0: 'No Specific FRU code.',
                                       'L1': 'Hardware Error',
                                       'L2': 'Host FIFO overrun or underrun rrror'},
                                 143: {0: 'No Specific FRU code.',
                                       'L1': 'Hardware Error',
                                       'L2': 'Host FIFO unknown error'}},
                           129: {0: {0: 'No Specific FRU code.',
                                     'L1': 'Hardware Error',
                                     'L2': 'LA Check Error, LCM bit = 0'}},
                           130: {0: {0: 'No Specific FRU code.',
                                     1: 'Insufficient return buffer.',
                                     'L1': 'Hardware Error',
                                     'L2': 'Diag internal client detected insufficient buffer'}},
                           131: {0: {0: 'No Specific FRU code.',
                                     'L1': 'Hardware Error',
                                     'L2': 'DOS Scalars are out of range'}}},
                       5: {26: {0: {0: 'Parameter list length error.',
                                    1: 'Format Parameter list length error.',
                                    2: 'Mode Select command Parameter list length error.',
                                    3: 'Extended Mode select command Parameter list length error.',
                                    4: 'Mode Select operation Parameter list length error.',
                                    5: 'Check mode page Parameter list length error.',
                                    6: 'Reassign Block command Parameter list length error.',
                                    7: 'Parameter list length error.',
                                    8: 'Parameter data list length error.',
                                    'L1': 'Illegal Request',
                                    'L2': 'Parameter List Length Error'}},
                           32: {0: {0: 'Invalid Command Operation Code',
                                    1: 'Primary Invalid Command Operation Code',
                                    2: 'Unique command not unlocked code.',
                                    7: 'Glist to Plist Unlock command not unlocked code.',
                                    8: 'Invalid Command Operation Code for SSD Backend',
                                    'L1': 'Illegal Request',
                                    'L2': 'Invalid Command Operation Code'},
                                243: {0: 'No Specific FRU code.',
                                      'L1': 'Illegal Request',
                                      'L2': 'Invalid linked command operation code'}},
                           33: {0: {1: 'Logical block address out of range',
                                    2: 'Invalid LBA in synchronize cache',
                                    3: 'Invalid LBA in read capacity',
                                    4: 'Invalid LB in write same',
                                    5: 'Invalid LBA in read/write long',
                                    6: 'Invalid LBA in seek',
                                    7: 'Logical block address out of range from media backend',
                                    'L1': 'Illegal Request',
                                    'L2': 'Logical Block Address Out of Range'}},
                           36: {0: {0: 'Invalid field in CDB',
                                    1: 'Bad CDB error.',
                                    2: 'Invalid field in CDB. (Format command)',
                                    3: 'Invalid field in CDB. (Setup R/W Long command)',
                                    4: 'Invalid field in CDB. (Log sense page)',
                                    5: 'Invalid field in CDB. (Log sense parameter)',
                                    6: 'Invalid field in CDB. (Log select command)',
                                    7: 'Invalid Field in CDB \xe2\x80\x93 UDS trigger command.',
                                    8: 'Invalid Field in CDB \xe2\x80\x93 buffer overflow check.',
                                    9: 'Invalid power transition request',
                                    10: 'Invalid power transition mode bit',
                                    11: 'Invalid power transition PCM',
                                    12: 'Invalid page and subpage combination (Log sense)',
                                    13: 'Invalid field in CDB. (Report Zones command- SMR)',
                                    22: 'Invalid field in CDB. (Skip Mask)',
                                    48: 'Invalid Combination of CDB.',
                                    49: 'Change Definition Illegal Parameter.',
                                    50: 'Change Definition Illegal Password',
                                    51: 'Change Definition Unlock Command Error',
                                    52: 'Change Definition Not Supported',
                                    53: 'Change Definition Mismatch in port mode (Single/Dual port: SAS only)',
                                    54: 'Invalid field in CDB from media backend',
                                    'L1': 'Illegal Request',
                                    'L2': 'Invalid Field in CDB'},
                                1: {0: 'No Specific FRU code.',
                                    'L1': 'Illegal Request',
                                    'L2': 'Illegal Queue Type for CDB (Low priority commands must be SIMPLE queue)'},
                                46: {0: 'The Byte Offset exceeds the length of the SMART frame data.',
                                     'L1': 'Illegal Request',
                                     'L2': 'Invalid field in CDB for E6 SMART Dump command, unique to NetApp.'},
                                240: {0: 'No Specific FRU code.',
                                      'L1': 'Illegal Request',
                                      'L2': 'Invalid LBA in linked command'},
                                242: {0: 'No Specific FRU code.',
                                      'L1': 'Illegal Request',
                                      'L2': 'Invalid linked command operation code'},
                                243: {128: 'G->P operation requested while drive was formatted w/o PLIST.',
                                      129: 'Servo Flaw already exists in ASFT or PSFT.',
                                      130: 'G->P operation encountered a G-list entry that overlaps an existing P-list entry.',
                                      131: 'G->P operation encountered a Growth Servo Flaw which overlapped an existing Primary defect Servo Flaw.',
                                      132: 'Defects report lists not available for retrieval.',
                                      133: "Servo Flaw doesn't exist in ASFT.",
                                      'L1': 'Illegal Request',
                                      'L2': 'Illegal Servo Flaw operation request'}},
                           37: {0: {0: 'No Specific FRU code.',
                                    'L1': 'Illegal Request',
                                    'L2': 'Logical unit not supported'}},
                           38: {0: {0: 'Invalid Field in Parameter List.',
                                    1: 'Invalid Field in Format Parameter List.',
                                    2: 'Field in RetrieveThirdPartyID Parameter List.',
                                    3: 'Invalid Field in ModeSelectOperation Parameter List.',
                                    4: 'Invalid Field in CheckModePage Parameter List.',
                                    5: 'Invalid Field in ReassignBlocksCmd Parameter List.',
                                    6: 'Invalid Field in PersistentReserveOutCmd Parameter List.',
                                    7: 'Invalid Field Invalid in LogSelectCmd Parameter List.',
                                    8: 'Invalid LogSelectCmd Parameter List length.',
                                    9: 'Invalid Field in WriteBufferCmd Parameter List.',
                                    10: 'Invalid Field in SendDiagnosticCmd Parameter List.',
                                    11: 'Invalid Field in BuildTranslateAddrPage Parameter List.',
                                    12: 'An E0 packet to UDS was too small',
                                    13: 'Invalid FCN ID in E0 packet to UDS.',
                                    14: 'Invalid Field in Retrieved Trace Information packet to UDS (E0).',
                                    15: 'Cannot clear UDS trace, because UDS was not allowed to return it all',
                                    16: 'Cannot enable/disable UDS trace, drive not ready',
                                    17: 'Unsupported block size.',
                                    18: 'UDS trigger command.',
                                    19: 'Invalid remanufacturing command.',
                                    20: 'Invalid command while SMART reporting disabled.',
                                    21: 'Invalid field in parameter list from media backend',
                                    128: 'Invalid input cylinder.',
                                    129: 'Invalid input head.',
                                    130: 'Invalid input sector.',
                                    131: 'Input user LBA is invalid 01.',
                                    132: 'Input user LBA is invalid 02.',
                                    133: 'Input user LBA is invalid 03.',
                                    134: 'Input system LBA is invalid.',
                                    135: 'Client defect list size is invalid.',
                                    136: 'Sort error due to invalid offset.',
                                    137: 'Sort error due to invalid head.',
                                    138: 'Sort error due to invalid cylinder.',
                                    139: 'Failed to validate a client specified byte extent info.',
                                    140: 'Failed to validate a client specified sector extent info.',
                                    141: 'Invalid track in client defect list entry.',
                                    142: 'Input track is invalid.',
                                    143: 'First LBA of input track is invalid.',
                                    144: 'Invalid servo data block length.',
                                    145: 'Invalid servo program block length.',
                                    146: 'Address translation \xe2\x80\x93 input PBA is invalid',
                                    147: 'Address translation \xe2\x80\x93 input symbol extent is invalid.',
                                    148: 'Super sector transfer \xe2\x80\x93 invalid wedge transfer size.',
                                    149: 'Track ZLR Transfer \xe2\x80\x93 Invalid partition.',
                                    150: 'Track ZLR Transfer \xe2\x80\x93 Invalid LBA range on target track.',
                                    151: 'Track ZLR Transfer \xe2\x80\x93 Reallocated LBA found on target track.',
                                    152: 'Input user LBA is invalid 04.',
                                    153: 'Input user LBA is invalid 05.',
                                    154: 'Convert Sector to RLL Data \xe2\x80\x93 Unsupported sector size.',
                                    155: 'Add Servo Flaw \xe2\x80\x93 Invalid input specified.',
                                    156: 'Invalid condition for enabling servo free fall protection (drive not spinning).',
                                    157: 'Invalid condition for disabling servo free fall protection (drive not spinning).',
                                    158: 'Invalid condition for disabling servo free fall protection (protection already disabled).',
                                    159: 'Invalid condition for disabling servo free fall protection (protection already de-activated).',
                                    160: 'Invalid condition for disabling servo free fall protection (free-fall condition is currently active).',
                                    161: 'Invalid drive free-fall control option specified.',
                                    162: 'Check free-fall event failed \xe2\x80\x93 protection not functional.',
                                    163: 'Invalid sector range specified.',
                                    164: 'Invalid count value specified for update.',
                                    165: 'Invalid channel memory select specified for access.',
                                    166: 'Invalid buffer index specified for read channel memory access.',
                                    167: 'Invalid start address specified for read channel memory access.',
                                    168: 'Invalid transfer length specified for read channel memory access.',
                                    169: 'Invalid sector extent info',
                                    175: 'Band translation - invalid input type specified',
                                    176: 'Band translation - invalid output type specified',
                                    177: 'Band translation - invalid input Band ID',
                                    178: 'Band translation - invalid input Band ID',
                                    179: 'Band translation - invalid input track position',
                                    180: 'Band translation - invalid input RAP zone, head',
                                    185: 'Invalid band number.',
                                    186: 'Invalid band lba offset.',
                                    187: 'Invalid user lba.',
                                    189: 'Invalid parameter',
                                    193: 'DITS Buffer ( Dummy Cache ) too small',
                                    'L1': 'Illegal Request',
                                    'L2': 'DITS Buffer ( Dummy Cache ) too small'},
                                1: {0: 'No Specific FRU code.',
                                    1: 'Log pages unavailable for inclusion in UDS dump.',
                                    'L1': 'Illegal Request',
                                    'L2': 'Parameter Not Supported'},
                                2: {0: 'No Specific FRU code.',
                                    1: 'DIAG:  Invalid input cylinder.',
                                    2: 'DIAG:  Invalid input head.',
                                    3: 'DIAG:  Invalid input sector.',
                                    4: 'DIAG:  Invalid Wedge.',
                                    5: 'DIAG:  Invalid LBA.',
                                    6: 'DIAG:  Invalid file selection.',
                                    7: 'DIAG:  Invalid file length.',
                                    8: 'DIAG:  Invalid start offset.',
                                    9: 'DIAG:  Write Overflow.',
                                    10: 'DIAG:  Backplane Bypass selection invalid.',
                                    11: 'DIAG:  Invalid serial number.',
                                    12: 'DIAG:  Incomplete DFB.',
                                    13: 'DIAG:  Unsupported DFB revision.',
                                    14: 'DIAG:  Invalid Temperature selection.',
                                    15: 'DIAG:  Invalid Transfer Length.',
                                    16: 'DIAG:  Unsupported memory area.',
                                    17: 'DIAG:  Invalid command.',
                                    18: 'DIAG:  File copy invalid.',
                                    19: 'DIAG:  Insufficient data sent from initiator.',
                                    20: 'DIAG:  Unsupported DIAG command.',
                                    21: 'DIAG:  Flash segment invalid.',
                                    22: 'DIAG:  Req flash segment copy invalid.',
                                    23: 'DIAG:  Flash access failed.',
                                    24: 'DIAG:  Flash segment length invalid.',
                                    25: 'DIAG:  File checksum invalid.',
                                    26: 'DIAG:  Host DFB Length Invalid',
                                    27: 'DIAG:  Unaligned transfer.',
                                    28: 'DIAG:  Unsupported operation.',
                                    29: 'DIAG:  Backend invalid.',
                                    30: 'DIAG:  Flash plane invalid.',
                                    31: 'DIAG:  ISP node not found.',
                                    32: 'DIAG:  Invalid parameter.',
                                    33: 'DIAG:  Format corrupt condition required.',
                                    34: 'DIAG:  Clear all scan unit counts not allowed',
                                    35: 'DIAG:\xc2\xa0 Unsupported Flash Device',
                                    36: 'DIAG:\xc2\xa0 Raw flash blocks in MList',
                                    37: 'DIAG:\xc2\xa0 Raw flash format table mismatch',
                                    38: 'DIAG:\xc2\xa0 Raw flash Unused format slot',
                                    39: 'DIAG:\xc2\xa0 Raw flash cannot decide format table',
                                    40: 'DIAG:\xc2\xa0 Raw flash invalid error code',
                                    41: 'DIAG:\xc2\xa0 Write protect condition',
                                    42: 'DIAG:  Requested for a Pre-erased block in Nor flash',
                                    57: 'Parameter Data out of range.',
                                    58: 'Parameter Data over write.',
                                    64: 'DIAG:  Diag write failed',
                                    65: 'DIAG: DIAG_DST_IS_IN_PROGRESS',
                                    66: 'DIAG: DIAG_TEST_RANGE_IN_SET',
                                    68: 'DIAG: DIAG_BMS_IS_ENABLED',
                                    72: 'DIAG: DIAG_INVALID_START_LBA',
                                    73: 'DIAG: DIAG_INVALID_END_LBA',
                                    'L1': 'Illegal Request',
                                    'L2': 'Parameter Value Invalid'},
                                3: {0: 'No Specific FRU code.',
                                    'L1': 'Illegal Request',
                                    'L2': 'Threshold Parameter not supported'},
                                4: {0: 'Invalid Release of Active Persistent Reserve',
                                    1: 'Invalid release of persistent reservation. (reservation type mismatch)',
                                    'L1': 'Illegal Request',
                                    'L2': 'Invalid Release of Active Persistent Reserve'},
                                5: {0: 'No Specific FRU code.',
                                    'L1': 'Illegal Request',
                                    'L2': 'Fail to read valid log dump data'},
                                152: {0: 'No Specific FRU code.',
                                      1: 'FDE checksum error.',
                                      2: 'Failed Flash Verification on Newly Downloaded Component.',
                                      'L1': 'Illegal Request',
                                      'L2': 'Invalid Field Parameter \xe2\x80\x93 Check Sum'},
                                153: {1: 'Segment type mismatch.',
                                      2: 'Customer ID mismatch.',
                                      3: 'Drive type mismatch.',
                                      4: 'HW configuration mismatch.',
                                      5: 'Compatibility configuration mismatch.',
                                      6: 'Servo firmware product family mismatch.',
                                      7: 'QNR download is not supported.',
                                      8: 'CAP product family mismatch.',
                                      9: 'RAP product family mismatch.',
                                      10: 'Download segment length too large.',
                                      11: 'Download length invalid.',
                                      12: 'CTPM missing.',
                                      13: 'CFW and CAP mismatch 01.',
                                      14: 'CFW and CAP mismatch 02.',
                                      15: 'CFW and CAP mismatch 03.',
                                      16: 'CFW and RAP mismatch 01.',
                                      17: 'CFW and RAP mismatch 02.',
                                      18: 'CFW and RAP mismatch 03.',
                                      19: 'CFW and SAP mismatch 01.',
                                      20: 'CFW and SAP mismatch 02.',
                                      21: 'CFW and SAP mismatch 03.',
                                      22: 'CFW and SFW mismatch 01.',
                                      23: 'SAP Product family mistmatch',
                                      24: 'CFW and SFW mismatch 03.',
                                      25: 'Download buffer offset invalid.',
                                      26: 'Address translation invalid.',
                                      27: 'CFW and IAP mismatch.',
                                      28: 'Quick Download in Progress.',
                                      29: 'Invalid unlock tags \xe2\x80\x93 customer does not match',
                                      30: 'Invalid unlock tags \xe2\x80\x93 customer does not match',
                                      31: 'Invalid unlock tags \xe2\x80\x93 checksum failure',
                                      32: 'Firmware not backward compatible.',
                                      33: 'Download overlay incompatible.',
                                      34: 'Overlay download failure 1.',
                                      35: 'Overlay download failure 2.',
                                      36: 'Overlay download failure 3.',
                                      37: 'General download failure',
                                      38: 'Trying to download bridge code for wrong product family',
                                      39: 'Factory flags mismatch.',
                                      40: 'Illegal combination \xe2\x80\x93 Missing BootFW module.',
                                      41: 'Illegal combination \xe2\x80\x93 Missing Customer FW Feature Flags module.',
                                      42: 'Illegal combination \xe2\x80\x93 Programmable Inquiry download  not supported.',
                                      43: 'Illegal combination \xe2\x80\x93 Missing CustomerFW module.',
                                      44: 'Download Congen header failure',
                                      46: 'Download Congen XML failure',
                                      47: 'Download Congen version failure',
                                      48: 'Download Congen XML SIM MakeLocalFile failure',
                                      49: 'Download Congen mode data failure \xe2\x80\x93 could not save mode header.',
                                      50: 'Download Congen mode data failure \xe2\x80\x93 mode page had sent length/spec length miscompare.',
                                      51: 'Download Congen mode data failure \xe2\x80\x93 mode page had invalid contents.',
                                      52: 'Download Congen mode data failure \xe2\x80\x93 mode page tried to change contents not allowed by change mask.',
                                      53: 'Download Congen mode data failure \xe2\x80\x93 save all mode pages could not write to media.',
                                      54: 'Download Congen mode data failure \xe2\x80\x93 save partial mode pages could not write to media.',
                                      55: 'Download Congen mode data failure \xe2\x80\x93 mode change callbacks did not complete successfully.',
                                      56: 'Package Enforcement Failure \xe2\x80\x93 Package didn\xe2\x80\x99t contain valid SFW component',
                                      57: 'Invalid link rate',
                                      59: 'Unlock code not allowed to be DL if dets is locked',
                                      60: 'DETS is locked, code download is blocked',
                                      61: 'Code download is blocked if DETS is locked',
                                      62: 'Download is blocked due to system area incompatibility with new code',
                                      63: 'Invalid SD&D customer family for customer cross-market-segment downloads.',
                                      64: 'Unlock File failed to be written to the flash',
                                      65: 'Unlock File secuirty headers do not match',
                                      80: 'Download header length invalid',
                                      81: 'Download length is not a multiple of the buffer word size',
                                      82: 'Download length and segment length mismatch',
                                      161: 'Unknown firmware tag type.',
                                      162: 'Attempt to R/W locked LBA band',
                                      163: 'SSD download combined code has mismatched frontend and backend',
                                      164: 'SSD download backend code \xe2\x80\x93 recovery required',
                                      165: 'SSD download a firmware which is mismatched with resident firmware',
                                      166: 'SSD download standalone (non-bundle) firmware in boot mode.',
                                      'L1': 'Illegal Request',
                                      'L2': 'Invalid Field Parameter \xe2\x80\x93 Firmware Tag'},
                                154: {0: 'Invalid Security Field Parameter in secure download packaging.',
                                      1: 'Attempt to perform secure download with drive not spun up',
                                      2: 'Attempt to download signed non-fde firmware in use state or fail state',
                                      3: 'Attempt to download signed sed code onto a non-sed drive.',
                                      4: 'Download inner signature key index does not match the outer signature key index.',
                                      16: 'Inner firmware signature validation failure.',
                                      18: 'Power Governor feature requires that both CFW and SFW support same number of seek profiles. This sense code indicates an attempt to download a code with mismatching seek profiles count',
                                      20: 'DOS Table Size has been reduced',
                                      'L1': 'Illegal Request',
                                      'L2': 'Invalid Field Parameter \xe2\x80\x93 Firmware Tag'},
                                155: {0: 'SSD download code mismatched with running frontend code FRU indicate running frontend compatibility number 00-FF',
                                      'L1': 'Illegal Request',
                                      'L2': 'SSD Compatibility Error'}},
                           44: {0: {0: 'Command Sequence Error.',
                                    1: 'Command Sequence Error. (R/W Buffer command)',
                                    2: 'Command Sequence Error. (Retrieve SDBPP Packet)',
                                    3: 'Command Sequence Error. (Diag Locked)',
                                    4: 'Command Sequence Error. (Concurrent UDS service attempt)',
                                    5: 'Command Sequence Error. (UDS retrieval:  back-to-back E0)',
                                    6: 'Command Sequence Error. (Unexpected retrieve trace packet received during non-handshaked UDS retrieval)',
                                    7: 'Command Sequence Error. (Back-to-back E1 commands, illegal during handshaked UDS retrieval and illegal during non-handshaked when it\xe2\x80\x99s time to retrieve the last trace packet)',
                                    8: 'Command Sequence Error. (Send Diag cmd. Before Write Buffer cmd)',
                                    9: 'Command Sequence Error. (Channel BCI logging in online mode)',
                                    10: 'Stop command execution disallowed when Raid Rebuild mode is active/enabled',
                                    11: 'Foreground H2SAT operation currently not allowed.',
                                    'L1': 'Illegal Request',
                                    'L2': 'Command Sequence Error'},
                                5: {0: 'No Specific FRU code.',
                                    1: 'Power Management frozen (OBSOLETE)',
                                    'L1': 'Illegal Request',
                                    'L2': 'Illegal Power Condition Request'},
                                128: {0: 'Command Sequence Error. (Illegal to request MC flush while cleaning is disabled.)',
                                      'L1': 'Illegal Request',
                                      'L2': 'Command Sequence Error'}},
                           50: {1: {0: 'No Specific FRU code.',
                                    'L1': 'Illegal Request',
                                    'L2': 'Defect List Update Error'}},
                           53: {1: {3: 'No enclosure found.',
                                    7: 'Unsupported 8045 Enclosure Request.',
                                    'L1': 'Illegal Request',
                                    'L2': 'Unsupported Enclosure Function'}},
                           71: {6: {0: 'No Specific FRU code.',
                                    'L1': 'Illegal Request',
                                    'L2': 'SAS - Physical Test in Progress'}},
                           73: {0: {0: 'No Specific FRU code.',
                                    'L1': 'Illegal Request',
                                    'L2': 'Illegal request, Invalid message error'}},
                           85: {4: {1: 'No Specific FRU code.',
                                    'L1': 'Illegal Request',
                                    'L2': 'PRKT table is full'}}},
                       6: {11: {1: {0: 'No Specific FRU code.',
                                    1: 'Temperature is lower than the low temperature threshold.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Warning \xe2\x80\x93 Specified temperature exceeded'}},
                           41: {0: {0: 'Power on, reset, or bus device reset occurred. (SPI flash LED)',
                                    1: 'CDB trigger dump and reset occurred..',
                                    2: 'LIP trigger dump and reset occurreD',
                                    3: 'Performing some type of logout, either N_PORT, FCP, or both.',
                                    202: 'The Flight Recorder area in FLASH contains data',
                                    'L1': 'Unit Attention',
                                    'L2': 'Power-On, Reset, or Bus Device Reset Occurred'},
                                1: {0: 'Power-on reset occurred. (SPI)',
                                    1: 'Power-on reset occurred. (SSI)',
                                    6: 'Power-on reset occurred when rezero with 0xEF in byte 1',
                                    7: 'Power-on reset occurred due to HW controller watchdog expiration',
                                    8: 'Power-on reset initiated by firmware (e.g. to remove lockup conditions)',
                                    9: 'Power-on reset occurred when servo watchdog timer expires',
                                    'L1': 'Unit Attention',
                                    'L2': 'Power-On Reset Occurred'},
                                2: {0: 'SCSI bus reset occurred.',
                                    2: 'Warm reset occurred.',
                                    'L1': 'Unit Attention',
                                    'L2': 'SCSI Bus Reset Occurred'},
                                3: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Bus Device Reset'},
                                4: {0: 'No Specific FRU code.',
                                    1: 'Internal Reset due to Assert Storm Threshold being exceeded.',
                                    3: 'NVC WCD has marked corrupted sector dirty.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Internal Reset'},
                                5: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Transceiver Mode Changed to SE'},
                                6: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Transceiver Mode Changed to LVD'},
                                7: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'IT Nexus Loss'},
                                8: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Write Log Dump data to disk fail'},
                                9: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Write Log Dump Entry information fail'},
                                10: {0: 'No Specific FRU code.',
                                     'L1': 'Unit Attention',
                                     'L2': 'Reserved disc space is full'},
                                11: {0: 'No Specific FRU code.',
                                     'L1': 'Unit Attention',
                                     'L2': 'SDBP test service contained an error, examine status packet(s) for details'},
                                12: {0: 'No Specific FRU code.',
                                     'L1': 'Unit Attention',
                                     'L2': 'SDBP incoming buffer overflow (incoming packet too big)'},
                                205: {0: 'No Specific FRU code.',
                                      'L1': 'Unit Attention',
                                      'L2': 'Flashing LED occurred. (Cold reset)'},
                                206: {0: 'No Specific FRU code.',
                                      'L1': 'Unit Attention',
                                      'L2': 'Flashing LED occurred. (Warm reset)'}},
                           42: {1: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Mode Parameters Changed'},
                                2: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Log Parameters Changed'},
                                3: {0: 'Reservations preempted.',
                                    1: 'Reservations preempted. (Clear service action)',
                                    'L1': 'Unit Attention',
                                    'L2': 'Reservations Preempted'},
                                4: {0: 'Reservations released.',
                                    1: 'Reservations released. (Registration with reg key = 0)',
                                    2: 'Reservations Released. (Preempt service action)',
                                    3: 'Reservations Released. (Release service action)',
                                    'L1': 'Unit Attention',
                                    'L2': 'Reservations Released'},
                                5: {0: 'Registrations preempted.',
                                    1: 'Registrations preempted 01.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Registrations Preempted'},
                                9: {0: 'Capacity data changed',
                                    'L1': 'Unit Attention',
                                    'L2': 'Capacity data changed'}},
                           47: {0: {0: 'No Specific FRU code.',
                                    1: 'Target is already unlocked by another initiator',
                                    'L1': 'Unit Attention',
                                    'L2': 'Tagged Commands Cleared By another Initiator'},
                                1: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Commands cleared due to power-off warning'}},
                           63: {0: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Target operating conditions have changed'},
                                1: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Download Occurred'},
                                2: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Changed Operating Definition'},
                                3: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Inquiry Data Has Changed'},
                                5: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Device Identifier Changed'},
                                145: {1: 'WWN in ETFLOG does not match CAPM WWN.',
                                      'L1': 'Unit Attention',
                                      'L2': 'WWN in ETFLOG does not match CAPM WWN'}},
                           91: {0: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Log Exception'}},
                           92: {0: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'RPL Status Change'}},
                           93: {0: {0: 'No Specific FRU code.',
                                    4: 'Reallocation.',
                                    5: 'Reallocation AST table.',
                                    6: 'Reallocation DDT table.',
                                    16: 'Hardware failure.',
                                    20: 'Excessive reassigns.',
                                    32: 'General failure.',
                                    40: 'Flash Life Left Failure',
                                    49: 'Head failure.',
                                    50: 'Recovered data error rate.',
                                    51: 'Recovered data error rate during early life (Xiotech SSD Only)',
                                    55: 'Recovered TA.',
                                    56: 'Hard TA event.',
                                    64: 'Head flip.',
                                    65: 'SSE (servo seek error).',
                                    66: 'Write fault.',
                                    67: 'Seek failure.',
                                    69: 'Track following errors (Hit66).',
                                    74: 'Seek performance failure.',
                                    91: 'Spinup failure.',
                                    107: 'Flash spinup failure',
                                    117: 'Multiply threshold config.',
                                    239: 'No control table on disk.(OBSOLETE)',
                                    'L1': 'Unit Attention',
                                    'L2': 'Failure Prediction Threshold Exceeded'},
                                255: {0: 'No Specific FRU code.',
                                      'L1': 'Unit Attention',
                                      'L2': 'False Failure Prediction Threshold Exceeded'}},
                           128: {144: {0: 'No Specific FRU code.',
                                       'L1': 'Unit Attention',
                                       'L2': 'Host Read Redundancy Check Error'},
                                 145: {0: 'No Specific FRU code.',
                                       'L1': 'Unit Attention',
                                       'L2': 'Host Write Redundancy Check Error'},
                                 146: {0: 'No Specific FRU code.',
                                       'L1': 'Unit Attention',
                                       'L2': 'Disc Read Redundancy Check Error'},
                                 147: {0: 'No Specific FRU code.',
                                       'L1': 'Unit Attention',
                                       'L2': 'Disc Write Redundancy Check Error'},
                                 148: {0: 'No Specific FRU code.',
                                       'L1': 'Unit Attention',
                                       'L2': 'Xor Redundancy Check Error'}},
                           180: {0: {0: 'No Specific FRU code.',
                                     'L1': 'Unit Attention',
                                     'L2': 'Unreported Deferred Errors have been logged on log page 34h'}},
                           255: {0: {0: 'No Specific FRU code.',
                                     'L1': 'Unit Attention',
                                     'L2': 'FC SEL_ID changed'}}},
                       7: {3: {0: {0: 'No Specific FRU code.',
                                   'L1': 'Data Protect',
                                   'L2': 'Peripheral device write fault'}},
                           32: {2: {0: 'No Access Rights. Attempt to access security locked LBA.',
                                    1: 'No Access Rights. Sanitize command pre-condition not met.',
                                    'L1': 'Data Protect',
                                    'L2': 'Access Denied'}},
                           39: {0: {0: 'Write protected.',
                                    1: 'Write protected during ready check.',
                                    2: 'Write protected media backend',
                                    3: 'Write protected due to PIC failure',
                                    4: 'Write protected due to reserved blocks exceeded threshold',
                                    5: 'Write protected due to defects per die exceeded threshold',
                                    6: 'Write protected due to retired blocks exceeded threshold',
                                    7: 'Write protected due to write failure (Nand error)',
                                    8: 'Write Protected due to Auto status command write failure',
                                    9: 'Write protected due to spare blocks exceeded threshold',
                                    10: 'Write protected due to GCU for system data is not available',
                                    11: 'Write protected due to defect table read error during restore',
                                    12: 'Zone is read only ( SMR Only)',
                                    13: 'Write protected due to defect block list overflow',
                                    'L1': 'Data Protect',
                                    'L2': 'Write Protected'}}},
                       9: {8: {0: {0: 'No Specific FRU code.',
                                   'L1': 'Firmware Error Constants',
                                   'L2': 'Logical Unit Communication Failure'}},
                           128: {0: {0: 'General firmware error.',
                                     1: 'Firmware error during CDB check.',
                                     2: 'Error recovering log tables.',
                                     3: 'UDS has no packet to send back, but it neglected to make this clear to the SDBP layer (E1 command).',
                                     4: 'Processed unsupported UDS session (UDS should have rejected).',
                                     5: 'Packet retrieval allowed by upper levels of UDS when no UDS trace retrieval was active.',
                                     6: 'UDS trace retrieval is trying to include an empty finished frame trace file.',
                                     7: 'Unexpected content split across UDS retrieved trace packets.',
                                     8: 'UDS trace retrieval sense data without FAIL status or vice versa.',
                                     9: 'UDS trace retrieval:  Internal confusion over amount of trace.',
                                     10: 'UDS \xe2\x80\x93 retrieval failure.',
                                     11: '\xe2\x80\x9cDummy Cache\xe2\x80\x9d file request failed',
                                     12: 'Failed to fix up system parameters during head depop.',
                                     13: 'Write same command call to XOR data copy failed.',
                                     14: 'Write same command call to create cache segment from buffer failed to allocate sufficient space.',
                                     15: 'Request to read servo data timed out.',
                                     16: 'Loading Disc Firmware failed',
                                     17: 'Disc Firmware Signature Verification Failed.',
                                     18: 'WriteAndOrVerifyCmd Xor copy failure',
                                     19: 'WriteAndOrVerifyCmd request cache segment allocation failed',
                                     20: 'Write Buffer detected an Unknown Error.',
                                     21: 'Write Buffer detected a Corrupted Data Error.',
                                     22: 'Write Buffer detected a Permanent Error.',
                                     23: 'Write Buffer detected a Service Delivery/Target Failure Error.',
                                     24: 'Phy Log Retrieval Failed',
                                     25: 'failed to issue command to auxiliary processor',
                                     26: "failed memory allocation on auxiliary processor's heap",
                                     27: 'Loading PIC Firmware Failed',
                                     28: 'Loading FME Firmware Failed',
                                     29: 'LDevFormat() failed to allocate sufficient space.',
                                     30: 'LDevFormat() call to XorCopyData() failed',
                                     45: 'InitSurface() failed to allocate sufficient space.',
                                     46: 'InitSurface () call to XorCopyData() failed',
                                     61: 'Log Page cache not allocated',
                                     62: 'Log Page cache not allocated',
                                     63: 'Log Page not enough cache available',
                                     64: 'SMART Frame Index corrupted on disc and not recoverable via f/w.',
                                     65: 'NVC Disabled by error condition',
                                     66: 'Log data save to disc failed',
                                     67: 'Wait for phy after reset too long',
                                     68: 'H2SAT unexpected condition occurred',
                                     70: 'Memory allocation failed during Reassign Blocks command',
                                     74: 'Diag command attempted to execute missing or incompatible Overlay code',
                                     75: 'Wait for phy after reset too long',
                                     80: 'Flash management access failed',
                                     128: 'Invalid prime request.',
                                     129: 'Request cannot be processed.',
                                     130: 'Unsupported fault.',
                                     131: 'Track address fault.',
                                     132: 'Servo-Disc synchronization error.',
                                     133: 'End of transfer reached prematurely.',
                                     134: 'Unexpected sequencer timeout error.',
                                     135: 'Unknown error in the NRZ Transfer logic.',
                                     136: 'Unknown EDAC error.',
                                     137: "Unknown Media Manager's error.",
                                     138: 'Invalid disc halt.',
                                     139: 'Unexpected sequencer halt condition.',
                                     140: 'Unexpected sequencer halt.',
                                     141: 'Unknown sequencer timeout error.',
                                     142: 'Unknown NRZ interface error.',
                                     143: 'Disc was soft halted.',
                                     144: 'Fault condition error.',
                                     145: 'Correct Buffer Completion timeout error.',
                                     146: 'Maximum write passes of a zone exceeded. (Changed to 04/1C00/93)',
                                     147: 'Maximum certify passes of a zone exceeded. (Changed to 04/1C00/94)',
                                     148: 'Recovered seek error encountered.',
                                     149: 'Forced to enter error recovery before error is encountered.',
                                     150: 'Recovered servo command error.',
                                     151: 'Partial reallocation performed.',
                                     152: 'Transfer was truncated.',
                                     153: 'Transfer completed.',
                                     154: 'Track transfer completed.',
                                     155: 'Scan Defect - Allocated scan time exceeded.',
                                     156: 'IOEDIOECC parity error on write',
                                     157: 'IOECC parity error on write',
                                     158: 'IOECC error (correctable)',
                                     159: 'EDAC stopped for FW erasure',
                                     160: 'Reallocate Block - Input was not marked for pending reallocation.',
                                     161: 'Input LBA was not found in the RST.',
                                     162: 'Input PBA was not found in the resident DST 1',
                                     163: 'Input PBA was not found in the resident DST 2',
                                     164: 'DST Mgr - Skootch failed 1',
                                     165: 'DST Mgr - Skootch failed 2',
                                     166: 'DST Mgr - Insert failed',
                                     167: 'Correction Buffer over-run, under-run, or EDC error',
                                     168: 'Form FIFO over/under run error',
                                     169: 'Failed to transition to active power',
                                     170: 'Input LBA was marked as logged',
                                     171: 'Format - Max number of servo flaws per track exceeded in servo coast',
                                     172: 'Format - Write servo unsafe errors when the track already has multiple flaws',
                                     173: "Formatter's parity RAM progress is not in sync with transfer.",
                                     174: 'Disc Xfr - Conflict of R/W request resource.',
                                     175: 'Conflict of R/W resource during write attempt of super block data.',
                                     176: "Formatter's parity RAM progress not in sync with alt transfer.",
                                     177: "Formatter's parity RAM is invalid for parity sectors update.",
                                     178: "Formatter's parity RAM is invalid for parity sectors alt-update.",
                                     179: 'Parity secs read of expected reallocated sectors not reallocated.',
                                     180: 'Parity sectors write of expected reallocated sectors not reallocated.',
                                     181: 'PVT not showing all super blocks valid on successful format.',
                                     182: 'Sector Data Regen - Restart of transfer is required.',
                                     183: 'Sector Data Regen - Restart of transfer failed on a reallocated blk.',
                                     184: 'Sector Data Regeneration - Restart of transfer failed.',
                                     185: 'Format - Dirty super blk on nedia not reported in PVT.',
                                     186: 'Super Block Read - No user sectors available.',
                                     187: 'Full R/W reallocation code support is not available.',
                                     188: 'Full R/W reallocation code support is not available.',
                                     189: 'Full R/W reallocation code support is not available.',
                                     190: 'Super Block Read - Recovered Data using SuperC Block.',
                                     191: 'ATIC DERPR Retry - Recovered Data using DERP ATIC retry.',
                                     192: 'Unexpected Servo Response - Retry count equals zero for a non-PZT request',
                                     193: 'Recovered Data using Intermediate Super Parity',
                                     194: 'Overlapping Defect Blocks',
                                     195: 'Missing Defect Blocks',
                                     196: 'Input LBA was not protected from torn write',
                                     197: 'Formatter transfer did not halt properly',
                                     198: 'Servo DC calibration failed',
                                     199: 'Invalid band LBA range encountered during dirty super blocks update attempt',
                                     200: 'Detect Formatter FIFO pointer synchronization loss error',
                                     201: 'Detect Formatter FIFO pointer synchronization loss error',
                                     202: 'Full reallocation support not available',
                                     203: 'Invalid block for unmark DART pending reallocation',
                                     204: 'Mark pending DART skipped',
                                     205: 'Outercode recovery scratchpad buffer size insufficient',
                                     206: 'Recovered data using firmware Iterative OuterCode(IOC)',
                                     207: 'AFH Heater DAC is <= 0',
                                     208: 'AFH Calculated Heater DAC value is >= max allocated memory for heater DAC',
                                     209: 'AFH DAC value supplied to the DAC actuation path is > -b/2a',
                                     210: 'ATS2 Seek Error occurred along with Track address fault error',
                                     211: 'Buffer overflow detected in Legacy mode read.',
                                     'L1': 'Firmware Error Constants',
                                     'L2': 'General Firmware Error Qualifier'},
                                 82: {'L1': 'Firmware Error Constants',
                                      'L2': 'General Firmware Error Qualifier',
                                      'fru': ['Error byte returned by PMC code for various DITS APIs']}}},
                       11: {0: {30: {0: 'Invoke within a TCG session',
                                     'L1': 'Aborted Command',
                                     'L2': 'Sanitize command aborted'}},
                            8: {0: {0: 'No Specific FRU code.',
                                    'L1': 'Aborted Command',
                                    'L2': 'Logical unit communication failure'},
                                1: {0: 'Logical Unit Communication Time-Out.',
                                    128: 'Servo command timed out.',
                                    129: 'Seek operation timed out.',
                                    130: 'Seek operation has exceeded the recovery time limit.',
                                    'L1': 'Aborted Command',
                                    'L2': 'Logical Unit Communication Time-Out'}},
                            12: {16: {0: 'Write command requires initial access to a mapped out head.',
                                      1: 'Write command attempted a seek to access a mapped out head.',
                                      2: 'Write command encountered an alternate block mapped to a bad head.',
                                      'L1': 'Aborted Command',
                                      'L2': 'Command aborted due to multiple write errors'}},
                            14: {1: {0: 'No Specific FRU code.',
                                     'L1': 'Aborted Command',
                                     'L2': 'SAS abort command (10.2.3)'},
                                 2: {0: 'No Specific FRU code.',
                                     'L1': 'Aborted Command',
                                     'L2': 'SAS abort command (9.2.6.3.3.8.1)'}},
                            16: {1: {0: 'No specific FRU code.',
                                     'L1': 'Aborted Command',
                                     'L2': 'Logical Block guard check failed'},
                                 2: {0: 'No specific FRU code.',
                                     'L1': 'Aborted Command',
                                     'L2': 'Logical Block application tag check failed'},
                                 3: {0: 'No specific FRU code.',
                                     'L1': 'Aborted Command',
                                     'L2': 'Logical Block reference tag check failed'}},
                            17: {3: {1: 'Read command requires initial access to a mapped out head.',
                                     2: 'Read command attempted a seek to access a mapped out head.',
                                     3: 'Read command encountered an alternate block mapped to a bad head.',
                                     4: 'Prefetch command for FIM has detected a failed LBA in the range',
                                     'L1': 'Aborted Command',
                                     'L2': 'Command aborted due to multiple read errors'}},
                            63: {15: {0: 'Echo buffer overwritten.',
                                      1: 'Read buffer echo error.',
                                      'L1': 'Aborted Command',
                                      'L2': 'Echo buffer overwritten'}},
                            67: {0: {0: 'No Specific FRU code.',
                                     'L1': 'Aborted Command',
                                     'L2': 'Message reject error'}},
                            68: {0: {0: 'Timed out while waiting in queue.',
                                     1: 'Timed out during error recovery.',
                                     2: 'Timed out while executing command.',
                                     'L1': 'Aborted Command',
                                     'L2': 'Overall Command Timeout'},
                                 246: {0: 'FRU 00 \xe2\x80\x93 09 stand for error on head 0 \xe2\x80\x93 9.',
                                       'L1': 'Aborted Command',
                                       'L2': 'Data Integrity Check Failed during write'}},
                            69: {0: {0: 'Select/Reselection Failure.',
                                     1: 'Select/Reselection time out.',
                                     'L1': 'Aborted Command',
                                     'L2': 'Select/Reselection Failure'}},
                            71: {0: {0: 'SCSI Parity Error in message phase.',
                                     1: 'SCSI parity error in command phase.',
                                     3: 'SCSI parity error in data phase.',
                                     8: 'SCSI CRC error in data phase.',
                                     'L1': 'Aborted Command',
                                     'L2': 'SCSI Parity Error'},
                                 3: {1: 'SCSI CRC error in command IU.',
                                     8: 'SCSI CRC error in data (out) IU.',
                                     'L1': 'Aborted Command',
                                     'L2': 'Information Unit CRC Error'},
                                 128: {9: 'No Specific FRU code.',
                                       'L1': 'Aborted Command',
                                       'L2': 'Fibre Channel Sequence Error'}},
                            72: {0: {1: 'Initiator detected error message received, selection path.',
                                     2: 'Initiator detected error message received, reselection path.',
                                     'L1': 'Aborted Command',
                                     'L2': 'Initiator Detected Error Message Received'}},
                            73: {0: {1: 'Invalid message received, selection path.',
                                     2: 'Invalid message received, reselection path.',
                                     'L1': 'Aborted Command',
                                     'L2': 'Invalid message received'}},
                            75: {0: {0: 'No Specific FRU code.',
                                     2: 'Invalid source ID.',
                                     3: 'Invalid destination ID.',
                                     4: 'Running Disparity error.',
                                     5: 'Invalid CRC.',
                                     16: 'Invalid data frame during transfer and no xfr done.',
                                     'L1': 'Aborted Command',
                                     'L2': 'DATA phase error'},
                                 1: {0: 'No Specific FRU code.',
                                     'L1': 'Aborted Command',
                                     'L2': 'Invalid transfer tag'},
                                 2: {0: 'No Specific FRU code.',
                                     'L1': 'Aborted Command',
                                     'L2': 'Too much write data'},
                                 3: {0: 'No Specific FRU code.',
                                     1: 'Link reset occurred during transfer.',
                                     5: 'Break received in the middle of a data frame',
                                     6: 'Break received but unbalanced ACK/NAKs',
                                     'L1': 'Aborted Command',
                                     'L2': 'ACK NAK Timeout'},
                                 4: {0: 'No Specific FRU code.',
                                     'L1': 'Aborted Command',
                                     'L2': 'NAK received'},
                                 5: {0: 'No Specific FRU code.',
                                     'L1': 'Aborted Command',
                                     'L2': 'Data offset error'},
                                 6: {0: 'No Specific FRU code.',
                                     1: 'Break Response Timeout',
                                     2: 'Done Response Timeout',
                                     3: 'SAS Credit Timeout',
                                     'L1': 'Aborted Command',
                                     'L2': 'Initiator Response Timeout'},
                                 32: {0: 'No Specific FRU code.',
                                      'L1': 'Aborted Command',
                                      'L2': 'SAS Credit Timeout'},
                                 255: {0: 'Drive type mismatch \xe2\x80\x93 download firmware',
                                       'L1': 'Aborted Command',
                                       'L2': 'Check FW Tags'}},
                            78: {0: {0: 'No Specific FRU code.',
                                     1: 'SAS - Overlapped Commands Attempted.',
                                     2: 'UDS trigger on non-queued cmd with outstanding NCQ cmds',
                                     'L1': 'Aborted Command',
                                     'L2': 'Overlapped Commands Attempted'}},
                            85: {4: {0: 'Cannot reassign if Media cache is not empty',
                                     'L1': 'Aborted Command',
                                     'L2': 'Insufficient Resources'}},
                            116: {8: {5: 'No Specific FRU code.',
                                      'L1': 'Illegal Request',
                                      'L2': 'Invalid Field Parameter \xe2\x80\x93 Check Sum'}},
                            128: {0: {0: 'No Specific FRU code.',
                                      'L1': 'Aborted Command',
                                      'L2': 'Logical Unit Access Not Authorized.'}},
                            129: {0: {0: 'No Specific FRU code.',
                                      'L1': 'Aborted Command',
                                      'L2': 'LA Check Error.'},
                                  1: {0: 'No Specific FRU code.',
                                      'L1': 'Aborted Command',
                                      'L2': 'Unexpected Boot FW execution delay.'},
                                  2: {0: 'No Specific FRU code.',
                                      'L1': 'Aborted Command',
                                      'L2': 'Unexpected Customer FW execution delay.'},
                                  3: {0: 'No Specific FRU code.',
                                      'L1': 'Aborted Command',
                                      'L2': 'Unexpected FW download delay.'}},
                            251: {1: {0: 'No Specific FRU code.',
                                      'L1': 'Aborted Command',
                                      'L2': 'Command maps to a head marked as bad'}}},
                       13: {33: {0: {0: 'No Specific FRU code.',
                                     1: 'UDS Trace retrieval complete.',
                                     'L1': 'Volume Overflow Constants',
                                     'L2': 'Logical Block Address Out of Range'}}},
                       14: {29: {0: {0: 'Miscompare During Verify Operation.',
                                     128: 'Data miscompare error.',
                                     129: 'Data miscompare error at erasure correction.',
                                     'L1': 'Data Miscompare',
                                     'L2': 'Miscompare During Verify Operation'}}}}


seagate_sense_codes = {0: {0: {0: {0: 'No error.', 'L1': 'No Sense', 'L2': 'No Sense'},
                               31: {0: 'No Specific FRU code.',
                                    'L1': 'No Sense',
                                    'L2': 'Logical unit transitioning to another power condition'}},
                           94: {0: {0: 'No Specific FRU code.',
                                    'L1': 'No Sense',
                                    'L2': 'Drive is in power save mode for unknown reasons'},
                                1: {0: 'No Specific FRU code.',
                                    'L1': 'No Sense',
                                    'L2': 'Idle Condition Activated by timer'},
                                2: {0: 'No Specific FRU code.',
                                    'L1': 'No Sense',
                                    'L2': 'Standby condition activated by timer'},
                                3: {0: 'No Specific FRU code.',
                                    'L1': 'No Sense',
                                    'L2': 'Idle condition activated by host command'},
                                4: {0: 'No Specific FRU code.',
                                    'L1': 'No Sense',
                                    'L2': 'Standby condition activated by host command'},
                                5: {0: 'No Specific FRU code.',
                                    'L1': 'No Sense',
                                    'L2': 'Idle B condition activated by timer'},
                                6: {0: 'No Specific FRU code.',
                                    'L1': 'No Sense',
                                    'L2': 'Idle B condition activated by host command'},
                                7: {0: 'No Specific FRU code.',
                                    'L1': 'No Sense',
                                    'L2': 'Idle C condition activated by timer'},
                                8: {0: 'No Specific FRU code.',
                                    'L1': 'No Sense',
                                    'L2': 'Idle C condition activated by host command'},
                                9: {0: 'No Specific FRU code.',
                                    'L1': 'No Sense',
                                    'L2': 'Standby Y condition activated by timer'},
                                10: {0: 'No Specific FRU code.',
                                     'L1': 'No Sense',
                                     'L2': 'Standby Y conditition activated by host command'}}},
                       1: {1: {0: {157: "Recovered Media Manager's anticipatory autoseek (ATS2) XFR error.",
                                   'L1': 'Recovered Error',
                                   'L2': 'No Index/Logical Block Signal'}},
                           3: {0: {0: 'FRU code comes from the contents of the lower 8-bit of the servo fault register (address 38h).  A description of this register is attached at the end of this document.',
                                   'L1': 'Recovered Error',
                                   'L2': 'Peripheral Device Write Fault'}},
                           9: {0: {0: 'No Specific FRU code.',
                                   'L1': 'Recovered Error',
                                   'L2': 'Track Following Error'},
                               1: {0: 'No Specific FRU code.',
                                   'L1': 'Recovered Error',
                                   'L2': 'Servo Fault'},
                               13: {0: 'No Specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Write to at least one copy of a redundant file failed'},
                               14: {0: 'No Specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Redundant files have < 50% good copies'},
                               248: {0: 'No Specific FRU code.',
                                     'L1': 'Recovered Error',
                                     'L2': 'Calibration is needed but the QST is set without the Recal Only bit'},
                               255: {0: 'No Specific FRU code.',
                                     'L1': 'Recovered Error',
                                     'L2': 'Servo cal completed as part of self-test'}},
                           11: {0: {6: 'Non Volatile Cache now is volatile',
                                    48: 'Recovered Erase Error Rate Warning',
                                    50: 'Recovered Read Error Rate Warning',
                                    66: 'Recovered Program Error Rate Warning',
                                    'L1': 'Recovered Error',
                                    'L2': 'Recovered Error Rates Warnings'},
                                1: {0: 'Warning \xe2\x80\x93 Specified temperature exceeded.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Warning \xe2\x80\x93 Specified temperature exceeded'},
                                2: {0: 'No Specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Warning, Enclosure Degraded'},
                                3: {0: 'Warning \xe2\x80\x93 Specified temperature exceeded.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Warning \xe2\x80\x93 Flash temperature exceeded'},
                                4: {0: 'No Specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Warning - Flash Read Cache Capacity Degraded'},
                                6: {0: 'Warning \xe2\x80\x93 NVC now volatile. NVC specified temperature exceeded.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Warning - Non-Volatile Cache now volatile'},
                                7: {0: 'No Specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Warning, spare sector margin exceeded. NVC_WCD disabled.'},
                                38: {0: 'No Specific FRU code.',
                                     'L1': 'Recovered Error',
                                     'L2': 'Warning - Power loss management warning threshold exceeded'},
                                93: {0: 'Pre Warning.',
                                     'L1': 'Recovered Error',
                                     'L2': 'Pre-SMART Warning'},
                                225: {0: 'No Specific FRU code.',
                                      'L1': 'Recovered Error',
                                      'L2': 'Drive is exiting RAW mode, returning from high temperature'},
                                226: {0: 'No Specific FRU code.',
                                      'L1': 'Recovered Error',
                                      'L2': 'Drive is exiting RAW mode, returning from low temperature'},
                                241: {0: 'No Specific FRU code.',
                                      'L1': 'Recovered Error',
                                      'L2': 'Drive is entering RAW mode due to high temperature'},
                                242: {0: 'No Specific FRU code.',
                                      'L1': 'Recovered Error',
                                      'L2': 'Drive is entering RAW mode due to low temperature'}},
                           12: {1: {0: 'No Specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Write Error Recovered with Auto-Reallocation'},
                                2: {1: 'Data written with retries.  Auto-reallocation failed.',
                                    2: 'Data written with retries. Auto-reallocation failed with critical error, triggering Write Protection.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Write Error Recovered, Auto-Reallocation failed'}},
                           17: {0: {0: 'No Specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Unrecovered Read Error'}},
                           21: {1: {0: 'Mechanical Positioning Error.',
                                    1: 'Mechanical positioning error - Recovered servo command.',
                                    2: 'Mechanical positioning error - Recovered servo command during spinup.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Mechanical Positioning Error'}},
                           22: {0: {0: 'No Specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Data Synchronization Mark Error'}},
                           23: {1: {0: 'No specific FRU code.',
                                    17: 'PRESCAN - Recovered data with error recovery.',
                                    18: 'RAW - Recovered data with error recovery.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Recovered Data Using Retries'},
                                2: {0: 'No specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Recovered Data Using Positive Offset'},
                                3: {0: 'No specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Recovered Data Using Negative Offset'}},
                           24: {0: {0: 'No Specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Recovered Data with ECC, no retry attempted'},
                                1: {0: 'Recovered data with ECC and retries applied.',
                                    1: 'F2 \xe2\x80\x93 Recovered data with ECC and retries applied, but did normal ECC during erasure correction step.',
                                    2: 'BERP \xe2\x80\x93 Recovered data with BERP Erasure Recovery (Erasure Pointer) and retries applied.',
                                    3: 'BERP \xe2\x80\x93 Recovered data with BERP Sliding Window and retries applied.',
                                    4: 'BERP \xe2\x80\x93 Recovered data with BERP Extended Iterations and retries applied.',
                                    5: 'BERP \xe2\x80\x93 Recovered data with BERP LLR Scaling and retries applied.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Recovered Data with ECC and Retries Applied'},
                                2: {0: 'No specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Recovered Data with ECC and/or Retries, Data Auto-Reallocated'},
                                3: {0: 'Data recovered with ATIC and retries applied.',
                                    1: 'Data recovered with ATIC and retries applied, and auto-reallocated.',
                                    2: 'Data recovered with ATIC and retries applied, and re-written.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Recovered Data with ATIC and Retries Applied'},
                                4: {0: 'Data recovered with SERV and retries applied.',
                                    1: 'Data recovered with SERV and retries applied, and auto-reallocated.',
                                    2: 'Data recovered with SERV and retries applied, and re-written.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Recovered Data with SERV and Retries Applied'},
                                5: {1: 'Data recovered. Auto-reallocation failed.',
                                    2: 'Data recovered. Auto-reallocation failed with critical error, triggering Write Protection.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Recovered Data with ECC and/or Retries, Auto-Reallocation Failed'},
                                7: {0: 'No specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'ECC and/or retries, data re-written'},
                                8: {0: 'Data Recovered with BIPS/SP',
                                    1: 'Data Recovered with BIPS/SP, and auto-reallocated.',
                                    2: 'Data Recovered with BIPS/SP, and re-written.',
                                    3: 'Data Recovered with Intermediate Super Parity.',
                                    4: 'Data Recovered with Intermediate Super Parity, and auto-reallocated.',
                                    5: 'Data Recovered with Intermediate Super Parity, and re-written.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Recovered Data With Intermediate Super Parity'},
                                9: {0: 'Recovered the sector found to bad during IRAW scan with the IRAW process.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Recovered the sector found to bad during IRAW scan'}},
                           25: {0: {0: 'No Specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Defect List Error'}},
                           28: {0: {0: 'Defect list not found.',
                                    1: 'Invalid Defect list format data request.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Defect List Not Found'}},
                           31: {0: {0: 'Partial defect list transfer.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Number of defects overflows the allocated space that the Read Defect command can handle'}},
                           55: {0: {0: 'Parameter Rounded.',
                                    1: 'Limit the BytesPerSector to Maximum Sector Size.',
                                    2: 'Limit the BytesPerSector to Minimum Sector Size.',
                                    3: 'Rounded the odd BytesPerSector.',
                                    4: 'Parameter rounded in the mode page check.',
                                    5: 'Rounded the VBAR size.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Parameter Rounded'}},
                           63: {128: {0: 'No Specific FRU code.',
                                      'L1': 'Recovered Error',
                                      'L2': 'Buffer Contents Have Changed'}},
                           64: {1: {0: 'No Specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'DRAM Parity Error'},
                                2: {128: 'Spinup error recovered with buzz retries.',
                                    129: 'Spinup error recovered without buzz retries.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Spinup Error recovered with retries'}},
                           68: {0: {0: 'No Specific FRU code.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Internal Target Failure'}},
                           93: {0: {0: 'No Specific FRU code.',
                                    1: 'Fail Max Recovered Error threshold during DST',
                                    4: 'Reallocation.',
                                    5: 'Reallocation AST table.',
                                    6: 'Reallocation DDT table.',
                                    8: 'Auto Reallocation Failure',
                                    9: 'Impending Failure - Throughput Performance: Insufficient spare to back all NVC cache.',
                                    10: 'NVC has failed to save Torn Write data more times than the threshold (currently 10)',
                                    11: 'Failure Prediction Max Temperature Exceeded',
                                    16: 'Hardware failure.',
                                    20: 'Excessive reassigns.',
                                    22: 'Start times failure.',
                                    24: 'Instruction DBA error found during idle task.  Fixed.',
                                    32: 'General failure.',
                                    39: 'SSD Early Retired Blocks Failure',
                                    40: 'SSD Flash Life Left',
                                    41: 'Exceeded time allocated to complete Zero Disk test (seq write)',
                                    48: 'Recovered erase error rate  (SSD-Jaeger only)',
                                    49: 'Head failure.',
                                    50: 'Recovered data error rate.',
                                    55: 'Recovered TA.',
                                    56: 'Hard TA event.',
                                    64: 'Head flip.',
                                    65: 'SSE (servo seek error).',
                                    66: 'Write fault.',
                                    67: 'Seek failure.',
                                    68: 'Erase Error.',
                                    69: 'Track following errors (Hit66).',
                                    74: 'Seek performance failure.',
                                    91: 'Spinup failure.',
                                    96: 'Firmware Failure condition',
                                    97: 'RVFF system failure.',
                                    98: 'Gain adaptation failure.',
                                    99: 'Fluid Dynamic Bearing Motor leakage detection test failed.',
                                    100: 'Saving Media Cache Map Table (MCMT) to reserved zone failed.',
                                    116: 'SED NOR Key store near to end of life',
                                    117: 'Multiply threshold config.',
                                    239: 'No control table on disk.',
                                    'L1': 'Recovered Error',
                                    'L2': 'Failure Prediction Threshold Exceeded'},
                                16: {0: 'No Specific FRU code.',
                                     'L1': 'Recovered Error',
                                     'L2': 'Failure Prediction Threshold Exceeded'},
                                255: {0: 'No Specific FRU code.',
                                      'L1': 'Recovered Error',
                                      'L2': 'False Failure Prediction Threshold Exceeded'}},
                           133: {0: {0: 'No Specific FRU code.',
                                     'L1': 'Recovered Error',
                                     'L2': '5V threshold exceeded'}},
                           140: {0: {0: 'No Specific FRU code.',
                                     'L1': 'Recovered Error',
                                     'L2': '12V threshold exceeded'}}},
                       2: {4: {0: {0: 'Logical Unit Not Ready, Cause Not Reportable.',
                                   1: 'No Specific FRU code.',
                                   2: 'Logical unit not ready, Change Definition Command in progress.',
                                   128: 'R/W system not ready.',
                                   'L1': 'Not Ready',
                                   'L2': 'Logical Unit Not Ready, Cause Not Reportable'},
                               1: {0: 'No Specific FRU code.',
                                   1: 'Logical unit not ready, excess particle sweep time required',
                                   2: 'Wait for good power loss management status.',
                                   'L1': 'Not Ready',
                                   'L2': 'Logical Unit is in Process of Becoming Ready'},
                               2: {0: 'No Specific FRU code.',
                                   1: 'Supply voltage levels not within spec',
                                   'L1': 'Not Ready',
                                   'L2': 'Drive Not Ready \xe2\x80\x93 START UNIT Required'},
                               3: {0: 'Logical Unit Not Ready, Manual Intervention Required.',
                                   1: 'Logical unit not ready, manual intervention required, Servo doesn\xe2\x80\x99t support MDW Delta-L, Servo doesn\xe2\x80\x99t support VBAR.',
                                   2: 'Logical unit not ready, manual intervention required \xe2\x80\x94CFW is configured for medium latency, but channel family is not capable of supporting medium latency.',
                                   3: 'Logical unit not ready, R/W sub-system failure.',
                                   4: 'Logical unit not ready, Drive is unmated',
                                   5: 'Logical unit not ready, R/W sub-system init failed; Invalid Servo Firmware',
                                   6: 'Logical unit not ready, R/W sub-system init failed; Invalid Servo Adaptives',
                                   7: 'Logical unit not ready, Read failure on all System Data Table copies',
                                   8: 'Logical unit not ready, Forward table read error during restore',
                                   9: 'Logical unit not ready, Scram metadata read error during restore',
                                   10: 'Logical unit not ready, GCU info restore failed',
                                   11: 'Logical unit not ready, Defect table restore failed',
                                   12: 'Logical unit not ready, Scram restore failed',
                                   13: 'Logical unit not ready, Bxor Critical Failure',
                                   15: 'Logical unit not ready, Media is corrupted but data successfully recovered via media scan',
                                   16: 'Logical unit not ready, suspect list read error',
                                   17: 'Logical unit not ready, reverse directory error during restore',
                                   18: 'Logical unit not ready, system recovery format completed but drive lost critical system data',
                                   'L1': 'Not Ready',
                                   'L2': 'Logical Unit Not Ready, Manual Intervention Required'},
                               4: {0: 'Logical unit not ready, Scram restore failed',
                                   'L1': 'Not Ready',
                                   'L2': 'Logical Unit Not Ready, Format in Progress'},
                               7: {0: 'Logical unit not ready, Scram restore failed',
                                   'L1': 'Not Ready',
                                   'L2': 'Logical Unit Not Ready, Format in Progress'},
                               9: {0: 'Logical unit not ready, self-test in progress.',
                                   1: 'Logical unit not ready, short background self-test in progress.',
                                   2: 'Logical unit not ready, extended background self-test in progress.',
                                   3: 'Logical unit not ready, short foreground self-test in progress.',
                                   4: 'Logical unit not ready, extended foreground self-test in progress.',
                                   5: 'Logical unit not ready, firmware download in progress.',
                                   6: 'Logical unit not ready, initial volume download in progress.',
                                   7: 'Logical unit not ready, session opened.',
                                   8: 'No Specific FRU code',
                                   'L1': 'Not Ready',
                                   'L2': 'Logical Unit Not Ready, H2SAT measurement is Progress'},
                               12: {0: 'No Specific FRU code.',
                                    'L1': 'Not Ready',
                                    'L2': 'Logical unit not ready, Field Adjustable Adaptive Fly Height (FAAFH)  in progress'},
                               13: {7: 'Logical unit not ready, Session is already Open.',
                                    'L1': 'Not Ready',
                                    'L2': 'Logical unit not ready, Session is already Open'},
                               17: {2: 'Logical Unit Not Ready, Notify (Enable Spinup) required',
                                    'L1': 'Not Ready',
                                    'L2': 'Logical Unit Not Ready, Notify (Enable Spinup) required'},
                               26: {0: 'Logical Unit Not Ready, Start Stop Unit Command in Progress',
                                    'L1': 'Not Ready',
                                    'L2': 'Logical Unit Not Ready, Start Stop Unit Command in Progress'},
                               27: {0: 'Logical unit not ready, sanitize in progress.',
                                    'L1': 'Not Ready',
                                    'L2': 'Logical unit not ready, sanitize in progress.'},
                               28: {0: 'No specific FRU code.',
                                    'L1': 'Not Ready',
                                    'L2': 'Logical unit not ready, additional power use not yet granted'},
                               34: {1: 'Spindle Error (Spinup Failure)',
                                    2: 'SMIF Traning Failed after 5 times attempt',
                                    'L1': 'Not Ready',
                                    'L2': 'Logical unit not ready, power cycle required.'},
                               240: {0: 'Logical unit not ready, super certify in progress.',
                                     1: 'Counterfeit attempt detected (ETF log SN or SAP SN mismatch)',
                                     'L1': 'Not Ready',
                                     'L2': 'Logical unit not ready, super certify in progress'},
                               242: {0: 'Drive has been placed in special firmware due to assert storm threshold being exceeded.',
                                     'L1': 'Not Ready',
                                     'L2': 'Logical unit not ready, Assert Storm Threshold being exceeded.'}},
                           53: {2: {1: 'Enclosure not ready, no ENCL_ACK assert.',
                                    'L1': 'Not Ready',
                                    'L2': 'Enclosure Services Unavailable'}},
                           132: {0: {0: 'Remanufacturing State.',
                                     'L1': 'Not Ready',
                                     'L2': 'Remanufacturing State'}}},
                       3: {3: {0: {0: 'No Specific FRU code.',
                                   'L1': 'Medium Error',
                                   'L2': 'Peripheral Device Write Fault'}},
                           9: {0: {0: 'Track following error.',
                                   254: 'Head flip during power cycle.',
                                   255: 'Track following error.',
                                   'L1': 'Medium Error',
                                   'L2': 'Track Following Error'},
                               4: {0: 'No Specific FRU code.',
                                   'L1': 'Medium Error',
                                   'L2': 'Head Select Fault'}},
                           10: {1: {0: 'No Specific FRU code.',
                                    1: 'Failed to write super certify log file from media backend',
                                    'L1': 'Medium Error',
                                    'L2': 'Failed to write super certify log file'},
                                2: {0: 'No Specific FRU code.',
                                    'L1': 'Medium Error',
                                    'L2': 'Failed to read super certify log file'}},
                           12: {0: {0: 'Peripheral device write fault.',
                                    1: 'Write error during single sector recovery.',
                                    2: 'Write error during gc relocation',
                                    3: 'Write is revirtualized because of a channel error - SSD',
                                    4: 'Read during preamp unsafe fault.',
                                    5: 'Flash Media Request aborted due to Graceful Channel Reset',
                                    7: 'Save SMART error log failed',
                                    8: 'Write error from media backend',
                                    9: 'SSD Uncorrectable Write Error from Media backend',
                                    10: 'SSD Erase Error.',
                                    11: 'SSD PSM Runt Buffer Page Mismatch Error',
                                    17: 'Unrecovered read error on READ step of PRESCAN.',
                                    18: 'Unrecovered read error on READ step of WRITE converted to WRITE VERIFY during RAW operation.',
                                    22: 'Unrecovered read error on READ step of Read-modify-write',
                                    128: 'BVD update error.',
                                    129: 'BVD Correctable IOEDC error.',
                                    'L1': 'Medium Error',
                                    'L2': 'Write Error'},
                                2: {0: 'Unrecovered write error - Auto reallocation failed.',
                                    1: 'Reallocate Block - Write alternate block failed, no servo defects.',
                                    2: 'Reallocate Block - Alternate block compare test failed.',
                                    3: 'Reallocate Block - Alternate block sync mark error.',
                                    4: 'Reallocate Block - Maximum allowed alternate selection exhausted.',
                                    5: 'Reallocate Block - Resource is not available for a repetitive reallocation.',
                                    6: 'Reallocate Block Failed',
                                    7: 'Reallocate Block Failed - Write Protect',
                                    8: 'Write error, autoreallocation failed from media backend',
                                    'L1': 'Medium Error',
                                    'L2': 'Write Error \xe2\x80\x93 Auto Reallocation Failed'},
                                3: {0: 'Write Error \xe2\x80\x93 Recommend Reassignment',
                                    'L1': 'Medium Error',
                                    'L2': 'Write Error \xe2\x80\x93 Recommend Reassignment'},
                                4: {0: 'WORM Error - Invalid Overlapping Address Range.',
                                    1: 'WORM Error - Written WORM Area Infringement.',
                                    2: 'WORM Error - No further writes allowed on WORM drive',
                                    3: 'WORM Error - SIM Registry Read Failed',
                                    4: 'WORM Error - SIM Registry Write Failed',
                                    5: 'WORM Error - Illegal write request after Lock',
                                    'L1': 'Illigal Request',
                                    'L2': 'Write Error - WORM'},
                                128: {3: 'Disc trace write (to clear it) failed 02.',
                                      5: 'Disc trace write failed.',
                                      6: 'Save UDS DRAM trace frames to disc failed.',
                                      8: 'Write Long disc transfer failed.',
                                      'L1': 'Medium Error',
                                      'L2': 'Write Error \xe2\x80\x93 Unified Debug System'},
                                255: {1: 'No Specific FRU code.',
                                      'L1': 'Medium Error',
                                      'L2': 'Write Error \xe2\x80\x93 Too many error recovery revs'}},
                           17: {0: {0: 'Unrecovered Read Error.',
                                    1: 'Unrecovered Read Error, too many recovery revs.',
                                    2: 'Unrecovered read error, could not read UDS save-on-update trace',
                                    3: 'Unrecovered read error, could not read UDS finished frame index file',
                                    4: 'Unrecovered read error, could not read SMART to include it in UDS',
                                    5: 'Unrecovered read error, UDS read of a finished frame file failed',
                                    6: 'Read SMART error log failed',
                                    7: 'Unrecovered read BBM on partial reallocation',
                                    8: 'Unrecovered read error on media backend',
                                    9: 'SSD Unrecovered Read Error due to ECC Failure',
                                    10: 'SSD Unrecovered Read Error due to Corrupt Bit',
                                    11: 'Unrecovered read flagged error, created with flagged write uncorrectable command',
                                    12: 'Unrecovered read error due to flash channel reset',
                                    128: 'Read during preamp unsafe fault.',
                                    129: 'EDAC HW uncorrectable error.',
                                    130: 'EDAC overrun error.',
                                    131: 'LBA corrupted with Write Long COR_DIS mode.',
                                    132: 'LBA was in Media cache, hardened upon unrec. read error during cleaning',
                                    133: 'EDAC HW uncorrectable error, Super parity or ISP valid and parity recovery attempted.',
                                    134: 'EDAC HW uncorrectable error, Super parity and ISP Invalid.',
                                    160: 'Read preamp unsafe fault with short/open fault set',
                                    'L1': 'Medium Error',
                                    'L2': 'Unrecovered Read Error'},
                                4: {0: 'Unrecovered Read Error \xe2\x80\x93 Auto Reallocation Failed',
                                    128: 'Write alternate block failed, no servo defects.',
                                    129: 'Alternate block compare test failed.',
                                    130: 'Alternate block sync mark error.',
                                    131: 'Maximum allowed alternate selection exhausted.',
                                    132: 'Resource is not available for a repetitive reallocation.',
                                    133: 'SERV HW EDAC failure.',
                                    134: 'SERV SID failure.',
                                    135: 'Number of reallocation pending Super Block exceeded limit.',
                                    136: 'Reallocation pending sector encountered during Super Block read.',
                                    137: 'Reallocation pending sector encountered during Super Block write.',
                                    'L1': 'Medium Error',
                                    'L2': 'Unrecovered Read Error \xe2\x80\x93 Auto Reallocation Failed'},
                                20: {0: 'Unrecovered read error- read pseudo-unrecovered from a WRITE LONG',
                                     'L1': 'Medium Error',
                                     'L2': 'Unrecovered Read Error \xe2\x80\x93 LBA marked bad by application'},
                                255: {1: 'Unrecovered read error- timelimit exceeded.',
                                      'L1': 'Medium Error',
                                      'L2': 'Unrecovered Read Error \xe2\x80\x93 Too many error recovery revs'}},
                           20: {1: {0: 'Record Not Found.',
                                    128: 'Search exhaust error or congen mode page directory not found',
                                    129: 'Reallocation LBA is restricted from write access or congen compressed XML not found',
                                    130: 'Reallocation LBA is restricted from read access.',
                                    131: 'Read from or Write to log page data on reserved zone failed.',
                                    'L1': 'Medium Error',
                                    'L2': 'Record Not Found'}},
                           21: {1: {0: 'No Specific FRU code.',
                                    'L1': 'Medium Error',
                                    'L2': 'Mechanical Positioning Error'},
                                3: {0: 'No Specific FRU code.',
                                    'L1': 'Medium Error',
                                    'L2': 'Unrecovered write errors due to grown servo flaws'}},
                           22: {0: {0: 'Data synchronization mark error.',
                                    128: 'Data sync timeout error.',
                                    129: 'Formatter FIFO parity error 01.',
                                    130: 'Formatter FIFO parity error 02.',
                                    131: 'Super Sector - Data sync timeout error',
                                    132: 'Disc Xfr - Data sync timeout error on sector splits',
                                    'L1': 'Medium Error',
                                    'L2': 'Data Synchronization Mark Error'},
                                1: {0: 'Data missed sync mark error.  FRU code is bits mask indicating which fragment(s) have missed sync error.  Bit n represents fragment n.',
                                    'L1': 'Medium Error',
                                    'L2': 'Data Synchronization Mark Error'}},
                           49: {0: {0: 'Medium Format Corrupted.',
                                    1: 'Corruption result of a Mode Select command.',
                                    2: 'Corruption result of a sparing changed condition.',
                                    3: 'Corruption the result of a failed LBA pattern write in Format command.',
                                    4: 'Corruption result of failed user table recovery.',
                                    5: 'Corruption of NVC global header',
                                    6: 'Medium format corrupted from media backend',
                                    7: 'Medium Format Corrupt due to flash identify failure',
                                    8: 'Medium Format Corrupt as a result of failed NVC write or invalid NVC meta data',
                                    9: 'Medium Format Corrupt due to NVC WCD Meta data corruption',
                                    10: 'Media Format Corrupt due to Write failure during MC WCD data restore to disc',
                                    11: 'Medium Format Corrupt because NVC did not burn flash',
                                    12: 'Medium Format Corrupt because Pseudo Error Masks lost after power loss',
                                    13: 'Medium Format Corrupt because unexpected Media Cache Segment Sequence Number',
                                    14: 'Medium Format Corrupt\xc2\xa0due to system reset without saving NVC data',
                                    15: 'Medium Format Corrupt due to firmware reset (jump to 0) without saving NVC data',
                                    16: 'Medium Format Corrupt due to incomplete burn but no actual power loss',
                                    18: 'Medium Format Corrupt because watchdog timer reset',
                                    19: 'Medium Format Corrupted On Assert (intentionally)',
                                    20: 'Medium Format Corrupt due to IP timeout during SCRAM',
                                    21: 'Medium Format Corrupt due to Write Parameter Error',
                                    22: 'Medium Format Corrupt due to GCU Metadata Error',
                                    24: 'Medium Format Corrupt due to System Metadata restore failure',
                                    32: 'Format Corrupt due to Download changes.',
                                    34: 'Scram user NVC restore failed',
                                    'L1': 'Medium Error',
                                    'L2': 'Medium Format Corrupted'},
                                1: {0: 'No Specific FRU code.',
                                    'L1': 'Medium Error',
                                    'L2': 'Corruption in R/W format request.'},
                                3: {0: 'Sanitize Command Failed',
                                    1: 'Sanitize Command Failed due to file access error',
                                    'L1': 'Medium Error',
                                    'L2': 'Sanitize Command Failed'},
                                145: {13: 'Corrupt WWN in drive information file.',
                                      'L1': 'Medium Error',
                                      'L2': 'Corrupt WWN in drive information file'}},
                           50: {1: {0: 'Defect list update failure.',
                                    128: 'Failed to save defect files.',
                                    129: 'Failed to save defect files post format 01.',
                                    130: 'Failed to save defect files post format 02.',
                                    131: 'Failed to save defect files post format 03.',
                                    'L1': 'Medium Error',
                                    'L2': 'Defect List Update Error'},
                                3: {0: 'No Specific FRU code.',
                                    'L1': 'Medium Error',
                                    'L2': 'Defect list longer than allocated memory.'}},
                           51: {0: {0: 'No Specific FRU code.',
                                    'L1': 'Medium Error',
                                    'L2': 'Flash not ready for access.'}},
                           68: {0: {0: 'No Specific FRU code.',
                                    'L1': 'Medium Error',
                                    'L2': 'Internal Target Failure'}},
                           93: {0: {1: 'Max Unrecovered Read Error',
                                    'L1': 'Medium Error',
                                    'L2': 'Unrecovered Read Error'}}},
                       4: {1: {0: {0: 'No index or sector pulses found.',
                                   128: 'Spin up - Media Manager error encountered.',
                                   129: 'Data field timeout error.',
                                   130: "Media Manager's TDT FIFO Counter error.",
                                   131: "Media Manager's Servo Counter error.",
                                   132: "Media Manager's Latency error.",
                                   133: "Media Manager's Index error.",
                                   134: "Media Manager's Servo error.",
                                   135: 'Media Manager errors could not be cleared successfully.',
                                   136: 'Clearing of MM errors due to a servo error failed.',
                                   137: 'SWCE/SGate overlap error.',
                                   138: 'Servo gate timeout error 01.',
                                   139: 'Servo gate timeout error 02.',
                                   140: 'Servo gate timeout error 03.',
                                   141: 'Servo gate timeout error 04.',
                                   142: 'Servo gate timeout error 05.',
                                   143: 'Super Sector - Handshake error.',
                                   144: 'Super Sector - Servo gate timeout error 01.',
                                   145: 'Super Sector - Servo gate timeout error 02.',
                                   146: 'Super Sector - Servo gate timeout error 03.',
                                   147: 'Super Sector - Servo gate timeout error 04.',
                                   148: 'Super Sector - Servo gate timeout error 05.',
                                   149: 'Servo gate timeout error during generation of Aseek Req.',
                                   150: 'BVD check timeout error.',
                                   151: 'NRZ sequencer completion timeout error.',
                                   152: 'Sequencer timeout on Media Manager event..',
                                   153: 'NRZ xfr error on Media Manager event.',
                                   154: 'Disc sequencer handshake error.',
                                   155: 'Medium Latency channel synchronization handshake error.',
                                   156: 'Fast dPES missed servo sample error.',
                                   157: "Media Manager's anticipatory autoseek (ATS2) XFR error.",
                                   158: 'When a reassigned sector is encountered, wait for the NRZ to finish the previous sector',
                                   159: 'Fast IO Data Collection out of sync with sequencer',
                                   160: 'Channel not ready rev count exhausted.  Apply to LDPC LLI channels',
                                   161: "Media Manager's anticipatory autoseek (ATS2) Servo error.",
                                   162: 'Media Manager\xe2\x80\x99s anticipatory autoseek (ATS2) Disc Pause Condition',
                                   163: 'BERP infinite loop condition',
                                   164: 'Brownout fault detected during write transfer.',
                                   165: 'Sequencer completion timeout error at reassigned sector.',
                                   166: 'Sequencer S-gate timeout error during start of sector read.',
                                   167: 'Sequencer S-gate timeout error during skipping of a new sector.',
                                   'L1': 'Hardware Error',
                                   'L2': 'No Index/Logical Block Signal'}},
                           3: {0: {2: 'Gated Channel Fault',
                                   3: 'Write Preamp Unsafe Fault',
                                   4: 'Write Servo Unsafe Fault',
                                   5: 'Read/write channel fault.',
                                   6: 'SFF fault.',
                                   7: 'Write servo field fault.',
                                   8: 'Write Servo unsafe fault.',
                                   9: 'SSD: Peripheral device write fault (flush cache failed)',
                                   16: 'Write Servo sector fault.',
                                   32: 'Read/Write channel fault.',
                                   64: 'Servo fault.',
                                   128: 'Detect of new servo flaws failed.',
                                   129: 'PSG environment fault.',
                                   130: 'Shock event occurred.',
                                   131: 'Unexpected Extended WGATE fault.',
                                   132: 'Channel detected fault during write.',
                                   133: 'Disc locked clock fault detected.',
                                   134: 'Skip Write Detect Dvgas fault',
                                   135: 'Skip Write Detect Rvgas fault',
                                   136: 'Skip Write Detect Fvgas fault',
                                   137: 'Skip Write Detect Dvgas+Rvgas+Fvgas sum threshold exceeded - last SWD fault Dvgas',
                                   138: 'Skip Write Detect Dvgas+Rvgas+Fvgas sum threshold exceeded - last SWD fault Rvgas',
                                   139: 'Skip Write Detect Dvgas+Rvgas+Fvgas sum threshold exceeded - last SWD fault Fvgas',
                                   140: 'Drive free-fall event occurred',
                                   141: 'Large Shock event occured',
                                   144: 'NRZ Write Parity fault.',
                                   145: 'Marvell 8830 TBG Unlock fault.',
                                   146: 'Marvell 8830 WClk Loss fault.',
                                   147: 'EBMS Fault Detect(EFD) Contact fault during write.',
                                   148: 'EBMS Fault Detect(EFD) Contact fault during read.',
                                   149: 'EBMS Fault Detect(EFD) SWOT fault.',
                                   150: 'Marvell SRC SFG Unlock fault.',
                                   255: "LSI 6 channel preamp attempting to write without heat, condition detected by servo and passed as servo fault ( i.e. Preamp error condition indicated by servo fault condition ). This should be recovered by a 'seek away ' performed as part of recovery step",
                                   'L1': 'Hardware Error',
                                   'L2': 'Peripheral Device Write Fault'}},
                           9: {0: {0: 'Servo track following error.',
                                   64: 'Servo fault, Normally 04/0900/80 would be changed to 04/0900/40 by the firmware.',
                                   128: 'Servo fault, Normally 04/0900/80 would be changed to 04/0900/40 by the firmware.',
                                   129: 'Servo unsafe fault during write.',
                                   130: 'EDAC block address error.',
                                   131: 'Missing MDW information reported by servo detection.',
                                   132: 'Servo command timed out.',
                                   133: 'Seek command timed out.',
                                   134: 'Seek exceeded recovery time limit.',
                                   135: 'Service drive free fall condition timed out.',
                                   136: 'The altitude has exceeded the limit',
                                   137: 'Seek command timed out on alternate sector',
                                   138: 'Super Block marked dirty.',
                                   139: 'Verify of Super Block data failed.',
                                   140: 'Servo fatal error indicated',
                                   141: 'Super Parity long word Cross Check error',
                                   142: 'Super Parity low word Cross Check error',
                                   143: 'Super Parity high word Cross Check error',
                                   144: 'Super Parity data miscompare',
                                   145: 'Invalid Anticipatry Track Seek request.',
                                   146: 'Enhance Super parity regeneration failure.',
                                   147: 'Super parity regeneration failure.',
                                   'L1': 'Hardware Error',
                                   'L2': 'Track Following Error'},
                               1: {0: 'No Specific FRU code.',
                                   'L1': 'Hardware Error',
                                   'L2': 'Servo Fault'},
                               4: {0: 'No Specific FRU code.',
                                   'L1': 'Hardware Error',
                                   'L2': 'Head Select Fault'},
                               255: {0: 'No Specific FRU code.',
                                     'L1': 'Hardware Error',
                                     'L2': 'Servo cal failed as part of self-test'}},
                           21: {1: {0: 'Mechanical Positioning Error.',
                                    128: 'Servo error encountered during drive spin-up.',
                                    129: 'Servo error encountered during drive spin-down.',
                                    130: 'Spindle failed error.',
                                    131: 'Unrecovered seek error encountered.',
                                    132: 'Servo command failed.',
                                    133: 'Servo heater timing failed.',
                                    134: 'Servo Free-Fall Protection command failed.',
                                    135: 'Servo Disc Slip Full TMFF recalibration failed.',
                                    136: 'Servo Disc Slip Head Switch Timing recalibration failed.',
                                    137: 'Servo Disc Slip Head Switch Track recalibration failed.',
                                    138: 'Servo read heat fast I/O command failed.',
                                    139: 'Spin-up attempt during G2P merge process failed.',
                                    140: 'Spin-down attempt during PList processing failed.',
                                    141: 'Spin-up attempt during PList processing failed.',
                                    'L1': 'Hardware Error',
                                    'L2': 'Mechanical Positioning Error'}},
                           22: {0: {0: 'No Specific FRU code.',
                                    'L1': 'Hardware Error',
                                    'L2': 'Data Synchronization Mark Error'}},
                           25: {0: {0: 'Defect list error.',
                                    1: 'Save user table error.',
                                    2: 'SIM file transfer error.',
                                    3: 'Persistent Reserve Save to disc fail.',
                                    4: 'Defect list error media backend',
                                    128: 'Format - Recover of saved Grown DST file failed.',
                                    129: 'Recovery of saved Non-Resident DST failed.',
                                    130: 'Clear R/W Slip List - Save of R/W Operating Parmaters file failed.',
                                    131: 'Restore Alt List File From media - Failed restoration from media file.',
                                    132: 'Save of Servo Disc Slip Parms to media failed.',
                                    133: 'Read of Servo Disc Slip Parms from media failed 1.',
                                    134: 'Read of Servo Disc Slip Parms from media failed 2.',
                                    135: 'Servo Disc Slip file - invalid format revision.',
                                    136: 'GList to PList - Recover of saved Grown DST file failed.',
                                    137: 'Clear Non-resident Grown DST - Save to media failed.',
                                    'L1': 'Hardware Error',
                                    'L2': 'Defect List Error'}},
                           28: {0: {0: 'Defect list not found.',
                                    1: 'Defect list processing error.',
                                    2: 'Read Manufacturing Info File failure.',
                                    3: 'Read Manufacturing Info File failure.',
                                    4: 'Defect list not found from media backend',
                                    50: 'Read Manufacturing Info File failure.',
                                    52: 'Read Manufacturing Info File failure.',
                                    129: 'Failure to read Primary Defects file for reporting.',
                                    130: 'Invalid entry count in Plist file.',
                                    131: 'Invalid byte extent value in Plist entry.',
                                    132: 'Process Defect Lists - Sort error due to invalid offset.',
                                    133: 'Process Defect Lists - Sort error due to invalid head.',
                                    134: 'Process Defect Lists - Sort error due to invalid cylinder.',
                                    135: 'Process Defect Lists - Unable to recover the Primary Defect files.',
                                    136: 'Failed to seek to defect files for reassign.',
                                    137: 'Failed to seek to defect files for undo-reassign.',
                                    138: 'Failure to write defects report lists file to media.',
                                    139: 'Read of defects report file from media failed.',
                                    140: 'An invalid defects report file is encountered 01.',
                                    141: 'An invalid defects report file is encountered 02',
                                    142: 'Restore of R/W User Operating Parameters file failed.',
                                    143: 'Invalid Primary Servo Flaws data encountered.',
                                    144: 'Failed to save defect files due to miscompare error.',
                                    146: 'PList overflow error while merging PSFT and PList for reporting.',
                                    147: 'Maximum certify passes of a zone exceeded.',
                                    148: 'Maximum write passes of a zone exceeded.',
                                    149: 'Primary Servo Flaws data retrieval - Unable to read file on disc.',
                                    150: 'Primary Servo Flaws data retrieval - Invalid entry count in file.',
                                    151: 'Defective Sectors List data retrieval - Unable to read file on disc.',
                                    152: 'Defective Sectors List data retrieval - Invalid file header data.',
                                    153: 'PList data retrieval - Invalid entry count in Plist file.',
                                    154: 'PList data retrieval - Unable to read Plist file on disc.',
                                    155: 'System Format - invalid entry count.',
                                    156: 'Primary TA data retrieval - Unable to read file on disc.',
                                    157: 'Primary TA data retrieval - Invalid count.',
                                    158: 'Primary TA data retrieval - Invalid sort.',
                                    159: "Process Defect Lists - Defect doesn't exist in audit space.",
                                    160: 'Retrieve Defects Report List - Not All Entries Available',
                                    161: 'Format - Invalid LBA range in PVT before update of dirty blocks.',
                                    162: 'Format - Invalid Parity Validity Table after clean of dirty blocks.',
                                    163: 'Format - Clean of dirty blocks failed.',
                                    164: 'Format - Save of Parity Validity Table to media failed.',
                                    'L1': 'Hardware Error',
                                    'L2': 'Defect List Not Found'}},
                           38: {48: {0: 'No Specific FRU code.',
                                     'L1': 'Hardware Error',
                                     'L2': 'Writing to the Flash Failed'},
                                49: {0: 'Failed to program PIC code with new firmware',
                                     'L1': 'Hardware Error',
                                     'L2': 'Writing to the PIC Failed'}},
                           41: {0: {0: 'No Specific FRU code.',
                                    'L1': 'Hardware Error',
                                    'L2': 'Flashing LED occurred.'}},
                           50: {0: {8: 'No defect spare location available',
                                    9: 'No defect spare location available for reassign block.',
                                    128: 'Processing of pending reallocation failed.',
                                    129: 'Failed to insert defect to DST.',
                                    130: 'Failed to insert Plist defect to DST.',
                                    131: 'Grown DST file full 01.',
                                    132: 'Grown DST file full 02.',
                                    133: 'Resident DST file full.',
                                    134: 'Failed to insert defective sectors associated w/grown servo flaw.',
                                    135: 'Failure to invalidate Defects Report disc files.',
                                    136: 'Format System Partition \xe2\x80\x93 Failed to insert defective system sectors associated w/ grown servo flaw.',
                                    137: 'Format System Partition \xe2\x80\x93 Failed to insert defective system sectors.',
                                    138: 'Format System Partition \xe2\x80\x93 System Defects file full.',
                                    139: 'Process Defect Lists \xe2\x80\x93 Failed to insert a client specified defect in the defect file.',
                                    140: 'ASFT \xe2\x80\x93 Max # of servo flaws per track exceeded (path #1).',
                                    141: 'ASFT \xe2\x80\x93 Max # of servo flaws per track exceeded (path #2).',
                                    142: 'ASFT full (path #1).',
                                    143: 'ASFT full (path #2).',
                                    144: 'Addition to Reassign Pending List failed.',
                                    145: 'Resource is not available for a new reallocation.',
                                    146: 'No alternates available (path #1).',
                                    147: 'Failed to insert defective sectors associated w/grown servo flaw.',
                                    148: 'Failed to deallocate compromised defects.',
                                    149: 'Format System Partition \xe2\x80\x93 Failed to deallocate compromised.',
                                    150: 'Insertion of DDT entry failed.',
                                    151: 'Compressed DDT file full.',
                                    152: 'Format \xe2\x80\x93 Failed to insert defective sectors associated w/primary servo flaw.',
                                    153: 'Defective Tracks List \xe2\x80\x93 Failed to insert grown defective sectors associated with defective track.',
                                    154: 'Defective Tracks List \xe2\x80\x93 Failed to insert primary defective sectors associated with defective track.',
                                    155: 'Defective Tracks List \xe2\x80\x93 Failed to add new entry to list.',
                                    156: 'Reallocate Block \xe2\x80\x93 Resource is not available for a partial reallocation.',
                                    157: 'Resource is not available for a partial reallocation.',
                                    158: 'Not enough non-defective sectors to allocate for BIPS parity Sectors.',
                                    159: 'BIPS defect table operation failed \xe2\x80\x93 case 1.',
                                    160: 'BIPS defect table operation failed \xe2\x80\x93 case 2.',
                                    161: 'Format \xe2\x80\x93 Failed to add defective track to DST.',
                                    162: 'Format \xe2\x80\x93 Failed to allocate spare sectors.',
                                    163: 'Pad and Fill Defects \xe2\x80\x93 Max number of skipped tracks exceeded.',
                                    164: 'Format \xe2\x80\x93 Failed to allocate spare sectors.',
                                    165: 'Format \xe2\x80\x93 More LBAs than PBAs.',
                                    166: 'Format \xe2\x80\x93 Failed to allocate spare sectors.',
                                    167: 'Format \xe2\x80\x93 Failed to allocate spare sectors.',
                                    168: 'Format \xe2\x80\x93 Failed to allocate spare sectors.',
                                    169: 'Format \xe2\x80\x93 Excessive number of slips not supported by hardware.',
                                    170: 'Invalid HW parity data for parity sector reallocation.',
                                    171: 'Format \xe2\x80\x93 Could not allocate required guard/pad around media cache area on disc',
                                    172: 'Format \xe2\x80\x93 Will not be able to save ISP/MC metadata after the format (a mis-configuration problematic to try to address before this point)',
                                    173: 'Format - Failed to allocate spare sectors.',
                                    174: 'Format - Failed to allocate spare sectors.',
                                    175: 'Format - Failed to allocate spare sectors.',
                                    176: 'Format - Failed to allocate spare sectors.',
                                    177: 'Format - Failed to update parity sectors slip list.',
                                    178: 'Format - Invalid track sector range encountered.',
                                    179: 'Format \xe2\x80\x93 Could not allocate required guard/pad around intermediate super parity area on disc',
                                    180: 'Format \xe2\x80\x93 Media Cache starting DDT entry not found.',
                                    193: 'Format - Attempt to add pad between user area and start/end of Distributed Media Cache failed',
                                    'L1': 'Hardware Error',
                                    'L2': 'DMC area padding failed'},
                                1: {0: 'Defect list update failure.',
                                    23: 'Saving of the ASFT during idle time failed',
                                    129: 'Plist file overflow error.',
                                    130: 'PSFT file overflow error.',
                                    131: 'Unable to write defect files.',
                                    132: 'Unable to update operating parms file.',
                                    133: 'Plist file overflow error.',
                                    134: 'Plist file overflow error.',
                                    'L1': 'Hardware Error',
                                    'L2': 'Defect List Update Error'}},
                           53: {0: {8: 'LIP occurred during discovery.',
                                    9: 'LIP occurred during an 8067 command.',
                                    10: 'LIP occurred during an 8045 read.',
                                    11: 'LIP occurred during an 8067 read.',
                                    12: 'LIP occurred during an 8067 write.',
                                    13: 'Parallel ESI deasserted during discovery.',
                                    14: 'Parallel ESI deasserted during an 8067 command.',
                                    15: 'Parallel ESI deasserted during an 8045 read.',
                                    16: 'Parallel ESI deasserted during an 8067 read.',
                                    17: 'Parallel ESI deasserted during an 8067 write.',
                                    'L1': 'Hardware Error',
                                    'L2': 'Unspecified Enclosure Services Failure'},
                                3: {2: 'Enclosure found but not ready \xe2\x80\x93 No Encl_Ack Negate.',
                                    4: 'Read Data Transfer Enclosure Timeout.',
                                    5: 'Write Data Transfer Enclosure Timeout.',
                                    13: 'Read Data Transfer Bad Checksum.',
                                    14: 'Write Data Transfer Enclosure Timeout.',
                                    15: 'Read Data Transfer Enclosure Timeout.',
                                    'L1': 'Hardware Error',
                                    'L2': 'Enclosure Transfer Failure'},
                                4: {4: 'Read Data Transfer Refused by Enclosure.',
                                    5: 'Write Data Transfer Refused by Enclosure.',
                                    'L1': 'Hardware Error',
                                    'L2': 'Enclosure Transfer Refused'}},
                           62: {3: {0: 'No Specific FRU code.',
                                    1: 'Logical Unit Failed Self Test \xe2\x80\x93 TestWriteRead',
                                    2: 'Logical Unit Failed Self Test \xe2\x80\x93 TestRandomRead',
                                    3: 'Logical Unit Failed Self Test \xe2\x80\x93 ScanOuterDiameter',
                                    4: 'Logical Unit Failed Self Test \xe2\x80\x93 ScanInnerDiameter',
                                    5: 'Logical Unit Failed Self Test from media backend',
                                    'L1': 'Hardware Error',
                                    'L2': 'Logical Unit Failed Self Test'},
                                4: {0: 'No Specific FRU code.',
                                    'L1': 'Hardware Error',
                                    'L2': 'H2SAT Foreground Test Failure'}},
                           64: {0: {128: 'Format \xe2\x80\x93 Exceeded max number of track rewrites during certify retries.',
                                    'L1': 'Hardware Error',
                                    'L2': 'Miscellaneous Error'},
                                1: {0: 'Buffer memory parity error.',
                                    1: 'Buffer FIFO parity error.',
                                    2: 'IOEDC error.',
                                    3: 'VBM parity error.',
                                    'L1': 'Hardware Error',
                                    'L2': 'DRAM Parity Error'},
                                145: {0: 'No Specific FRU code.',
                                      'L1': 'Hardware Error',
                                      'L2': 'Cryptographic Hardware Power-On Self-Test Failure'},
                                146: {0: 'No Specific FRU code.',
                                      'L1': 'Hardware Error',
                                      'L2': 'Cryptographic Algorithm Power-On Self-Test Failure'},
                                147: {0: 'No Specific FRU code.',
                                      'L1': 'Hardware Error',
                                      'L2': 'Conditional Random Number Generation Self-Test Failure'},
                                148: {0: 'No Specific FRU code.',
                                      'L1': 'Hardware Error',
                                      'L2': 'Hidden Root Key Error During Command Execution'},
                                149: {0: 'No Specific FRU code.',
                                      'L1': 'Hardware Error',
                                      'L2': 'Entropy Power-On Self-Test Failure'},
                                150: {0: 'No Specific FRU code.',
                                      'L1': 'Hardware Error',
                                      'L2': 'Conditional Entropy Self-Test Failure'},
                                151: {0: 'No Specific FRU code.',
                                      'L1': 'Hardware Error',
                                      'L2': 'Boot Firmware SHA-256 Power-On Self-Test Failure'},
                                152: {0: 'No Specific FRU code.',
                                      'L1': 'Hardware Error',
                                      'L2': 'Boot Firmware RSA Power-On Self-Test Failure'}},
                           66: {0: {0: 'Power-on or self-test failure.',
                                    1: 'DST failure.',
                                    2: 'SIM Spinning-up state transition failure.',
                                    3: 'SIM Drive Initialization state transition failure.',
                                    4: 'Read/write thread initialization failed.',
                                    20: 'DIC exceeds the time limits consecutively over count limit',
                                    'L1': 'Hardware Error',
                                    'L2': 'Power-On or Self-Test Failure'},
                                10: {0: 'No Specific FRU code.',
                                     'L1': 'Hardware Error',
                                     'L2': 'Port A failed loopback test'},
                                11: {0: 'No Specific FRU code.',
                                     'L1': 'Hardware Error',
                                     'L2': 'Port B failed loopback test'}},
                           68: {0: {0: 'Internal target failure',
                                    1: 'Self test buffer test failure.',
                                    2: 'Write read test failure.',
                                    3: 'Data sync timeout error.',
                                    4: 'SSD Test access error (DST)',
                                    5: 'Backend (SSD) DRAM failure (DST)',
                                    6: 'Backend (SSD) SRAM failure (DST)',
                                    7: 'Internal target failure META data test',
                                    8: 'Internal target failure System Area Check',
                                    9: 'wait for ACP to get ready for reset took too long',
                                    10: 'wait for AMP to get ready for reset took too long',
                                    11: 'FDBMotor Leakage detected.',
                                    12: 'wait for I2C to be available took too long',
                                    128: 'Write during preamp unsafe fault.',
                                    129: 'Read write channel fault.',
                                    130: 'Small form factor fault.',
                                    131: 'Write during servo field fault.',
                                    132: 'Media Manager\xe2\x80\x99s TPBA FIFO Counter error.',
                                    133: 'Media Manager\xe2\x80\x99s TPBA FIFO Under-run error.',
                                    134: 'Media Manager\xe2\x80\x99s DDT FIFO Counter error.',
                                    135: 'Media Manager\xe2\x80\x99s DDT FIFO Under-run error.',
                                    136: 'Media Manager\xe2\x80\x99s Parity error.',
                                    137: 'Media Manager\xe2\x80\x99s TDT FIFO Under-run error.',
                                    138: 'Media Manager\xe2\x80\x99s Skip Mask Under-run error.',
                                    139: 'Get Temperature request resulted in invalid temperature.',
                                    140: 'Detected unsupported H/W in a Set Voltage Margin request.',
                                    141: 'Unused Error Code.',
                                    142: 'SMART Initial buffer not ready',
                                    143: 'Formatter EDAC correction memory parity error.',
                                    144: 'NX \xe2\x80\x93 RLL1 error.',
                                    145: 'Disc Buffer parity error.',
                                    146: 'Sequencer encountered an EXE/SGATE overlap error.',
                                    147: 'Formatter Correction Buffer underrun error.',
                                    148: 'Formatter Correction Buffer overrun error.',
                                    149: 'Formatted detected NRZ interface protocol error.',
                                    150: 'Media Manager\xe2\x80\x99s MX Overrun error.',
                                    151: 'Media Manager\xe2\x80\x99s NX Overrun error.',
                                    152: 'Media Manager\xe2\x80\x99s TDT Request error.',
                                    153: 'Media Manager\xe2\x80\x99s SST Overrun error.',
                                    154: 'Servo PZT calibration failed.',
                                    155: 'Fast I/O- Servo Data Update Timeout error.',
                                    156: 'Fast I/O- First wedge Servo data Timeout error.',
                                    157: 'Fast I/O- Max samples per collection exceeded.',
                                    158: 'CR memory EDC error',
                                    159: 'SP block detected an EDC error',
                                    160: 'Preamp heater open/short fault.',
                                    161: 'RW Channel fault- Memory buffer overflow or underflow or parity error during write.',
                                    162: 'RW Channel fault- Memory buffer overflow or read data path FIFO underflow in legacy NRZ mode.',
                                    163: 'RW Channel fault- Preamp fault during R/W.',
                                    164: 'RW Channel fault- SGATE, RGATE, or WGATE overlap.',
                                    165: 'RW Channel fault- Mismatch in split sector controls or sector size controls.',
                                    166: 'RW Channel fault- Write clock or NRZ clock is not running.',
                                    167: 'RW Channel fault- SGATE, RGATE, or WGATE asserted during calibration.',
                                    168: 'RW Channel fault- RWBI changed during a read or write event.',
                                    169: 'RW Channel fault- Mode overlap flag.',
                                    170: 'RW Channel fault- Inappropriate WPLO or RPLO behavior.',
                                    171: 'RW Channel fault- Write aborted.',
                                    172: 'RW Channel fault- Bit count late.',
                                    173: 'RW Channel fault- Servo overlap error',
                                    174: 'RW Channel fault- Last data fault',
                                    176: 'PES threshold in field is too far from the same value calculated in the factory.',
                                    177: 'Not enough Harmonic Ratio samples were gathered',
                                    178: 'Sigma of Harmonic Ratio samples after all discards exceeded the limit',
                                    179: 'No EBMS contact fault, even at lowest threshold value',
                                    180: 'EBMS fault still detected at highest threshold value',
                                    181: 'Formatter detected BFI error.',
                                    182: 'Formatter FIFO Interface error.',
                                    183: 'Media sequencer- Disc sequencer Data transfer size mismatch.',
                                    184: 'Correction buffer active while disc sequencer timeout error (this error code is used to fix the hardware skip mask read transfer issue).',
                                    185: 'Seagate Iterative Decoder \xe2\x80\x93 Channel RSM fault',
                                    186: 'Seagate Iterative Decoder \xe2\x80\x93 Channel WSM fault',
                                    187: 'Seagate Iterative Decoder \xe2\x80\x93 Channel BCI fault',
                                    188: 'Seagate Iterative Decoder \xe2\x80\x93 Channel SRC fault',
                                    189: 'Seagate Iterative Decoder \xe2\x80\x93 Channel SAB fault',
                                    190: 'Seagate Iterative Decoder \xe2\x80\x93 Channel read gate overflow error',
                                    192: 'Seagate Iterative Decoder \xe2\x80\x93 Channel SMB Bus B parity error',
                                    193: 'Seagate Iterative Decoder \xe2\x80\x93 Channel SMB buffer error on write',
                                    194: 'Seagate Iterative Decoder \xe2\x80\x93 Channel SOB buffer error on write',
                                    195: 'Seagate Iterative Decoder \xe2\x80\x93 Channel SOB parity error',
                                    196: 'Seagate Iterative Decoder \xe2\x80\x93 Channel SAB buffer error',
                                    197: 'Seagate Iterative Decoder \xe2\x80\x93 Channel SAB bend error',
                                    198: 'Seagate Iterative Decoder \xe2\x80\x93 Channel LLI buffer sync error',
                                    199: 'Seagate Iterative Decoder \xe2\x80\x93 Channel LLI data length error on write',
                                    200: 'Seagate Iterative Decoder \xe2\x80\x93 Channel LLI framing error on write',
                                    201: 'Seagate Iterative Decoder \xe2\x80\x93 Channel LLI write status error',
                                    202: 'Seagate Iterative Decoder \xe2\x80\x93 Channel LLI pipe state error (Bonanza), - Channel RSM Gross Error (Caribou- Luxor)',
                                    203: 'Seagate Iterative Decoder \xe2\x80\x93 Channel decoder microcode error',
                                    204: 'Seagate Iterative Decoder \xe2\x80\x93 Channel encoder microcode error',
                                    205: 'Seagate Iterative Decoder \xe2\x80\x93 Channel NRZ parity error',
                                    206: 'Seagate Iterative Decoder \xe2\x80\x93 Symbols per Sector mismatch error',
                                    207: 'Seagate Iterative Decoder \xe2\x80\x93 Channel SMB Bus A parity error',
                                    208: 'Seagate Iterative Decoder \xe2\x80\x93 Channel SMB NRZ  parity error',
                                    209: 'Seagate Iterative Decoder \xe2\x80\x93 Channel SOB Buffer error on read',
                                    210: 'Seagate Iterative Decoder \xe2\x80\x93 Channel SMB Buffer error on read',
                                    211: 'Seagate Iterative Decoder \xe2\x80\x93 Channel LLI data length error on read',
                                    212: 'Seagate Iterative Decoder \xe2\x80\x93 Channel LLI framing error on read',
                                    217: 'Seagate Iterative Decoder \xe2\x80\x93 Channel WSM Gross error',
                                    218: 'Seagate Iterative Decoder \xe2\x80\x93 Channel ERF buffer error',
                                    224: 'Preamp low voltage error',
                                    225: 'Preamp low write data frequency at common point error',
                                    226: 'Preamp write head open error',
                                    227: 'Preamp write head shorted to ground error',
                                    228: 'Preamp TA sensor open error',
                                    229: 'Preamp temperature error',
                                    230: 'Preamp write without heat error',
                                    231: 'Preamp writer off in write error',
                                    232: 'Preamp writer output buffer error',
                                    233: 'Preamp low write data frequency at the head error',
                                    234: 'Preamp FOS error',
                                    235: 'Preamp TA or contact detect error',
                                    236: 'Preamp SWOT error',
                                    237: 'Preamp serial port communication error',
                                    238: 'HSC magnitude overflow error',
                                    240: 'RW Channel \xe2\x80\x93 RDATA valid overlap fault',
                                    241: 'RW Channel \xe2\x80\x93 RD valid gap fault',
                                    244: 'RW Channel \xe2\x80\x93 W Parity not ready',
                                    247: 'RW Channel \xe2\x80\x93 Wrong sector length',
                                    248: 'RW Channel \xe2\x80\x93 Encoder overflow error',
                                    249: 'RW Channel \xe2\x80\x93 Encoder early termination fault',
                                    250: 'RW Channel \xe2\x80\x93 Iteration parameter error',
                                    251: 'RW Channel \xe2\x80\x93 MXP write fault',
                                    252: 'RW Channel \xe2\x80\x93 Symbol count error',
                                    253: 'RW Channel \xe2\x80\x93 RD Incomplete error',
                                    254: 'RW Channel \xe2\x80\x93 RD Data VGA error',
                                    255: 'RW Channel \xe2\x80\x93 RD Data TA error',
                                    'L1': 'Hardware Error',
                                    'L2': 'Internal Target Failure'},
                                1: {2: 'RW Channel \xe2\x80\x93 RFM Wrong sector length',
                                    3: 'RW Channel \xe2\x80\x93 RFM FIFO underflow',
                                    4: 'RW Channel \xe2\x80\x93 RFM FIFO Overflow',
                                    5: 'RW Channel \xe2\x80\x93 Vector flow errors',
                                    32: 'HSC - An error occurred when attempting to open the file to be used for Harmonic Sensor Circuitry data collection.',
                                    33: 'HSC - The Standard Deviation of the VGAS data collected by the Harmonic Sensor Circuitry was zero.',
                                    34: 'HSC - The Standard Deviation of the 3rd Harmonic data collected by the Harmonic Sensor Circuitry was zero.',
                                    35: 'HSC - The Servo Loop Code returned at the completion of Harmonic Sensor Circuitry data collection was not 0.',
                                    36: 'HSC - An invalid write pattern was specified Harmonic Sensor Circuitry data collection.',
                                    37: 'AR Sensor - The AR Sensor DAC to Target calculation encountered the need to take the square root of a negative value.',
                                    38: 'AR Sensor - The AR Sensor encountered an error when attempting to open the Background Task file.',
                                    39: 'AR Sensor - The AR Sensor encountered an error when attempting to open the General Purpose Task file.',
                                    40: "AR Sensor - The size of the Background Task file is inadequate to satisfy the AR Sensor's requirements.",
                                    41: "AR Sensor - The size of the General Purpose Task file is inadequate to satisfy the AR Sensor's requirements.",
                                    42: 'AR Sensor - The FAFH Parameter File revision is incompatible with the AR Sensor.',
                                    43: 'AR Sensor - The AR Sensor Descriptor in the FAFH Parameter File is invalid.',
                                    44: 'AR Sensor - The Iterative Call Index specified when invoking the AR Sensor exceeds the maximum supported value.',
                                    45: 'AR Sensor - The AR Sensor encountered an error when performing a Track Position request.',
                                    46: 'AR Sensor - The Servo Data Sample Count specified when invoking the AR Sensor exceeds the maximum supported value.',
                                    47: 'AR Sensor - The AR Sensor encountered an error when attempting to set the read channel frequency.',
                                    48: 'AR Sensor - The 3rd Harmonic value measured by the AR Sensor was 0.',
                                    96: 'RW Channel - LOSSLOCKR fault',
                                    97: 'RW Channel - BLICNT fault',
                                    98: 'RW Channel - LLI ABORT fault',
                                    99: 'RW Channel - WG FILLR fault',
                                    100: 'RW Channel - WG FILLW fault',
                                    101: 'RW Channel - CHAN fault',
                                    102: 'RW Channel - FRAG NUM fault',
                                    103: 'RW Channel - WTG fault',
                                    104: 'RW Channel - CTG fault',
                                    105: 'RW Channel -\xc2\xa0NZRCLR fault',
                                    106: 'RW Channel - \xc2\xa0Read synthesizer prechange fail fault',
                                    107: 'RW Channel -\xc2\xa0Servo synthesizer prechange fail fault',
                                    108: 'RW Channel - Servo Error detected prior to halting Calibration Processor',
                                    109: 'RW Channel -\xc2\xa0Unable to Halt Calibration Processor',
                                    110: 'RW Channel -\xc2\xa0ADC Calibrations already disabled',
                                    111: 'RW Channel -\xc2\xa0Calibration Processor Registers have already been saved',
                                    112: 'RW Channel -\xc2\xa0Address where Calibration Processor Registers are to be saved is invalid',
                                    113: 'RW Channel -\xc2\xa0Array for saving Calibration Processor Register values is too small',
                                    114: 'RW Channel -\xc2\xa0Calibration Processor Register values to be used for AR are invalid',
                                    115: 'RW Channel -\xc2\xa0Synchronous abort complete fault',
                                    116: 'RW Channel -\xc2\xa0Preamble length fault',
                                    117: 'RW Channel -\xc2\xa0TA or media defect event fault',
                                    118: 'RW Channel -\xc2\xa0DPLL frequency overflow/underflow fault',
                                    119: 'RW Channel -\xc2\xa0Zero gain threshold exceeded fault',
                                    120: 'RW Channel -\xc2\xa0DPLL frequency deviation fault',
                                    121: 'RW Channel -\xc2\xa0Extended EVGA overflow/underflow fault',
                                    128: 'RW Channel -\xc2\xa0\xc2\xa0Read VGA gain fault',
                                    129: 'RW Channel -\xc2\xa0Acquire Peak Amplitude flag fault',
                                    130: 'RW Channel -\xc2\xa0Massive drop-out fault',
                                    131: 'RW Channel -\xc2\xa0Low Quality sync mark fault',
                                    132: 'RW Channel -\xc2\xa0NPLD load error fault',
                                    133: 'RW Channel -\xc2\xa0Write path memory fault status bit fault',
                                    134: 'RW Channel -\xc2\xa0WRPO disabled fault',
                                    135: 'RW Channel -\xc2\xa0Preamble quality monitor fault',
                                    136: 'RW Channel -\xc2\xa0Reset detection flag fault',
                                    137: 'RW Channel -\xc2\xa0Packet write fault',
                                    138: 'RW Channel -\xc2\xa0Gate command queue overflow fault',
                                    139: 'RW Channel -\xc2\xa0Gate command queue underflow fault',
                                    140: 'RW Channel -\xc2\xa0Ending write splice fault status fault',
                                    141: 'RW Channel -\xc2\xa0Write-through gap servo collision fault',
                                    142: 'RW Channel - Read Gate Fault',
                                    143: 'Error reading the Preamp Gain register during an HSC operation',
                                    144: 'Error writing the Preamp Gain register during an HSC operation',
                                    145: 'RW Channel - Calibration Processor not halted',
                                    146: 'RW Channel - Background Calibrations already stopped',
                                    147: 'RW Channel -\xc2\xa0Background Calibrations not stopped',
                                    148: 'RW Channel - Calibration Processor halt error',
                                    149: 'RW Channel - Save AR Calibration Processor registers error',
                                    150: 'RW Channel - Load AR Calibration Processor registers error',
                                    151: 'RW Channel - Restore AR Calibration Processor registers error',
                                    152: 'RW Channel - Write Markov Modulation Code Failure Type 0',
                                    153: 'RW Channel - Write Markov Modulation Code Failure Type 1',
                                    154: 'RW Channel - Write Markov Modulation Code Failure Type 2',
                                    155: 'RW Formatter - NRZ Interface Parity Randomizer Nyquist Error',
                                    156: 'RW Formatter - NRZ Interface Parity Randomizer Run Error',
                                    157: 'RW Formatter - DLT Fifo Underrun Error',
                                    158: 'RW Formatter - WDT Fifo Underrun Error',
                                    159: 'RW Formatter - M2 MI error',
                                    'L1': 'Hardware Error',
                                    'L2': 'Internal Target Failure'},
                                224: {0: 'Failure writing firmware to disc.',
                                      'L1': 'Hardware Error',
                                      'L2': 'Writing to Disc Failed'},
                                225: {0: 'Failed to reinitialize the NVC Host',
                                      'L1': 'Hardware Error',
                                      'L2': 'Writing to Disc Failed'},
                                226: {0: 'Failed to erase the NVC Header',
                                      'L1': 'Hardware Error',
                                      'L2': 'Writing to Disc Failed'},
                                227: {0: 'Failed to write NVC client data to disc',
                                      'L1': 'Hardware Error',
                                      'L2': 'Writing to Disc Failed'},
                                228: {0: 'Failed to initialize the NVC header',
                                      'L1': 'Hardware Error',
                                      'L2': 'Writing to Disc Failed'},
                                229: {0: 'Failed to initialize the NVC Host',
                                      'L1': 'Hardware Error',
                                      'L2': 'Writing to Disc Failed'},
                                230: {0: 'Failed to write MCMT during initialization',
                                      'L1': 'Hardware Error',
                                      'L2': 'Writing to Disc Failed'},
                                231: {0: 'Failed to write the ISPT during format',
                                      'L1': 'Hardware Error',
                                      'L2': 'Writing to Disc Failed'},
                                232: {0: 'Failed to clear logs during format',
                                      'L1': 'Hardware Error',
                                      'L2': 'Writing to Disc Failed'},
                                242: {0: 'No Specific FRU code.',
                                      'L1': 'Hardware Error',
                                      'L2': 'Data Integrity Check Failed on verify'},
                                246: {0: 'FRU 00 \xe2\x80\x93 09 stand for error on head 0 \xe2\x80\x93 9.',
                                      16: 'Power-on self-test failed.',
                                      'L1': 'Hardware Error',
                                      'L2': 'Data Integrity Check Failed during write'},
                                251: {0: 'No Specific FRU code.',
                                      'L1': 'Hardware Error',
                                      'L2': 'Failed to enter Raid Partial Copy Diagnostic mode'},
                                255: {0: 'No Specific FRU code.',
                                      'L1': 'Hardware Error',
                                      'L2': 'XOR CDB check error'}},
                           93: {0: {1: 'Number of Command Timeouts Exceeded',
                                    'L1': 'Hardware Error',
                                    'L2': 'Command Timeout'}},
                           101: {0: {0: 'No Specific FRU code.',
                                     'L1': 'Hardware Error',
                                     'L2': 'Voltage fault.'}},
                           128: {134: {0: 'Host IOEDC Error on Read detected by host',
                                       1: 'IOEDC error on read.',
                                       2: 'IOECC error on read.',
                                       3: 'FDE IOECC error on read.',
                                       4: 'SSD IOEDC error on read',
                                       5: 'SSD Erased Page Error',
                                       6: 'FDE Sector-bypass datatype mismatch',
                                       'L1': 'Hardware Error',
                                       'L2': 'IOEDC - DataType Error on Read'},
                                 135: {0: 'Host IOEDC Error on Write, this is unused',
                                       1: 'FDE IOEDC Error on Write detected by the FDE logic',
                                       2: 'SSD IOEDC Error on Write',
                                       128: 'Disk IOEDC parity error on write detected by formatter',
                                       129: 'IOECC and IOEDC errors occurred, which is highly probable (when IOECC is enabled) for multiple or single bit corruption.',
                                       130: 'IOECC parity error on write.',
                                       131: 'IOECC error (correctable).',
                                       'L1': 'Hardware Error',
                                       'L2': 'IOEDC Error on Write'},
                                 136: {0: 'No Specific FRU code.',
                                       'L1': 'Hardware Error',
                                       'L2': 'Host Parity Check Failed'},
                                 137: {128: 'IOEDC parity error on read detected by formatter',
                                       'L1': 'Hardware Error',
                                       'L2': 'IOEDC error on read detected by formatter'},
                                 138: {'L1': 'Hardware Error',
                                       'L2': 'Host FIFO Parity Error detected by Common Buffer',
                                       'fru': ['xx is 00, 01, 02 or 03 ( channel number )']},
                                 139: {0: 'No Specific FRU code.',
                                       'L1': 'Hardware Error',
                                       'L2': 'Host FIFO Parity Error detected by frame buffer logic'},
                                 140: {0: 'No Specific FRU code.',
                                       1: 'For Read Host Data Frame Buffer Parity Error.',
                                       2: 'For Write Host Data Frame Buffer Parity Error.',
                                       3: 'SSD Buffer Memory Parity Error',
                                       4: 'Host Data Frame Buffer Uncorrectable ECC Error.',
                                       'L1': 'Hardware Error',
                                       'L2': 'Host Data Frame Buffer Uncorrectable ECC Error'},
                                 141: {0: 'No Specific FRU code.',
                                       'L1': 'Hardware Error',
                                       'L2': 'Host Data Frame Buffer Protection Error'},
                                 142: {0: 'No Specific FRU code.',
                                       'L1': 'Hardware Error',
                                       'L2': 'Host FIFO overrun or underrun rrror'},
                                 143: {0: 'No Specific FRU code.',
                                       'L1': 'Hardware Error',
                                       'L2': 'Host FIFO unknown error'}},
                           129: {0: {0: 'No Specific FRU code.',
                                     'L1': 'Hardware Error',
                                     'L2': 'LA Check Error, LCM bit = 0'}},
                           130: {0: {0: 'No Specific FRU code.',
                                     1: 'Insufficient return buffer.',
                                     'L1': 'Hardware Error',
                                     'L2': 'Diag internal client detected insufficient buffer'}},
                           131: {0: {0: 'No Specific FRU code.',
                                     'L1': 'Hardware Error',
                                     'L2': 'DOS Scalars are out of range'}}},
                       5: {26: {0: {0: 'Parameter list length error.',
                                    1: 'Format Parameter list length error.',
                                    2: 'Mode Select command Parameter list length error.',
                                    3: 'Extended Mode select command Parameter list length error.',
                                    4: 'Mode Select operation Parameter list length error.',
                                    5: 'Check mode page Parameter list length error.',
                                    6: 'Reassign Block command Parameter list length error.',
                                    7: 'Parameter list length error.',
                                    8: 'Parameter data list length error.',
                                    'L1': 'Illegal Request',
                                    'L2': 'Parameter List Length Error'}},
                           32: {0: {0: 'Invalid Command Operation Code',
                                    1: 'Primary Invalid Command Operation Code',
                                    2: 'Unique command not unlocked code.',
                                    7: 'Glist to Plist Unlock command not unlocked code.',
                                    8: 'Invalid Command Operation Code for SSD Backend',
                                    'L1': 'Illegal Request',
                                    'L2': 'Invalid Command Operation Code'},
                                243: {0: 'No Specific FRU code.',
                                      'L1': 'Illegal Request',
                                      'L2': 'Invalid linked command operation code'}},
                           33: {0: {1: 'Logical block address out of range',
                                    2: 'Invalid LBA in synchronize cache',
                                    3: 'Invalid LBA in read capacity',
                                    4: 'Invalid LB in write same',
                                    5: 'Invalid LBA in read/write long',
                                    6: 'Invalid LBA in seek',
                                    7: 'Logical block address out of range from media backend',
                                    'L1': 'Illegal Request',
                                    'L2': 'Logical Block Address Out of Range'}},
                           36: {0: {0: 'Invalid field in CDB',
                                    1: 'Bad CDB error.',
                                    2: 'Invalid field in CDB. (Format command)',
                                    3: 'Invalid field in CDB. (Setup R/W Long command)',
                                    4: 'Invalid field in CDB. (Log sense page)',
                                    5: 'Invalid field in CDB. (Log sense parameter)',
                                    6: 'Invalid field in CDB. (Log select command)',
                                    7: 'Invalid Field in CDB \xe2\x80\x93 UDS trigger command.',
                                    8: 'Invalid Field in CDB \xe2\x80\x93 buffer overflow check.',
                                    9: 'Invalid power transition request',
                                    10: 'Invalid power transition mode bit',
                                    11: 'Invalid power transition PCM',
                                    12: 'Invalid page and subpage combination (Log sense)',
                                    13: 'Invalid field in CDB. (Report Zones command- SMR)',
                                    22: 'Invalid field in CDB. (Skip Mask)',
                                    48: 'Invalid Combination of CDB.',
                                    49: 'Change Definition Illegal Parameter.',
                                    50: 'Change Definition Illegal Password',
                                    51: 'Change Definition Unlock Command Error',
                                    52: 'Change Definition Not Supported',
                                    53: 'Change Definition Mismatch in port mode (Single/Dual port: SAS only)',
                                    54: 'Invalid field in CDB from media backend',
                                    'L1': 'Illegal Request',
                                    'L2': 'Invalid Field in CDB'},
                                1: {0: 'No Specific FRU code.',
                                    'L1': 'Illegal Request',
                                    'L2': 'Illegal Queue Type for CDB (Low priority commands must be SIMPLE queue)'},
                                46: {0: 'The Byte Offset exceeds the length of the SMART frame data.',
                                     'L1': 'Illegal Request',
                                     'L2': 'Invalid field in CDB for E6 SMART Dump command, unique to NetApp.'},
                                240: {0: 'No Specific FRU code.',
                                      'L1': 'Illegal Request',
                                      'L2': 'Invalid LBA in linked command'},
                                242: {0: 'No Specific FRU code.',
                                      'L1': 'Illegal Request',
                                      'L2': 'Invalid linked command operation code'},
                                243: {128: 'G->P operation requested while drive was formatted w/o PLIST.',
                                      129: 'Servo Flaw already exists in ASFT or PSFT.',
                                      130: 'G->P operation encountered a G-list entry that overlaps an existing P-list entry.',
                                      131: 'G->P operation encountered a Growth Servo Flaw which overlapped an existing Primary defect Servo Flaw.',
                                      132: 'Defects report lists not available for retrieval.',
                                      133: "Servo Flaw doesn't exist in ASFT.",
                                      'L1': 'Illegal Request',
                                      'L2': 'Illegal Servo Flaw operation request'}},
                           37: {0: {0: 'No Specific FRU code.',
                                    'L1': 'Illegal Request',
                                    'L2': 'Logical unit not supported'}},
                           38: {0: {0: 'Invalid Field in Parameter List.',
                                    1: 'Invalid Field in Format Parameter List.',
                                    2: 'Field in RetrieveThirdPartyID Parameter List.',
                                    3: 'Invalid Field in ModeSelectOperation Parameter List.',
                                    4: 'Invalid Field in CheckModePage Parameter List.',
                                    5: 'Invalid Field in ReassignBlocksCmd Parameter List.',
                                    6: 'Invalid Field in PersistentReserveOutCmd Parameter List.',
                                    7: 'Invalid Field Invalid in LogSelectCmd Parameter List.',
                                    8: 'Invalid LogSelectCmd Parameter List length.',
                                    9: 'Invalid Field in WriteBufferCmd Parameter List.',
                                    10: 'Invalid Field in SendDiagnosticCmd Parameter List.',
                                    11: 'Invalid Field in BuildTranslateAddrPage Parameter List.',
                                    12: 'An E0 packet to UDS was too small',
                                    13: 'Invalid FCN ID in E0 packet to UDS.',
                                    14: 'Invalid Field in Retrieved Trace Information packet to UDS (E0).',
                                    15: 'Cannot clear UDS trace, because UDS was not allowed to return it all',
                                    16: 'Cannot enable/disable UDS trace, drive not ready',
                                    17: 'Unsupported block size.',
                                    18: 'UDS trigger command.',
                                    19: 'Invalid remanufacturing command.',
                                    20: 'Invalid command while SMART reporting disabled.',
                                    21: 'Invalid field in parameter list from media backend',
                                    128: 'Invalid input cylinder.',
                                    129: 'Invalid input head.',
                                    130: 'Invalid input sector.',
                                    131: 'Input user LBA is invalid 01.',
                                    132: 'Input user LBA is invalid 02.',
                                    133: 'Input user LBA is invalid 03.',
                                    134: 'Input system LBA is invalid.',
                                    135: 'Client defect list size is invalid.',
                                    136: 'Sort error due to invalid offset.',
                                    137: 'Sort error due to invalid head.',
                                    138: 'Sort error due to invalid cylinder.',
                                    139: 'Failed to validate a client specified byte extent info.',
                                    140: 'Failed to validate a client specified sector extent info.',
                                    141: 'Invalid track in client defect list entry.',
                                    142: 'Input track is invalid.',
                                    143: 'First LBA of input track is invalid.',
                                    144: 'Invalid servo data block length.',
                                    145: 'Invalid servo program block length.',
                                    146: 'Address translation \xe2\x80\x93 input PBA is invalid',
                                    147: 'Address translation \xe2\x80\x93 input symbol extent is invalid.',
                                    148: 'Super sector transfer \xe2\x80\x93 invalid wedge transfer size.',
                                    149: 'Track ZLR Transfer \xe2\x80\x93 Invalid partition.',
                                    150: 'Track ZLR Transfer \xe2\x80\x93 Invalid LBA range on target track.',
                                    151: 'Track ZLR Transfer \xe2\x80\x93 Reallocated LBA found on target track.',
                                    152: 'Input user LBA is invalid 04.',
                                    153: 'Input user LBA is invalid 05.',
                                    154: 'Convert Sector to RLL Data \xe2\x80\x93 Unsupported sector size.',
                                    155: 'Add Servo Flaw \xe2\x80\x93 Invalid input specified.',
                                    156: 'Invalid condition for enabling servo free fall protection (drive not spinning).',
                                    157: 'Invalid condition for disabling servo free fall protection (drive not spinning).',
                                    158: 'Invalid condition for disabling servo free fall protection (protection already disabled).',
                                    159: 'Invalid condition for disabling servo free fall protection (protection already de-activated).',
                                    160: 'Invalid condition for disabling servo free fall protection (free-fall condition is currently active).',
                                    161: 'Invalid drive free-fall control option specified.',
                                    162: 'Check free-fall event failed \xe2\x80\x93 protection not functional.',
                                    163: 'Invalid sector range specified.',
                                    164: 'Invalid count value specified for update.',
                                    165: 'Invalid channel memory select specified for access.',
                                    166: 'Invalid buffer index specified for read channel memory access.',
                                    167: 'Invalid start address specified for read channel memory access.',
                                    168: 'Invalid transfer length specified for read channel memory access.',
                                    169: 'Invalid sector extent info',
                                    175: 'Band translation - invalid input type specified',
                                    176: 'Band translation - invalid output type specified',
                                    177: 'Band translation - invalid input Band ID',
                                    178: 'Band translation - invalid input Band ID',
                                    179: 'Band translation - invalid input track position',
                                    180: 'Band translation - invalid input RAP zone, head',
                                    185: 'Invalid band number.',
                                    186: 'Invalid band lba offset.',
                                    187: 'Invalid user lba.',
                                    189: 'Invalid parameter',
                                    193: 'DITS Buffer ( Dummy Cache ) too small',
                                    'L1': 'Illegal Request',
                                    'L2': 'DITS Buffer ( Dummy Cache ) too small'},
                                1: {0: 'No Specific FRU code.',
                                    1: 'Log pages unavailable for inclusion in UDS dump.',
                                    'L1': 'Illegal Request',
                                    'L2': 'Parameter Not Supported'},
                                2: {0: 'No Specific FRU code.',
                                    1: 'DIAG:  Invalid input cylinder.',
                                    2: 'DIAG:  Invalid input head.',
                                    3: 'DIAG:  Invalid input sector.',
                                    4: 'DIAG:  Invalid Wedge.',
                                    5: 'DIAG:  Invalid LBA.',
                                    6: 'DIAG:  Invalid file selection.',
                                    7: 'DIAG:  Invalid file length.',
                                    8: 'DIAG:  Invalid start offset.',
                                    9: 'DIAG:  Write Overflow.',
                                    10: 'DIAG:  Backplane Bypass selection invalid.',
                                    11: 'DIAG:  Invalid serial number.',
                                    12: 'DIAG:  Incomplete DFB.',
                                    13: 'DIAG:  Unsupported DFB revision.',
                                    14: 'DIAG:  Invalid Temperature selection.',
                                    15: 'DIAG:  Invalid Transfer Length.',
                                    16: 'DIAG:  Unsupported memory area.',
                                    17: 'DIAG:  Invalid command.',
                                    18: 'DIAG:  File copy invalid.',
                                    19: 'DIAG:  Insufficient data sent from initiator.',
                                    20: 'DIAG:  Unsupported DIAG command.',
                                    21: 'DIAG:  Flash segment invalid.',
                                    22: 'DIAG:  Req flash segment copy invalid.',
                                    23: 'DIAG:  Flash access failed.',
                                    24: 'DIAG:  Flash segment length invalid.',
                                    25: 'DIAG:  File checksum invalid.',
                                    26: 'DIAG:  Host DFB Length Invalid',
                                    27: 'DIAG:  Unaligned transfer.',
                                    28: 'DIAG:  Unsupported operation.',
                                    29: 'DIAG:  Backend invalid.',
                                    30: 'DIAG:  Flash plane invalid.',
                                    31: 'DIAG:  ISP node not found.',
                                    32: 'DIAG:  Invalid parameter.',
                                    33: 'DIAG:  Format corrupt condition required.',
                                    34: 'DIAG:  Clear all scan unit counts not allowed',
                                    35: 'DIAG:\xc2\xa0 Unsupported Flash Device',
                                    36: 'DIAG:\xc2\xa0 Raw flash blocks in MList',
                                    37: 'DIAG:\xc2\xa0 Raw flash format table mismatch',
                                    38: 'DIAG:\xc2\xa0 Raw flash Unused format slot',
                                    39: 'DIAG:\xc2\xa0 Raw flash cannot decide format table',
                                    40: 'DIAG:\xc2\xa0 Raw flash invalid error code',
                                    41: 'DIAG:\xc2\xa0 Write protect condition',
                                    42: 'DIAG:  Requested for a Pre-erased block in Nor flash',
                                    57: 'Parameter Data out of range.',
                                    58: 'Parameter Data over write.',
                                    64: 'DIAG:  Diag write failed',
                                    65: 'DIAG: DIAG_DST_IS_IN_PROGRESS',
                                    66: 'DIAG: DIAG_TEST_RANGE_IN_SET',
                                    68: 'DIAG: DIAG_BMS_IS_ENABLED',
                                    72: 'DIAG: DIAG_INVALID_START_LBA',
                                    73: 'DIAG: DIAG_INVALID_END_LBA',
                                    'L1': 'Illegal Request',
                                    'L2': 'Parameter Value Invalid'},
                                3: {0: 'No Specific FRU code.',
                                    'L1': 'Illegal Request',
                                    'L2': 'Threshold Parameter not supported'},
                                4: {0: 'Invalid Release of Active Persistent Reserve',
                                    1: 'Invalid release of persistent reservation. (reservation type mismatch)',
                                    'L1': 'Illegal Request',
                                    'L2': 'Invalid Release of Active Persistent Reserve'},
                                5: {0: 'No Specific FRU code.',
                                    'L1': 'Illegal Request',
                                    'L2': 'Fail to read valid log dump data'},
                                152: {0: 'No Specific FRU code.',
                                      1: 'FDE checksum error.',
                                      2: 'Failed Flash Verification on Newly Downloaded Component.',
                                      'L1': 'Illegal Request',
                                      'L2': 'Invalid Field Parameter \xe2\x80\x93 Check Sum'},
                                153: {1: 'Segment type mismatch.',
                                      2: 'Customer ID mismatch.',
                                      3: 'Drive type mismatch.',
                                      4: 'HW configuration mismatch.',
                                      5: 'Compatibility configuration mismatch.',
                                      6: 'Servo firmware product family mismatch.',
                                      7: 'QNR download is not supported.',
                                      8: 'CAP product family mismatch.',
                                      9: 'RAP product family mismatch.',
                                      10: 'Download segment length too large.',
                                      11: 'Download length invalid.',
                                      12: 'CTPM missing.',
                                      13: 'CFW and CAP mismatch 01.',
                                      14: 'CFW and CAP mismatch 02.',
                                      15: 'CFW and CAP mismatch 03.',
                                      16: 'CFW and RAP mismatch 01.',
                                      17: 'CFW and RAP mismatch 02.',
                                      18: 'CFW and RAP mismatch 03.',
                                      19: 'CFW and SAP mismatch 01.',
                                      20: 'CFW and SAP mismatch 02.',
                                      21: 'CFW and SAP mismatch 03.',
                                      22: 'CFW and SFW mismatch 01.',
                                      23: 'SAP Product family mistmatch',
                                      24: 'CFW and SFW mismatch 03.',
                                      25: 'Download buffer offset invalid.',
                                      26: 'Address translation invalid.',
                                      27: 'CFW and IAP mismatch.',
                                      28: 'Quick Download in Progress.',
                                      29: 'Invalid unlock tags \xe2\x80\x93 customer does not match',
                                      30: 'Invalid unlock tags \xe2\x80\x93 customer does not match',
                                      31: 'Invalid unlock tags \xe2\x80\x93 checksum failure',
                                      32: 'Firmware not backward compatible.',
                                      33: 'Download overlay incompatible.',
                                      34: 'Overlay download failure 1.',
                                      35: 'Overlay download failure 2.',
                                      36: 'Overlay download failure 3.',
                                      37: 'General download failure',
                                      38: 'Trying to download bridge code for wrong product family',
                                      39: 'Factory flags mismatch.',
                                      40: 'Illegal combination \xe2\x80\x93 Missing BootFW module.',
                                      41: 'Illegal combination \xe2\x80\x93 Missing Customer FW Feature Flags module.',
                                      42: 'Illegal combination \xe2\x80\x93 Programmable Inquiry download  not supported.',
                                      43: 'Illegal combination \xe2\x80\x93 Missing CustomerFW module.',
                                      44: 'Download Congen header failure',
                                      46: 'Download Congen XML failure',
                                      47: 'Download Congen version failure',
                                      48: 'Download Congen XML SIM MakeLocalFile failure',
                                      49: 'Download Congen mode data failure \xe2\x80\x93 could not save mode header.',
                                      50: 'Download Congen mode data failure \xe2\x80\x93 mode page had sent length/spec length miscompare.',
                                      51: 'Download Congen mode data failure \xe2\x80\x93 mode page had invalid contents.',
                                      52: 'Download Congen mode data failure \xe2\x80\x93 mode page tried to change contents not allowed by change mask.',
                                      53: 'Download Congen mode data failure \xe2\x80\x93 save all mode pages could not write to media.',
                                      54: 'Download Congen mode data failure \xe2\x80\x93 save partial mode pages could not write to media.',
                                      55: 'Download Congen mode data failure \xe2\x80\x93 mode change callbacks did not complete successfully.',
                                      56: 'Package Enforcement Failure \xe2\x80\x93 Package didn\xe2\x80\x99t contain valid SFW component',
                                      57: 'Invalid link rate',
                                      59: 'Unlock code not allowed to be DL if dets is locked',
                                      60: 'DETS is locked, code download is blocked',
                                      61: 'Code download is blocked if DETS is locked',
                                      62: 'Download is blocked due to system area incompatibility with new code',
                                      63: 'Invalid SD&D customer family for customer cross-market-segment downloads.',
                                      64: 'Unlock File failed to be written to the flash',
                                      65: 'Unlock File secuirty headers do not match',
                                      80: 'Download header length invalid',
                                      81: 'Download length is not a multiple of the buffer word size',
                                      82: 'Download length and segment length mismatch',
                                      161: 'Unknown firmware tag type.',
                                      162: 'Attempt to R/W locked LBA band',
                                      163: 'SSD download combined code has mismatched frontend and backend',
                                      164: 'SSD download backend code \xe2\x80\x93 recovery required',
                                      165: 'SSD download a firmware which is mismatched with resident firmware',
                                      166: 'SSD download standalone (non-bundle) firmware in boot mode.',
                                      'L1': 'Illegal Request',
                                      'L2': 'Invalid Field Parameter \xe2\x80\x93 Firmware Tag'},
                                154: {0: 'Invalid Security Field Parameter in secure download packaging.',
                                      1: 'Attempt to perform secure download with drive not spun up',
                                      2: 'Attempt to download signed non-fde firmware in use state or fail state',
                                      3: 'Attempt to download signed sed code onto a non-sed drive.',
                                      4: 'Download inner signature key index does not match the outer signature key index.',
                                      16: 'Inner firmware signature validation failure.',
                                      18: 'Power Governor feature requires that both CFW and SFW support same number of seek profiles. This sense code indicates an attempt to download a code with mismatching seek profiles count',
                                      20: 'DOS Table Size has been reduced',
                                      'L1': 'Illegal Request',
                                      'L2': 'Invalid Field Parameter \xe2\x80\x93 Firmware Tag'},
                                155: {0: 'SSD download code mismatched with running frontend code FRU indicate running frontend compatibility number 00-FF',
                                      'L1': 'Illegal Request',
                                      'L2': 'SSD Compatibility Error'}},
                           44: {0: {0: 'Command Sequence Error.',
                                    1: 'Command Sequence Error. (R/W Buffer command)',
                                    2: 'Command Sequence Error. (Retrieve SDBPP Packet)',
                                    3: 'Command Sequence Error. (Diag Locked)',
                                    4: 'Command Sequence Error. (Concurrent UDS service attempt)',
                                    5: 'Command Sequence Error. (UDS retrieval:  back-to-back E0)',
                                    6: 'Command Sequence Error. (Unexpected retrieve trace packet received during non-handshaked UDS retrieval)',
                                    7: 'Command Sequence Error. (Back-to-back E1 commands, illegal during handshaked UDS retrieval and illegal during non-handshaked when it\xe2\x80\x99s time to retrieve the last trace packet)',
                                    8: 'Command Sequence Error. (Send Diag cmd. Before Write Buffer cmd)',
                                    9: 'Command Sequence Error. (Channel BCI logging in online mode)',
                                    10: 'Stop command execution disallowed when Raid Rebuild mode is active/enabled',
                                    11: 'Foreground H2SAT operation currently not allowed.',
                                    'L1': 'Illegal Request',
                                    'L2': 'Command Sequence Error'},
                                5: {0: 'No Specific FRU code.',
                                    1: 'Power Management frozen (OBSOLETE)',
                                    'L1': 'Illegal Request',
                                    'L2': 'Illegal Power Condition Request'},
                                128: {0: 'Command Sequence Error. (Illegal to request MC flush while cleaning is disabled.)',
                                      'L1': 'Illegal Request',
                                      'L2': 'Command Sequence Error'}},
                           50: {1: {0: 'No Specific FRU code.',
                                    'L1': 'Illegal Request',
                                    'L2': 'Defect List Update Error'}},
                           53: {1: {3: 'No enclosure found.',
                                    7: 'Unsupported 8045 Enclosure Request.',
                                    'L1': 'Illegal Request',
                                    'L2': 'Unsupported Enclosure Function'}},
                           71: {6: {0: 'No Specific FRU code.',
                                    'L1': 'Illegal Request',
                                    'L2': 'SAS - Physical Test in Progress'}},
                           73: {0: {0: 'No Specific FRU code.',
                                    'L1': 'Illegal Request',
                                    'L2': 'Illegal request, Invalid message error'}},
                           85: {4: {1: 'No Specific FRU code.',
                                    'L1': 'Illegal Request',
                                    'L2': 'PRKT table is full'}}},
                       6: {11: {1: {0: 'No Specific FRU code.',
                                    1: 'Temperature is lower than the low temperature threshold.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Warning \xe2\x80\x93 Specified temperature exceeded'}},
                           41: {0: {0: 'Power on, reset, or bus device reset occurred. (SPI flash LED)',
                                    1: 'CDB trigger dump and reset occurred..',
                                    2: 'LIP trigger dump and reset occurreD',
                                    3: 'Performing some type of logout, either N_PORT, FCP, or both.',
                                    202: 'The Flight Recorder area in FLASH contains data',
                                    'L1': 'Unit Attention',
                                    'L2': 'Power-On, Reset, or Bus Device Reset Occurred'},
                                1: {0: 'Power-on reset occurred. (SPI)',
                                    1: 'Power-on reset occurred. (SSI)',
                                    6: 'Power-on reset occurred when rezero with 0xEF in byte 1',
                                    7: 'Power-on reset occurred due to HW controller watchdog expiration',
                                    8: 'Power-on reset initiated by firmware (e.g. to remove lockup conditions)',
                                    9: 'Power-on reset occurred when servo watchdog timer expires',
                                    'L1': 'Unit Attention',
                                    'L2': 'Power-On Reset Occurred'},
                                2: {0: 'SCSI bus reset occurred.',
                                    2: 'Warm reset occurred.',
                                    'L1': 'Unit Attention',
                                    'L2': 'SCSI Bus Reset Occurred'},
                                3: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Bus Device Reset'},
                                4: {0: 'No Specific FRU code.',
                                    1: 'Internal Reset due to Assert Storm Threshold being exceeded.',
                                    3: 'NVC WCD has marked corrupted sector dirty.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Internal Reset'},
                                5: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Transceiver Mode Changed to SE'},
                                6: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Transceiver Mode Changed to LVD'},
                                7: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'IT Nexus Loss'},
                                8: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Write Log Dump data to disk fail'},
                                9: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Write Log Dump Entry information fail'},
                                10: {0: 'No Specific FRU code.',
                                     'L1': 'Unit Attention',
                                     'L2': 'Reserved disc space is full'},
                                11: {0: 'No Specific FRU code.',
                                     'L1': 'Unit Attention',
                                     'L2': 'SDBP test service contained an error, examine status packet(s) for details'},
                                12: {0: 'No Specific FRU code.',
                                     'L1': 'Unit Attention',
                                     'L2': 'SDBP incoming buffer overflow (incoming packet too big)'},
                                205: {0: 'No Specific FRU code.',
                                      'L1': 'Unit Attention',
                                      'L2': 'Flashing LED occurred. (Cold reset)'},
                                206: {0: 'No Specific FRU code.',
                                      'L1': 'Unit Attention',
                                      'L2': 'Flashing LED occurred. (Warm reset)'}},
                           42: {1: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Mode Parameters Changed'},
                                2: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Log Parameters Changed'},
                                3: {0: 'Reservations preempted.',
                                    1: 'Reservations preempted. (Clear service action)',
                                    'L1': 'Unit Attention',
                                    'L2': 'Reservations Preempted'},
                                4: {0: 'Reservations released.',
                                    1: 'Reservations released. (Registration with reg key = 0)',
                                    2: 'Reservations Released. (Preempt service action)',
                                    3: 'Reservations Released. (Release service action)',
                                    'L1': 'Unit Attention',
                                    'L2': 'Reservations Released'},
                                5: {0: 'Registrations preempted.',
                                    1: 'Registrations preempted 01.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Registrations Preempted'},
                                9: {0: 'Capacity data changed',
                                    'L1': 'Unit Attention',
                                    'L2': 'Capacity data changed'}},
                           47: {0: {0: 'No Specific FRU code.',
                                    1: 'Target is already unlocked by another initiator',
                                    'L1': 'Unit Attention',
                                    'L2': 'Tagged Commands Cleared By another Initiator'},
                                1: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Commands cleared due to power-off warning'}},
                           63: {0: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Target operating conditions have changed'},
                                1: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Download Occurred'},
                                2: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Changed Operating Definition'},
                                3: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Inquiry Data Has Changed'},
                                5: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Device Identifier Changed'},
                                145: {1: 'WWN in ETFLOG does not match CAPM WWN.',
                                      'L1': 'Unit Attention',
                                      'L2': 'WWN in ETFLOG does not match CAPM WWN'}},
                           91: {0: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'Log Exception'}},
                           92: {0: {0: 'No Specific FRU code.',
                                    'L1': 'Unit Attention',
                                    'L2': 'RPL Status Change'}},
                           93: {0: {0: 'No Specific FRU code.',
                                    4: 'Reallocation.',
                                    5: 'Reallocation AST table.',
                                    6: 'Reallocation DDT table.',
                                    16: 'Hardware failure.',
                                    20: 'Excessive reassigns.',
                                    32: 'General failure.',
                                    40: 'Flash Life Left Failure',
                                    49: 'Head failure.',
                                    50: 'Recovered data error rate.',
                                    51: 'Recovered data error rate during early life (Xiotech SSD Only)',
                                    55: 'Recovered TA.',
                                    56: 'Hard TA event.',
                                    64: 'Head flip.',
                                    65: 'SSE (servo seek error).',
                                    66: 'Write fault.',
                                    67: 'Seek failure.',
                                    69: 'Track following errors (Hit66).',
                                    74: 'Seek performance failure.',
                                    91: 'Spinup failure.',
                                    107: 'Flash spinup failure',
                                    117: 'Multiply threshold config.',
                                    239: 'No control table on disk.(OBSOLETE)',
                                    'L1': 'Unit Attention',
                                    'L2': 'Failure Prediction Threshold Exceeded'},
                                255: {0: 'No Specific FRU code.',
                                      'L1': 'Unit Attention',
                                      'L2': 'False Failure Prediction Threshold Exceeded'}},
                           128: {144: {0: 'No Specific FRU code.',
                                       'L1': 'Unit Attention',
                                       'L2': 'Host Read Redundancy Check Error'},
                                 145: {0: 'No Specific FRU code.',
                                       'L1': 'Unit Attention',
                                       'L2': 'Host Write Redundancy Check Error'},
                                 146: {0: 'No Specific FRU code.',
                                       'L1': 'Unit Attention',
                                       'L2': 'Disc Read Redundancy Check Error'},
                                 147: {0: 'No Specific FRU code.',
                                       'L1': 'Unit Attention',
                                       'L2': 'Disc Write Redundancy Check Error'},
                                 148: {0: 'No Specific FRU code.',
                                       'L1': 'Unit Attention',
                                       'L2': 'Xor Redundancy Check Error'}},
                           180: {0: {0: 'No Specific FRU code.',
                                     'L1': 'Unit Attention',
                                     'L2': 'Unreported Deferred Errors have been logged on log page 34h'}},
                           255: {0: {0: 'No Specific FRU code.',
                                     'L1': 'Unit Attention',
                                     'L2': 'FC SEL_ID changed'}}},
                       7: {3: {0: {0: 'No Specific FRU code.',
                                   'L1': 'Data Protect',
                                   'L2': 'Peripheral device write fault'}},
                           32: {2: {0: 'No Access Rights. Attempt to access security locked LBA.',
                                    1: 'No Access Rights. Sanitize command pre-condition not met.',
                                    'L1': 'Data Protect',
                                    'L2': 'Access Denied'}},
                           39: {0: {0: 'Write protected.',
                                    1: 'Write protected during ready check.',
                                    2: 'Write protected media backend',
                                    3: 'Write protected due to PIC failure',
                                    4: 'Write protected due to reserved blocks exceeded threshold',
                                    5: 'Write protected due to defects per die exceeded threshold',
                                    6: 'Write protected due to retired blocks exceeded threshold',
                                    7: 'Write protected due to write failure (Nand error)',
                                    8: 'Write Protected due to Auto status command write failure',
                                    9: 'Write protected due to spare blocks exceeded threshold',
                                    10: 'Write protected due to GCU for system data is not available',
                                    11: 'Write protected due to defect table read error during restore',
                                    12: 'Zone is read only ( SMR Only)',
                                    13: 'Write protected due to defect block list overflow',
                                    'L1': 'Data Protect',
                                    'L2': 'Write Protected'}}},
                       9: {8: {0: {0: 'No Specific FRU code.',
                                   'L1': 'Firmware Error Constants',
                                   'L2': 'Logical Unit Communication Failure'}},
                           128: {0: {0: 'General firmware error.',
                                     1: 'Firmware error during CDB check.',
                                     2: 'Error recovering log tables.',
                                     3: 'UDS has no packet to send back, but it neglected to make this clear to the SDBP layer (E1 command).',
                                     4: 'Processed unsupported UDS session (UDS should have rejected).',
                                     5: 'Packet retrieval allowed by upper levels of UDS when no UDS trace retrieval was active.',
                                     6: 'UDS trace retrieval is trying to include an empty finished frame trace file.',
                                     7: 'Unexpected content split across UDS retrieved trace packets.',
                                     8: 'UDS trace retrieval sense data without FAIL status or vice versa.',
                                     9: 'UDS trace retrieval:  Internal confusion over amount of trace.',
                                     10: 'UDS \xe2\x80\x93 retrieval failure.',
                                     11: '\xe2\x80\x9cDummy Cache\xe2\x80\x9d file request failed',
                                     12: 'Failed to fix up system parameters during head depop.',
                                     13: 'Write same command call to XOR data copy failed.',
                                     14: 'Write same command call to create cache segment from buffer failed to allocate sufficient space.',
                                     15: 'Request to read servo data timed out.',
                                     16: 'Loading Disc Firmware failed',
                                     17: 'Disc Firmware Signature Verification Failed.',
                                     18: 'WriteAndOrVerifyCmd Xor copy failure',
                                     19: 'WriteAndOrVerifyCmd request cache segment allocation failed',
                                     20: 'Write Buffer detected an Unknown Error.',
                                     21: 'Write Buffer detected a Corrupted Data Error.',
                                     22: 'Write Buffer detected a Permanent Error.',
                                     23: 'Write Buffer detected a Service Delivery/Target Failure Error.',
                                     24: 'Phy Log Retrieval Failed',
                                     25: 'failed to issue command to auxiliary processor',
                                     26: "failed memory allocation on auxiliary processor's heap",
                                     27: 'Loading PIC Firmware Failed',
                                     28: 'Loading FME Firmware Failed',
                                     29: 'LDevFormat() failed to allocate sufficient space.',
                                     30: 'LDevFormat() call to XorCopyData() failed',
                                     45: 'InitSurface() failed to allocate sufficient space.',
                                     46: 'InitSurface () call to XorCopyData() failed',
                                     61: 'Log Page cache not allocated',
                                     62: 'Log Page cache not allocated',
                                     63: 'Log Page not enough cache available',
                                     64: 'SMART Frame Index corrupted on disc and not recoverable via f/w.',
                                     65: 'NVC Disabled by error condition',
                                     66: 'Log data save to disc failed',
                                     67: 'Wait for phy after reset too long',
                                     68: 'H2SAT unexpected condition occurred',
                                     70: 'Memory allocation failed during Reassign Blocks command',
                                     74: 'Diag command attempted to execute missing or incompatible Overlay code',
                                     75: 'Wait for phy after reset too long',
                                     80: 'Flash management access failed',
                                     128: 'Invalid prime request.',
                                     129: 'Request cannot be processed.',
                                     130: 'Unsupported fault.',
                                     131: 'Track address fault.',
                                     132: 'Servo-Disc synchronization error.',
                                     133: 'End of transfer reached prematurely.',
                                     134: 'Unexpected sequencer timeout error.',
                                     135: 'Unknown error in the NRZ Transfer logic.',
                                     136: 'Unknown EDAC error.',
                                     137: "Unknown Media Manager's error.",
                                     138: 'Invalid disc halt.',
                                     139: 'Unexpected sequencer halt condition.',
                                     140: 'Unexpected sequencer halt.',
                                     141: 'Unknown sequencer timeout error.',
                                     142: 'Unknown NRZ interface error.',
                                     143: 'Disc was soft halted.',
                                     144: 'Fault condition error.',
                                     145: 'Correct Buffer Completion timeout error.',
                                     146: 'Maximum write passes of a zone exceeded. (Changed to 04/1C00/93)',
                                     147: 'Maximum certify passes of a zone exceeded. (Changed to 04/1C00/94)',
                                     148: 'Recovered seek error encountered.',
                                     149: 'Forced to enter error recovery before error is encountered.',
                                     150: 'Recovered servo command error.',
                                     151: 'Partial reallocation performed.',
                                     152: 'Transfer was truncated.',
                                     153: 'Transfer completed.',
                                     154: 'Track transfer completed.',
                                     155: 'Scan Defect - Allocated scan time exceeded.',
                                     156: 'IOEDIOECC parity error on write',
                                     157: 'IOECC parity error on write',
                                     158: 'IOECC error (correctable)',
                                     159: 'EDAC stopped for FW erasure',
                                     160: 'Reallocate Block - Input was not marked for pending reallocation.',
                                     161: 'Input LBA was not found in the RST.',
                                     162: 'Input PBA was not found in the resident DST 1',
                                     163: 'Input PBA was not found in the resident DST 2',
                                     164: 'DST Mgr - Skootch failed 1',
                                     165: 'DST Mgr - Skootch failed 2',
                                     166: 'DST Mgr - Insert failed',
                                     167: 'Correction Buffer over-run, under-run, or EDC error',
                                     168: 'Form FIFO over/under run error',
                                     169: 'Failed to transition to active power',
                                     170: 'Input LBA was marked as logged',
                                     171: 'Format - Max number of servo flaws per track exceeded in servo coast',
                                     172: 'Format - Write servo unsafe errors when the track already has multiple flaws',
                                     173: "Formatter's parity RAM progress is not in sync with transfer.",
                                     174: 'Disc Xfr - Conflict of R/W request resource.',
                                     175: 'Conflict of R/W resource during write attempt of super block data.',
                                     176: "Formatter's parity RAM progress not in sync with alt transfer.",
                                     177: "Formatter's parity RAM is invalid for parity sectors update.",
                                     178: "Formatter's parity RAM is invalid for parity sectors alt-update.",
                                     179: 'Parity secs read of expected reallocated sectors not reallocated.',
                                     180: 'Parity sectors write of expected reallocated sectors not reallocated.',
                                     181: 'PVT not showing all super blocks valid on successful format.',
                                     182: 'Sector Data Regen - Restart of transfer is required.',
                                     183: 'Sector Data Regen - Restart of transfer failed on a reallocated blk.',
                                     184: 'Sector Data Regeneration - Restart of transfer failed.',
                                     185: 'Format - Dirty super blk on nedia not reported in PVT.',
                                     186: 'Super Block Read - No user sectors available.',
                                     187: 'Full R/W reallocation code support is not available.',
                                     188: 'Full R/W reallocation code support is not available.',
                                     189: 'Full R/W reallocation code support is not available.',
                                     190: 'Super Block Read - Recovered Data using SuperC Block.',
                                     191: 'ATIC DERPR Retry - Recovered Data using DERP ATIC retry.',
                                     192: 'Unexpected Servo Response - Retry count equals zero for a non-PZT request',
                                     193: 'Recovered Data using Intermediate Super Parity',
                                     194: 'Overlapping Defect Blocks',
                                     195: 'Missing Defect Blocks',
                                     196: 'Input LBA was not protected from torn write',
                                     197: 'Formatter transfer did not halt properly',
                                     198: 'Servo DC calibration failed',
                                     199: 'Invalid band LBA range encountered during dirty super blocks update attempt',
                                     200: 'Detect Formatter FIFO pointer synchronization loss error',
                                     201: 'Detect Formatter FIFO pointer synchronization loss error',
                                     202: 'Full reallocation support not available',
                                     203: 'Invalid block for unmark DART pending reallocation',
                                     204: 'Mark pending DART skipped',
                                     205: 'Outercode recovery scratchpad buffer size insufficient',
                                     206: 'Recovered data using firmware Iterative OuterCode(IOC)',
                                     207: 'AFH Heater DAC is <= 0',
                                     208: 'AFH Calculated Heater DAC value is >= max allocated memory for heater DAC',
                                     209: 'AFH DAC value supplied to the DAC actuation path is > -b/2a',
                                     210: 'ATS2 Seek Error occurred along with Track address fault error',
                                     211: 'Buffer overflow detected in Legacy mode read.',
                                     'L1': 'Firmware Error Constants',
                                     'L2': 'General Firmware Error Qualifier'},
                                 82: {'L1': 'Firmware Error Constants',
                                      'L2': 'General Firmware Error Qualifier',
                                      'fru': ['Error byte returned by PMC code for various DITS APIs']}}},
                       11: {0: {30: {0: 'Invoke within a TCG session',
                                     'L1': 'Aborted Command',
                                     'L2': 'Sanitize command aborted'}},
                            8: {0: {0: 'No Specific FRU code.',
                                    'L1': 'Aborted Command',
                                    'L2': 'Logical unit communication failure'},
                                1: {0: 'Logical Unit Communication Time-Out.',
                                    128: 'Servo command timed out.',
                                    129: 'Seek operation timed out.',
                                    130: 'Seek operation has exceeded the recovery time limit.',
                                    'L1': 'Aborted Command',
                                    'L2': 'Logical Unit Communication Time-Out'}},
                            12: {16: {0: 'Write command requires initial access to a mapped out head.',
                                      1: 'Write command attempted a seek to access a mapped out head.',
                                      2: 'Write command encountered an alternate block mapped to a bad head.',
                                      'L1': 'Aborted Command',
                                      'L2': 'Command aborted due to multiple write errors'}},
                            14: {1: {0: 'No Specific FRU code.',
                                     'L1': 'Aborted Command',
                                     'L2': 'SAS abort command (10.2.3)'},
                                 2: {0: 'No Specific FRU code.',
                                     'L1': 'Aborted Command',
                                     'L2': 'SAS abort command (9.2.6.3.3.8.1)'}},
                            16: {1: {0: 'No specific FRU code.',
                                     'L1': 'Aborted Command',
                                     'L2': 'Logical Block guard check failed'},
                                 2: {0: 'No specific FRU code.',
                                     'L1': 'Aborted Command',
                                     'L2': 'Logical Block application tag check failed'},
                                 3: {0: 'No specific FRU code.',
                                     'L1': 'Aborted Command',
                                     'L2': 'Logical Block reference tag check failed'}},
                            17: {3: {1: 'Read command requires initial access to a mapped out head.',
                                     2: 'Read command attempted a seek to access a mapped out head.',
                                     3: 'Read command encountered an alternate block mapped to a bad head.',
                                     4: 'Prefetch command for FIM has detected a failed LBA in the range',
                                     'L1': 'Aborted Command',
                                     'L2': 'Command aborted due to multiple read errors'}},
                            63: {15: {0: 'Echo buffer overwritten.',
                                      1: 'Read buffer echo error.',
                                      'L1': 'Aborted Command',
                                      'L2': 'Echo buffer overwritten'}},
                            67: {0: {0: 'No Specific FRU code.',
                                     'L1': 'Aborted Command',
                                     'L2': 'Message reject error'}},
                            68: {0: {0: 'Timed out while waiting in queue.',
                                     1: 'Timed out during error recovery.',
                                     2: 'Timed out while executing command.',
                                     'L1': 'Aborted Command',
                                     'L2': 'Overall Command Timeout'},
                                 246: {0: 'FRU 00 \xe2\x80\x93 09 stand for error on head 0 \xe2\x80\x93 9.',
                                       'L1': 'Aborted Command',
                                       'L2': 'Data Integrity Check Failed during write'}},
                            69: {0: {0: 'Select/Reselection Failure.',
                                     1: 'Select/Reselection time out.',
                                     'L1': 'Aborted Command',
                                     'L2': 'Select/Reselection Failure'}},
                            71: {0: {0: 'SCSI Parity Error in message phase.',
                                     1: 'SCSI parity error in command phase.',
                                     3: 'SCSI parity error in data phase.',
                                     8: 'SCSI CRC error in data phase.',
                                     'L1': 'Aborted Command',
                                     'L2': 'SCSI Parity Error'},
                                 3: {1: 'SCSI CRC error in command IU.',
                                     8: 'SCSI CRC error in data (out) IU.',
                                     'L1': 'Aborted Command',
                                     'L2': 'Information Unit CRC Error'},
                                 128: {9: 'No Specific FRU code.',
                                       'L1': 'Aborted Command',
                                       'L2': 'Fibre Channel Sequence Error'}},
                            72: {0: {1: 'Initiator detected error message received, selection path.',
                                     2: 'Initiator detected error message received, reselection path.',
                                     'L1': 'Aborted Command',
                                     'L2': 'Initiator Detected Error Message Received'}},
                            73: {0: {1: 'Invalid message received, selection path.',
                                     2: 'Invalid message received, reselection path.',
                                     'L1': 'Aborted Command',
                                     'L2': 'Invalid message received'}},
                            75: {0: {0: 'No Specific FRU code.',
                                     2: 'Invalid source ID.',
                                     3: 'Invalid destination ID.',
                                     4: 'Running Disparity error.',
                                     5: 'Invalid CRC.',
                                     16: 'Invalid data frame during transfer and no xfr done.',
                                     'L1': 'Aborted Command',
                                     'L2': 'DATA phase error'},
                                 1: {0: 'No Specific FRU code.',
                                     'L1': 'Aborted Command',
                                     'L2': 'Invalid transfer tag'},
                                 2: {0: 'No Specific FRU code.',
                                     'L1': 'Aborted Command',
                                     'L2': 'Too much write data'},
                                 3: {0: 'No Specific FRU code.',
                                     1: 'Link reset occurred during transfer.',
                                     5: 'Break received in the middle of a data frame',
                                     6: 'Break received but unbalanced ACK/NAKs',
                                     'L1': 'Aborted Command',
                                     'L2': 'ACK NAK Timeout'},
                                 4: {0: 'No Specific FRU code.',
                                     'L1': 'Aborted Command',
                                     'L2': 'NAK received'},
                                 5: {0: 'No Specific FRU code.',
                                     'L1': 'Aborted Command',
                                     'L2': 'Data offset error'},
                                 6: {0: 'No Specific FRU code.',
                                     1: 'Break Response Timeout',
                                     2: 'Done Response Timeout',
                                     3: 'SAS Credit Timeout',
                                     'L1': 'Aborted Command',
                                     'L2': 'Initiator Response Timeout'},
                                 32: {0: 'No Specific FRU code.',
                                      'L1': 'Aborted Command',
                                      'L2': 'SAS Credit Timeout'},
                                 255: {0: 'Drive type mismatch \xe2\x80\x93 download firmware',
                                       'L1': 'Aborted Command',
                                       'L2': 'Check FW Tags'}},
                            78: {0: {0: 'No Specific FRU code.',
                                     1: 'SAS - Overlapped Commands Attempted.',
                                     2: 'UDS trigger on non-queued cmd with outstanding NCQ cmds',
                                     'L1': 'Aborted Command',
                                     'L2': 'Overlapped Commands Attempted'}},
                            85: {4: {0: 'Cannot reassign if Media cache is not empty',
                                     'L1': 'Aborted Command',
                                     'L2': 'Insufficient Resources'}},
                            116: {8: {5: 'No Specific FRU code.',
                                      'L1': 'Illegal Request',
                                      'L2': 'Invalid Field Parameter \xe2\x80\x93 Check Sum'}},
                            128: {0: {0: 'No Specific FRU code.',
                                      'L1': 'Aborted Command',
                                      'L2': 'Logical Unit Access Not Authorized.'}},
                            129: {0: {0: 'No Specific FRU code.',
                                      'L1': 'Aborted Command',
                                      'L2': 'LA Check Error.'},
                                  1: {0: 'No Specific FRU code.',
                                      'L1': 'Aborted Command',
                                      'L2': 'Unexpected Boot FW execution delay.'},
                                  2: {0: 'No Specific FRU code.',
                                      'L1': 'Aborted Command',
                                      'L2': 'Unexpected Customer FW execution delay.'},
                                  3: {0: 'No Specific FRU code.',
                                      'L1': 'Aborted Command',
                                      'L2': 'Unexpected FW download delay.'}},
                            251: {1: {0: 'No Specific FRU code.',
                                      'L1': 'Aborted Command',
                                      'L2': 'Command maps to a head marked as bad'}}},
                       13: {33: {0: {0: 'No Specific FRU code.',
                                     1: 'UDS Trace retrieval complete.',
                                     'L1': 'Volume Overflow Constants',
                                     'L2': 'Logical Block Address Out of Range'}}},
                       14: {29: {0: {0: 'Miscompare During Verify Operation.',
                                     128: 'Data miscompare error.',
                                     129: 'Data miscompare error at erasure correction.',
                                     'L1': 'Data Miscompare',
                                     'L2': 'Miscompare During Verify Operation'}}}}
# of servo flaws per track exceeded (path #1).', # of servo flaws per track exceeded (path #2).', #1).', #2).', #1).',