Annotation of researchv9/sys/sundev/bw2reg.h, revision 1.1

1.1     ! root        1: /*     @(#)bw2reg.h 1.1 86/02/03 SMI   */
        !             2: 
        !             3: /*
        !             4:  * Copyright (c) 1985 by Sun Microsystems, Inc.
        !             5:  */
        !             6: 
        !             7: 
        !             8: /*
        !             9:  * Sun-2 black and white display hardware definitions
        !            10:  */
        !            11: 
        !            12: /*
        !            13:  * The Sun-2 video lives in P2 memory space (BW2MB) or is onboard
        !            14:  * (BW2OB); we can access it through
        !            15:  *     the identical virtual addresses established by the monitor
        !            16:  *     the physical address appropriate to the type.
        !            17:  * The video memory is just memory, although it can also copy data that
        !            18:  * is written to other locations.
        !            19:  * The A-side of the MB_ZSCC connects to the keyboard.
        !            20:  * The B-side of the MB_ZSCC connects to the mouse.
        !            21:  */
        !            22: 
        !            23: #define        BW2_FBSIZE              (128*1024)      /* size of frame buffer */
        !            24: 
        !            25: #define        BW2MB_FB        (char *)0x700000        /* frame buffer */
        !            26: #define        BW2MB_ZSCC      (char *)0x780000        /* UARTS */
        !            27: #define BW2MB_CR       (char *)0x781800        /* video control register */
        !            28: #define BW2MB_PGT              PGT_OBMEM
        !            29: 
        !            30: #define BW2VME_FB      (char *)0x000000
        !            31: #define BW2VME_CR      (char *)0x020000
        !            32: #define BW2VME_PGT             PGT_OBIO
        !            33: 
        !            34: /*
        !            35:  * The video control register is arranged as shown below.
        !            36:  *
        !            37:  * Vc_copybase specifies the base (physical) address in main memory
        !            38:  * where, if a write is done, the write is also done to the frame buffer.
        !            39:  * Note that copying only works on 128K boundaries even though the base
        !            40:  * address is specified in 64K units, since the low order bit is ignored.
        !            41:  */
        !            42: struct bw2cr {
        !            43:        unsigned vc_video_en:1;         /* Video enable */
        !            44:        unsigned vc_copy_en:1;          /* Copy enable */
        !            45:        unsigned vc_int_en:1;           /* Interrupt enable */
        !            46:        unsigned vc_int:1;              /* Int active - r/o */
        !            47:        unsigned vc_b_jumper:1;         /* Config jumper, 0=default */
        !            48:                                        /* FIXME: 1=manufacturing burnin */
        !            49:                                        /* This is a 'temporary' kludge */
        !            50:        unsigned vc_a_jumper:1;         /* Config jumper, 0=default */
        !            51:        unsigned vc_color_jumper:1;     /* Config jumper, 0=default */
        !            52:                                        /* 1=use S-2 color as console */
        !            53:        unsigned vc_1024_jumper:1;      /* Config jumper, 0=default */
        !            54:                                        /* 1=screen is 1024*1024 */
        !            55:        /* NOTE: vc_copybase & 0x81 == aberrant bits. Don't depend on 'em! */
        !            56: #define        weird   1
        !            57:        unsigned vc_copybase:weird+6+weird;     /* Base addr of copy memory */
        !            58: #undef weird
        !            59: };
        !            60: #define BW2_COPYSHIFT  16              /* bits to shift base address */
        !            61: 
        !            62: #define BW2_USECOPYMEM         0x1     /* config flag to use copy memory */
        !            63: 
        !            64: #define BW2_VIDEOENABLEMASK     0x8000  /* Video enable */
        !            65: #define BW2_COPYENABLEMASK      0x4000  /* Copy enable */
        !            66: #define BW2_INTENABLEMASK       0x2000  /* Interrupt enable */
        !            67: #define BW2_INTACTIVEMASK       0x1000  /* Interrupt active */
        !            68: #define BW2_COPYBASEMASK        0x007E  /* Copy base */
        !            69: 
        !            70: /*
        !            71:  * The device itself, as we remap it
        !            72:  */
        !            73: struct bw2dev {
        !            74:        u_char  image[BW2_FBSIZE];
        !            75: #ifdef sun2
        !            76:        struct bw2cr bw2cr;
        !            77:        u_char  filler[NBPG - sizeof (struct bw2cr)];
        !            78: #endif
        !            79: };

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.