Home | History | Annotate | Line # | Download | only in alchemy
au_chipdep.c revision 1.1.98.1
      1  1.1.98.1     matt /* $NetBSD: au_chipdep.c,v 1.1.98.1 2010/01/20 09:04:34 matt Exp $ */
      2       1.1  gdamore 
      3       1.1  gdamore /*-
      4       1.1  gdamore  * Copyright (c) 2006 Itronix Inc.
      5       1.1  gdamore  * All rights reserved.
      6       1.1  gdamore  *
      7       1.1  gdamore  * Written by Garrett D'Amore for Itronix Inc.
      8       1.1  gdamore  *
      9       1.1  gdamore  * Redistribution and use in source and binary forms, with or without
     10       1.1  gdamore  * modification, are permitted provided that the following conditions
     11       1.1  gdamore  * are met:
     12       1.1  gdamore  * 1. Redistributions of source code must retain the above copyright
     13       1.1  gdamore  *    notice, this list of conditions and the following disclaimer.
     14       1.1  gdamore  * 2. Redistributions in binary form must reproduce the above copyright
     15       1.1  gdamore  *    notice, this list of conditions and the following disclaimer in the
     16       1.1  gdamore  *    documentation and/or other materials provided with the distribution.
     17       1.1  gdamore  * 3. The name of Itronix Inc. may not be used to endorse
     18       1.1  gdamore  *    or promote products derived from this software without specific
     19       1.1  gdamore  *    prior written permission.
     20       1.1  gdamore  *
     21       1.1  gdamore  * THIS SOFTWARE IS PROVIDED BY ITRONIX INC. ``AS IS'' AND
     22       1.1  gdamore  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
     23       1.1  gdamore  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     24       1.1  gdamore  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL ITRONIX INC. BE LIABLE FOR ANY
     25       1.1  gdamore  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     26       1.1  gdamore  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     27       1.1  gdamore  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     28       1.1  gdamore  * ON ANY THEORY OF LIABILITY, WHETHER IN
     29       1.1  gdamore  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     30       1.1  gdamore  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     31       1.1  gdamore  * POSSIBILITY OF SUCH DAMAGE.
     32       1.1  gdamore  */
     33       1.1  gdamore 
     34       1.1  gdamore #include <sys/cdefs.h>
     35  1.1.98.1     matt __KERNEL_RCSID(0, "$NetBSD: au_chipdep.c,v 1.1.98.1 2010/01/20 09:04:34 matt Exp $");
     36       1.1  gdamore 
     37       1.1  gdamore #include <sys/param.h>
     38       1.1  gdamore #include <machine/bus.h>
     39       1.1  gdamore #include <machine/locore.h>
     40       1.1  gdamore #include <mips/alchemy/include/aureg.h>
     41       1.1  gdamore #include <mips/alchemy/include/auvar.h>
     42       1.1  gdamore 
     43       1.1  gdamore struct au_chipdep *
     44       1.1  gdamore au_chipdep(void)
     45       1.1  gdamore {
     46       1.1  gdamore 
     47       1.1  gdamore 	static struct au_chipdep *au_chip = NULL;
     48       1.1  gdamore 
     49       1.1  gdamore 	if (au_chip != NULL)
     50       1.1  gdamore 		return (au_chip);
     51       1.1  gdamore 
     52       1.1  gdamore 	if ((au_chip == NULL) &&
     53       1.1  gdamore #ifdef	ALCHEMY_AU1000
     54       1.1  gdamore 	    (!au1000_match(&au_chip)) &&
     55       1.1  gdamore #endif
     56       1.1  gdamore #ifdef	ALCHEMY_AU1100
     57       1.1  gdamore 	    (!au1100_match(&au_chip)) &&
     58       1.1  gdamore #endif
     59       1.1  gdamore #ifdef	ALCHEMY_AU1500
     60       1.1  gdamore 	    (!au1500_match(&au_chip)) &&
     61       1.1  gdamore #endif
     62       1.1  gdamore #ifdef	ALCHEMY_AU1550
     63       1.1  gdamore 	    (!au1550_match(&au_chip)) &&
     64       1.1  gdamore #endif
     65       1.1  gdamore 	    (au_chip == NULL)) {
     66       1.1  gdamore 		panic("Alchemy SOC %x either not configured or not supported!",
     67  1.1.98.1     matt 		    mips_options.mips_cpu_id);
     68       1.1  gdamore 	}
     69       1.1  gdamore 	return (au_chip);
     70       1.1  gdamore }
     71