aboutsummaryrefslogtreecommitdiff
path: root/include/sbi/sbi_tlb.h
diff options
context:
space:
mode:
authorAnup Patel <anup.patel@wdc.com>2019-05-24 07:58:05 +0530
committerAnup Patel <anup@brainfault.org>2019-05-24 08:22:47 +0530
commit95b7480ab4b438cf545afae200b40012e83f1dda (patch)
tree44e30d69d4222833e36d3092005ac0a09b45f391 /include/sbi/sbi_tlb.h
parent2dfed32c463eef80a0eea7108117ce18dc80c527 (diff)
lib: Factor-out TLB management from IPI management
This patch factor-out TLB management from IPI management to separate sources sbi_tlb.c and sbi_tlb.h. Signed-off-by: Anup Patel <anup.patel@wdc.com> Reviewed-by: Atish Patra <atish.patra@wdc.com>
Diffstat (limited to 'include/sbi/sbi_tlb.h')
-rw-r--r--include/sbi/sbi_tlb.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/include/sbi/sbi_tlb.h b/include/sbi/sbi_tlb.h
new file mode 100644
index 0000000..f3d93d4
--- /dev/null
+++ b/include/sbi/sbi_tlb.h
@@ -0,0 +1,48 @@
+/*
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright (c) 2019 Western Digital Corporation or its affiliates.
+ *
+ * Authors:
+ * Atish Patra <atish.patra@wdc.com>
+ * Anup Patel <anup.patel@wdc.com>
+ */
+
+#ifndef __SBI_TLB_H__
+#define __SBI_TLB_H__
+
+#include <sbi/sbi_types.h>
+
+/* clang-format off */
+
+#define SBI_TLB_FLUSH_ALL ((unsigned long)-1)
+#define SBI_TLB_FLUSH_MAX_SIZE (1UL << 30)
+
+/* clang-format on */
+
+#define SBI_TLB_FIFO_NUM_ENTRIES 4
+
+enum sbi_tlb_info_types {
+ SBI_TLB_FLUSH_VMA,
+ SBI_TLB_FLUSH_VMA_ASID,
+ SBI_TLB_FLUSH_VMA_VMID
+};
+
+struct sbi_scratch;
+
+struct sbi_tlb_info {
+ unsigned long start;
+ unsigned long size;
+ unsigned long asid;
+ unsigned long type;
+};
+
+#define SBI_TLB_INFO_SIZE sizeof(struct sbi_tlb_info)
+
+int sbi_tlb_fifo_update(struct sbi_scratch *scratch, u32 event, void *data);
+
+void sbi_tlb_fifo_process(struct sbi_scratch *scratch, u32 event);
+
+int sbi_tlb_fifo_init(struct sbi_scratch *scratch, bool cold_boot);
+
+#endif