Call com_opb_cnattach function.
This commit is contained in:
parent
3fc4f2c624
commit
6751e96490
|
@ -0,0 +1,75 @@
|
|||
/* $NetBSD: obs405.h,v 1.1 2005/01/13 17:07:24 shige Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright 2004 Shigeyuki Fukushima.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Written by Shigeyuki Fukushima for The NetBSD Project.
|
||||
*
|
||||
* 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. The name of the author may not be used to endorse or promote
|
||||
* products derived from this software without specific prior
|
||||
* written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED THE AUTHOR ``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 THE AUTHOR 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.
|
||||
*/
|
||||
|
||||
#ifndef _EVBPPC_OBS405_H_
|
||||
#define _EVBPPC_OBS405_H_
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/device.h>
|
||||
|
||||
#include <powerpc/ibm4xx/ibm405gp.h>
|
||||
|
||||
#include "com.h"
|
||||
#if (NCOM > 0)
|
||||
|
||||
#include <sys/termios.h>
|
||||
|
||||
# ifndef CONADDR
|
||||
# define CONADDR IBM405GP_UART0_BASE
|
||||
# endif
|
||||
# ifndef CONSPEED
|
||||
# define CONSPEED B9600
|
||||
# endif
|
||||
# ifndef CONMODE
|
||||
/* 8N1 */
|
||||
# define CONMODE ((TTYDEF_CFLAG & ~(CSIZE | CSTOPB | PARENB)) | CS8)
|
||||
# endif
|
||||
|
||||
#define OBS405_CONADDR (CONADDR)
|
||||
#define OBS405_CONSPEED (CONSPEED)
|
||||
#define OBS405_CONMODE (CONMODE)
|
||||
|
||||
#endif /* NCOM */
|
||||
|
||||
#include <dev/ic/comreg.h>
|
||||
|
||||
#define OBS405_COM_FREQ (COM_FREQ * 4) /* UART CLK 7.3728 MHz */
|
||||
|
||||
/*
|
||||
* extern variables and functions
|
||||
*/
|
||||
extern void obs405_device_register(struct device *dev, void *aux);
|
||||
|
||||
#endif /* _EVBPPC_OBS405_H_ */
|
|
@ -1,139 +1,52 @@
|
|||
/* $NetBSD: consinit.c,v 1.1 2003/09/23 14:45:14 shige Exp $ */
|
||||
/* $NetBSD: consinit.c,v 1.2 2005/01/13 17:07:24 shige Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1998
|
||||
* Matthias Drochner. All rights reserved.
|
||||
* Copyright (c) 2004 Shigeyuki Fukushima.
|
||||
* 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.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 THE AUTHOR 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.
|
||||
* 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. The name of the author may not be used to endorse or promote
|
||||
* products derived from this software without specific prior
|
||||
* written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 THE AUTHOR 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 <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: consinit.c,v 1.1 2003/09/23 14:45:14 shige Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: consinit.c,v 1.2 2005/01/13 17:07:24 shige Exp $");
|
||||
|
||||
#include "opt_kgdb.h"
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
#include <sys/device.h>
|
||||
#include <machine/bus.h>
|
||||
|
||||
#include <powerpc/ibm4xx/ibm405gp.h>
|
||||
#include <powerpc/ibm4xx/dev/opbvar.h>
|
||||
|
||||
#include "com.h"
|
||||
#if (NCOM > 0)
|
||||
#include <sys/termios.h>
|
||||
#include <dev/ic/comreg.h>
|
||||
#include <dev/ic/comvar.h>
|
||||
#endif
|
||||
|
||||
#include <dev/cons.h>
|
||||
|
||||
#ifndef CONSDEVNAME
|
||||
#define CONSDEVNAME "com"
|
||||
#endif
|
||||
|
||||
#if (NCOM > 0)
|
||||
#ifndef CONADDR
|
||||
#define CONADDR IBM405GP_UART0_BASE
|
||||
#endif
|
||||
#ifndef CONSPEED
|
||||
#define CONSPEED B9600 /* */
|
||||
// #define CONSPEED B115200 /* 9600 is too slow for my taste */
|
||||
#endif
|
||||
#ifndef CONMODE
|
||||
#define CONMODE ((TTYDEF_CFLAG & ~(CSIZE | CSTOPB | PARENB)) | CS8) /* 8N1 */
|
||||
#endif
|
||||
int comcnmode = CONMODE;
|
||||
#endif /* NCOM */
|
||||
|
||||
#ifdef KGDB
|
||||
#ifndef KGDB_DEVNAME
|
||||
#define KGDB_DEVNAME "com"
|
||||
#endif
|
||||
char kgdb_devname[] = KGDB_DEVNAME;
|
||||
|
||||
#if (NCOM > 1)
|
||||
#ifndef KGDB_DEVADDR
|
||||
#define KGDB_DEVADDR UART1_BASE
|
||||
#endif
|
||||
int comkgdbaddr = KGDB_DEVADDR;
|
||||
|
||||
#ifndef KGDB_DEVRATE
|
||||
#define KGDB_DEVRATE CONSPEED
|
||||
#endif
|
||||
int comkgdbrate = KGDB_DEVRATE;
|
||||
|
||||
#ifndef KGDB_DEVMODE
|
||||
#define KGDB_DEVMODE ((TTYDEF_CFLAG & ~(CSIZE | CSTOPB | PARENB)) | CS8) /* 8N1 */
|
||||
#endif
|
||||
int comkgdbmode = KGDB_DEVMODE;
|
||||
|
||||
#endif /* NCOM */
|
||||
|
||||
#endif /* KGDB */
|
||||
#include <machine/obs405.h>
|
||||
#include <powerpc/ibm4xx/dev/comopbvar.h>
|
||||
|
||||
/*
|
||||
* consinit:
|
||||
* initialize the system console.
|
||||
* XXX - shouldn't deal with this initted thing, but then,
|
||||
* it shouldn't be called from initppc either.
|
||||
* obs405_consinit:
|
||||
* Initialize the system console.
|
||||
*/
|
||||
void
|
||||
consinit(void)
|
||||
{
|
||||
static int initted = 0;
|
||||
#if (NCOM > 0)
|
||||
bus_space_tag_t tag;
|
||||
#endif
|
||||
|
||||
if (initted)
|
||||
return;
|
||||
initted = 1;
|
||||
|
||||
#if (NCOM > 0)
|
||||
/* We *know* the com-console attaches to opb */
|
||||
tag = opb_get_bus_space_tag();
|
||||
|
||||
if (comcnattach(tag, CONADDR, CONSPEED, COM_FREQ*4,
|
||||
COM_TYPE_NORMAL, comcnmode))
|
||||
panic("can't init serial console @%x", CONADDR);
|
||||
else
|
||||
return;
|
||||
#endif
|
||||
panic("console device missing -- serial console not in kernel");
|
||||
/* Of course, this is moot if there is no console... */
|
||||
com_opb_cnattach(OBS405_COM_FREQ,
|
||||
OBS405_CONADDR, OBS405_CONSPEED, OBS405_CONMODE);
|
||||
#endif /* NCOM */
|
||||
}
|
||||
|
||||
#ifdef KGDB
|
||||
void
|
||||
kgdb_port_init(void)
|
||||
{
|
||||
#if (NCOM > 0)
|
||||
if(!strcmp(kgdb_devname, "com")) {
|
||||
bus_space_tag_t tag = opb_get_bus_space_tag();
|
||||
com_kgdb_attach(tag, comkgdbaddr, comkgdbrate, COM_FREQ * 4,
|
||||
COM_TYPE_NORMAL, comkgdbmode);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue