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;
 }
 

Reply via email to