[Skiboot] [PATCH 11/13] chiptod: Remove fallback to master CPU
Benjamin Herrenschmidt
benh at kernel.crashing.org
Wed Feb 18 14:57:27 AEDT 2015
If the chiptod is not in the device-tree, we must fail, the old
OPAL mode isn't supported anymore
Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
---
hw/chiptod.c | 36 +++---------------------------------
include/chiptod.h | 3 +--
2 files changed, 4 insertions(+), 35 deletions(-)
diff --git a/hw/chiptod.c b/hw/chiptod.c
index 1e3448b..804e2c8 100644
--- a/hw/chiptod.c
+++ b/hw/chiptod.c
@@ -732,7 +732,7 @@ static void chiptod_print_tb(void *data __unused)
this_cpu()->pir, mfspr(SPR_TBRL));
}
-static bool chiptod_probe(u32 master_cpu)
+static bool chiptod_probe(void)
{
struct dt_node *np;
@@ -757,36 +757,6 @@ static bool chiptod_probe(u32 master_cpu)
}
- /*
- * If ChipTOD isn't found in the device-tree, we fallback
- * based on the master CPU passed by OPAL boot since the
- * FSP strips off the ChipTOD info from the HDAT when booting
- * in OPAL mode :-(
- */
- if (chiptod_primary < 0) {
- struct cpu_thread *t = find_cpu_by_pir(master_cpu);
- prlog(PR_WARNING,
- "CHIPTOD: Cannot find a primary TOD in device-tree\n");
- prlog(PR_WARNING, "CHIPTOD: Falling back to Master CPU: %d\n",
- master_cpu);
- if (!t) {
- prerror("CHIPTOD: NOT FOUND !\n");
- return false;
- }
- chiptod_primary = t->chip_id;
- switch(proc_gen) {
- case proc_gen_p7:
- chiptod_type = chiptod_p7;
- return true;
- case proc_gen_p8:
- chiptod_type = chiptod_p8;
- return true;
- default:
- break;
- }
- prerror("CHIPTOD: Unknown fallback CPU type !\n");
- return false;
- }
if (chiptod_type == chiptod_unknown) {
prerror("CHIPTOD: Unknown TOD type !\n");
return false;
@@ -795,7 +765,7 @@ static bool chiptod_probe(u32 master_cpu)
return true;
}
-void chiptod_init(u32 master_cpu)
+void chiptod_init(void)
{
struct cpu_thread *cpu0, *cpu;
bool sres;
@@ -806,7 +776,7 @@ void chiptod_init(u32 master_cpu)
op_display(OP_LOG, OP_MOD_CHIPTOD, 0);
- if (!chiptod_probe(master_cpu)) {
+ if (!chiptod_probe()) {
prerror("CHIPTOD: Failed ChipTOD detection !\n");
op_display(OP_FATAL, OP_MOD_CHIPTOD, 0);
abort();
diff --git a/include/chiptod.h b/include/chiptod.h
index 2117fa8..e0490b6 100644
--- a/include/chiptod.h
+++ b/include/chiptod.h
@@ -21,8 +21,7 @@
* time base across the fabric.
*/
-extern void chiptod_init(u32 master_cpu);
-
+extern void chiptod_init(void);
extern bool chiptod_wakeup_resync(void);
extern int chiptod_recover_tb_errors(void);
--
2.1.0
More information about the Skiboot
mailing list