[rtems commit] bsps/powerpc: Add cache size functions
Sebastian Huber
sebh at rtems.org
Fri Jan 9 13:09:38 UTC 2015
Module: rtems
Branch: master
Commit: c32a128cb2753c5d22965ca0302a5c5c08704505
Changeset: http://git.rtems.org/rtems/commit/?id=c32a128cb2753c5d22965ca0302a5c5c08704505
Author: Sebastian Huber <sebastian.huber at embedded-brains.de>
Date: Mon Dec 22 11:33:13 2014 +0100
bsps/powerpc: Add cache size functions
---
c/src/lib/libcpu/powerpc/shared/src/cache_.h | 46 ++++++++++++++++++++++++++++
1 file changed, 46 insertions(+)
diff --git a/c/src/lib/libcpu/powerpc/shared/src/cache_.h b/c/src/lib/libcpu/powerpc/shared/src/cache_.h
index 4d335b6..1775894 100644
--- a/c/src/lib/libcpu/powerpc/shared/src/cache_.h
+++ b/c/src/lib/libcpu/powerpc/shared/src/cache_.h
@@ -25,6 +25,52 @@
#define CPU_INSTRUCTION_CACHE_ALIGNMENT PPC_CACHE_ALIGNMENT
#endif
+#define CPU_CACHE_SUPPORT_PROVIDES_CACHE_SIZE_FUNCTIONS
+
+static inline size_t _CPU_cache_get_data_cache_size(uint32_t level)
+{
+ switch (level) {
+ case 0:
+ /* Fall through */
+#ifdef PPC_CACHE_DATA_L3_SIZE
+ case 3:
+ return PPC_CACHE_DATA_L3_SIZE;
+#endif
+#ifdef PPC_CACHE_DATA_L2_SIZE
+ case 2:
+ return PPC_CACHE_DATA_L2_SIZE;
+#endif
+#ifdef PPC_CACHE_DATA_L1_SIZE
+ case 1:
+ return PPC_CACHE_DATA_L1_SIZE;
+#endif
+ default:
+ return 0;
+ }
+}
+
+static inline size_t _CPU_cache_get_instruction_cache_size(uint32_t level)
+{
+ switch (level) {
+ case 0:
+ /* Fall through */
+#ifdef PPC_CACHE_INSTRUCTION_L3_SIZE
+ case 3:
+ return PPC_CACHE_INSTRUCTION_L3_SIZE;
+#endif
+#ifdef PPC_CACHE_INSTRUCTION_L2_SIZE
+ case 2:
+ return PPC_CACHE_INSTRUCTION_L2_SIZE;
+#endif
+#ifdef PPC_CACHE_INSTRUCTION_L1_SIZE
+ case 1:
+ return PPC_CACHE_INSTRUCTION_L1_SIZE;
+#endif
+ default:
+ return 0;
+ }
+}
+
/*
* CACHE MANAGER: The following functions are CPU-specific.
* They provide the basic implementation for the rtems_* cache
More information about the vc
mailing list