Project

General

Profile

Task #636

bad management of HK_LFR_AHB_CORRECTABLE

Added by Veronique bouzid over 5 years ago. Updated about 3 years ago.

Status:
Closed
Priority:
Normal
Category:
SRS
Target version:
-
Start date:
26/02/2016
Due date:
% Done:

0%

Estimated time:
revision:
r0

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

Related to Bug #560: activer la vérification du cache du Leon3FTClosed2015-11-04

History

#1 Updated by Veronique bouzid over 5 years ago

  • Related to Bug #560: activer la vérification du cache du Leon3FT added

#2 Updated by Veronique bouzid over 5 years ago

  • Description updated (diff)

#3 Updated by paul leroy over 5 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()

#4 Updated by paul leroy over 5 years ago

  • Status changed from New to Feedback
  • Assignee changed from paul leroy to Veronique bouzid

#5 Updated by Veronique bouzid over 5 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é.

#6 Updated by paul leroy about 5 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]

}

#7 Updated by paul leroy about 5 years ago

  • Assignee changed from paul leroy to Veronique bouzid

#8 Updated by Veronique bouzid over 4 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 !!!!

#9 Updated by Veronique bouzid over 4 years ago

  • Tracker changed from Bug to Task

#10 Updated by Veronique bouzid about 3 years ago

  • Status changed from Feedback to Closed

Also available in: Atom PDF