diff options
Diffstat (limited to 'chip/mt_scp/rv32i_common/cache.c')
-rw-r--r-- | chip/mt_scp/rv32i_common/cache.c | 60 |
1 files changed, 27 insertions, 33 deletions
diff --git a/chip/mt_scp/rv32i_common/cache.c b/chip/mt_scp/rv32i_common/cache.c index 62147590fe..b04f28ebae 100644 --- a/chip/mt_scp/rv32i_common/cache.c +++ b/chip/mt_scp/rv32i_common/cache.c @@ -1,4 +1,4 @@ -/* Copyright 2020 The Chromium OS Authors. All rights reserved. +/* Copyright 2020 The ChromiumOS Authors * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ @@ -33,8 +33,9 @@ void cache_init(void) #pragma GCC unroll 16 for (i = 0; i < NR_MPU_ENTRIES; ++i) { if (mpu_entries[i].end_addr - mpu_entries[i].start_addr) { - write_csr(CSR_MPU_L(i), mpu_entries[i].start_addr | - mpu_entries[i].attribute); + write_csr(CSR_MPU_L(i), + mpu_entries[i].start_addr | + mpu_entries[i].attribute); write_csr(CSR_MPU_H(i), mpu_entries[i].end_addr); mpu_en |= BIT(i); } @@ -47,7 +48,7 @@ void cache_init(void) set_csr(CSR_MCTREN, CSR_MCTREN_MPU); /* fence */ - asm volatile ("fence.i" ::: "memory"); + asm volatile("fence.i" ::: "memory"); } #ifdef DEBUG @@ -56,15 +57,11 @@ void cache_init(void) * D for D-cache * C for control transfer instructions (branch, jump, ret, interrupt, ...) */ -static enum { - PMU_SELECT_I = 0, - PMU_SELECT_D, - PMU_SELECT_C -} pmu_select; +static enum { PMU_SELECT_I = 0, PMU_SELECT_D, PMU_SELECT_C } pmu_select; -int command_enable_pmu(int argc, char **argv) +int command_enable_pmu(int argc, const char **argv) { - static const char * const selectors[] = { + static const char *const selectors[] = { [PMU_SELECT_I] = "I", [PMU_SELECT_D] = "D", [PMU_SELECT_C] = "C", @@ -87,9 +84,8 @@ int command_enable_pmu(int argc, char **argv) /* disable all PMU */ clear_csr(CSR_PMU_MPMUCTR, - CSR_PMU_MPMUCTR_C | CSR_PMU_MPMUCTR_I | - CSR_PMU_MPMUCTR_H3 | CSR_PMU_MPMUCTR_H4 | - CSR_PMU_MPMUCTR_H5); + CSR_PMU_MPMUCTR_C | CSR_PMU_MPMUCTR_I | CSR_PMU_MPMUCTR_H3 | + CSR_PMU_MPMUCTR_H4 | CSR_PMU_MPMUCTR_H5); /* reset cycle count */ write_csr(CSR_PMU_MCYCLE, 0); @@ -138,45 +134,43 @@ int command_enable_pmu(int argc, char **argv) /* enable all PMU */ set_csr(CSR_PMU_MPMUCTR, - CSR_PMU_MPMUCTR_C | CSR_PMU_MPMUCTR_I | - CSR_PMU_MPMUCTR_H3 | CSR_PMU_MPMUCTR_H4 | - CSR_PMU_MPMUCTR_H5); + CSR_PMU_MPMUCTR_C | CSR_PMU_MPMUCTR_I | CSR_PMU_MPMUCTR_H3 | + CSR_PMU_MPMUCTR_H4 | CSR_PMU_MPMUCTR_H5); return EC_SUCCESS; } -DECLARE_SAFE_CONSOLE_COMMAND(enable_pmu, command_enable_pmu, - "[I | D | C]", "Enable PMU"); +DECLARE_SAFE_CONSOLE_COMMAND(enable_pmu, command_enable_pmu, "[I | D | C]", + "Enable PMU"); -int command_disable_pmu(int argc, char **argv) +int command_disable_pmu(int argc, const char **argv) { clear_csr(CSR_PMU_MPMUCTR, - CSR_PMU_MPMUCTR_C | CSR_PMU_MPMUCTR_I | - CSR_PMU_MPMUCTR_H3 | CSR_PMU_MPMUCTR_H4 | - CSR_PMU_MPMUCTR_H5); + CSR_PMU_MPMUCTR_C | CSR_PMU_MPMUCTR_I | CSR_PMU_MPMUCTR_H3 | + CSR_PMU_MPMUCTR_H4 | CSR_PMU_MPMUCTR_H5); return EC_SUCCESS; } -DECLARE_SAFE_CONSOLE_COMMAND(disable_pmu, command_disable_pmu, - NULL, "Disable PMU"); +DECLARE_SAFE_CONSOLE_COMMAND(disable_pmu, command_disable_pmu, NULL, + "Disable PMU"); -int command_show_pmu(int argc, char **argv) +int command_show_pmu(int argc, const char **argv) { uint64_t val3, val4, val5; uint32_t p; val3 = ((uint64_t)read_csr(CSR_PMU_MCYCLEH) << 32) | - read_csr(CSR_PMU_MCYCLE); + read_csr(CSR_PMU_MCYCLE); ccprintf("cycles: %lld\n", val3); val3 = ((uint64_t)read_csr(CSR_PMU_MINSTRETH) << 32) | - read_csr(CSR_PMU_MINSTRET); + read_csr(CSR_PMU_MINSTRET); ccprintf("retired instructions: %lld\n", val3); val3 = ((uint64_t)read_csr(CSR_PMU_MHPMCOUNTER3H) << 32) | - read_csr(CSR_PMU_MHPMCOUNTER3); + read_csr(CSR_PMU_MHPMCOUNTER3); val4 = ((uint64_t)read_csr(CSR_PMU_MHPMCOUNTER4H) << 32) | - read_csr(CSR_PMU_MHPMCOUNTER4); + read_csr(CSR_PMU_MHPMCOUNTER4); val5 = ((uint64_t)read_csr(CSR_PMU_MHPMCOUNTER5H) << 32) | - read_csr(CSR_PMU_MHPMCOUNTER5); + read_csr(CSR_PMU_MHPMCOUNTER5); if (val3) p = val4 * 10000 / val3; @@ -199,8 +193,8 @@ int command_show_pmu(int argc, char **argv) case PMU_SELECT_C: ccprintf("control transfer instruction:\n"); ccprintf(" total: %lld\n", val3); - ccprintf(" miss-predict: %lld (%d.%d%%)\n", - val4, p / 100, p % 100); + ccprintf(" miss-predict: %lld (%d.%d%%)\n", val4, p / 100, + p % 100); ccprintf("interrupts: %lld\n", val5); break; } |