diff options
Diffstat (limited to 'chips/pm_hdw.c')
-rw-r--r-- | chips/pm_hdw.c | 201 |
1 files changed, 0 insertions, 201 deletions
diff --git a/chips/pm_hdw.c b/chips/pm_hdw.c deleted file mode 100644 index 8ac94925..00000000 --- a/chips/pm_hdw.c +++ /dev/null @@ -1,201 +0,0 @@ -/* - * Mach Operating System - * Copyright (c) 1991,1990,1989 Carnegie Mellon University - * All Rights Reserved. - * - * Permission to use, copy, modify and distribute this software and its - * documentation is hereby granted, provided that both the copyright - * notice and this permission notice appear in all copies of the - * software, derivative works or modified versions, and any portions - * thereof, and that both notices appear in supporting documentation. - * - * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" - * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR - * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * Carnegie Mellon requests users of this software to return to - * - * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU - * School of Computer Science - * Carnegie Mellon University - * Pittsburgh PA 15213-3890 - * - * any improvements or extensions that they make and grant Carnegie Mellon - * the rights to redistribute these changes. - */ -/* - * File: pm_hdw.c - * Author: Alessandro Forin, Carnegie Mellon University - * Date: 9/90 - * - * Driver for the VFB01/02 Mono/Color framebuffer (pmax) - * Hardware-level operations. - */ - -#include <bm.h> -#if NBM>0 -#include <platforms.h> - -#include <machine/machspl.h> /* spl definitions */ -#include <chips/screen_defs.h> -#include <chips/pm_defs.h> -#include <chips/busses.h> -#include <machine/machspl.h> - -#ifdef DECSTATION -#include <mips/mips_cpu.h> -#include <mips/PMAX/kn01.h> - -#define KN01_CSR_ADDR PHYS_TO_K1SEG(KN01_SYS_CSR) -#define KN01_FBUF_ADDR PHYS_TO_K1SEG(KN01_PHYS_FBUF_START) -#define KN01_PLM_ADDR PHYS_TO_K1SEG(KN01_PHYS_COLMASK_START) -#define KN01_BT478_ADDR PHYS_TO_K1SEG(KN01_SYS_VDAC) -#define KN01_DC503_ADDR PHYS_TO_K1SEG(KN01_SYS_PCC) - -#define VRETRACE dc503_vretrace -#define MONO_FRAME_WIDTH 2048 -#define ISA_MONO ((*(volatile short*)KN01_CSR_ADDR)&KN01_CSR_MONO) - -#endif /*DECSTATION*/ - -#ifdef VAXSTATION -#include <vax/ka3100.h> -#define VRETRACE ka42_vretrace -#define ISA_MONO 1 -#define MONO_FRAME_WIDTH 1024 -#endif /*VAXSTATION*/ - -/* - * Definition of the driver for the auto-configuration program. - */ - -int pm_probe(), pm_intr(); -static void pm_attach(); - -vm_offset_t pm_std[] = { 0 }; -struct bus_device *pm_info[1]; -struct bus_driver pm_driver = - { pm_probe, 0, pm_attach, 0, pm_std, "pm", pm_info, }; - -/* - * Probe/Attach functions - */ - -pm_probe( /* reg, ui */) -{ - static probed_once = 0; -#ifdef DECSTATION - if (!isa_pmax()) - return 0; - if (check_memory(KN01_FBUF_ADDR, 0)) - return 0; -#endif /*DECSTATION*/ - if (probed_once++ > 1) - printf("[mappable] "); - return 1; -} - -static void -pm_attach(ui) - struct bus_device *ui; -{ - int isa_mono = ISA_MONO; - - printf(": %s%s", - isa_mono ? "monochrome" : "color", - " display"); -} - - -/* - * Interrupt routine - */ -#ifdef DECSTATION -pm_intr(unit,spllevel) - spl_t spllevel; -{ - /* this is the vertical retrace one */ - splx(spllevel); - lk201_led(unit); -} -#endif /*DECSTATION*/ - -#ifdef VAXSTATION -pm_intr(unit) -{ - lk201_led(unit); -} -#endif /*VAXSTATION*/ - -/* - * Boot time initialization: must make device - * usable as console asap. - */ -extern int - pm_cons_init(), pm_soft_reset(), - dc503_video_on(), dc503_video_off(), - pm_char_paint(), dc503_pos_cursor(), - pm_insert_line(), pm_remove_line(), pm_clear_bitmap(), - pm_set_status(), pm_get_status(), - VRETRACE(), pm_map_page(); - -static struct screen_switch pm_sw = { - screen_noop, /* graphic_open */ - pm_soft_reset, /* graphic_close */ - pm_set_status, /* set_status */ - pm_get_status, /* set_status */ - pm_char_paint, /* char_paint */ - dc503_pos_cursor, /* pos_cursor */ - pm_insert_line, /* insert_line */ - pm_remove_line, /* remove_line */ - pm_clear_bitmap, /* clear_bitmap */ - dc503_video_on, /* video_on */ - dc503_video_off, /* video_off */ - VRETRACE, /* enable vert retrace intr */ - pm_map_page /* map_page */ -}; - -pm_cold_init(unit, up) - user_info_t *up; -{ - pm_softc_t *pm; - screen_softc_t sc = screen(unit); - int isa_mono = ISA_MONO; - - bcopy(&pm_sw, &sc->sw, sizeof(sc->sw)); - if (isa_mono) { - sc->flags |= MONO_SCREEN; - sc->frame_scanline_width = MONO_FRAME_WIDTH; - } else { - sc->flags |= COLOR_SCREEN; - sc->frame_scanline_width = 1024; - } - sc->frame_height = 864; - sc->frame_visible_width = 1024; - sc->frame_visible_height = 864; - - pm_init_screen_params(sc, up); - (void) screen_up(unit, up); - -#ifdef DECSTATION - pm = pm_alloc(unit, KN01_DC503_ADDR, KN01_FBUF_ADDR, KN01_PLM_ADDR); - pm->vdac_registers = (char*)KN01_BT478_ADDR; -#endif /*DECSTATION*/ -#ifdef VAXSTATION - pm = pm_alloc(unit, cur_xxx, bm_mem, 0); -#endif /*VAXSTATION*/ - - screen_default_colors(up); - - dc503_init(pm); - - pm_soft_reset(sc); - - /* - * Clearing the screen at boot saves from scrolling - * much, and speeds up booting quite a bit. - */ - screen_blitc( unit, 'C'-'@');/* clear screen */ -} - -#endif NBM>0 |