Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/evbarm Build fixes and make BP startup detection co...
details: https://anonhg.NetBSD.org/src/rev/92c6bcf2e626
branches: trunk
changeset: 978654:92c6bcf2e626
user: skrll <skrll%NetBSD.org@localhost>
date: Sat Nov 28 14:33:56 2020 +0000
description:
Build fixes and make BP startup detection consistent
diffstat:
sys/arch/evbarm/bcm53xx/bcm53xx_machdep.c | 35 +++++++++++++-----------------
sys/arch/evbarm/gumstix/gumstix_machdep.c | 25 +++++++---------------
sys/arch/evbarm/zynq/zynq_machdep.c | 32 ++++++++++-----------------
3 files changed, 35 insertions(+), 57 deletions(-)
diffs (155 lines):
diff -r c58160ac14f7 -r 92c6bcf2e626 sys/arch/evbarm/bcm53xx/bcm53xx_machdep.c
--- a/sys/arch/evbarm/bcm53xx/bcm53xx_machdep.c Sat Nov 28 14:29:31 2020 +0000
+++ b/sys/arch/evbarm/bcm53xx/bcm53xx_machdep.c Sat Nov 28 14:33:56 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: bcm53xx_machdep.c,v 1.24 2020/10/30 18:54:37 skrll Exp $ */
+/* $NetBSD: bcm53xx_machdep.c,v 1.25 2020/11/28 14:33:56 skrll Exp $ */
/*-
* Copyright (c) 2012 The NetBSD Foundation, Inc.
@@ -33,7 +33,7 @@
#define IDM_PRIVATE
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: bcm53xx_machdep.c,v 1.24 2020/10/30 18:54:37 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bcm53xx_machdep.c,v 1.25 2020/11/28 14:33:56 skrll Exp $");
#include "opt_arm_debug.h"
#include "opt_console.h"
@@ -245,25 +245,20 @@
dsb(sy);
__asm __volatile("sev" ::: "memory");
- for (int loop = 0; loop < 16; loop++) {
- VPRINTF("%u hatched %#x\n", loop, arm_cpu_hatched);
- if (arm_cpu_hatched == __BITS(arm_cpu_max - 1, 1))
- break;
- int timo = 1500000;
- while (arm_cpu_hatched != __BITS(arm_cpu_max - 1, 1))
- if (--timo == 0)
- break;
- }
- for (size_t i = 1; i < arm_cpu_max; i++) {
- if (cpu_hatched_p(i)) {)
- printf("%s: warning: cpu%zu failed to hatch\n",
- __func__, i);
- }
- }
+ /* Bitmask of CPUs (non-BP) to start */
+ for (u_int cpuindex = 1; cpuindex < arm_cpu_max; cpuindex++) {
+ u_int i ;
+ for (i = 1500000; i > 0; i--) {
+ if (cpu_hatched_p(cpuindex))
+ break;
+ }
- VPRINTF(" (%u cpu%s, hatched %#x)",
- arm_cpu_max, arm_cpu_max ? "s" : "",
- arm_cpu_hatched);
+ if (i == 0) {
+ ret++;
+ aprint_error("cpu%d: WARNING: AP failed to start\n",
+ cpuindex);
+ }
+ }
#endif /* MULTIPROCESSOR */
}
diff -r c58160ac14f7 -r 92c6bcf2e626 sys/arch/evbarm/gumstix/gumstix_machdep.c
--- a/sys/arch/evbarm/gumstix/gumstix_machdep.c Sat Nov 28 14:29:31 2020 +0000
+++ b/sys/arch/evbarm/gumstix/gumstix_machdep.c Sat Nov 28 14:33:56 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: gumstix_machdep.c,v 1.69 2020/10/30 18:54:37 skrll Exp $ */
+/* $NetBSD: gumstix_machdep.c,v 1.70 2020/11/28 14:33:56 skrll Exp $ */
/*
* Copyright (C) 2005, 2006, 2007 WIDE Project and SOUM Corporation.
* All rights reserved.
@@ -540,25 +540,16 @@
dsb(sy);
__asm __volatile("sev" ::: "memory");
- for (int loop = 0; loop < 16; loop++) {
- VPRINTF("%u hatched %#x\n", loop, arm_cpu_hatched);
- if (arm_cpu_hatched == __BITS(arm_cpu_max - 1, 1))
+ u_int i;
+ for (i = 0x10000000; i > 0; i--) {
+ if (cpu_hatched_p(cpuindex))
break;
- int timo = 1500000;
- while (arm_cpu_hatched != __BITS(arm_cpu_max - 1, 1))
- if (--timo == 0)
- break;
- }
- for (size_t i = 1; i < arm_cpu_max; i++) {
- if (cpu_hatched_p(i)) {
- printf("%s: warning: cpu%zu failed to hatch\n",
- __func__, i);
- }
}
- VPRINTF(" (%u cpu%s, hatched %#x)",
- arm_cpu_max, arm_cpu_max ? "s" : "",
- arm_cpu_hatched);
+ if (i == 0) {
+ aprint_error("cpu%d: WARNING: AP failed to start\n",
+ cpuindex);
+ }
#endif
}
diff -r c58160ac14f7 -r 92c6bcf2e626 sys/arch/evbarm/zynq/zynq_machdep.c
--- a/sys/arch/evbarm/zynq/zynq_machdep.c Sat Nov 28 14:29:31 2020 +0000
+++ b/sys/arch/evbarm/zynq/zynq_machdep.c Sat Nov 28 14:33:56 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: zynq_machdep.c,v 1.14 2020/10/30 18:54:37 skrll Exp $ */
+/* $NetBSD: zynq_machdep.c,v 1.15 2020/11/28 14:33:57 skrll Exp $ */
/*-
* Copyright (c) 2012 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -29,7 +29,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: zynq_machdep.c,v 1.14 2020/10/30 18:54:37 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: zynq_machdep.c,v 1.15 2020/11/28 14:33:57 skrll Exp $");
#include "opt_evbarm_boardtype.h"
#include "opt_arm_debug.h"
@@ -223,27 +223,19 @@
dsb(sy);
__asm __volatile("sev" ::: "memory");
-
- for (int loop = 0; loop < 16; loop++) {
- VPRINTF("%u hatched %#x\n", loop, arm_cpu_hatched);
- if (arm_cpu_hatched == __BITS(arm_cpu_max - 1, 1))
+ u_int cpuindex = 1;
+ u_int i;
+ for (i = 0x10000000; i > 0; i--) {
+ if (cpu_hatched_p(cpuindex))
break;
- int timo = 1500000;
- while (arm_cpu_hatched != __BITS(arm_cpu_max - 1, 1))
- if (--timo == 0)
- break;
- }
- for (size_t i = 1; i < arm_cpu_max; i++) {
- if (cpu_hatched_p(i)) {
- ret++;
- printf("%s: warning: cpu%zu failed to hatch\n",
- __func__, i);
- }
}
- VPRINTF(" (%u cpu%s, hatched %#x)",
- arm_cpu_max, arm_cpu_max ? "s" : "",
- arm_cpu_hatched);
+ if (i == 0) {
+ ret++;
+ aprint_error("cpu%d: WARNING: AP failed to start\n",
+ cpuindex);
+ }
+
#endif /* MULTIPROCESSOR */
return ret;
}
Home |
Main Index |
Thread Index |
Old Index