[rtems commit] bsp/qoriq: Add portal clear functions

Sebastian Huber sebh at rtems.org
Mon May 9 11:07:08 UTC 2016


Module:    rtems
Branch:    master
Commit:    f57f513d9bb0f0b92e37c0d7f73cbb751f046df2
Changeset: http://git.rtems.org/rtems/commit/?id=f57f513d9bb0f0b92e37c0d7f73cbb751f046df2

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Mon May  9 13:04:39 2016 +0200

bsp/qoriq: Add portal clear functions

---

 c/src/lib/libbsp/powerpc/qoriq/Makefile.am      |  1 +
 c/src/lib/libbsp/powerpc/qoriq/include/qoriq.h  |  3 ++
 c/src/lib/libbsp/powerpc/qoriq/startup/portal.c | 43 +++++++++++++++++++++++++
 3 files changed, 47 insertions(+)

diff --git a/c/src/lib/libbsp/powerpc/qoriq/Makefile.am b/c/src/lib/libbsp/powerpc/qoriq/Makefile.am
index 25def4f..f834aa8 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/Makefile.am
+++ b/c/src/lib/libbsp/powerpc/qoriq/Makefile.am
@@ -75,6 +75,7 @@ libbsp_a_SOURCES += \
 	startup/mmu.c \
 	startup/mmu-tlb1.S \
 	startup/mmu-config.c \
+	startup/portal.c \
 	startup/restart.S \
 	startup/bsppredriverhook.c \
 	startup/bspstart.c \
diff --git a/c/src/lib/libbsp/powerpc/qoriq/include/qoriq.h b/c/src/lib/libbsp/powerpc/qoriq/include/qoriq.h
index 28228cb..456a3b5 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/include/qoriq.h
+++ b/c/src/lib/libbsp/powerpc/qoriq/include/qoriq.h
@@ -527,6 +527,9 @@ extern volatile qoriq_ccsr qoriq;
 #if QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT)
 extern uint8_t qoriq_bman_portal[2][16777216];
 extern uint8_t qoriq_qman_portal[2][16777216];
+
+void qoriq_clear_ce_portal(void *base, size_t size);
+void qoriq_clear_ci_portal(void *base, size_t size);
 #endif
 
 static inline void qoriq_reset_qman_and_bman(void)
diff --git a/c/src/lib/libbsp/powerpc/qoriq/startup/portal.c b/c/src/lib/libbsp/powerpc/qoriq/startup/portal.c
new file mode 100644
index 0000000..f20eaf4
--- /dev/null
+++ b/c/src/lib/libbsp/powerpc/qoriq/startup/portal.c
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2016 embedded brains GmbH.  All rights reserved.
+ *
+ *  embedded brains GmbH
+ *  Dornierstr. 4
+ *  82178 Puchheim
+ *  Germany
+ *  <rtems at embedded-brains.de>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.org/license/LICENSE.
+ */
+
+#include <bsp/qoriq.h>
+
+#if QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT)
+
+#include <libcpu/powerpc-utility.h>
+
+void qoriq_clear_ce_portal(void *base, size_t size)
+{
+  size_t offset;
+
+  for (offset = 0; offset < size; offset += 64) {
+    ppc_data_cache_block_clear_to_zero_2(base, offset);
+    ppc_data_cache_block_flush_2(base, offset);
+  }
+}
+
+void qoriq_clear_ci_portal(void *base, size_t size)
+{
+  uint32_t zero;
+  size_t offset;
+
+  zero = 0;
+
+  for (offset = 0; offset < size; offset += 4) {
+    ppc_write_word(zero, (char *) base + offset);
+  }
+}
+
+#endif



More information about the vc mailing list