Home | History | Annotate | Line # | Download | only in include
prom.h revision 1.11
      1  1.11  martin /*	$NetBSD: prom.h,v 1.11 2008/04/28 20:23:28 martin Exp $	*/
      2   1.1     wdk 
      3   1.1     wdk /*
      4   1.1     wdk  * Copyright (c) 2000 The NetBSD Foundation, Inc.
      5   1.1     wdk  * All rights reserved.
      6   1.1     wdk  *
      7   1.1     wdk  * This code is derived from software contributed to The NetBSD Foundation
      8   1.1     wdk  * by Wayne Knowles
      9   1.1     wdk  *
     10   1.1     wdk  * Redistribution and use in source and binary forms, with or without
     11   1.1     wdk  * modification, are permitted provided that the following conditions
     12   1.1     wdk  * are met:
     13   1.1     wdk  * 1. Redistributions of source code must retain the above copyright
     14   1.1     wdk  *    notice, this list of conditions and the following disclaimer.
     15   1.1     wdk  * 2. Redistributions in binary form must reproduce the above copyright
     16   1.1     wdk  *    notice, this list of conditions and the following disclaimer in the
     17   1.1     wdk  *    documentation and/or other materials provided with the distribution.
     18   1.1     wdk  *
     19   1.1     wdk  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
     20   1.1     wdk  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
     21   1.1     wdk  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     22   1.1     wdk  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
     23   1.1     wdk  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     24   1.1     wdk  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     25   1.1     wdk  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     26   1.1     wdk  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     27   1.1     wdk  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     28   1.1     wdk  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     29   1.1     wdk  * POSSIBILITY OF SUCH DAMAGE.
     30   1.1     wdk  */
     31   1.1     wdk 
     32   1.1     wdk /*
     33   1.1     wdk  * Entry points into PROM firmware functions for MIPS machines
     34   1.1     wdk  */
     35   1.1     wdk 
     36   1.2     wdk #ifndef _MIPSCO_PROM_H
     37   1.2     wdk #define _MIPSCO_PROM_H
     38   1.2     wdk 
     39   1.2     wdk #ifndef _LOCORE
     40   1.2     wdk #include <sys/types.h>
     41   1.2     wdk #include <sys/cdefs.h>
     42   1.1     wdk 
     43   1.1     wdk struct mips_prom {
     44   1.1     wdk 
     45   1.1     wdk 	/*
     46   1.1     wdk 	 * transferred to on hardware reset, configures MIPS boards,
     47   1.1     wdk 	 * runs diags, check for appropriate auto boot action in
     48   1.1     wdk 	 * "bootmode" environment variable and performs that action.
     49   1.1     wdk 	 */
     50   1.1     wdk 	void	(*prom_reset)	__P((void)) __attribute__((__noreturn__));
     51   1.1     wdk 
     52   1.1     wdk 	/*
     53   1.7   perry 	 * called to use prom to boot new image.  After the booted
     54   1.1     wdk 	 * program returns control can either be returned to the
     55   1.1     wdk 	 * original caller of the exec routine or to the prom monitor.
     56   1.1     wdk 	 * (to return to the original caller, the new program must
     57   1.1     wdk 	 * not destroy any text, data, or stack of the parent.  the
     58   1.1     wdk 	 * new programs stack continues on the parents stack.
     59   1.1     wdk 	 */
     60   1.1     wdk 	int	(*prom_exec)	__P((void));
     61   1.1     wdk 
     62   1.1     wdk 	/* re-enter the prom command parser, do not reset prom state	*/
     63   1.1     wdk 	void	(*prom_restart) __P((void)) __attribute__((__noreturn__));
     64   1.1     wdk 
     65   1.1     wdk 	/* reinitialize prom state and re-enter the prom command parser */
     66   1.1     wdk 	void	(*prom_reinit)	__P((void)) __attribute__((__noreturn__));
     67   1.1     wdk 
     68   1.1     wdk 	/* reboot machine using current bootmode setting.  No diags */
     69   1.1     wdk 	void	(*prom_reboot)	__P((void)) __attribute__((__noreturn__));
     70   1.1     wdk 
     71   1.1     wdk 	/* perform an autoboot sequence, no configuration or diags run */
     72   1.1     wdk 	void	(*prom_autoboot) __P((void)) __attribute__((__noreturn__));
     73   1.1     wdk 
     74   1.1     wdk 	/*
     75   1.1     wdk 	 * these routines access prom "saio" routines, and may be used
     76   1.1     wdk 	 * by standalone programs that would like to use prom io
     77   1.1     wdk 	 */
     78   1.1     wdk 	int	(*prom_open)		__P((char *, int, ...));
     79   1.1     wdk 	int	(*prom_read)		__P((int, void *, int));
     80   1.1     wdk 	int	(*prom_write)		__P((int, void *, int));
     81   1.3     wdk 	int	(*prom_ioctl)		__P((int, long, ...));
     82   1.1     wdk 	int	(*prom_close)		__P((int));
     83   1.1     wdk 	int	(*prom_getchar)		__P((void));
     84   1.1     wdk 	int	(*prom_putchar)		__P((int c));
     85   1.1     wdk 	void	(*prom_showchar)	__P((int c));
     86   1.1     wdk 	char * 	(*prom_gets)		__P((char *s));
     87   1.1     wdk 	void	(*prom_puts)		__P((const char *));
     88   1.1     wdk 	int	(*prom_printf)		__P((const char *, ...));
     89   1.1     wdk 
     90   1.1     wdk 	/* prom protocol entry points */
     91   1.1     wdk 	void	(*prom_initproto)	__P((void)); /* ??? */
     92   1.1     wdk 	void	(*prom_protoenable)	__P((void)); /* ??? */
     93   1.1     wdk 	void	(*prom_protodisable)	__P((void)); /* ??? */
     94   1.1     wdk 	void	(*prom_getpkt)		__P((void)); /* ??? */
     95   1.1     wdk 	void	(*prom_putpkt)		__P((void)); /* ??? */
     96   1.1     wdk 
     97   1.1     wdk 	/*
     98   1.8     wiz 	 * read-modify-write routine use special CPU board circuitry to
     99   1.1     wdk 	 * accomplish vme bus r-m-w cycles.
    100   1.1     wdk 	 */
    101   1.1     wdk 	void	(*prom_orw_rmw)		__P((void));
    102   1.1     wdk 	void	(*prom_orh_rmw)		__P((void));
    103   1.1     wdk 	void	(*prom_orb_rmw)		__P((void));
    104   1.1     wdk 	void	(*prom_andw_rmw)	__P((void));
    105   1.1     wdk 	void	(*prom_andh_rmw)	__P((void));
    106   1.1     wdk 	void	(*prom_andb_rmw)	__P((void));
    107   1.1     wdk 
    108   1.1     wdk 	/*
    109   1.1     wdk 	 * cache control entry points
    110   1.1     wdk 	 * flushcache is called without arguments and invalidates entire
    111   1.1     wdk 	 *      contents of both i and d caches
    112   1.1     wdk 	 * clearcache is called with a base address and length (where
    113   1.1     wdk 	 *      address is either K0, K1, or physical) and clears both
    114   1.1     wdk 	 *      i and d cache for entries that alias to specified address
    115   1.1     wdk 	 *      range.
    116   1.1     wdk 	 */
    117   1.1     wdk 	void	(*prom_flushcache)	__P((void));
    118   1.4     wdk 	void	(*prom_clearcache)	__P((void *, size_t));
    119   1.1     wdk 
    120   1.1     wdk 	/*
    121   1.1     wdk 	 * Libc compatible functions
    122   1.1     wdk 	 */
    123   1.1     wdk 	void	(*prom_setjmp)		__P((void));
    124   1.1     wdk 	void	(*prom_longjmp)		__P((void));
    125   1.1     wdk 	void	(*prom_bevutlb)		__P((void));
    126   1.9      he 	char *	(*prom_getenv)		__P((const char *name));
    127   1.1     wdk 	int	(*prom_setenv)		__P((char *name, char *val));
    128   1.1     wdk 	int	(*prom_atob)		__P((char *s));
    129   1.1     wdk 	int	(*prom_strcmp)		__P((char *s1, char *s2));
    130   1.1     wdk 	int	(*prom_strlen)		__P((char *s));
    131   1.1     wdk 	char *	(*prom_strcpy)		__P((char *s1, char *s2));
    132   1.1     wdk 	char *	(*prom_strcat)		__P((char *s1, char *s2));
    133   1.1     wdk 
    134   1.1     wdk 	/*
    135   1.1     wdk 	 * command parser entry points
    136   1.1     wdk 	 */
    137   1.1     wdk 	void	(*prom_parser)		__P((void)); /* ??? */
    138   1.1     wdk 	void	(*prom_range)		__P((void)); /* ??? */
    139   1.1     wdk 	void	(*prom_argvize)		__P((void)); /* ??? */
    140   1.1     wdk 	void	(*prom_help)		__P((void));
    141   1.1     wdk 
    142   1.1     wdk 	/*
    143   1.1     wdk 	 * prom commands
    144   1.1     wdk 	 */
    145   1.1     wdk 	void	(*prom_dumpcmd)		__P((void));
    146   1.1     wdk 	void	(*prom_setenvcmd)	__P((void));
    147   1.1     wdk 	void	(*prom_unsetenvcmd)	__P((void));
    148   1.1     wdk 	void	(*prom_bevexcept)	__P((void));
    149   1.1     wdk 	void	(*prom_enablecmd)	__P((void));
    150   1.1     wdk 	void	(*prom_disablecmd)	__P((void));
    151   1.1     wdk 
    152   1.1     wdk 	/*
    153   1.1     wdk 	 * clear existing fault handlers
    154   1.1     wdk 	 * used by clients that link to prom on situations where client has
    155   1.1     wdk 	 * interrupted out of prom code and wish to reenter without being
    156   1.1     wdk 	 * tripped up by any pending prom timers set earlier.
    157   1.1     wdk 	 */
    158   1.1     wdk 	void	(*prom_clearnofault)	__P((void));
    159   1.1     wdk 
    160   1.1     wdk 	void	(*prom_notimpl)		__P((void));
    161   1.1     wdk 
    162   1.1     wdk 	/*
    163   1.1     wdk 	 * PROM_NVGET, PROM_NVSET will get/set information in the NVRAM.
    164   1.1     wdk 	 * Both of these routines take indexes as opposed to addresses
    165   1.1     wdk 	 * to guarantee portability between various platforms
    166   1.1     wdk 	 */
    167   1.2     wdk 	int	(*prom_nvget)		__P((int));
    168   1.2     wdk 	void	(*prom_nvset)		__P((void));
    169   1.1     wdk };
    170   1.1     wdk 
    171   1.1     wdk extern struct mips_prom *callv;
    172   1.1     wdk 
    173   1.2     wdk extern void prom_init __P((void));
    174   1.2     wdk 
    175   1.2     wdk #endif	/* _LOCORE */
    176   1.2     wdk 
    177   1.1     wdk /*
    178   1.1     wdk  * Macro to help call a prom function
    179   1.1     wdk  */
    180   1.1     wdk #define MIPS_PROM(func)		(callv->prom_##func)
    181   1.1     wdk 
    182   1.1     wdk /*
    183   1.2     wdk  * Return the address for a given prom function number
    184   1.2     wdk  */
    185   1.2     wdk #define	MIPS_PROM_ENTRY(x)	(0xbfc00000+((x)*8))
    186   1.2     wdk 
    187   1.2     wdk /*
    188   1.2     wdk  * MIPS PROM firmware functions:
    189   1.2     wdk  *
    190   1.2     wdk  *	MIPS_PROM_RESET		Run diags, check bootmode, reinit.
    191   1.2     wdk  *	MIPS_PROM_EXEC		Load new program image.
    192   1.2     wdk  *	MIPS_PROM_RESTART	Re-enter monitor command loop.
    193   1.2     wdk  *	MIPS_PROM_REINIT	Re-init monitor, then cmd loop.
    194   1.2     wdk  *	MIPS_PROM_REBOOT	Check bootmode, no config.
    195   1.2     wdk  *	MIPS_PROM_AUTOBOOT	Autoboot the system.
    196   1.2     wdk  *
    197   1.2     wdk  * The following routines access PROM saio routines and may be used by
    198   1.2     wdk  * standalone programs that would like to use PROM I/O:
    199   1.2     wdk  *
    200   1.2     wdk  *	MIPS_PROM_OPEN		Open a file.
    201   1.2     wdk  *	MIPS_PROM_READ		Read from a file.
    202   1.2     wdk  *	MIPS_PROM_WRITE		Write to a file.
    203   1.2     wdk  *	MIPS_PROM_IOCTL		Ioctl on a file.
    204   1.2     wdk  *	MIPS_PROM_CLOSE		Close a file.
    205   1.2     wdk  *	MIPS_PROM_GETCHAR	Read character from console.
    206   1.2     wdk  *	MIPS_PROM_PUTCHAR	Put character on console.
    207   1.2     wdk  *	MIPS_PROM_SHOWCHAR	Show a char visibly.
    208   1.2     wdk  *	MIPS_PROM_GETS		gets with editing.
    209   1.2     wdk  *	MIPS_PROM_PUTS		Put string to console.
    210   1.2     wdk  *	MIPS_PROM_PRINTF	Kernel style printf to console.
    211   1.2     wdk  *
    212   1.2     wdk  *  PROM protocol entry points:
    213   1.2     wdk  *
    214   1.2     wdk  *	MIPS_PROM_INITPROTO	Initialize protocol.
    215   1.2     wdk  *	MIPS_PROM_PROTOENABLE	Enable protocol mode.
    216   1.2     wdk  *	MIPS_PROM_PROTODISABLE	Disable protocol mode.
    217   1.2     wdk  *	MIPS_PROM_GETPKT	Get protocol packet.
    218   1.2     wdk  *	MIPS_PROM_PUTPKT	Put protocol packet.
    219   1.2     wdk  *
    220   1.2     wdk  *   Atomic Read-Modify-Write functions
    221   1.2     wdk  *
    222   1.2     wdk  *	MIPS_PROM_RMW_OR32	r-m-w OR word.
    223   1.2     wdk  *	MIPS_PROM_RMW_OR16	r-m-w OR halfword.
    224   1.2     wdk  *	MIPS_PROM_RMW_OR8	r-m-w OR or byte.
    225   1.2     wdk  *	MIPS_PROM_RMW_AND32	r-m-w AND word.
    226   1.2     wdk  *	MIPS_PROM_RMW_AND16	r-m-w AND halfword.
    227   1.2     wdk  *	MIPS_PROM_RMW_AND8	r-m-w AND byte.
    228   1.2     wdk  *
    229   1.2     wdk  *	MIPS_PROM_FLUSHCACHE	Flush entire cache ().
    230   1.2     wdk  *	MIPS_PROM_CLEARCACHE	Clear I & D cache in range (addr, len).
    231   1.2     wdk  *	MIPS_PROM_SETJMP	Save registers in a buffer.
    232   1.2     wdk  *	MIPS_PROM_LONGJMP	Get register back from buffer.
    233   1.2     wdk  *	MIPS_PROM_BEVUTLB	utlbmiss boot exception vector
    234   1.2     wdk  *	MIPS_PROM_GETENV	Gets a string from system environment.
    235   1.2     wdk  *	MIPS_PROM_SETENV	Sets a string in system environment.
    236   1.2     wdk  *	MIPS_PROM_ATOB		Converts ascii string to number.
    237   1.2     wdk  *	MIPS_PROM_STRCMP	Compares strings (strcmp).
    238   1.2     wdk  *	MIPS_PROM_STRLEN	Length of string (strlen).
    239   1.2     wdk  *	MIPS_PROM_STRCPY	Copies string (strcpy).
    240   1.2     wdk  *	MIPS_PROM_STRCAT	Appends string (strcat).
    241   1.2     wdk  *	MIPS_PROM_PARSER	Command parser.
    242   1.2     wdk  *	MIPS_PROM_RANGE		Address range parser
    243   1.2     wdk  *	MIPS_PROM_ARGVIZE	Parses string to argc,argv.
    244   1.2     wdk  *	MIPS_PROM_HELP		Help on prom commands.
    245   1.2     wdk  *	MIPS_PROM_DUMP		Dump memory command.
    246   1.2     wdk  *	MIPS_PROM_SETENVCMD	Setenv command.
    247   1.2     wdk  *	MIPS_PROM_UNSETENVCMD	Unsetenv command.
    248   1.2     wdk  *	MIPS_PROM_PRINTENV	Print environment command.
    249   1.2     wdk  *	MIPS_PROM_BEVEXCEPT	General boot exception vector
    250   1.2     wdk  *	MIPS_PROM_ENABLE	Performs prom enable command.
    251   1.2     wdk  *	MIPS_PROM_DISABLE	Performs prom disable command.
    252   1.2     wdk  *	MIPS_PROM_CLEARNOFAULT	Clear existing fault handlers.
    253   1.2     wdk  *	MIPS_PROM_NOTIMPL	Guaranteed to be not implemented
    254   1.2     wdk  *	MIPS_PROM_NVGET		Read bytes from NVRAM
    255   1.2     wdk  *	MIPS_PROM_NVSET		Write bytes to NVRAM
    256   1.2     wdk  */
    257   1.2     wdk 
    258   1.2     wdk #define	MIPS_PROM_RESET		MIPS_PROM_ENTRY(0)
    259   1.2     wdk #define	MIPS_PROM_EXEC		MIPS_PROM_ENTRY(1)
    260   1.2     wdk #define	MIPS_PROM_RESTART	MIPS_PROM_ENTRY(2)
    261   1.2     wdk #define	MIPS_PROM_REINIT	MIPS_PROM_ENTRY(3)
    262   1.2     wdk #define	MIPS_PROM_REBOOT	MIPS_PROM_ENTRY(4)
    263   1.2     wdk #define	MIPS_PROM_AUTOBOOT	MIPS_PROM_ENTRY(5)
    264   1.2     wdk #define	MIPS_PROM_OPEN		MIPS_PROM_ENTRY(6)
    265   1.2     wdk #define	MIPS_PROM_READ		MIPS_PROM_ENTRY(7)
    266   1.2     wdk #define	MIPS_PROM_WRITE		MIPS_PROM_ENTRY(8)
    267   1.2     wdk #define	MIPS_PROM_IOCTL		MIPS_PROM_ENTRY(9)
    268   1.2     wdk #define	MIPS_PROM_CLOSE		MIPS_PROM_ENTRY(10)
    269   1.2     wdk #define	MIPS_PROM_GETCHAR	MIPS_PROM_ENTRY(11)
    270   1.2     wdk #define	MIPS_PROM_PUTCHAR	MIPS_PROM_ENTRY(12)
    271   1.2     wdk #define	MIPS_PROM_SHOWCHAR	MIPS_PROM_ENTRY(13)
    272   1.2     wdk #define	MIPS_PROM_GETS		MIPS_PROM_ENTRY(14)
    273   1.2     wdk #define	MIPS_PROM_PUTS		MIPS_PROM_ENTRY(15)
    274   1.2     wdk #define	MIPS_PROM_PRINTF	MIPS_PROM_ENTRY(16)
    275   1.2     wdk #define	MIPS_PROM_INITPROTO	MIPS_PROM_ENTRY(17)
    276   1.2     wdk #define	MIPS_PROM_PROTOENABLE	MIPS_PROM_ENTRY(18)
    277   1.2     wdk #define	MIPS_PROM_PROTODISABLE	MIPS_PROM_ENTRY(19)
    278   1.2     wdk #define	MIPS_PROM_GETPKT	MIPS_PROM_ENTRY(20)
    279   1.2     wdk #define	MIPS_PROM_PUTPKT	MIPS_PROM_ENTRY(21)
    280   1.2     wdk #define	MIPS_PROM_ORW_RMW	MIPS_PROM_ENTRY(22)
    281   1.2     wdk #define	MIPS_PROM_ORH_RMW	MIPS_PROM_ENTRY(23)
    282   1.2     wdk #define	MIPS_PROM_ORB_RMW	MIPS_PROM_ENTRY(24)
    283   1.2     wdk #define	MIPS_PROM_ANDW_RMW	MIPS_PROM_ENTRY(25)
    284   1.2     wdk #define	MIPS_PROM_ANDH_RMW	MIPS_PROM_ENTRY(26)
    285   1.2     wdk #define	MIPS_PROM_ANDB_RMW	MIPS_PROM_ENTRY(27)
    286   1.2     wdk #define	MIPS_PROM_FLUSHCACHE	MIPS_PROM_ENTRY(28)
    287   1.2     wdk #define	MIPS_PROM_CLEARCACHE	MIPS_PROM_ENTRY(29)
    288   1.2     wdk #define	MIPS_PROM_SETJMP	MIPS_PROM_ENTRY(30)
    289   1.2     wdk #define	MIPS_PROM_LONGJMP	MIPS_PROM_ENTRY(31)
    290   1.2     wdk #define	MIPS_PROM_BEVUTLB	MIPS_PROM_ENTRY(32)
    291   1.2     wdk #define	MIPS_PROM_GETENV	MIPS_PROM_ENTRY(33)
    292   1.2     wdk #define	MIPS_PROM_SETENV	MIPS_PROM_ENTRY(34)
    293   1.2     wdk #define	MIPS_PROM_ATOB		MIPS_PROM_ENTRY(35)
    294   1.2     wdk #define	MIPS_PROM_STRCMP	MIPS_PROM_ENTRY(36)
    295   1.2     wdk #define	MIPS_PROM_STRLEN	MIPS_PROM_ENTRY(37)
    296   1.2     wdk #define	MIPS_PROM_STRCPY	MIPS_PROM_ENTRY(38)
    297   1.2     wdk #define	MIPS_PROM_STRCAT	MIPS_PROM_ENTRY(39)
    298   1.2     wdk #define	MIPS_PROM_PARSER	MIPS_PROM_ENTRY(40)
    299   1.2     wdk #define	MIPS_PROM_RANGE		MIPS_PROM_ENTRY(41)
    300   1.2     wdk #define	MIPS_PROM_ARGVIZE	MIPS_PROM_ENTRY(42)
    301   1.2     wdk #define	MIPS_PROM_HELP		MIPS_PROM_ENTRY(43)
    302   1.2     wdk #define	MIPS_PROM_DUMP		MIPS_PROM_ENTRY(44)
    303   1.2     wdk #define	MIPS_PROM_SETENVCMD	MIPS_PROM_ENTRY(45)
    304   1.2     wdk #define	MIPS_PROM_UNSETENVCMD	MIPS_PROM_ENTRY(46)
    305   1.2     wdk #define	MIPS_PROM_PRINTENV	MIPS_PROM_ENTRY(47)
    306   1.2     wdk #define	MIPS_PROM_BEVEXCEPT	MIPS_PROM_ENTRY(48)
    307   1.2     wdk #define	MIPS_PROM_ENABLE	MIPS_PROM_ENTRY(49)
    308   1.2     wdk #define	MIPS_PROM_DISABLE	MIPS_PROM_ENTRY(50)
    309   1.2     wdk #define	MIPS_PROM_CLEARNOFAULT	MIPS_PROM_ENTRY(51)
    310   1.2     wdk #define	MIPS_PROM_NOTIMPLEMENT	MIPS_PROM_ENTRY(52)
    311   1.2     wdk #define MIPS_PROM_NVGET		MIPS_PROM_ENTRY(53)
    312   1.2     wdk #define MIPS_PROM_NVSET		MIPS_PROM_ENTRY(54)
    313   1.5    matt 
    314   1.6     wdk #if defined(_KERNEL) && !defined(__ASSEMBLER__)
    315   1.5    matt extern void prom_init (void);
    316   1.5    matt extern int prom_getconsole (void);
    317   1.5    matt #endif
    318   1.1     wdk 
    319   1.2     wdk #endif /* ! _MIPSCO_PROM_H */
    320