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

Annotation of sys/arch/solbourne/include/prom.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: prom.h,v 1.1 2005/04/19 21:30:18 miod Exp $   */
        !             2: /*
        !             3:  * Copyright (c) 2005, Miodrag Vallat
        !             4:  *
        !             5:  * Redistribution and use in source and binary forms, with or without
        !             6:  * modification, are permitted provided that the following conditions
        !             7:  * are met:
        !             8:  * 1. Redistributions of source code must retain the above copyright
        !             9:  *    notice, this list of conditions and the following disclaimer.
        !            10:  * 2. Redistributions in binary form must reproduce the above copyright
        !            11:  *    notice, this list of conditions and the following disclaimer in the
        !            12:  *    documentation and/or other materials provided with the distribution.
        !            13:  *
        !            14:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
        !            15:  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
        !            16:  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
        !            17:  * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
        !            18:  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
        !            19:  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
        !            20:  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
        !            21:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
        !            22:  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
        !            23:  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
        !            24:  * POSSIBILITY OF SUCH DAMAGE.
        !            25:  */
        !            26:
        !            27: #ifndef        _SOLBOURNE_PROM_H_
        !            28: #define        _SOLBOURNE_PROM_H_
        !            29:
        !            30: /*
        !            31:  * The following describes the PROM communication structure,
        !            32:  * which appears at the beginning of physical memory.
        !            33:  */
        !            34:
        !            35: #define        PROM_CODE_PA            0x00000000
        !            36: #define        PROM_CODE_VA            PTW0_BASE
        !            37: #define        PROM_DATA_PA            PHYSMEM_BASE
        !            38: #define        PROM_DATA_VA            PTW1_BASE
        !            39:
        !            40: struct sb_prom {
        !            41:        int     sp_interface;                   /* interface version */
        !            42:        int     (*sp_interp)(const char *);     /* prom commands */
        !            43:        char    sp_version[128];                /* prom version */
        !            44:        int     (*sp_eval)(const char *);       /* forth commands */
        !            45:        int     sp_ramdisk;                     /* ramdisk size if any in MB */
        !            46:        int     sp_promend;                     /* first available va */
        !            47:        int     sp_memsize;                     /* memory size in pages... */
        !            48:        int     sp_memsize_mb;                  /* ...and in MB */
        !            49:        int     sp_reserve_start;               /* reserved area (in pages) */
        !            50:        int     sp_reserve_len;                 /* and length (in pages) */
        !            51:        vaddr_t sp_msgbufp;                     /* PROM msgbuf pointer */
        !            52:        int     sp_sash_usrtrap;
        !            53:        int     sp_rootnode;
        !            54:        int     sp_validregs;                   /* nonzero if registers... */
        !            55:        int     sp_regs[100];                   /* ...array is valid */
        !            56:        int     sp_revision;                    /* prom revision */
        !            57: };
        !            58:
        !            59: #define        PROM_INTERFACE          4
        !            60:
        !            61: /*
        !            62:  * Reset strings
        !            63:  */
        !            64:
        !            65: #define        PROM_RESET_COLD         "cold"
        !            66: #define        PROM_RESET_WARM         "warm"
        !            67: #define        PROM_RESET_HALT         "halt"
        !            68:
        !            69: /*
        !            70:  * Environment variables (all upper-case)
        !            71:  */
        !            72:
        !            73: #define        ENV_ETHERADDR           "ENETADDR"
        !            74: #define        ENV_INPUTDEVICE         "INPUT-DEVICE"
        !            75: #define        ENV_MODEL               "MODEL"
        !            76: #define        ENV_OUTPUTDEVICE        "OUTPUT-DEVICE"
        !            77: #define        ENV_TTYA                "TTYA_MODE"
        !            78: #define        ENV_TTYB                "TTYB_MODE"
        !            79:
        !            80: /*
        !            81:  * Node structures
        !            82:  */
        !            83:
        !            84: struct prom_node {
        !            85:        int     pn_sibling;
        !            86:        int     pn_child;
        !            87:        vaddr_t pn_props;
        !            88:        char    *pn_name;
        !            89: };
        !            90:
        !            91: struct prom_prop {
        !            92:        struct prom_prop *pp_next;
        !            93:        size_t  pp_size;
        !            94:        char    pp_data[0];
        !            95: };
        !            96:
        !            97: /*
        !            98:  * System model
        !            99:  */
        !           100:
        !           101: extern int sysmodel;
        !           102:
        !           103: #define        SYS_S4000       0xf4
        !           104: #define        SYS_S4100       0xf5
        !           105:
        !           106: const char *prom_getenv(const char *);
        !           107:
        !           108: #endif /* _SOLBOURNE_PROM_H_ */

CVSweb