VBoxVideoVBE.h revision 9a3faa0b7c1afced2e57bc05acfe3f232f855bd4
671242f350d172e106580348e24bab66b0d7e6a5vboxsync/** @file
671242f350d172e106580348e24bab66b0d7e6a5vboxsync *
671242f350d172e106580348e24bab66b0d7e6a5vboxsync * VirtualBox graphics card port I/O definitions
671242f350d172e106580348e24bab66b0d7e6a5vboxsync */
671242f350d172e106580348e24bab66b0d7e6a5vboxsync
671242f350d172e106580348e24bab66b0d7e6a5vboxsync/*
671242f350d172e106580348e24bab66b0d7e6a5vboxsync * Copyright (C) 2006-2010 Oracle Corporation
671242f350d172e106580348e24bab66b0d7e6a5vboxsync *
671242f350d172e106580348e24bab66b0d7e6a5vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
671242f350d172e106580348e24bab66b0d7e6a5vboxsync * available from http://www.virtualbox.org. This file is free software;
671242f350d172e106580348e24bab66b0d7e6a5vboxsync * you can redistribute it and/or modify it under the terms of the GNU
671242f350d172e106580348e24bab66b0d7e6a5vboxsync * General Public License (GPL) as published by the Free Software
671242f350d172e106580348e24bab66b0d7e6a5vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
671242f350d172e106580348e24bab66b0d7e6a5vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
671242f350d172e106580348e24bab66b0d7e6a5vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
671242f350d172e106580348e24bab66b0d7e6a5vboxsync *
671242f350d172e106580348e24bab66b0d7e6a5vboxsync * The contents of this file may alternatively be used under the terms
671242f350d172e106580348e24bab66b0d7e6a5vboxsync * of the Common Development and Distribution License Version 1.0
671242f350d172e106580348e24bab66b0d7e6a5vboxsync * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
671242f350d172e106580348e24bab66b0d7e6a5vboxsync * VirtualBox OSE distribution, in which case the provisions of the
671242f350d172e106580348e24bab66b0d7e6a5vboxsync * CDDL are applicable instead of those of the GPL.
671242f350d172e106580348e24bab66b0d7e6a5vboxsync *
671242f350d172e106580348e24bab66b0d7e6a5vboxsync * You may elect to license modified versions of this file under the
671242f350d172e106580348e24bab66b0d7e6a5vboxsync * terms and conditions of either the GPL or the CDDL or both.
671242f350d172e106580348e24bab66b0d7e6a5vboxsync */
671242f350d172e106580348e24bab66b0d7e6a5vboxsync#ifndef VBoxVideoVBE_h_included
671242f350d172e106580348e24bab66b0d7e6a5vboxsync# define VBoxVideoVBE_h_included
671242f350d172e106580348e24bab66b0d7e6a5vboxsync
671242f350d172e106580348e24bab66b0d7e6a5vboxsync// GUEST <-> HOST Communication API
671242f350d172e106580348e24bab66b0d7e6a5vboxsync
671242f350d172e106580348e24bab66b0d7e6a5vboxsync// FIXME: either dynamicly ask host for this or put somewhere high in physical memory
671242f350d172e106580348e24bab66b0d7e6a5vboxsync// like 0xE0000000
671242f350d172e106580348e24bab66b0d7e6a5vboxsync
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_BANK_ADDRESS 0xA0000
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_BANK_SIZE_KB 64
671242f350d172e106580348e24bab66b0d7e6a5vboxsync
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_MAX_XRES 16384
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_MAX_YRES 16384
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_MAX_BPP 32
671242f350d172e106580348e24bab66b0d7e6a5vboxsync
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_IOPORT_INDEX 0x01CE
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_IOPORT_DATA 0x01CF
671242f350d172e106580348e24bab66b0d7e6a5vboxsync
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_INDEX_ID 0x0
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_INDEX_XRES 0x1
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_INDEX_YRES 0x2
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_INDEX_BPP 0x3
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_INDEX_ENABLE 0x4
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_INDEX_BANK 0x5
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_INDEX_VIRT_WIDTH 0x6
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_INDEX_VIRT_HEIGHT 0x7
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_INDEX_X_OFFSET 0x8
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_INDEX_Y_OFFSET 0x9
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_INDEX_VBOX_VIDEO 0xa
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_INDEX_NB_SAVED 0xb /* Number of saved registers (vbe_regs array) */
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_INDEX_NB 0xb /* Total number of VBE registers */
671242f350d172e106580348e24bab66b0d7e6a5vboxsync
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_ID0 0xB0C0
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_ID1 0xB0C1
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_ID2 0xB0C2
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_ID3 0xB0C3
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_ID4 0xB0C4
671242f350d172e106580348e24bab66b0d7e6a5vboxsync
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_ID_VBOX_VIDEO 0xBE00
671242f350d172e106580348e24bab66b0d7e6a5vboxsync/* The VBOX interface id. Indicates support for VBVA shared memory interface. */
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_ID_HGSMI 0xBE01
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_ID_ANYX 0xBE02
671242f350d172e106580348e24bab66b0d7e6a5vboxsync
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_DISABLED 0x00
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_ENABLED 0x01
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_GETCAPS 0x02
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_8BIT_DAC 0x20
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_LFB_ENABLED 0x40
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_NOCLEARMEM 0x80
671242f350d172e106580348e24bab66b0d7e6a5vboxsync
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VBE_DISPI_LFB_PHYSICAL_ADDRESS 0xE0000000
671242f350d172e106580348e24bab66b0d7e6a5vboxsync
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VGA_PORT_HGSMI_HOST 0x3b0
671242f350d172e106580348e24bab66b0d7e6a5vboxsync #define VGA_PORT_HGSMI_GUEST 0x3d0
671242f350d172e106580348e24bab66b0d7e6a5vboxsync
671242f350d172e106580348e24bab66b0d7e6a5vboxsync#endif /* VBoxVideoVBE_h_included */
671242f350d172e106580348e24bab66b0d7e6a5vboxsync