Module Name: src
Committed By: rin
Date: Fri Mar 5 06:06:34 UTC 2021
Modified Files:
src/sys/arch/evbppc/conf: std.explora
src/sys/arch/evbppc/explora: consinit.c
src/sys/arch/powerpc/conf: files.powerpc
src/sys/arch/powerpc/ibm4xx: clock.c
Log Message:
For Explora 451, call calc_delayconst() before pckbc_cnattach(), which
depends on delay() and DELAY().
Unfortunately, proplib(9) API is not available for MD codes, that are
called before consinit() (since pool(9) is not initialized yet).
Therefore, hard-code CPU frequency to calc_delayconst() in case
"processor-frequency" is not initialized.
To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/evbppc/conf/std.explora
cvs rdiff -u -r1.9 -r1.10 src/sys/arch/evbppc/explora/consinit.c
cvs rdiff -u -r1.97 -r1.98 src/sys/arch/powerpc/conf/files.powerpc
cvs rdiff -u -r1.31 -r1.32 src/sys/arch/powerpc/ibm4xx/clock.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/evbppc/conf/std.explora
diff -u src/sys/arch/evbppc/conf/std.explora:1.5 src/sys/arch/evbppc/conf/std.explora:1.6
--- src/sys/arch/evbppc/conf/std.explora:1.5 Mon Jun 20 17:44:33 2011
+++ src/sys/arch/evbppc/conf/std.explora Fri Mar 5 06:06:34 2021
@@ -1,4 +1,4 @@
-# $NetBSD: std.explora,v 1.5 2011/06/20 17:44:33 matt Exp $
+# $NetBSD: std.explora,v 1.6 2021/03/05 06:06:34 rin Exp $
#
# Standard/required options for NetBSD/explora.
@@ -22,4 +22,6 @@ options PPC_INTR_IMPL="<powerpc/intr.h>
options INTSTK=8192
+options PPC_CPU_FREQ=66000000 # XXX hack for pckbc_cnattach()
+
include "arch/evbppc/conf/files.explora"
Index: src/sys/arch/evbppc/explora/consinit.c
diff -u src/sys/arch/evbppc/explora/consinit.c:1.9 src/sys/arch/evbppc/explora/consinit.c:1.10
--- src/sys/arch/evbppc/explora/consinit.c:1.9 Sat Oct 13 17:58:53 2012
+++ src/sys/arch/evbppc/explora/consinit.c Fri Mar 5 06:06:34 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: consinit.c,v 1.9 2012/10/13 17:58:53 jdc Exp $ */
+/* $NetBSD: consinit.c,v 1.10 2021/03/05 06:06:34 rin Exp $ */
/*-
* Copyright (c) 2003 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: consinit.c,v 1.9 2012/10/13 17:58:53 jdc Exp $");
+__KERNEL_RCSID(0, "$NetBSD: consinit.c,v 1.10 2021/03/05 06:06:34 rin Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -54,6 +54,7 @@ __KERNEL_RCSID(0, "$NetBSD: consinit.c,v
#include "pckbd.h"
#include <evbppc/explora/dev/elbvar.h>
+#include <powerpc/ibm4xx/cpu.h>
#include "opt_explora.h"
@@ -86,6 +87,9 @@ consinit(void)
tag = elb_get_bus_space_tag(BASE_FB);
fb_cnattach(tag, BASE_FB2, (void *)BASE_FB);
+
+ calc_delayconst(); /* required by pckbc_cnattach() */
+
tag = elb_get_bus_space_tag(BASE_PCKBC);
pckbc_cnattach(tag, _BUS_SPACE_UNSTRIDE(tag, BASE_PCKBC),
_BUS_SPACE_UNSTRIDE(tag, BASE_PCKBC2-BASE_PCKBC), PCKBC_KBD_SLOT,
Index: src/sys/arch/powerpc/conf/files.powerpc
diff -u src/sys/arch/powerpc/conf/files.powerpc:1.97 src/sys/arch/powerpc/conf/files.powerpc:1.98
--- src/sys/arch/powerpc/conf/files.powerpc:1.97 Wed Oct 21 13:31:51 2020
+++ src/sys/arch/powerpc/conf/files.powerpc Fri Mar 5 06:06:34 2021
@@ -1,8 +1,8 @@
-# $NetBSD: files.powerpc,v 1.97 2020/10/21 13:31:51 christos Exp $
+# $NetBSD: files.powerpc,v 1.98 2021/03/05 06:06:34 rin Exp $
defflag opt_altivec.h ALTIVEC K_ALTIVEC PPC_HAVE_SPE
defflag opt_openpic.h OPENPIC_DISTRIBUTE
-defparam opt_ppcparam.h L2CR_CONFIG L3CR_CONFIG INTSTK CLOCKBASE VERBOSE_INITPPC
+defparam opt_ppcparam.h L2CR_CONFIG L3CR_CONFIG INTSTK CLOCKBASE VERBOSE_INITPPC PPC_CPU_FREQ
defflag opt_ppcarch.h PPC_OEA PPC_OEA601 PPC_OEA64 PPC_OEA64_BRIDGE PPC_MPC8XX PPC_IBM4XX PPC_IBM403 PPC_IBM440 PPC_BOOKE
defflag opt_ppccache.h CACHE_PROTO_MEI
defflag opt_pmap.h PMAPDEBUG PMAPCHECK PMAPCOUNTERS PMAP_MINIMALTLB PMAP_TLBDEBUG
Index: src/sys/arch/powerpc/ibm4xx/clock.c
diff -u src/sys/arch/powerpc/ibm4xx/clock.c:1.31 src/sys/arch/powerpc/ibm4xx/clock.c:1.32
--- src/sys/arch/powerpc/ibm4xx/clock.c:1.31 Mon Jan 18 04:35:04 2021
+++ src/sys/arch/powerpc/ibm4xx/clock.c Fri Mar 5 06:06:34 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: clock.c,v 1.31 2021/01/18 04:35:04 rin Exp $ */
+/* $NetBSD: clock.c,v 1.32 2021/03/05 06:06:34 rin Exp $ */
/* $OpenBSD: clock.c,v 1.3 1997/10/13 13:42:53 pefo Exp $ */
/*
@@ -33,10 +33,11 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: clock.c,v 1.31 2021/01/18 04:35:04 rin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: clock.c,v 1.32 2021/03/05 06:06:34 rin Exp $");
#ifdef _KERNEL_OPT
#include "opt_ppcarch.h"
+#include "opt_ppcparam.h"
#endif
#include <sys/param.h>
@@ -197,9 +198,17 @@ calc_delayconst(void)
prop_number_t freq;
freq = prop_dictionary_get(board_properties, "processor-frequency");
+
+#ifndef PPC_CPU_FREQ
KASSERT(freq != NULL);
+#else
+ /* XXX hack for pckbc_cnattach() for Explora */
+ if (freq == NULL)
+ ticks_per_sec = (u_long) PPC_CPU_FREQ;
+ else
+#endif
+ ticks_per_sec = (u_long) prop_number_integer_value(freq);
- ticks_per_sec = (u_long) prop_number_integer_value(freq);
ns_per_tick = 1000000000 / ticks_per_sec;
}