Task #636
closed
bad management of HK_LFR_AHB_CORRECTABLE
Added by Veronique bouzid over 8 years ago.
Updated over 6 years ago.
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 to Bug #560: activer la vérification du cache du Leon3FT added
- Description updated (diff)
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()
- Status changed from New to Feedback
- Assignee changed from paul leroy to Veronique bouzid
- 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é.
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]
}
- Assignee changed from paul leroy to Veronique bouzid
- Category set to SRS
- Priority changed from Urgent to Normal
Documenter dans la SVS que ce champ n peut etre validé sauf en inspection !!!!
- Tracker changed from Bug to Task
- Status changed from Feedback to Closed
Also available in: Atom
PDF