1*ed9977b1Sdyoung /* $NetBSD: consinit.c,v 1.8 2011/07/01 20:26:36 dyoung Exp $ */
27d4a1addSreinoud
37d4a1addSreinoud /*
47d4a1addSreinoud * Copyright (c) 1994-1998 Mark Brinicombe.
57d4a1addSreinoud * Copyright (c) 1994 Brini.
67d4a1addSreinoud * All rights reserved.
77d4a1addSreinoud *
87d4a1addSreinoud * This code is derived from software written for Brini by Mark Brinicombe
97d4a1addSreinoud *
107d4a1addSreinoud * Redistribution and use in source and binary forms, with or without
117d4a1addSreinoud * modification, are permitted provided that the following conditions
127d4a1addSreinoud * are met:
137d4a1addSreinoud * 1. Redistributions of source code must retain the above copyright
147d4a1addSreinoud * notice, this list of conditions and the following disclaimer.
157d4a1addSreinoud * 2. Redistributions in binary form must reproduce the above copyright
167d4a1addSreinoud * notice, this list of conditions and the following disclaimer in the
177d4a1addSreinoud * documentation and/or other materials provided with the distribution.
187d4a1addSreinoud * 3. All advertising materials mentioning features or use of this software
197d4a1addSreinoud * must display the following acknowledgement:
207d4a1addSreinoud * This product includes software developed by Mark Brinicombe
217d4a1addSreinoud * for the NetBSD Project.
227d4a1addSreinoud * 4. The name of the company nor the name of the author may be used to
237d4a1addSreinoud * endorse or promote products derived from this software without specific
247d4a1addSreinoud * prior written permission.
257d4a1addSreinoud *
267d4a1addSreinoud * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
277d4a1addSreinoud * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
287d4a1addSreinoud * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
297d4a1addSreinoud * IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
307d4a1addSreinoud * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
317d4a1addSreinoud * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
327d4a1addSreinoud * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
337d4a1addSreinoud * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
347d4a1addSreinoud * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
357d4a1addSreinoud * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
367d4a1addSreinoud * SUCH DAMAGE.
377d4a1addSreinoud *
387d4a1addSreinoud * Console init functions for machines with VIDC
397d4a1addSreinoud *
407d4a1addSreinoud * Created : 17/09/94
417d4a1addSreinoud * Updated : 18/04/01 updated for new wscons
427d4a1addSreinoud */
437d4a1addSreinoud
4408716eaeSlukem #include <sys/cdefs.h>
45*ed9977b1Sdyoung __KERNEL_RCSID(0, "$NetBSD: consinit.c,v 1.8 2011/07/01 20:26:36 dyoung Exp $");
4608716eaeSlukem
477d4a1addSreinoud #include <sys/param.h>
487d4a1addSreinoud #include <sys/systm.h>
497d4a1addSreinoud #include <sys/kernel.h>
507d4a1addSreinoud #include <sys/conf.h>
517d4a1addSreinoud #include <sys/device.h>
527d4a1addSreinoud
53*ed9977b1Sdyoung #include <sys/bus.h>
547d4a1addSreinoud
557d4a1addSreinoud #include <dev/cons.h>
567d4a1addSreinoud
577d4a1addSreinoud #include <arm/iomd/vidc.h>
587d4a1addSreinoud #include <arm/iomd/iomdreg.h>
59f8694181Sbjh21 #include <arm/iomd/iomdvar.h>
60f8694181Sbjh21 #include <arm/iomd/iomdkbcvar.h>
617d4a1addSreinoud #include <arm/iomd/vidcvideo.h>
627d4a1addSreinoud
637d4a1addSreinoud #include "vidcvideo.h"
64f8694181Sbjh21 #include "iomdkbc.h"
657d4a1addSreinoud
662c38f195Sbjh21 #if ((NVIDCVIDEO > 0) && (NIOMDKBC > 0))
677d4a1addSreinoud
687d4a1addSreinoud extern videomemory_t videomemory;
697d4a1addSreinoud extern struct bus_space iomd_bs_tag;
707d4a1addSreinoud
717d4a1addSreinoud #endif
727d4a1addSreinoud
7312d0f602Sreinoud
7412d0f602Sreinoud #ifdef COMCONSOLE
7512d0f602Sreinoud extern void comcninit(struct consdev *cp);
7612d0f602Sreinoud #endif
7712d0f602Sreinoud
7812d0f602Sreinoud
797d4a1addSreinoud void
consinit(void)807d4a1addSreinoud consinit(void)
817d4a1addSreinoud {
827d4a1addSreinoud
837d4a1addSreinoud static int consinit_called = 0;
847d4a1addSreinoud
857d4a1addSreinoud if (consinit_called != 0)
867d4a1addSreinoud return;
877d4a1addSreinoud consinit_called = 1;
887d4a1addSreinoud
897d4a1addSreinoud #ifdef COMCONSOLE
907d4a1addSreinoud comcninit(NULL);
917d4a1addSreinoud return;
927d4a1addSreinoud #endif
937d4a1addSreinoud
947d4a1addSreinoud
952c38f195Sbjh21 #if ((NVIDCVIDEO > 0) && (NIOMDKBC > 0))
96f8694181Sbjh21 vidcvideo_cnattach(videomemory.vidm_vbase);
972c38f195Sbjh21 #if NIOMDKBC > 0
98f8694181Sbjh21 iomdkbc_cnattach(&iomd_bs_tag, IOMD_ADDRESS(IOMD_KBDDAT), 0);
99f8694181Sbjh21 #endif
1007d4a1addSreinoud return;
1017d4a1addSreinoud #else
1027d4a1addSreinoud /* XXX For old VIDC console. */
1037d4a1addSreinoud cninit();
1047d4a1addSreinoud return;
1057d4a1addSreinoud #endif
1067d4a1addSreinoud panic("No console"); /* Will we ever see this? */
1077d4a1addSreinoud }
108