O cálculo realizado dentro do código de firmware confiável do braço é baseado em um valor fixo presumido de 400 MHz para o cs_at_clk. No entanto, desenvolvedores podem configurar o cs_at_clk domínio a ser fornecido por uma frequência de clock diferente de 400 MHz. Se isso for feito, então você pode ver atrasos inesperados no Linux. Este problema só afeta projetos onde a cs_at_clk está configurada como sendo algo diferente de 400 Mhz.
As seguintes famílias de dispositivos são afetadas:
- Stratix® 10 SoC FPGAs
- FPGAs soC Agilex™ 7
- FPGAs SoC Agilex™ 5
- Dispositivos eASIC™ N5X
Para remover os atrasos inesperados no Linux, altere o seguinte parâmetro no arquivo socfpga_plat_def.h para corresponder à frequência do cs_at_clk definida no HPS IP (consulte "Frequência do clock CoreSight" em clocks HPS e redefina -> clocks internos e clocks de saída)
#define PLAT_SYS_COUNTER_FREQ_IN_TICKS (400000000)
FPGA SoC Stratix® 10: https://github.com/altera-opensource/arm-trusted-firmware/blob/socfpga_v2.10.0/plat/intel/soc/stratix10/include/socfpga_plat_def.h#L99C9-L99C40
FPGA SoC Agilex™ 7: https://github.com/altera-opensource/arm-trusted-firmware/blob/socfpga_v2.10.0/plat/intel/soc/agilex/include/socfpga_plat_def.h#L100
FPGA SoC Agilex™ 5: https://github.com/altera-opensource/arm-trusted-firmware/blob/socfpga_v2.10.0/plat/intel/soc/agilex5/include/socfpga_plat_def.h#L30
Dispositivo 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
Esse problema está programado para ser corrigido em uma versão futura do firmware de confiança do braço.