summaryrefslogtreecommitdiff
path: root/chip/mt_scp/rv32i_common/cache.c
diff options
context:
space:
mode:
Diffstat (limited to 'chip/mt_scp/rv32i_common/cache.c')
-rw-r--r--chip/mt_scp/rv32i_common/cache.c60
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;
}