[BACK]Return to eeprom.h CVS log [TXT][DIR] Up to [local] / sys / arch / sparc64 / include

Annotation of sys/arch/sparc64/include/eeprom.h, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: eeprom.h,v 1.4 2007/04/10 17:47:55 miod Exp $ */
                      2: /*     $NetBSD: eeprom.h,v 1.2 1999/12/30 16:25:17 eeh Exp $   */
                      3:
                      4: /*
                      5:  * Copyright (c) 1994 Gordon W. Ross
                      6:  * All rights reserved.
                      7:  *
                      8:  * Redistribution and use in source and binary forms, with or without
                      9:  * modification, are permitted provided that the following conditions
                     10:  * are met:
                     11:  * 1. Redistributions of source code must retain the above copyright
                     12:  *    notice, this list of conditions and the following disclaimer.
                     13:  * 2. Redistributions in binary form must reproduce the above copyright
                     14:  *    notice, this list of conditions and the following disclaimer in the
                     15:  *    documentation and/or other materials provided with the distribution.
                     16:  * 3. The name of the author may not be used to endorse or promote products
                     17:  *    derived from this software without specific prior written permission.
                     18:  *
                     19:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
                     20:  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
                     21:  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
                     22:  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
                     23:  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
                     24:  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
                     25:  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
                     26:  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
                     27:  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
                     28:  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
                     29:  */
                     30:
                     31: /*
                     32:  * Structure/definitions for the Sun3/Sun4 EEPROM.
                     33:  *
                     34:  * This information is published in the Sun document:
                     35:  * "PROM User's Manual", part number 800-1736010.
                     36:  */
                     37:
                     38:
                     39: /*
                     40:  * Note that most places where the PROM stores a "true/false" flag,
                     41:  * the true value is 0x12 and false is the usual zero.  Such flags
                     42:  * all take the values EE_TRUE or EE_FALSE so this file does not
                     43:  * need to define so many value macros.
                     44:  */
                     45: #define        EE_TRUE 0x12
                     46: #define        EE_FALSE   0
                     47:
                     48: struct eeprom {
                     49:
                     50:        /* 0x00 */
                     51:        u_char  eeTestArea[4];          /* Factory Defined */
                     52:        u_short eeWriteCount[4];        /*    ||      ||   */
                     53:        u_char  eeChecksum[4];          /*    ||      ||   */
                     54:        u_int32_t       eeLastHwUpdate;         /*    ||      ||   */
                     55:
                     56:        /* 0x14 */
                     57:        u_char  eeInstalledMem;         /* Megabytes */
                     58:        u_char  eeMemTestSize;          /*     ||    */
                     59:
                     60:        /* 0x16 */
                     61:        u_char  eeScreenSize;
                     62: #define        EE_SCR_1152X900         0x00
                     63: #define        EE_SCR_1024X1024        0x12
                     64: #define EE_SCR_1600X1280       0x13
                     65: #define EE_SCR_1440X1440       0x14
                     66:
                     67:        u_char  eeWatchDogDoesReset;    /* Watchdog timeout action:
                     68:                                         * true:  reset/reboot
                     69:                                         * false: return to monitor
                     70:                                         */
                     71:        /* 0x18 */
                     72:        u_char  eeBootDevStored;        /* Is the boot device stored:
                     73:                                         * true:  use stored device spec.
                     74:                                         * false: use default (try all)
                     75:                                         */
                     76:        /* Stored boot device spec. i.e.: "sd(Ctlr,Unit,Part)" */
                     77:        u_char  eeBootDevName[2];       /* xy,xd,sd,ie,le,st,xt,mt,...  */
                     78:        u_char  eeBootDevCtlr;
                     79:        u_char  eeBootDevUnit;
                     80:        u_char  eeBootDevPart;
                     81:
                     82:        /* 0x1E */
                     83:        u_char  eeKeyboardType;         /* zero for sun keyboards */
                     84:        u_char  eeConsole;              /* What to use for the console  */
                     85: #define        EE_CONS_BW              0x00    /* - On-board B&W / keyboard    */
                     86: #define        EE_CONS_TTYA            0x10    /* - serial port A              */
                     87: #define        EE_CONS_TTYB            0x11    /* - serial port B              */
                     88: #define        EE_CONS_COLOR           0x12    /* - Color FB / keyboard        */
                     89: #define        EE_CONS_P4OPT           0x20    /* - Option board on P4         */
                     90:
                     91:        /* 0x20 */
                     92:        u_char  eeCustomBanner;         /* Is there a custom banner:
                     93:                                         * true:  use text at 0x68
                     94:                                         * false: use Sun banner
                     95:                                         */
                     96:
                     97:        u_char  eeKeyClick;             /* true/false */
                     98:
                     99:        /* Boot device with "Diag" switch in Diagnostic mode: */
                    100:        u_char  eeDiagDevName[2];
                    101:        u_char  eeDiagDevCtlr;
                    102:        u_char  eeDiagDevUnit;
                    103:        u_char  eeDiagDevPart;
                    104:
                    105:        /* Video white-on-black (not implemented) */
                    106:        u_char  eeWhiteOnBlack;         /* true/false */
                    107:
                    108:        /* 0x28 */
                    109:        char    eeDiagPath[40];         /* path name of diag program    */
                    110:
                    111:        /* 0x50 */
                    112:        u_char  eeTtyCols;              /* normally 80 */
                    113:        u_char  eeTtyRows;              /* normally 34 */
                    114:        u_char  ee_x52[6];              /* unused */
                    115:
                    116:        /* 0x58 */
                    117:        /* Default parameters for tty A and tty B: */
                    118:        struct  eeTtyDef {
                    119:            u_char      eetBaudSet;     /* Is the baud rate set?
                    120:                                         * true:  use values here
                    121:                                         * false: use default (9600)
                    122:                                         */
                    123:            u_char      eetBaudHi;      /* i.e. 96..  */
                    124:            u_char      eetBaudLo;      /*      ..00  */
                    125:            u_char      eetNoRtsDtr;    /* true: disable H/W flow
                    126:                                         * false: enable H/W flow */
                    127:            u_char      eet_pad[4];
                    128:        } eeTtyDefA, eeTtyDefB;
                    129:
                    130:        /* 0x68 */
                    131:        char eeBannerString[80];        /* see eeCustomBanner above */
                    132:
                    133:        /* 0xB8 */
                    134:        u_short eeTestPattern;          /* must be 0xAA55 */
                    135:        u_short ee_xBA;                 /* unused */
                    136:
                    137:        /* 0xBC */
                    138:        /* Configuration data.  Hopefully we don't need it. */
                    139:        struct eeConf {
                    140:            u_char      eecData[16];
                    141:        } eeConf[12+1];
                    142:
                    143:        /* 0x18c */
                    144:        u_char  eeAltKeyTable;          /* What Key table to use:
                    145:                                         * 0x58: EEPROM tables
                    146:                                         * else: PROM key tables
                    147:                                         */
                    148:        u_char  eeKeyboardLocale;       /* extended keyboard type */
                    149:        u_char  eeKeyboardID;           /* for EEPROM key tables  */
                    150:        u_char  eeCustomLogo;           /* true: use eeLogoBitmap */
                    151:
                    152:        /* 0x190 */
                    153:        u_char  eeKeymapLC[0x80];
                    154:        u_char  eeKeymapUC[0x80];
                    155:
                    156:        /* 0x290 */
                    157:        u_char  eeLogoBitmap[64][8];    /* 64x64 bit custom logo */
                    158:
                    159:        /* 0x490 */
                    160:        u_char  ee_x490[0x500-0x490];   /* unused */
                    161:
                    162:        /* Other stuff we don't care about... */
                    163:        /* 0x500 */
                    164:        u_char  eeReserved[0x100];
                    165:        /* 0x600 */
                    166:        u_char  eeROM_Area[0x100];
                    167:        /* 0x700 */
                    168:        u_char  eeUnixArea[0x100];
                    169: };
                    170:
                    171: /*
                    172:  * The size of the eeprom on machines with the old clock is 2k.  However,
                    173:  * on machines with the new clock (and the `eeprom' in the nvram area)
                    174:  * there are only 2040 bytes available. (???).  Since we really only
                    175:  * care about the `diagnostic' area, we'll use its size when dealing
                    176:  * with the eeprom in general.
                    177:  */
                    178: #define EEPROM_SIZE            0x500
                    179:
                    180: #ifdef _KERNEL
                    181: extern char *eeprom_va;
                    182: int    eeprom_uio(struct uio *);
                    183: #endif /* _KERNEL */
                    184:

CVSweb