Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch For Explora 451, call calc_delayconst() before pckb...
details: https://anonhg.NetBSD.org/src/rev/5a772fbdd2f9
branches: trunk
changeset: 960004:5a772fbdd2f9
user: rin <rin%NetBSD.org@localhost>
date: Fri Mar 05 06:06:34 2021 +0000
description:
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.
diffstat:
sys/arch/evbppc/conf/std.explora | 4 +++-
sys/arch/evbppc/explora/consinit.c | 8 ++++++--
sys/arch/powerpc/conf/files.powerpc | 4 ++--
sys/arch/powerpc/ibm4xx/clock.c | 17 +++++++++++++----
4 files changed, 24 insertions(+), 9 deletions(-)
diffs (108 lines):
diff -r d5aef7a29aab -r 5a772fbdd2f9 sys/arch/evbppc/conf/std.explora
--- a/sys/arch/evbppc/conf/std.explora Fri Mar 05 05:35:50 2021 +0000
+++ b/sys/arch/evbppc/conf/std.explora Fri Mar 05 06:06:34 2021 +0000
@@ -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 INTSTK=8192
+options PPC_CPU_FREQ=66000000 # XXX hack for pckbc_cnattach()
+
include "arch/evbppc/conf/files.explora"
diff -r d5aef7a29aab -r 5a772fbdd2f9 sys/arch/evbppc/explora/consinit.c
--- a/sys/arch/evbppc/explora/consinit.c Fri Mar 05 05:35:50 2021 +0000
+++ b/sys/arch/evbppc/explora/consinit.c Fri Mar 05 06:06:34 2021 +0000
@@ -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 @@
#include "pckbd.h"
#include <evbppc/explora/dev/elbvar.h>
+#include <powerpc/ibm4xx/cpu.h>
#include "opt_explora.h"
@@ -86,6 +87,9 @@
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,
diff -r d5aef7a29aab -r 5a772fbdd2f9 sys/arch/powerpc/conf/files.powerpc
--- a/sys/arch/powerpc/conf/files.powerpc Fri Mar 05 05:35:50 2021 +0000
+++ b/sys/arch/powerpc/conf/files.powerpc Fri Mar 05 06:06:34 2021 +0000
@@ -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
diff -r d5aef7a29aab -r 5a772fbdd2f9 sys/arch/powerpc/ibm4xx/clock.c
--- a/sys/arch/powerpc/ibm4xx/clock.c Fri Mar 05 05:35:50 2021 +0000
+++ b/sys/arch/powerpc/ibm4xx/clock.c Fri Mar 05 06:06:34 2021 +0000
@@ -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 @@
prop_number_t freq;
freq = prop_dictionary_get(board_properties, "processor-frequency");
- KASSERT(freq != NULL);
- ticks_per_sec = (u_long) prop_number_integer_value(freq);
+#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);
+
ns_per_tick = 1000000000 / ticks_per_sec;
}
Home |
Main Index |
Thread Index |
Old Index