Le calcul effectué dans le code arm-trusted-firmware est basé sur une valeur fixe supposée de 400 MHz pour le cs_at_clk. Toutefois, les concepteurs peuvent configurer le domaine cs_at_clk afin qu’il soit sourcé par une fréquence d’horloge autre que 400 MHz. Si cela est fait, alors vous pouvez voir des retards inattendus dans Linux. Ce problème affecte uniquement les conceptions dont le cs_at_clk est configuré pour autre chose que 400 MHz.
Les familles d’appareils suivantes sont concernées :
- Stratix® 10 SoC FPGAs
- SoC Agilex™ 7 FPGAs
- SoC Agilex™ 5 FPGAs
- Périphériques eASIC™ N5X
Pour supprimer les retards inattendus sous Linux, modifiez le paramètre suivant dans le fichier socfpga_plat_def.h afin qu’il corresponde à la fréquence de cs_at_clk définie dans l’IP HPS (voir « Fréquence d’horloge CoreSight » sous Horloges et réinitialisations HPS -> Horloges internes et horloges de sortie)
#define PLAT_SYS_COUNTER_FREQ_IN_TICKS (400000000)
Stratix® 10 SoC FPGA : https://github.com/altera-opensource/arm-trusted-firmware/blob/socfpga_v2.10.0/plat/intel/soc/stratix10/include/socfpga_plat_def.h#L99C9-L99C40
SoC Agilex™ 7 FPGA : https://github.com/altera-opensource/arm-trusted-firmware/blob/socfpga_v2.10.0/plat/intel/soc/agilex/include/socfpga_plat_def.h#L100
SoC Agilex™ 5 FPGA : https://github.com/altera-opensource/arm-trusted-firmware/blob/socfpga_v2.10.0/plat/intel/soc/agilex5/include/socfpga_plat_def.h#L30
Périphérique eASIC™ N5X : https://github.com/altera-opensource/arm-trusted-firmware/blob/socfpga_v2.10.0/plat/intel/soc/n5x/include/socfpga_plat_def.h#L99
Ce problème devrait être résolu dans une prochaine version de arm-trusted-firmware.