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