Index: sys/arm/arm/cpuinfo.c =================================================================== --- sys/arm/arm/cpuinfo.c +++ sys/arm/arm/cpuinfo.c @@ -43,6 +43,12 @@ .icache_line_mask = 31, }; +struct plat_cpuinfo plat_cpuinfo = +{ + /* Default configuration */ + .plat_actlr = 0, +}; + /* Read and parse CPU id scheme */ void cpuinfo_init(void) @@ -236,6 +242,9 @@ *actlr_set = (1 << 6) | (1 << 2) | (1 << 1) | (1 << 0); break; } + /* Add platform specific settings */ + *actlr_mask |= plat_cpuinfo.plat_actlr; + *actlr_set |= plat_cpuinfo.plat_actlr; return; } } Index: sys/arm/include/cpuinfo.h =================================================================== --- sys/arm/include/cpuinfo.h +++ sys/arm/include/cpuinfo.h @@ -121,7 +121,14 @@ int mp_ext; }; +/* Platform specific CPU/MMU settings */ +struct plat_cpuinfo { + /* aclr bits to set */ + uint32_t plat_actlr; +}; + extern struct cpuinfo cpuinfo; +extern struct plat_cpuinfo plat_cpuinfo; void cpuinfo_init(void); void cpuinfo_get_actlr_modifier(uint32_t *actlr_mask, uint32_t *actlr_set);