Task #636
closedbad management of HK_LFR_AHB_CORRECTABLE
0%
Description
Paul a dit:
J'avais voulu faire un truc sioux mais ça n'a pas de sens, le compteur pourrait rester bloquer à 255. Je fais la correction.
1- le compteur ahb_correctable est mal géré
{
housekeeping_packet.hk_lfr_ahb_correctable = ahb_correctable;
}
if (ahb_correctable > 255)
{
housekeeping_packet.hk_lfr_ahb_correctable = 255;
}
else
2- Ce compteur n'est pas comptabilisé dans HK_LFR_LE_CNT ou HK_LFR_ME_CNT.
Contexte du test
---------------------
FSW 3.0.0.22
VHDL 1.1.89
EM sans Timegen
SocExplorerEngine.getSocExplorer: Version = 0.6.2, Branch = default, Changeset = 819d0376d481
StarDundee
Related issues
Updated by Veronique bouzid almost 9 years ago
- Related to Bug #560: activer la vérification du cache du Leon3FT added
Updated by paul leroy over 8 years ago
Modification effectuée dans fsw >= 3.1.0.1
Le compteur est correctement géré.
La valeur hk_lfr_ahb_correctable est ajoutée dans le compteur récapitulatif hk_lfr_le_cnt (criticité L pour les erreur ahb_correctable, d'après le document RPW-SYS-MEB-###-FMC-000207-LES_Issue3_Rev1_FDIR_Analysis)
Le compteur générale des erreur L est mis à jour dans la fonction:
void hk_lfr_le_me_he_update()
Updated by paul leroy over 8 years ago
- Status changed from New to Feedback
- Assignee changed from paul leroy to Veronique bouzid
Updated by Veronique bouzid over 8 years ago
- Assignee changed from Veronique bouzid to paul leroy
Comme je n'ai pas de moyen pour tester ce champ, peux-tu documenter le point redmine avec les lignes de codes que tu as corrigé.
Updated by paul leroy over 8 years ago
Dans la fonction:
void hk_lfr_le_me_he_update()
On trouve les lignes:
//update the low severity error counter hk_lfr_le_cnt = current_hk_lfr_le_cnt + housekeeping_packet.hk_lfr_dpu_spw_parity + housekeeping_packet.hk_lfr_dpu_spw_disconnect + housekeeping_packet.hk_lfr_dpu_spw_escape + housekeeping_packet.hk_lfr_dpu_spw_credit + housekeeping_packet.hk_lfr_dpu_spw_write_sync + housekeeping_packet.hk_lfr_timecode_erroneous + housekeeping_packet.hk_lfr_timecode_missing + housekeeping_packet.hk_lfr_timecode_invalid + housekeeping_packet.hk_lfr_time_timecode_it + housekeeping_packet.hk_lfr_time_not_synchro + housekeeping_packet.hk_lfr_time_timecode_ctr + housekeeping_packet.hk_lfr_ahb_correctable;
Puis:
// LE housekeeping_packet.hk_lfr_le_cnt[0] = (unsigned char) ((hk_lfr_le_cnt & 0xff00) >> 8); housekeeping_packet.hk_lfr_le_cnt[1] = (unsigned char) (hk_lfr_le_cnt & 0x00ff);
Le compteur individuel est géré dans la fonction suivante:
void set_hk_lfr_ahb_correctable() // CRITICITY L { /** This function builds the error counter hk_lfr_ahb_correctable using the statistics provided * by the Cache Control Register (ASI 2, offset 0) and in the Register Protection Control Register (ASR16) on the * detected errors in the cache, in the integer unit and in the floating point unit. * * @param void * * @return void * * All errors are summed to set the value of the hk_lfr_ahb_correctable counter. * */ unsigned int ahb_correctable; unsigned int instructionErrorCounter; unsigned int dataErrorCounter; unsigned int fprfErrorCounter; unsigned int iurfErrorCounter; CCR_getInstructionAndDataErrorCounters( &instructionErrorCounter, &dataErrorCounter); ASR16_get_FPRF_IURF_ErrorCounters( &fprfErrorCounter, &iurfErrorCounter); ahb_correctable = instructionErrorCounter + dataErrorCounter + fprfErrorCounter + iurfErrorCounter + housekeeping_packet.hk_lfr_ahb_correctable; housekeeping_packet.hk_lfr_ahb_correctable = (unsigned char) (ahb_correctable & 0xff); // [1111 1111] }
Updated by paul leroy over 8 years ago
- Assignee changed from paul leroy to Veronique bouzid
Updated by Veronique bouzid almost 8 years ago
- Category set to SRS
- Priority changed from Urgent to Normal
Documenter dans la SVS que ce champ n peut etre validé sauf en inspection !!!!
Updated by Veronique bouzid over 6 years ago
- Status changed from Feedback to Closed