aboutsummaryrefslogtreecommitdiff
path: root/include/arch
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2023-08-04 20:50:41 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2023-08-04 20:50:41 +0300
commite16f5f81dfb2e97a554ec19b941ec05a7942fd2d (patch)
tree46f0609b5be009d4d1057fa02ece4461732941e0 /include/arch
parent5f30284181fcfe5b16dfb94d4fba9a9ed4a2dc6a (diff)
downloadkmi-e16f5f81dfb2e97a554ec19b941ec05a7942fd2d.tar.gz
kmi-e16f5f81dfb2e97a554ec19b941ec05a7942fd2d.zip
add initial smp bringup
Diffstat (limited to 'include/arch')
-rw-r--r--include/arch/smp.h22
-rw-r--r--include/arch/tcb.h10
2 files changed, 32 insertions, 0 deletions
diff --git a/include/arch/smp.h b/include/arch/smp.h
new file mode 100644
index 0000000..16c29d5
--- /dev/null
+++ b/include/arch/smp.h
@@ -0,0 +1,22 @@
+/* SPDX-License-Identifier: copyleft-next-0.3.1 */
+/* Copyright 2023, Kim Kuparinen < kimi.h.kuparinen@gmail.com > */
+
+/**
+ * @file smp.h
+ * Arch specific multicore bringup stuff.
+ */
+
+#ifndef KMI_ARCH_SMP_H
+#define KMI_ARCH_SMP_H
+
+#include <kmi/vmem.h>
+
+/**
+ * Bring up other cores in system.
+ *
+ * @param b Direct + kernel mappin virtual memory to use.
+ * @param fdt Flattened device tree.
+ */
+void smp_bringup(struct vmem *b, void *fdt);
+
+#endif /* KMI_ARCH_SMP_H */
diff --git a/include/arch/tcb.h b/include/arch/tcb.h
index 0687954..f4c80c6 100644
--- a/include/arch/tcb.h
+++ b/include/arch/tcb.h
@@ -15,4 +15,14 @@
#include "../../arch/riscv32/include/tcb.h"
#endif
+/**
+ * Force store tcb \p t in arch-specific way.
+ * cpu_assign() is allowed to assume there's always a valid tcb
+ * set, so during init we have to force set a tcb before cpu_assign() can be
+ * used.
+ *
+ * @param t tcb to set.
+ */
+void tcb_assign(struct tcb *t);
+
#endif /* KMI_ARCH_TCB_H */