1131abc56SHans de Goede /* SPDX-License-Identifier: MIT */
2131abc56SHans de Goede /* Copyright (C) 2006-2016 Oracle Corporation */
3131abc56SHans de Goede 
4131abc56SHans de Goede #ifndef __VBOXVIDEO_VBE_H__
5131abc56SHans de Goede #define __VBOXVIDEO_VBE_H__
6131abc56SHans de Goede 
7131abc56SHans de Goede /* GUEST <-> HOST Communication API */
8131abc56SHans de Goede 
9131abc56SHans de Goede #define VBE_DISPI_BANK_ADDRESS          0xA0000
10131abc56SHans de Goede #define VBE_DISPI_BANK_SIZE_KB          64
11131abc56SHans de Goede 
12131abc56SHans de Goede #define VBE_DISPI_MAX_XRES              16384
13131abc56SHans de Goede #define VBE_DISPI_MAX_YRES              16384
14131abc56SHans de Goede #define VBE_DISPI_MAX_BPP               32
15131abc56SHans de Goede 
16131abc56SHans de Goede #define VBE_DISPI_IOPORT_INDEX          0x01CE
17131abc56SHans de Goede #define VBE_DISPI_IOPORT_DATA           0x01CF
18131abc56SHans de Goede 
19131abc56SHans de Goede #define VBE_DISPI_IOPORT_DAC_WRITE_INDEX  0x03C8
20131abc56SHans de Goede #define VBE_DISPI_IOPORT_DAC_DATA         0x03C9
21131abc56SHans de Goede 
22131abc56SHans de Goede #define VBE_DISPI_INDEX_ID              0x0
23131abc56SHans de Goede #define VBE_DISPI_INDEX_XRES            0x1
24131abc56SHans de Goede #define VBE_DISPI_INDEX_YRES            0x2
25131abc56SHans de Goede #define VBE_DISPI_INDEX_BPP             0x3
26131abc56SHans de Goede #define VBE_DISPI_INDEX_ENABLE          0x4
27131abc56SHans de Goede #define VBE_DISPI_INDEX_BANK            0x5
28131abc56SHans de Goede #define VBE_DISPI_INDEX_VIRT_WIDTH      0x6
29131abc56SHans de Goede #define VBE_DISPI_INDEX_VIRT_HEIGHT     0x7
30131abc56SHans de Goede #define VBE_DISPI_INDEX_X_OFFSET        0x8
31131abc56SHans de Goede #define VBE_DISPI_INDEX_Y_OFFSET        0x9
32131abc56SHans de Goede #define VBE_DISPI_INDEX_VBOX_VIDEO      0xa
33131abc56SHans de Goede #define VBE_DISPI_INDEX_FB_BASE_HI      0xb
34131abc56SHans de Goede 
35131abc56SHans de Goede #define VBE_DISPI_ID0                   0xB0C0
36131abc56SHans de Goede #define VBE_DISPI_ID1                   0xB0C1
37131abc56SHans de Goede #define VBE_DISPI_ID2                   0xB0C2
38131abc56SHans de Goede #define VBE_DISPI_ID3                   0xB0C3
39131abc56SHans de Goede #define VBE_DISPI_ID4                   0xB0C4
40131abc56SHans de Goede 
41131abc56SHans de Goede #define VBE_DISPI_ID_VBOX_VIDEO         0xBE00
42131abc56SHans de Goede /* The VBOX interface id. Indicates support for VBVA shared memory interface. */
43131abc56SHans de Goede #define VBE_DISPI_ID_HGSMI              0xBE01
44131abc56SHans de Goede #define VBE_DISPI_ID_ANYX               0xBE02
45131abc56SHans de Goede 
46131abc56SHans de Goede #define VBE_DISPI_DISABLED              0x00
47131abc56SHans de Goede #define VBE_DISPI_ENABLED               0x01
48131abc56SHans de Goede #define VBE_DISPI_GETCAPS               0x02
49131abc56SHans de Goede #define VBE_DISPI_8BIT_DAC              0x20
50131abc56SHans de Goede 
51131abc56SHans de Goede #define VGA_PORT_HGSMI_HOST             0x3b0
52131abc56SHans de Goede #define VGA_PORT_HGSMI_GUEST            0x3d0
53131abc56SHans de Goede 
54131abc56SHans de Goede #endif
55