File indexing completed on 2025-05-11 08:23:39
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042 #include <stdint.h>
0043 #include <stddef.h>
0044 #include <bsp/tms570.h>
0045 #include <rtems.h>
0046 #include <bsp/tms570_selftest.h>
0047 #include <bsp/tms570_selftest_parity.h>
0048
0049
0050 const tms570_selftest_par_desc_t
0051 tms570_selftest_par_het1_desc = {
0052 .esm_prim_grp = 1,
0053 .esm_prim_chan = 7,
0054 .esm_sec_grp = 0,
0055 .esm_sec_chan = 0,
0056 .fail_code = HET1PARITYCHECK_FAIL1,
0057 .ram_loc = &NHET1RAMLOC,
0058 .par_loc = &NHET1RAMPARLOC,
0059 .par_xor = 0x00000001,
0060 .par_cr_reg = &TMS570_NHET1.PCR,
0061 .par_cr_test = TMS570_NHET_PCR_TEST,
0062 .par_st_reg = NULL,
0063 .par_st_clear = 0,
0064 .partest_fnc = tms570_selftest_par_check_std,
0065 .fnc_data = NULL
0066 };
0067
0068
0069 const tms570_selftest_par_desc_t
0070 tms570_selftest_par_htu1_desc = {
0071 .esm_prim_grp = 1,
0072 .esm_prim_chan = 8,
0073 .esm_sec_grp = 0,
0074 .esm_sec_chan = 0,
0075 .fail_code = HTU1PARITYCHECK_FAIL1,
0076 .ram_loc = &HTU1RAMLOC,
0077 .par_loc = &HTU1PARLOC,
0078 .par_xor = 0x00000001,
0079 .par_cr_reg = &TMS570_HTU1.PCR,
0080 .par_cr_test = TMS570_HTU_PCR_TEST,
0081 .par_st_reg = &TMS570_HTU1.PAR,
0082 .par_st_clear = TMS570_HTU_PAR_PEFT,
0083 .partest_fnc = tms570_selftest_par_check_std,
0084 .fnc_data = NULL
0085 };
0086
0087
0088 const tms570_selftest_par_desc_t
0089 tms570_selftest_par_het2_desc = {
0090 .esm_prim_grp = 1,
0091 .esm_prim_chan = 7,
0092 .esm_sec_grp = 1,
0093 .esm_sec_chan = 34,
0094 .fail_code = HET2PARITYCHECK_FAIL1,
0095 .ram_loc = &NHET2RAMLOC,
0096 .par_loc = &NHET2RAMPARLOC,
0097 .par_xor = 0x00000001,
0098 .par_cr_reg = &TMS570_NHET2.PCR,
0099 .par_cr_test = TMS570_NHET_PCR_TEST,
0100 .par_st_reg = NULL,
0101 .par_st_clear = 0,
0102 .partest_fnc = tms570_selftest_par_check_std,
0103 .fnc_data = NULL
0104 };
0105
0106
0107 const tms570_selftest_par_desc_t
0108 tms570_selftest_par_htu2_desc = {
0109 .esm_prim_grp = 1,
0110 .esm_prim_chan = 8,
0111 .esm_sec_grp = 0,
0112 .esm_sec_chan = 0,
0113 .fail_code = HTU2PARITYCHECK_FAIL1,
0114 .ram_loc = &HTU2RAMLOC,
0115 .par_loc = &HTU2PARLOC,
0116 .par_xor = 0x00000001,
0117 .par_cr_reg = &TMS570_HTU2.PCR,
0118 .par_cr_test = TMS570_HTU_PCR_TEST,
0119 .par_st_reg = &TMS570_HTU2.PAR,
0120 .par_st_clear = TMS570_HTU_PAR_PEFT,
0121 .partest_fnc = tms570_selftest_par_check_std,
0122 .fnc_data = NULL
0123 };
0124
0125
0126 const tms570_selftest_par_desc_t
0127 tms570_selftest_par_adc1_desc = {
0128 .esm_prim_grp = 1,
0129 .esm_prim_chan = 19,
0130 .esm_sec_grp = 0,
0131 .esm_sec_chan = 0,
0132 .fail_code = ADC1PARITYCHECK_FAIL1,
0133 .ram_loc = &adcRAM1,
0134 .par_loc = &adcPARRAM1,
0135 .par_xor = 0xffffffff,
0136 .par_cr_reg = &TMS570_ADC1.PARCR,
0137 .par_cr_test = TMS570_ADC_PARCR_TEST,
0138 .par_st_reg = NULL,
0139 .par_st_clear = 0,
0140 .partest_fnc = tms570_selftest_par_check_std,
0141 .fnc_data = NULL
0142 };
0143
0144
0145 const tms570_selftest_par_desc_t
0146 tms570_selftest_par_adc2_desc = {
0147 .esm_prim_grp = 1,
0148 .esm_prim_chan = 1,
0149 .esm_sec_grp = 0,
0150 .esm_sec_chan = 0,
0151 .fail_code = ADC2PARITYCHECK_FAIL1,
0152 .ram_loc = &adcRAM2,
0153 .par_loc = &adcPARRAM2,
0154 .par_xor = 0xffffffff,
0155 .par_cr_reg = &TMS570_ADC2.PARCR,
0156 .par_cr_test = TMS570_ADC_PARCR_TEST,
0157 .par_st_reg = NULL,
0158 .par_st_clear = 0,
0159 .partest_fnc = tms570_selftest_par_check_std,
0160 .fnc_data = NULL
0161 };
0162
0163
0164 const tms570_selftest_par_desc_t
0165 tms570_selftest_par_can1_desc = {
0166 .esm_prim_grp = 1,
0167 .esm_prim_chan = 21,
0168 .esm_sec_grp = 0,
0169 .esm_sec_chan = 0,
0170 .fail_code = CAN1PARITYCHECK_FAIL1,
0171 .ram_loc = &canRAM1,
0172 .par_loc = &canPARRAM1,
0173 .par_xor = 0x00001000,
0174 .par_cr_reg = NULL,
0175 .par_cr_test = 0,
0176 .par_st_reg = NULL,
0177 .par_st_clear = 0,
0178 .partest_fnc = tms570_selftest_par_check_can,
0179 .fnc_data = &TMS570_DCAN1
0180 };
0181
0182
0183 const tms570_selftest_par_desc_t
0184 tms570_selftest_par_can2_desc = {
0185 .esm_prim_grp = 1,
0186 .esm_prim_chan = 23,
0187 .esm_sec_grp = 0,
0188 .esm_sec_chan = 0,
0189 .fail_code = CAN2PARITYCHECK_FAIL1,
0190 .ram_loc = &canRAM2,
0191 .par_loc = &canPARRAM2,
0192 .par_xor = 0x00001000,
0193 .par_cr_reg = NULL,
0194 .par_cr_test = 0,
0195 .par_st_reg = NULL,
0196 .par_st_clear = 0,
0197 .partest_fnc = tms570_selftest_par_check_can,
0198 .fnc_data = &TMS570_DCAN2
0199 };
0200
0201
0202 const tms570_selftest_par_desc_t
0203 tms570_selftest_par_can3_desc = {
0204 .esm_prim_grp = 1,
0205 .esm_prim_chan = 22,
0206 .esm_sec_grp = 0,
0207 .esm_sec_chan = 0,
0208 .fail_code = CAN3PARITYCHECK_FAIL1,
0209 .ram_loc = &canRAM3,
0210 .par_loc = &canPARRAM3,
0211 .par_xor = 0x00001000,
0212 .par_cr_reg = NULL,
0213 .par_cr_test = 0,
0214 .par_st_reg = NULL,
0215 .par_st_clear = 0,
0216 .partest_fnc = tms570_selftest_par_check_can,
0217 .fnc_data = &TMS570_DCAN3
0218 };
0219
0220
0221 const tms570_selftest_par_desc_t
0222 tms570_selftest_par_vim_desc = {
0223 .esm_prim_grp = 1,
0224 .esm_prim_chan = 15,
0225 .esm_sec_grp = 0,
0226 .esm_sec_chan = 0,
0227 .fail_code = VIMPARITYCHECK_FAIL1,
0228 .ram_loc = &VIMRAMLOC,
0229 .par_loc = &VIMRAMPARLOC,
0230 .par_xor = 0x00000001,
0231 .par_cr_reg = &TMS570_VIM.PARCTL,
0232 .par_cr_test = TMS570_VIM_PARCTL_TEST,
0233 .par_st_reg = &TMS570_VIM.PARFLG,
0234 .par_st_clear = TMS570_VIM_PARFLG_PARFLG,
0235 .partest_fnc = tms570_selftest_par_check_std,
0236 .fnc_data = NULL
0237 };
0238
0239
0240 const tms570_selftest_par_desc_t
0241 tms570_selftest_par_dma_desc = {
0242 .esm_prim_grp = 1,
0243 .esm_prim_chan = 3,
0244 .esm_sec_grp = 0,
0245 .esm_sec_chan = 0,
0246 .fail_code = DMAPARITYCHECK_FAIL1,
0247 .ram_loc = &DMARAMLOC,
0248 .par_loc = &DMARAMPARLOC,
0249 .par_xor = 0x00000001,
0250 .par_cr_reg = &TMS570_DMA.DMAPCR,
0251 .par_cr_test = TMS570_DMA_DMAPCR_TEST,
0252 .par_st_reg = &TMS570_DMA.DMAPAR,
0253 .par_st_clear = TMS570_DMA_DMAPAR_EDFLAG,
0254 .partest_fnc = tms570_selftest_par_check_std,
0255 .fnc_data = NULL
0256 };
0257
0258
0259 const tms570_selftest_par_desc_t
0260 tms570_selftest_par_spi1_desc = {
0261 .esm_prim_grp = 1,
0262 .esm_prim_chan = 17,
0263 .esm_sec_grp = 0,
0264 .esm_sec_chan = 0,
0265 .fail_code = MIBSPI1PARITYCHECK_FAIL1,
0266 .ram_loc = &MIBSPI1RAMLOC,
0267 .par_loc = &mibspiPARRAM1,
0268 .par_xor = 0x00000001,
0269 .par_cr_reg = NULL,
0270 .par_cr_test = 0,
0271 .par_st_reg = NULL,
0272 .par_st_clear = 0,
0273 .partest_fnc = tms570_selftest_par_check_mibspi,
0274 .fnc_data = &TMS570_SPI1
0275 };
0276
0277
0278 const tms570_selftest_par_desc_t
0279 tms570_selftest_par_spi3_desc = {
0280 .esm_prim_grp = 1,
0281 .esm_prim_chan = 18,
0282 .esm_sec_grp = 0,
0283 .esm_sec_chan = 0,
0284 .fail_code = MIBSPI3PARITYCHECK_FAIL1,
0285 .ram_loc = &MIBSPI3RAMLOC,
0286 .par_loc = &mibspiPARRAM3,
0287 .par_xor = 0x00000001,
0288 .par_cr_reg = NULL,
0289 .par_cr_test = 0,
0290 .par_st_reg = NULL,
0291 .par_st_clear = 0,
0292 .partest_fnc = tms570_selftest_par_check_mibspi,
0293 .fnc_data = &TMS570_SPI3
0294 };
0295
0296
0297 const tms570_selftest_par_desc_t
0298 tms570_selftest_par_spi5_desc = {
0299 .esm_prim_grp = 1,
0300 .esm_prim_chan = 24,
0301 .esm_sec_grp = 0,
0302 .esm_sec_chan = 0,
0303 .fail_code = MIBSPI5PARITYCHECK_FAIL1,
0304 .ram_loc = &MIBSPI5RAMLOC,
0305 .par_loc = &mibspiPARRAM5,
0306 .par_xor = 0x00000001,
0307 .par_cr_reg = NULL,
0308 .par_cr_test = 0,
0309 .par_st_reg = NULL,
0310 .par_st_clear = 0,
0311 .partest_fnc = tms570_selftest_par_check_mibspi,
0312 .fnc_data = &TMS570_SPI5
0313 };
0314
0315
0316
0317
0318
0319
0320
0321
0322
0323
0324 void tms570_selftest_par_run(
0325 const tms570_selftest_par_desc_t *
0326 const *desc_arr,
0327 int desc_cnt
0328 )
0329 {
0330 int i;
0331 const tms570_selftest_par_desc_t *desc;
0332
0333 for ( i = 0; i < desc_cnt; i++ ) {
0334 desc = desc_arr[ i ];
0335 desc->partest_fnc( desc );
0336 }
0337 }