デフォルトでは、UBOOT では SP タイマーがリセットから外れませんでした。UBOOT または Linux ユーザースペースの S10 SoC SP タイマー・レジスターへのアクセスに失敗します (EL0:non-privileged
実行)。
UBOOT の変更:
/u-boot/arch/arm/mach-socfpga/spl_s10.c (70 行目の後にコードを追加)
socfpga_per_reset (SOCFPGA_RESET (SPTIMER0)、0)
socfpga_per_reset (SOCFPGA_RESET (SPTIMER1)、0);
/u-boot/arch/arm/mach-socfpga/include/mach/reset_manager_s10.h (105 行目の後にコードを追加)
#define RSTMGR_SPTIMER0 RSTMGR_DEFINE(2、6)
#define RSTMGR_SPTIMER1 RSTMGR_DEFINE(2、7)
その後、SP タイマーの読み書きが可能になります。
SOCFPGA_STRATIX10 # mw ffd24800 ffffffff;mw ffd21160 01010101;mw ffd21164 01010101;mw ffd21064 01010101;mw ffd21068 01010101
SOCFPGA_STRATIX10#
stratix10swvp ログイン: root
最終ログイン: ttyS0 で 2017年6月24日(土曜日) 05:27:20 UTC
root@stratix10swvp:~# devmem2 0xffc03000 w 0xa5a5a5a5
root@stratix10swvp:~# devmem2 0xffc03000
アドレス0xFFC03000の値 (0xffff8021c000): 0xA5A5A5A5