summaryrefslogtreecommitdiffstats
path: root/sys/i386/include/pc
diff options
context:
space:
mode:
authorsos <sos@FreeBSD.org>1998-09-15 18:16:39 +0000
committersos <sos@FreeBSD.org>1998-09-15 18:16:39 +0000
commit653c2af6aea50955f84c98c164cfd99edb197426 (patch)
tree0a8dfaf5cfe4668ea247fe425c8b3d1a87f595d6 /sys/i386/include/pc
parent9a318dd66f83207c7abcee476e380d062939ea19 (diff)
downloadFreeBSD-src-653c2af6aea50955f84c98c164cfd99edb197426.zip
FreeBSD-src-653c2af6aea50955f84c98c164cfd99edb197426.tar.gz
Add VESA support to syscons.
Kazu writes: The VESA support code requires vm86 support. Make sure your kernel configuration file has the following line. options "VM86" If you want to statically link the VESA support code to the kernel, add the following option to the kernel configuration file. options "VESA" The vidcontrol command now accepts the following video mode names: VESA_132x25, VESA_132x43, VESA_132x50, VESA_132x60, VESA_800x600 The VESA_800x600 mode is a raster display mode. The 80x25 text will be displayed on the 800x600 screen. Useful for some laptop computers. vidcontrol accepts the new `-i <info>' option, where <info> must be either `adapter' or `mode'. When the `-i adapter' option is given, vidcontrol will print basic information (not much) on the video adapter. When the `-i mode' option is specified, vidcontrol will list video modes which are actually supported by the video adapter. Submitted by: Kazutaka YOKOTA yokota@FreeBSD.ORG
Diffstat (limited to 'sys/i386/include/pc')
-rw-r--r--sys/i386/include/pc/vesa.h127
1 files changed, 127 insertions, 0 deletions
diff --git a/sys/i386/include/pc/vesa.h b/sys/i386/include/pc/vesa.h
new file mode 100644
index 0000000..4fa38ee
--- /dev/null
+++ b/sys/i386/include/pc/vesa.h
@@ -0,0 +1,127 @@
+/*-
+ * Copyright (c) 1998 Kazutaka YOKOTA (yokota@zodiac.mech.utsunomiya-u.ac.jp)
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $Id$
+ */
+
+#ifndef _MACHINE_PC_VESA_H
+#define _MACHINE_PC_VESA_H
+
+struct vesa_info
+{
+ /* mandatory fields */
+ u_int8_t v_sig[4] __attribute__ ((packed)); /* VESA */
+ u_int16_t v_version __attribute__ ((packed)); /* ver in BCD */
+ u_int32_t v_oemstr __attribute__ ((packed)); /* OEM string */
+ u_int32_t v_flags __attribute__ ((packed)); /* flags */
+#define V_DAC8 (1<<0)
+#define V_NONVGA (1<<1)
+#define V_SNOW (1<<2)
+ u_int32_t v_modetable __attribute__ ((packed)); /* modes */
+ u_int16_t v_memsize __attribute__ ((packed)); /* in 64K */
+ /* 2.0 */
+ u_int16_t v_revision __attribute__ ((packed)); /* software rev */
+ u_int32_t v_venderstr __attribute__ ((packed)); /* vender */
+ u_int32_t v_prodstr __attribute__ ((packed)); /* product name */
+ u_int32_t v_revstr __attribute__ ((packed)); /* product rev */
+};
+
+struct vesa_mode
+{
+ /* mandatory fields */
+ u_int16_t v_modeattr;
+#define V_MODESUPP (1<<0) /* VESA mode attributes */
+#define V_MODEOPTINFO (1<<1)
+#define V_MODEBIOSOUT (1<<2)
+#define V_MODECOLOR (1<<3)
+#define V_MODEGRAPHICS (1<<4)
+#define V_MODENONVGA (1<<5)
+#define V_MODENONBANK (1<<6)
+#define V_MODELFB (1<<7)
+#define V_MODEVESA (1<<16) /* Private attributes */
+ u_int8_t v_waattr;
+ u_int8_t v_wbattr;
+#define V_WATTREXIST (1<<0)
+#define V_WATTRREAD (1<<1)
+#define V_WATTRWRITE (1<<2)
+ u_int16_t v_wgran;
+ u_int16_t v_wsize;
+ u_int16_t v_waseg;
+ u_int16_t v_wbseg;
+ u_int32_t v_posfunc;
+ u_int16_t v_bpscanline;
+ /* fields optional for 1.0/1.1 implementations */
+ u_int16_t v_width;
+ u_int16_t v_height;
+ u_int8_t v_cwidth;
+ u_int8_t v_cheight;
+ u_int8_t v_planes;
+ u_int8_t v_bpp;
+ u_int8_t v_banks;
+ u_int8_t v_memmodel;
+#define V_MMTEXT 0
+#define V_MMCGA 1
+#define V_MMHGC 2
+#define V_MMEGA 3
+#define V_MMPACKED 4
+#define V_MMSEQU256 5
+#define V_MMDIRCOLOR 6
+#define V_MMYUV 7
+ u_int8_t v_banksize;
+ u_int8_t v_ipages;
+ u_int8_t v_reserved0;
+ /* fields for 1.2+ implementations */
+ u_int8_t v_redmasksize;
+ u_int8_t v_redfieldpos;
+ u_int8_t v_greenmasksize;
+ u_int8_t v_greenfieldpos;
+ u_int8_t v_bluemasksize;
+ u_int8_t v_bluefieldpos;
+ u_int8_t v_resmasksize;
+ u_int8_t v_resfieldpos;
+ u_int8_t v_dircolormode;
+ /* 2.0 implementations */
+ u_int32_t v_lfb;
+ u_int32_t v_offscreen;
+ u_int8_t v_offscreensize;
+};
+
+#ifdef KERNEL
+
+#define VESA_MODE(x) ((x) >= M_VESA_BASE)
+
+int vesa_load_ioctl(void);
+int vesa_unload_ioctl(void);
+
+#ifndef VESA_MODULE
+int vesa_load(void);
+#endif
+
+#endif /* KERNEL */
+
+#endif /* !_MACHINE_PC_VESA_H */
OpenPOWER on IntegriCloud