Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch Provide and use cpu_mpidr_aff_read in psci_fdt_boot...
details: https://anonhg.NetBSD.org/src/rev/814485fa639b
branches: trunk
changeset: 363820:814485fa639b
user: skrll <skrll%NetBSD.org@localhost>
date: Sun Aug 12 17:21:35 2018 +0000
description:
Provide and use cpu_mpidr_aff_read in psci_fdt_bootstrap
diffstat:
sys/arch/aarch64/include/armreg.h | 16 +++++++++++++++-
sys/arch/arm/fdt/psci_fdt.c | 16 ++++------------
sys/arch/arm/include/armreg.h | 14 ++++++++++++--
3 files changed, 31 insertions(+), 15 deletions(-)
diffs (122 lines):
diff -r 693da1ca9dcf -r 814485fa639b sys/arch/aarch64/include/armreg.h
--- a/sys/arch/aarch64/include/armreg.h Sun Aug 12 17:16:18 2018 +0000
+++ b/sys/arch/aarch64/include/armreg.h Sun Aug 12 17:21:35 2018 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: armreg.h,v 1.17 2018/08/12 17:16:18 skrll Exp $ */
+/* $NetBSD: armreg.h,v 1.18 2018/08/12 17:21:35 skrll Exp $ */
/*-
* Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -1025,6 +1025,19 @@
#define icc_iar1_read reg_icc_iar1_el1_read
#define icc_eoi1r_write reg_icc_eoir1_el1_write
+#if defined(_KERNEL)
+
+/*
+ * CPU REGISTER ACCESS
+ */
+static __inline register_t
+cpu_mpidr_aff_read(void)
+{
+
+ return reg_mpidr_el1_read() &
+ (MPIDR_AFF3|MPIDR_AFF2|MPIDR_AFF1|MPIDR_AFF0);
+}
+
/*
* GENERIC TIMER REGISTER ACCESS
*/
@@ -1117,5 +1130,6 @@
return reg_cntv_cval_el0_read();
}
+#endif /* _KERNEL */
#endif /* _AARCH64_ARMREG_H_ */
diff -r 693da1ca9dcf -r 814485fa639b sys/arch/arm/fdt/psci_fdt.c
--- a/sys/arch/arm/fdt/psci_fdt.c Sun Aug 12 17:16:18 2018 +0000
+++ b/sys/arch/arm/fdt/psci_fdt.c Sun Aug 12 17:21:35 2018 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: psci_fdt.c,v 1.11 2018/08/10 22:34:36 jmcneill Exp $ */
+/* $NetBSD: psci_fdt.c,v 1.12 2018/08/12 17:21:36 skrll Exp $ */
/*-
* Copyright (c) 2017 Jared McNeill <jmcneill%invisible.ca@localhost>
@@ -29,7 +29,7 @@
#include "opt_multiprocessor.h"
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: psci_fdt.c,v 1.11 2018/08/10 22:34:36 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: psci_fdt.c,v 1.12 2018/08/12 17:21:36 skrll Exp $");
#include <sys/param.h>
#include <sys/bus.h>
@@ -154,14 +154,6 @@
}
#ifdef MULTIPROCESSOR
-static bus_addr_t psci_fdt_read_mpidr_aff(void)
-{
-#ifdef __aarch64__
- return reg_mpidr_el1_read() & (MPIDR_AFF3|MPIDR_AFF2|MPIDR_AFF1|MPIDR_AFF0);
-#else
- return armreg_mpidr_read() & (MPIDR_AFF2|MPIDR_AFF1|MPIDR_AFF0);
-#endif
-}
static register_t
psci_fdt_mpstart_pa(void)
@@ -181,7 +173,7 @@
{
#ifdef MULTIPROCESSOR
extern void cortex_mpstart(void);
- bus_addr_t mpidr, bp_mpidr;
+ uint64_t mpidr, bp_mpidr;
int child;
const int cpus = OF_finddevice("/cpus");
@@ -201,7 +193,7 @@
return;
/* MPIDR affinity levels of boot processor. */
- bp_mpidr = psci_fdt_read_mpidr_aff();
+ bp_mpidr = cpu_mpidr_aff_read();
/* Boot APs */
uint32_t started = 0;
diff -r 693da1ca9dcf -r 814485fa639b sys/arch/arm/include/armreg.h
--- a/sys/arch/arm/include/armreg.h Sun Aug 12 17:16:18 2018 +0000
+++ b/sys/arch/arm/include/armreg.h Sun Aug 12 17:21:35 2018 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: armreg.h,v 1.122 2018/07/15 23:46:57 jmcneill Exp $ */
+/* $NetBSD: armreg.h,v 1.123 2018/08/12 17:21:36 skrll Exp $ */
/*
* Copyright (c) 1998, 2001 Ben Harris
@@ -908,6 +908,15 @@
ARMREG_READ_INLINE(sheeva_xctrl, "p15,1,%0,c15,c1,0") /* Sheeva eXtra Control register */
ARMREG_WRITE_INLINE(sheeva_xctrl, "p15,1,%0,c15,c1,0") /* Sheeva eXtra Control register */
+#if defined(_KERNEL)
+
+static inline uint64_t
+cpu_mpidr_aff_read(void)
+{
+
+ return armreg_mpidr_read() & (MPIDR_AFF2|MPIDR_AFF1|MPIDR_AFF0);
+}
+
/*
* GENERIC TIMER register access
*/
@@ -1002,7 +1011,8 @@
return armreg_cntv_cval_read();
}
-#endif /* !__ASSEMBLER__ */
+#endif /* _KERNEL */
+#endif /* !__ASSEMBLER && !_RUMPKERNEL */
#elif defined(__aarch64__)
Home |
Main Index |
Thread Index |
Old Index