/**	npa_56x4_errcodes.h
 **
 ** Author: Ted Schmitz
 ** Date of original creation December 10, 2008
 **
 ** Rev	 Date    Initls	Details
 ** 1.0  12/10/08 TMS	Original creation
 **
 ** This file defines all the error stops and suplimental error stops used
 ** in the low-level NPA-5644 AMC board tests. 
 **
 **	Error codes are made up of two parts: 
 ** 1) The 16-bit error stop
 ** 2) The 16-bit supplimental error stop
 **
 **	There are many tests that share common verification code, therefore, 
 ** it is possible for different tests to fail with the same malfunction.  For 
 ** this reason each test uses a unique set of error codes called error stops 
 ** and each common test routine uses a separate set of error codes called 
 ** supplementary error stops.  By allowing each test to use a unique set of 
 ** error stops, we are guaranteeing that no error stops will ever have to 
 ** change even if test numbers change as tests are added, deleted, or
 ** rearrange.  Test numbers will then be used only to manage testing and 
 ** display current statistics.
 **
 **	If the supplementary error stop is zero the error stop portion of the
 ** error code describes the exact problem that caused the failure.  If the
 ** supplementary error stop is non-zero the error stop portion of the error 
 ** code describes the test that was underway when the malfunction was
 ** detected and the supplementary error stop portion then defines the exact 
 ** problem that caused the error to be displayed.  In either case the entire 
 ** 32-bit error code must be analyzed to fully understand what failed on the 
 ** board.  
 **
 **	Both parts of each error code are defined in this file in separate
 ** sections.  The first section defines the error stops.  The supplimental
 ** error stops are defined last.
 **
 ** 	As mentioned above, test numbers may change as tests are added,
 ** deleted, or rearrange, however, the 32-bit error codes will never change
 ** as described under the rules below.
 **
 ** 1 - When a new error code is required, the following format may be used
 **     to define the new error stop: ESnnnn.  nnnn is the actual value of
 **     the new error stop.  
 **     If a new supplemental error stop is defined, the following format
 **     may be used: SESnnnn. nnnn is the actual value of the new
 **     supplemental error stop.
 ** 2 - NEVER delete an old error stop or supplemental error stop!.  If an
 **     error stop is no longer needed is should be obsoleted by commenting
 **     it out of this code and adding a comment defining it as obsoleted.  
 **     Obsoleted error stops should never be used again.
 ** 3 - As described above, obsoleted error stops should never be used again!
 **     Once people get used to certain error codes, we do not want to be 
 **     changing them.  For this reason we never use an old error code for
 **     something new or re-assign error codes for any reason.
 ** 4 - ALWAYS PUT ALL ERROR CODES IN ONE HEADER FILE FOR EACH PLATFORM!!!!
 **     Never spread your error codes over more than one file.  This has
 **     the potential to have one error code assigned to more than one
 **     error stop. (This has actually happened once already).
 ** 5 - ALWAYS list error codes in numerical order in the header file!
 **     Even if the error code has an alias it should still be list in 
 **     order by its actual error code value not by its alias.  This way 
 **     you can quickly check to see if an error code is currently in use.
 **     This method also significantly reduces the human error when 
 **     looking for a value in a large list of candidates.
 **
 **/
/**
 **  All "error stops" are define here.
 **/
#define ES0030 0x0030 /* FPGA dual-port RAM data lines test failed */
#define ES0040 0x0040 /* FPGA dual-port RAM adrs lines test failed */
#define ES0050 0x0050 /* FPGA dual-port RAM cells test failed */

#define ES0060 0x0060 /* Unable to detect a DIMM in either socket */
#define ES0070 0x0070 /* boot PROM checksum verification failed */
#define ES0080 0x0080 /* DDR data lines test failed bits 31-0 */
#define ES0085 0x0085 /* DDR data lines test failed bits 63-32 */
#define ES0090 0x0090 /* DDR RAM address lines test failed - DR0 region */
#define ES0095 0x0095 /* DDR RAM address lines test failed - DR1 region */
#define ES0100 0x0100 /* DDR RAM address lines test failed - DR2 region */
#define ES0110 0x0110 /* DDR RAM Cells test failed (in relocation code area) */
#define ES0115 0x0115 /* DDR RAM Cells test failed (in DR0 area) */
#define ES0120 0x0120 /* DDR RAM Cells test failed (in DR2 area) */
#define ES0125 0x0125 /* DDR RAM Cells test failed (in DR1 area) */
#define ES0150 0x0150 /* During ECC test, ECC errors were detected when ECC
                         was disabled after writing data to test address. */
#define ES0160 0x0160 /* During ECC test, ECC errors were not detected after 
                         reading a location with known-bad ECC data. */
#define ES0130 0x0130 /* SDRAM cells test failed */
#define ES0170 0x0170 /* During ECC data lines test, the wrong address was 
                         captured in the "LMC_FADR" reg after forcing an
                         ECC failure. */
#define ES0180 0x0180 /* During ECC data lines test, data read did not match 
                         data written. */
#define ES0190 0x0190 /* During ECC Cells test, data read did not match 
                         data written. */
#define ES0200 0x0200 /* Detected an ECC failure during ECC Cells test. */
#define ES0210 0x0210 /* 16-bit test pattern did not read back correctly during
                         the SDRAM odd boundary access test */
#define ES0220 0x0220 /* 32-bit test pattern did not read back correctly during
                         the SDRAM odd boundary access test */
#define ES0230 0x0230 /* One of the pre-filled locations, which should not have 
                         changed during the SDRAM odd boundary access test,
                         has become corrupt */
#define ES0250 0x0250 /* Maxim MAX6658MSA temperature sensor did not respond
                         to a read during the i2c device acknowledge test. */
#define ES0260 0x0260 /* Profile SEEPROM did not respond to a read during the 
                         i2c device acknowledge test. */

#define ES1000 0x1000 /* problem retrieving data from SEEPROM during execution
                         of the "start_testing()" function. */
#define ES1000 0x1000 /* problem retrieving data from SEEPROM during execution
                         of the "start_testing()" function. */
#define ES1005 0x1005 /* problem storing data to SEEPROM during execution
                         of the "start_testing()" function. */
#define ES1010 0x1010 /* problem retrieving data from SEEPROM during execution
                         of the "disp_tests()" function. */
#define ES1020 0x1020 /* problem retrieving data from SEEPROM during execution
                         of the "disp_emode_only()" function. */
#define ES1030 0x1030 /* problem retrieving data from SEEPROM during execution
                         of the "disp_tmode_only()" function. */
#define ES1040 0x1040 /* problem retrieving data from SEEPROM during execution
                         of the "setup_subtest_groups()" function. */
#define ES1050 0x1050 /* problem retrieving data from SEEPROM during execution
                         of the "sel_des_subtest()" function. */
#define ES1060 0x1060 /* problem retrieving data from SEEPROM during execution
                         of the "test_menu()" function. */
#define ES1070 0x1070 /* problem writing data to SEEPROM during execution
                         of the "set_defaults()" function. */
#define ES1080 0x1080 /* problem writing new csum to SEEPROM during 
                         execution of the "set_defaults()" function. */
#define ES1082 0x1082 /* problem writing new csum to SEEPROM during 
                         execution of the "set_exec_count()" function. */
#define ES1084 0x1084 /* problem retrieving execution count from SEEPROM during
                         execution of the "external_start_testing()" function
                      */
#define ES1086 0x1086 /* problem retrieving error mode from SEEPROM during
                         execution of the "external_start_testing()" function
                      */
#define ES1090 0x1090 /* problem writing data to SEEPROM during execution
                         of the "set_error_mode()" function. */
#define ES1100 0x1100 /* problem generating new csum for SEEPROM during 
                         execution of the "set_error_mode()" function. */
#define ES1110 0x1110 /* problem writing data to SEEPROM during execution
                         of the "set_test_modes()" function. */
#define ES1120 0x1120 /* problem generating new csum for SEEPROM during 
                         execution of the "set_test_modes()" function. */
#define ES1130 0x1130 /* problem writing data to SEEPROM during execution
                         of the "setup_subtest_groups()" function. */
#define ES1140 0x1140 /* problem generating new csum for SEEPROM during 
                         execution of the "setup_subtest_groups()" function. */
#define ES1150 0x1150 /* problem writing data to SEEPROM during execution
                         of the "sel_des_subtest()" function. */
#define ES1160 0x1160 /* problem generating new csum for SEEPROM during 
                         execution of the "sel_des_subtest()" function. */
#define ES1170 0x1170 /* problem writing data to SEEPROM during execution
                         of the "clear_nv_stats()" function. */
#define ES1175 0x1175 /* data not reset to zero after "clear_nv_stats() */
#define ES1180 0x1180 /* problem generating new csum for SEEPROM during 
                         execution of the "clear_nv_stats()" function. */
#define ES1190 0x1190 /* problem retrieving data from SEEPROM during execution
                         of the "start_ll_phase2_post_code()" function. */
#define ES1195 0x1195 /* problem retrieving data from SEEPROM during execution
                         of the "start_ll_phase2_post_code()" function loc-B. */
#define ES1200 0x1200 /* problem retrieving data from SEEPROM during execution
                         of the "save_error_info_in_nv_storage()" function. */
#define ES1210 0x1210 /* problem retrieving data from SEEPROM during execution
                         of the "disp_non_volatile_failure_info()" function. */
#define ES1220 0x1220 /* problem writing data to SEEPROM during execution
                         of the "start_ll_phase2_post_code()" function #1. */
#define ES1225 0x1225 /* problem writing data to SEEPROM during execution
                         of the "start_ll_phase2_post_code()" function #2. */
#define ES1227 0x1227 /* problem writing data to SEEPROM during execution
                         of the "start_ll_phase2_post_code()" function #3. */
#define ES1228 0x1228 /* problem writing data to SEEPROM during execution
                         of the "start_ll_phase2_post_code()" function #5. */
#define ES1229 0x1229 /* problem writing data to SEEPROM during execution
                         of the "start_ll_phase2_post_code()" function #6. */
#define ES1230 0x1230 /* problem #1 generating new csum for SEEPROM during 
                         execution of the "start_ll_phase2_post_code()" 
                         function. */
#define ES1235 0x1235 /* problem #2 generating new csum for SEEPROM during 
                         execution of the "start_ll_phase2_post_code()" 
                         function. */
#define ES1237 0x1237 /* problem #3 generating new csum for SEEPROM during 
                         execution of the "start_ll_phase2_post_code()" 
                         function. */
#define ES1238 0x1238 /* problem #4 generating new csum for SEEPROM during 
                         execution of the "start_ll_phase2_post_code()" 
                         function. */
#define ES1239 0x1239 /* problem #7 generating new csum for SEEPROM during 
                         execution of the "start_ll_phase2_post_code()" 
                         function. */
#define ES1240 0x1240 /* problem writing data to SEEPROM during execution
                         of the "clear_diag_seeprom_space()" function. */
#define ES1250 0x1250 /* problem writing data to SEEPROM during execution
                         of the "save_error_info_in_nv_storage()" function. */
#define ES1260 0x1260 /* problem generating new csum for SEEPROM during 
                         execution of the "save_error_info_in_nv_storage()" 
                         function. */
#define ES1270 0x1270 /* problem writing data to i2c CPU Monitor device during
                         execution of the "clear_diag_seeprom_space()" 
                         function. */
#define ES1290 0x1290 /* problem retrieving data from SEEPROM during execution
                         of the "set_exec_count()" function. */
#define ES1300 0x1300 /* problem saving data in SEEPROM during execution
                         of the "set_exec_count()" function. */
#define ES1310 0x1310 /* problem generating new checksum for SEEPROM during
                         execution of the "save_loop_count()" function. */
#define ES1320 0x1320 /* problem reading/writing data from/to i2c CPU Monitor
                         device during execution of the "reset_unit()"
                         function. */
#define ES1330 0x1330 /* No problem detected.  This error code is used to test
                         the phase 1 error reporting logic. */
#define ES1340 0x1340 /* problem generating new checksum for SEEPROM during
                         execution of "save_total_fails_count()" function. */
#define ES1350 0x1350 /* problem retrieving data from SEEPROM during execution
                         of the "disp_stats()" function. */

#define ES1800 0x1800 /* problem retrieving data from SEEPROM during execution
                         of the "hl_spin_wheel()" function. */
#define ES1810 0x1810 /* problem retrieving data from SEEPROM during execution
                         of the "should_diags_be_executed()" function. */
#define ES1860 0x1860 /* problem retrieving data from SEEPROM during execution
                         of the "this_hw_is_available_c()" function. */
#define ES1870 0x1870 /* problem retrieving data from SEEPROM during execution
                         of the "get_prod_id()" function. */
#define ES1880 0x1880 /* problem retrieving data from SEEPROM during execution
                         of the "execute_phase1_tests()" function. */
#define ES2500 0x2500 /* No problem detected.  This error code is used to test
                         the phase 2 error reporting logic. */
#define ES2570 0x2570 /* problem reading or writing data to/from SEEPROM during
                         execution of the "jump_to_restart_vector()" function.*/
#define ES2600 0x2600 /* problem retrieving data from SEEPROM during execution
                         of the "execute_phase1_tests()" function. */
#define ES2610 0x2610 /* problem retrieving total failures from SEEPROM during
                         execution of the "save_error_info_in_nv_storage()" 
                         function. */
#define ES2620 0x2620 /* problem writing total failures to SEEPROM during
                         execution of the "save_error_info_in_nv_storage()" 
                         function. */
#define ES2630 0x2630 /* problem retrieving data from SEEPROM during execution
                         of the "check_diag_area()" function. */
#define ES2640 0x2640 /* problem writing data to SEEPROM during execution
                         of the "check_diag_area()" function. */
#define ES2650 0x2650 /* Persistent Memory data lines test failed */
#define ES2660 0x2660 /* Persistent Memory address lines test failed */
#define ES2670 0x2670 /* Persistent Memory Cells test failed */
#define ES2680 0x2680 /* problem writing data to SEEPROM during execution
                         of the "execute_phase1_tests()" function. */


/****************************************************************************
 **  All "supplemental error stops" are defined here.                      **
 ****************************************************************************/
#define SES0000	0x0000	/* No supl error stop available for this error code */
#define SES0010 0x0010  /* i2c device did not respond with an acknowledge when
                           selected or when last data byte was received or
                           transmitted. */
#define SES0020 0x0020  /* i2c SEEPROM device did not respond with an 
                           acknowledge when retrieving or sending data from/to
                           the device */
#define SES0030 0x0030  /* i2c device (other than the SEEPROM) did not respond
                           with an acknowledge when retrieving or sending data
                           from/to the device */

#define SES1000 0x1000  /* No propblem detected.  This supplimental error stop
                           is used to test the phase 2 error reporting logic.*/



