[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     ! 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