From 93dfb931be6bb1706f31bfd7b818715290225a4f Mon Sep 17 00:00:00 2001 From: nonaka Date: Thu, 25 Apr 2002 20:36:50 +0000 Subject: [PATCH] Separate consinit. --- sys/arch/prep/conf/files.prep | 3 +- sys/arch/prep/prep/consinit.c | 143 ++++++++++++++++++++++++++++++++++ sys/arch/prep/prep/machdep.c | 96 +---------------------- 3 files changed, 146 insertions(+), 96 deletions(-) create mode 100644 sys/arch/prep/prep/consinit.c diff --git a/sys/arch/prep/conf/files.prep b/sys/arch/prep/conf/files.prep index a72883bb04ae..b4eb880c7691 100644 --- a/sys/arch/prep/conf/files.prep +++ b/sys/arch/prep/conf/files.prep @@ -1,4 +1,4 @@ -# $NetBSD: files.prep,v 1.29 2002/04/22 09:41:20 augustss Exp $ +# $NetBSD: files.prep,v 1.30 2002/04/25 20:38:18 nonaka Exp $ # # prep-specific configuration info # @@ -21,6 +21,7 @@ file arch/prep/prep/autoconf.c file arch/prep/prep/bus_space.c file arch/prep/prep/clock.c file arch/prep/prep/conf.c +file arch/prep/prep/consinit.c file arch/prep/prep/disksubr.c disk file arch/prep/prep/extintr.c file arch/prep/prep/machdep.c diff --git a/sys/arch/prep/prep/consinit.c b/sys/arch/prep/prep/consinit.c new file mode 100644 index 000000000000..9a291c2048b1 --- /dev/null +++ b/sys/arch/prep/prep/consinit.c @@ -0,0 +1,143 @@ +/* $NetBSD: consinit.c,v 1.1 2002/04/25 20:36:50 nonaka Exp $ */ + +/* + * Copyright (C) 1995, 1996 Wolfgang Solfrank. + * Copyright (C) 1995, 1996 TooLs GmbH. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by TooLs GmbH. + * 4. The name of TooLs GmbH may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY TOOLS GMBH ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL TOOLS GMBH BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include + +#include +#include +#include + +#include + +#include "gten.h" +#if (NGTEN > 0) +#include +#endif + +/* Implied by gten support. */ +#if (NGTEN > 0) +#include +#endif + +#include "vga.h" +#if (NVGA > 0) +#include +#include +#include +#include +#endif + +#include "pckbc.h" +#if (NPCKBC > 0) +#include +#include +#include +#endif + +#include "com.h" +#if (NCOM > 0) +#include +#include +#include +void comsoft(void); +#endif + +/* + * consinit + * Initialize system console. + */ +void +consinit(void) +{ + struct btinfo_console *consinfo; + static int initted = 0; +#if (NGTEN > 0) + struct prep_pci_chipset pc; +#endif + + if (initted) + return; + initted = 1; + + consinfo = (struct btinfo_console *)lookup_bootinfo(BTINFO_CONSOLE); + if (!consinfo) + panic("not found console information in bootinfo"); + +#if (NPFB > 0) + if (!strcmp(consinfo->devname, "fb")) { + pfb_cnattach(consinfo->addr); +#if (NPCKBC > 0) + pckbc_cnattach(&prep_isa_io_space_tag, IO_KBD, KBCMDP, + PCKBC_KBD_SLOT); +#endif + return; + } +#endif + +#if (NVGA > 0) || (NGTEN > 0) + if (!strcmp(consinfo->devname, "vga")) { +#if (NGTEN > 0) + (*platform->pci_get_chipset_tag)(&pc); +#endif +#if (NGTEN > 0) + if (!gten_cnattach(&pc, &prep_mem_space_tag)) + goto dokbd; +#endif +#if (NVGA > 0) + if (!vga_cnattach(&prep_io_space_tag, &prep_mem_space_tag, + -1, 1)) + goto dokbd; +#endif +dokbd: +#if (NPCKBC > 0) + pckbc_cnattach(&prep_isa_io_space_tag, IO_KBD, KBCMDP, + PCKBC_KBD_SLOT); +#endif + return; + } +#endif /* VGA | GTEN */ + +#if (NCOM > 0) + if (!strcmp(consinfo->devname, "com")) { + bus_space_tag_t tag = &prep_isa_io_space_tag; + + if(comcnattach(tag, consinfo->addr, consinfo->speed, COM_FREQ, + ((TTYDEF_CFLAG & ~(CSIZE | CSTOPB | PARENB)) | CS8))) + panic("can't init serial console"); + + return; + } +#endif + panic("invalid console device %s", consinfo->devname); +} diff --git a/sys/arch/prep/prep/machdep.c b/sys/arch/prep/prep/machdep.c index 6f70bbe1721e..cff2fb108cc9 100644 --- a/sys/arch/prep/prep/machdep.c +++ b/sys/arch/prep/prep/machdep.c @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.c,v 1.37 2002/04/23 12:41:08 kleink Exp $ */ +/* $NetBSD: machdep.c,v 1.38 2002/04/25 20:36:50 nonaka Exp $ */ /* * Copyright (C) 1995, 1996 Wolfgang Solfrank. @@ -71,31 +71,6 @@ #include -#include "gten.h" -#if (NGTEN > 0) -#include -#endif - -/* Implied by gten support. */ -#if (NGTEN > 0) -#include -#endif - -#include "vga.h" -#if (NVGA > 0) -#include -#include -#include -#include -#endif - -#include "pckbc.h" -#if (NPCKBC > 0) -#include -#include -#include -#endif - #include "com.h" #if (NCOM > 0) #include @@ -584,75 +559,6 @@ lookup_bootinfo(type) return (NULL); } -/* - * consinit - * Initialize system console. - */ -void -consinit() -{ - struct btinfo_console *consinfo; - static int initted = 0; -#if (NGTEN > 0) - struct prep_pci_chipset pc; -#endif - - if (initted) - return; - initted = 1; - - consinfo = (struct btinfo_console *)lookup_bootinfo(BTINFO_CONSOLE); - if (!consinfo) - panic("not found console information in bootinfo"); - -#if (NPFB > 0) - if (!strcmp(consinfo->devname, "fb")) { - pfb_cnattach(consinfo->addr); -#if (NPCKBC > 0) - pckbc_cnattach(&prep_isa_io_space_tag, IO_KBD, KBCMDP, - PCKBC_KBD_SLOT); -#endif - return; - } -#endif - -#if (NVGA > 0) || (NGTEN > 0) - if (!strcmp(consinfo->devname, "vga")) { -#if (NGTEN > 0) - (*platform->pci_get_chipset_tag)(&pc); -#endif -#if (NGTEN > 0) - if (!gten_cnattach(&pc, &prep_mem_space_tag)) - goto dokbd; -#endif -#if (NVGA > 0) - if (!vga_cnattach(&prep_io_space_tag, &prep_mem_space_tag, - -1, 1)) - goto dokbd; -#endif -dokbd: -#if (NPCKBC > 0) - pckbc_cnattach(&prep_isa_io_space_tag, IO_KBD, KBCMDP, - PCKBC_KBD_SLOT); -#endif - return; - } -#endif /* VGA | GTEN */ - -#if (NCOM > 0) - if (!strcmp(consinfo->devname, "com")) { - bus_space_tag_t tag = &prep_isa_io_space_tag; - - if(comcnattach(tag, consinfo->addr, consinfo->speed, COM_FREQ, - ((TTYDEF_CFLAG & ~(CSIZE | CSTOPB | PARENB)) | CS8))) - panic("can't init serial console"); - - return; - } -#endif - panic("invalid console device %s", consinfo->devname); -} - void dumpsys() {