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

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

1.1     ! nbrk        1: /*     $OpenBSD: prom.h,v 1.5 2004/01/24 21:10:31 miod Exp $ */
        !             2: /*
        !             3:  * Copyright (c) 2001 Steve Murphree, Jr.
        !             4:  * All rights reserved.
        !             5:  *
        !             6:  * Redistribution and use in source and binary forms, with or without
        !             7:  * modification, are permitted provided that the following conditions
        !             8:  * are met:
        !             9:  * 1. Redistributions of source code must retain the above copyright
        !            10:  *    notice, this list of conditions and the following disclaimer.
        !            11:  * 2. Redistributions in binary form must reproduce the above copyright
        !            12:  *    notice, this list of conditions and the following disclaimer in the
        !            13:  *    documentation and/or other materials provided with the distribution.
        !            14:  *
        !            15:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
        !            16:  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
        !            17:  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
        !            18:  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
        !            19:  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
        !            20:  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        !            21:  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        !            22:  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        !            23:  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
        !            24:  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        !            25:  */
        !            26: #ifndef __MACHINE_PROM_H__
        !            27: #define __MACHINE_PROM_H__
        !            28:
        !            29: #define MVMEPROM_INCHR         0x0000
        !            30: #define MVMEPROM_INSTAT                0x0001
        !            31: #define MVMEPROM_INLN          0x0002
        !            32: #define MVMEPROM_READSTR       0x0003
        !            33: #define MVMEPROM_READLN                0x0004
        !            34: #define MVMEPROM_CHKBRK                0x0005
        !            35: #define MVMEPROM_DSKRD         0x0010
        !            36: #define MVMEPROM_DSKWR         0x0011
        !            37: #define MVMEPROM_DSKCFIG       0x0012
        !            38: #define MVMEPROM_DSKFMT                0x0014
        !            39: #define MVMEPROM_DSKCTRL       0x0015
        !            40: #define MVMEPROM_NETRD         0x0018
        !            41: #define MVMEPROM_NETWR         0x0019
        !            42: #define MVMEPROM_NETCFIG       0x001a
        !            43: #define MVMEPROM_NETFOPEN      0x001b
        !            44: #define MVMEPROM_NETFREAD      0x001c
        !            45: #define MVMEPROM_NETCTRL       0x001d
        !            46: #define MVMEPROM_OUTCHR                0x0020
        !            47: #define MVMEPROM_OUTSTR                0x0021
        !            48: #define MVMEPROM_OUTLN         0x0022
        !            49: #define MVMEPROM_WRITE         0x0023
        !            50: #define MVMEPROM_WRITELN       0x0024
        !            51: #define MVMEPROM_WRITDLN       0x0025
        !            52: #define MVMEPROM_PCRLF         0x0026
        !            53: #define MVMEPROM_ERASLN                0x0027
        !            54: #define MVMEPROM_WRITD         0x0028
        !            55: #define MVMEPROM_SNDBRK                0x0029
        !            56: #define MVMEPROM_DELAY         0x0043
        !            57: #define MVMEPROM_RTC_TM                0x0050
        !            58: #define MVMEPROM_RTC_DT                0x0051
        !            59: #define MVMEPROM_RTC_DSP       0x0052
        !            60: #define MVMEPROM_RTC_RD                0x0053
        !            61: #define MVMEPROM_REDIR         0x0060
        !            62: #define MVMEPROM_REDIR_I       0x0061
        !            63: #define MVMEPROM_REDIR_O       0x0062
        !            64: #define MVMEPROM_EXIT          0x0063
        !            65: #define MVMEPROM_RETURN                MVMEPROM_EXIT
        !            66: #define MVMEPROM_BINDEC                0x0064
        !            67: #define MVMEPROM_CHANGEV       0x0067
        !            68: #define MVMEPROM_STRCMP                0x0068
        !            69: #define MVMEPROM_MUL32         0x0069
        !            70: #define MVMEPROM_DIV32         0x006a
        !            71: #define MVMEPROM_CHKSUM                0x006b
        !            72: #define MVMEPROM_BRD_ID                0x0070
        !            73: #define MVMEPROM_ENVIRON       0x0071
        !            74: #define MVMEPROM_PFLASH                0x0073
        !            75: #define MVMEPROM_DIAGFCN       0x0074
        !            76: #define MVMEPROM_SIOPEPS       0x0090
        !            77: #define MVMEPROM_FORKMPU       0x0100
        !            78: #define MVMEPROM_FORKMPUR      0x0101
        !            79: #define MVMEPROM_IDELMPU       0x0110
        !            80: #define MVMEPROM_IOINQ         0x0120
        !            81: #define MVMEPROM_IOINFORM      0x0124
        !            82: #define MVMEPROM_IOCONFIG      0x0128
        !            83: #define MVMEPROM_IODELETE      0x012c
        !            84: #define MVMEPROM_SYMBOLTA      0x0130
        !            85: #define MVMEPROM_SYMBOLTD      0x0131
        !            86:
        !            87: #define NETCTRLCMD_GETETHER    1
        !            88: #define ENVIRONCMD_WRITE       1
        !            89: #define ENVIRONCMD_READ                2
        !            90: #define ENVIRONTYPE_EOL                0
        !            91: #define ENVIRONTYPE_START      1
        !            92: #define ENVIRONTYPE_DISKBOOT   2
        !            93: #define ENVIRONTYPE_ROMBOOT    3
        !            94: #define ENVIRONTYPE_NETBOOT    4
        !            95: #define ENVIRONTYPE_MEMSIZE    5
        !            96:
        !            97: #define NETSTATUS_SUCCESS      0x00
        !            98: #define NETSTATUS_MISALNG      0x01
        !            99: #define NETSTATUS_BUFFLMT      0x02
        !           100: #define NETSTATUS_BADLEN       0x03
        !           101: #define NETSTATUS_INITABRT     0x04
        !           102: #define NETSTATUS_TXABRT       0x05
        !           103: #define NETSTATUS_PCIADDRERR   0x06
        !           104: #define NETSTATUS_NOPORT       0x07
        !           105: #define NETSTATUS_ILLIPL       0x08
        !           106: #define NETSTATUS_USERABRT     0x09
        !           107: #define NETSTATUS_TIMEOUT      0x0A
        !           108: #define NETSTATUS_SYSERR       0x10
        !           109: #define NETSTATUS_TXBABBLE     0x11
        !           110: #define NETSTATUS_TXCOL                0x12
        !           111: #define NETSTATUS_TXSTOPPED    0x13
        !           112: #define NETSTATUS_TXUNDERFL    0x14
        !           113: #define NETSTATUS_TXLATECOL    0x15
        !           114: #define NETSTATUS_TXLOSTCARR   0x16
        !           115: #define NETSTATUS_TXLINKFAIL   0x17
        !           116: #define NETSTATUS_TXNOCARR     0x18
        !           117: #define NETSTATUS_TXTOPHY      0x19
        !           118: #define NETSTATUS_RXCRCERR     0x20
        !           119: #define NETSTATUS_RXOVERFL     0x21
        !           120: #define NETSTATUS_RXFRAMEERR   0x22
        !           121: #define NETSTATUS_RXLDFNS      0x23
        !           122: #define NETSTATUS_RXFDCOL      0x24
        !           123: #define NETSTATUS_RXRUNTFRAME  0x25
        !           124: #define NETSTATUS_TXTONORM     0x28
        !           125: #define NETSTATUS_TXTOSETUP    0x29
        !           126: #define NETSTATUS_SROMERR      0x30
        !           127:
        !           128: #define NETCTRLCMD_INIT                0
        !           129: #define NETCTRLCMD_GETETHER    1
        !           130: #define NETCTRLCMD_TX          2
        !           131: #define NETCTRLCMD_RX          3
        !           132: #define NETCTRLCMD_FLUSH       4
        !           133: #define NETCTRLCMD_RESET       5
        !           134:
        !           135: #define NETCFG_FLAG_RD         0
        !           136: #define NETCFG_FLAG_WR         1
        !           137: #define NETCFG_FLAG_WRNV       2
        !           138:
        !           139: #ifndef LOCORE
        !           140: extern struct bugenviron bugenviron;
        !           141: extern int bugenv_init;
        !           142:
        !           143: #define BUG_ENV_END            0
        !           144: #define BUG_STARTUP_PARAM      1
        !           145: struct bug_startup {
        !           146:        char s_mode;
        !           147:        char s_menu;
        !           148:        char s_remotestart;
        !           149:        char s_probe;
        !           150:        char s_negsysfail;
        !           151:        char s_resetscsi;
        !           152:        char s_nocfblk;
        !           153:        char s_scsisync;
        !           154: };
        !           155:
        !           156: #define BUG_AUTOBOOT_INFO      2
        !           157: struct bug_autoboot {
        !           158:        char b_enable;
        !           159:        char b_poweruponly;
        !           160:        char b_clun;
        !           161:        char b_dlun;
        !           162:        char b_delay;
        !           163:        char b_string[22]; /* 0x15 + 0x1 */
        !           164: };
        !           165:
        !           166: #define BUG_ROMBOOT_INFO       3
        !           167: struct bug_romboot {
        !           168:        char r_enable;
        !           169:        char r_poweruponly;
        !           170:        char r_bootvme;
        !           171:        char r_delay;
        !           172:        unsigned r_start;
        !           173:        unsigned r_end;
        !           174: };
        !           175:
        !           176: #define BUG_NETBOOT_INFO       4
        !           177: struct bug_netboot {
        !           178:        char n_enable;
        !           179:        char n_poweruponly;
        !           180:        char n_clun;
        !           181:        char n_dlun;
        !           182:        char n_delay;
        !           183:        char *n_param;
        !           184: };
        !           185:
        !           186: #define BUG_MEMORY_INFO                5
        !           187: struct bug_memory {
        !           188:        char m_sizeenable;
        !           189:        unsigned m_start;
        !           190:        unsigned m_end;
        !           191: };
        !           192:
        !           193: struct bugenviron {
        !           194:         struct bug_startup  s;
        !           195:         struct bug_autoboot b;
        !           196:        struct bug_romboot  r;
        !           197:        struct bug_netboot  n;
        !           198:         struct bug_memory   m;
        !           199: };
        !           200:
        !           201: #define bug_localmemsize()      (bugenviron.m.m_end - bugenviron.m.m_start)
        !           202: #define bug_localmemstart()    (bugenviron.m.m_start)
        !           203: #define bug_localmemend()      (bugenviron.m.m_end)
        !           204:
        !           205: struct mvmeprom_netio {
        !           206:        u_char  clun;
        !           207:        u_char  dlun;
        !           208:        u_short status;
        !           209:        void    *addr;
        !           210:        u_long  tlen;
        !           211:        u_long  offset;
        !           212:        u_long  ttime;
        !           213:        u_long  tbytes;
        !           214:        char    filename[64];
        !           215: };
        !           216:
        !           217: struct mvmeprom_netfopen {
        !           218:        u_char  clun;
        !           219:        u_char  dlun;
        !           220:        u_short status;
        !           221:        char    filename[64];
        !           222: };
        !           223:
        !           224: struct mvmeprom_netfread {
        !           225:        u_char  clun;
        !           226:        u_char  dlun;
        !           227:        u_short status;
        !           228:        void    *addr;
        !           229:        u_short bytes;
        !           230:        u_short blk;
        !           231:        u_long  timeout;
        !           232: };
        !           233:
        !           234: struct mvmeprom_netctrl {
        !           235:        u_char  clun;
        !           236:        u_char  dlun;
        !           237:        u_short status;
        !           238:        u_long  cmd;
        !           239:        void    *addr;
        !           240:        u_long  len;
        !           241:        u_long  flags;
        !           242: };
        !           243:
        !           244: struct mvmeprom_netparam {
        !           245:        u_long  ver;
        !           246:        void *  nodeaddr;
        !           247:        void *  loadaddr;
        !           248:        void *  execaddr;
        !           249:        u_long  delay;
        !           250:        u_long  length;
        !           251:        u_long  offset;
        !           252:        void *  traceaddr;
        !           253:        u_long  client_ip;
        !           254:        u_long  server_ip;
        !           255:        u_long  subnet;
        !           256:        u_long  bcast;
        !           257:        u_long  gateway_ip;
        !           258:        u_char  rarp_retry;
        !           259:        u_char  tftp_retry;
        !           260:        u_char  rarp_cntl;
        !           261:        u_char  update_cntl;
        !           262:        char    filename[64];
        !           263:        char    args[64];
        !           264: };
        !           265:
        !           266: struct mvmeprom_netcfg {
        !           267:        u_char  clun;
        !           268:        u_char  dlun;
        !           269:        u_short status;
        !           270:        struct mvmeprom_netparam *netparam;
        !           271:        u_long  flag;
        !           272: };
        !           273:
        !           274: struct prom_environ_hdr {
        !           275:        u_char  type;
        !           276:        u_char  len;
        !           277: };
        !           278:
        !           279: struct mvmeprom_brdid {
        !           280:        u_long  eye_catcher;            /* "BDID" */
        !           281:        u_char  rev;
        !           282:        u_char  month;
        !           283:        u_char  day;
        !           284:        u_char  year;
        !           285:        u_short size;                   /* BID packet length */
        !           286:        u_short rsv1;
        !           287:        u_short model;                  /* e.g. 1603, 1604 */
        !           288:        u_short suffix;                 /* e.g. AT */
        !           289:        u_long  options;                /* Board options */
        !           290:        u_short ctrlun;                 /* boot clun */
        !           291:        u_short devlun;                 /* boot dlun */
        !           292:        u_short devtype;                /* boot device type */
        !           293:        u_short devnum;                 /* boot device number */
        !           294:        u_long  opt2;                   /* reserved */
        !           295:        u_char  version[4];
        !           296:        /* the folowing are CNFG values */
        !           297:        u_char  board_serial[12];       /* SBC serial number */
        !           298:        u_char  board_id[16];           /* SBC id */
        !           299:        u_char  pwa_id[16];             /* printed wiring assembly id */
        !           300:        u_char  old_speed[4];           /* old cpu speed field */
        !           301:        u_char  etheraddr[6];           /* mac address, all zero if no ether */
        !           302:        u_char  fill[2];
        !           303:        u_char  scsi_id[2];             /* local SCSI id */
        !           304:        u_char  speed[3];               /* cpu speed */
        !           305:        u_char  bus_speed[3];           /* pci bus speed */
        !           306:        u_char  sys_serial[16];         /* system serial (user)*/
        !           307:        u_char  sys_id[31];             /* system id (user)*/
        !           308:        u_char  license_id[9];          /* license ID (for AIX)*/
        !           309: };
        !           310:
        !           311: struct mvmeprom_time {
        !           312:         u_char year_BCD;
        !           313:         u_char month_BCD;
        !           314:         u_char day_BCD;
        !           315:         u_char wday_BCD;
        !           316:         u_char hour_BCD;
        !           317:         u_char min_BCD;
        !           318:         u_char sec_BCD;
        !           319:         u_char cal_BCD;
        !           320: };
        !           321:
        !           322: struct mvmeprom_dskio {
        !           323:        u_char  ctrl_lun;
        !           324:        u_char  dev_lun;
        !           325:        u_short status;
        !           326:        void    *pbuffer;
        !           327:        u_long  blk_num;
        !           328:        u_short blk_cnt;
        !           329:        u_char  flag;
        !           330: #define BUG_FILE_MARK  0x80
        !           331: #define IGNORE_FILENUM 0x02
        !           332: #define END_OF_FILE    0x01
        !           333:        u_char  addr_mod;
        !           334: };
        !           335: #define MVMEPROM_BLOCK_SIZE    256
        !           336:
        !           337: struct mvmeprom_args {
        !           338:         u_int  dev_lun;
        !           339:         u_int  ctrl_lun;
        !           340:         u_int  flags;
        !           341:         u_int  ctrl_addr;
        !           342:         u_int  entry;
        !           343:         u_int  conf_blk;
        !           344:         char   *arg_start;
        !           345:         char   *arg_end;
        !           346:        char    *nbarg_start;
        !           347:        char    *nbarg_end;
        !           348:        u_int   cputyp;
        !           349: };
        !           350:
        !           351: #endif
        !           352:
        !           353: #define MVMEPROM_REG_CTRLLUN   "3"
        !           354: #define MVMEPROM_REG_DEVLUN    "4"
        !           355: #define MVMEPROM_REG_SCSUPP    "5"
        !           356: #define MVMEPROM_REG_CTRLADDR  "6"
        !           357: #define MVMEPROM_REG_ENTRY     "7"
        !           358: #define MVMEPROM_REG_IPA       "8"
        !           359: #define MVMEPROM_REG_ARGSTART  "9"
        !           360: #define MVMEPROM_REG_ARGEND    "10"
        !           361: #define MVMEPROM_REG_NBARGSTART        "11"
        !           362: #define MVMEPROM_REG_NBARGEND  "12"
        !           363:
        !           364: #ifndef RB_NOSYM
        !           365: #define RB_NOSYM 0x4000
        !           366: #endif
        !           367: #endif /* __MACHINE_PROM_H__ */

CVSweb