RTEMS
6.3
Toggle main menu visibility
Loading...
Searching...
No Matches
bsps
i386
pc386
include
bsp
vbe3.h
Go to the documentation of this file.
1
14
15
/*
16
* Copyright (C) 2014 Jan Doležal (dolezj21@fel.cvut.cz)
17
* CTU in Prague.
18
*
19
* The license and distribution terms for this file may be
20
* found in the file LICENSE in this distribution or at
21
* http://www.rtems.org/license/LICENSE.
22
*/
23
24
#ifndef _VBE_H
25
#define _VBE_H
26
27
#ifndef ASM
/* ASM */
28
29
#include <stdint.h>
30
31
#ifdef __cplusplus
32
extern
"C"
{
33
#endif
/* __cplusplus */
34
35
#include <
rtems/score/basedefs.h
>
36
37
/* VESA BIOS EXTENSION (VBE) Core functions Standard
38
Version: 3.0 Date: September 16, 1998 */
39
42
#define VBE_functionSupported 0x4F
44
#define VBE_callSuccessful 0x00
46
#define VBE_callFailed 0x01
48
#define VBE_notSupportedInCurHWConf 0x02
50
#define VBE_callInvalid 0x03
51
52
/* VBE Mode Numbers */
54
#define VBE_modeNumberMask 0x01FF
55
#define VBE_modeNumberShift 0x00
58
#define VBE_VESAmodeMask 0x0100
59
#define VBE_VESAmodeShift 0x08
60
/* D9-D10 = Reserved by VESA for future expansion (= 0) */
63
#define VBE_refreshRateCtrlMask 0x0800
64
#define VBE_refreshRateCtrlShift 0x0B
65
/* D12-13 = Reserved for VBE/AF (must be 0) */
68
#define VBE_linearFlatFrameBufMask 0x4000
69
#define VBE_linearFlatFrameBufShift 0x0E
72
#define VBE_preserveDispMemMask 0x8000
73
#define VBE_preserveDispMemShift 0x0F
74
75
/* Graphics modes */
77
#define VBE_R640x400C256 0x100
79
#define VBE_R640x480C256 0x101
81
#define VBE_R800x600C16 0x102
83
#define VBE_b7R800x600C16 0x6A
85
#define VBE_R800x600C256 0x103
87
#define VBE_R1024x768C16 0x104
89
#define VBE_R1024x768C256 0x105
91
#define VBE_R1280x1024C16 0x106
93
#define VBE_R1280x1024C256 0x107
95
#define VBE_R320x200C32K 0x10D
97
#define VBE_R320x200C64K 0x10E
99
#define VBE_R320x200C17M 0x10F
101
#define VBE_R640x480C32K 0x110
103
#define VBE_R640x480C64K 0x111
105
#define VBE_R640x480C17M 0x112
107
#define VBE_R800x600C32K 0x113
109
#define VBE_R800x600C64K 0x114
111
#define VBE_R800x600C17M 0x115
113
#define VBE_R1024x768C32K 0x116
115
#define VBE_R1024x768C64K 0x117
117
#define VBE_R1024x768C17M 0x118
119
#define VBE_R1280x1024C32K 0x119
121
#define VBE_R1280x1024C64K 0x11A
123
#define VBE_R1280x1024C17M 0x11B
124
#define VBE_SpecialMode 0x81FF
125
126
/* Text modes */
127
#define VBE_C80R60 0x108
128
#define VBE_C132R25 0x109
129
#define VBE_C132R43 0x10A
130
#define VBE_C132R50 0x10B
131
#define VBE_C132R60 0x10C
132
133
/* VBE function numbers - passed in AX register */
135
#define VBE_RetVBEConInf 0x4F00
137
#define VBE_RetVBEModInf 0x4F01
139
#define VBE_SetVBEMod 0x4F02
141
#define VBE_RetCurVBEMod 0x4F03
143
#define VBE_SavResSta 0x4F04
145
#define VBE_DisWinCon 0x4F05
147
#define VBE_SetGetLogScaLinLen 0x4F06
149
#define VBE_SetGetDisSta 0x4F07
151
#define VBE_SetGetDACPalFor 0x4F08
153
#define VBE_SetGetPalDat 0x4F09
155
#define VBE_RetVBEProModInt 0x4F0A
157
#define VBE_GetSetpixclo 0x4F0B
159
#define VBE_PowManExt 0x4F10
161
#define VBE_FlaPanIntExt 0x4F11
163
#define VBE_AudIntExt 0x4F13
165
#define VBE_OEMExt 0x4F14
167
#define VBE_DisDatCha 0x4F15
168
169
/* VBE subfunction numbers - passed in BL register */
170
#define VBE_RetVBESupSpeInf 0x00
172
/* *** Structures *** */
176
typedef
struct
{
178
uint16_t
offset
;
181
uint16_t
selector
;
182
}
RTEMS_PACKED
VBE_far_pointer;
183
187
typedef
struct
{
189
uint8_t
Signature
[4];
191
uint16_t
EntryPoint
;
193
uint16_t
PMInitialize
;
195
uint16_t
BIOSDataSel
;
197
uint16_t
A0000Sel
;
199
uint16_t
B0000Sel
;
201
uint16_t
B8000Sel
;
203
uint16_t
CodeSegSel
;
205
uint8_t
InProtectMode
;
207
uint8_t
Checksum
;
208
}
RTEMS_PACKED
VBE_protected_mode_info_block;
209
211
#define VBE_SIGNATURE "VESA"
213
#define VBE20plus_SIGNATURE "VBE2"
215
#define VBE_STUB_VideoModeList 0xFFFF
216
#define VBE_END_OF_VideoModeList 0xFFFF
220
typedef
struct
{
222
uint8_t
VbeSignature
[4];
224
uint16_t
VbeVersion
;
226
uint8_t *
OemStringPtr
;
228
uint8_t
Capabilities
[4];
230
uint32_t *
VideoModePtr
;
232
uint16_t
TotalMemory
;
233
/* Added for VBE 2.0+ */
235
uint16_t
OemSoftwareRev
;
237
uint8_t *
OemVendorNamePtr
;
239
uint8_t *
OemProductNamePtr
;
241
uint8_t *
OemProductRevPtr
;
243
uint8_t
Reserved
[222];
245
uint8_t
OemData
[256];
246
}
RTEMS_PACKED
VBE_vbe_info_block;
247
251
typedef
struct
{
252
/* Mandatory information for all VBE revisions */
254
uint16_t
ModeAttributes
;
256
uint8_t
WinAAttributes
;
258
uint8_t
WinBAttributes
;
260
uint16_t
WinGranularity
;
262
uint16_t
WinSize
;
264
uint16_t
WinASegment
;
266
uint16_t
WinBSegment
;
268
uint32_t *
WinFuncPtr
;
270
uint16_t
BytesPerScanLine
;
271
/* Mandatory information for VBE 1.2 and above */
273
uint16_t
XResolution
;
275
uint16_t
YResolution
;
277
uint8_t
XCharSize
;
279
uint8_t
YCharSize
;
281
uint8_t
NumberOfPlanes
;
283
uint8_t
BitsPerPixel
;
285
uint8_t
NumberOfBanks
;
287
uint8_t
MemoryModel
;
289
uint8_t
BankSize
;
291
uint8_t
NumberOfImagePages
;
293
uint8_t
Reserved0
;
294
/* Direct Color fields (required for direct/6 and YUV/7 memory models) */
296
uint8_t
RedMaskSize
;
298
uint8_t
RedFieldPosition
;
300
uint8_t
GreenMaskSize
;
302
uint8_t
GreenFieldPosition
;
304
uint8_t
BlueMaskSize
;
306
uint8_t
BlueFieldPosition
;
308
uint8_t
RsvdMaskSize
;
310
uint8_t
RsvdFieldPosition
;
312
uint8_t
DirectColorModeInfo
;
313
/* Mandatory information for VBE 2.0 and above */
315
uint32_t *
PhysBasePtr
;
317
uint32_t
Reserved1
;
319
uint16_t
Reserved2
;
320
/* Mandatory information for VBE 3.0 and above */
322
uint16_t
LinBytesPerScanLine
;
324
uint8_t
BnkNumberOfImagePages
;
326
uint8_t
LinNumberOfImagePages
;
327
/* linear modes */
329
uint8_t
LinRedMaskSize
;
331
uint8_t
LinRedFieldPosition
;
333
uint8_t
LinGreenMaskSize
;
335
uint8_t
LinGreenFieldPosition
;
337
uint8_t
LinBlueMaskSize
;
339
uint8_t
LinBlueFieldPosition
;
341
uint8_t
LinRsvdMaskSize
;
343
uint8_t
LinRsvdFieldPosition
;
345
uint32_t
MaxPixelClock
;
347
uint8_t
Reserved3
[189];
348
}
RTEMS_PACKED
VBE_mode_info_block;
349
353
typedef
struct
{
355
uint16_t
HorizontalTotal
;
357
uint16_t
HorizontalSyncStart
;
359
uint16_t
HorizontalSyncEnd
;
361
uint16_t
VerticalTotal
;
363
uint16_t
VerticalSyncStart
;
365
uint16_t
VerticalSyncEnd
;
367
uint8_t
Flags
;
369
uint32_t
PixelClock
;
371
uint16_t
RefreshRate
;
373
uint8_t
Reserved
[40];
374
}
RTEMS_PACKED
VBE_CRTC_info_block;
375
379
typedef
struct
{
381
uint8_t
Blue
;
383
uint8_t
Green
;
385
uint8_t
Red
;
387
uint8_t
Alignment
;
388
}
RTEMS_PACKED
VBE_palette_entry;
389
393
typedef
struct
{
395
uint8_t
SupVbeSignature
[7];
397
uint16_t
SupVbeVersion
;
399
uint8_t
SupVbeSubFunc
[8];
401
uint16_t
OemSoftwareRev
;
403
uint8_t *
OemVendorNamePtr
;
405
uint8_t *
OemProductNamePtr
;
407
uint8_t *
OemProductRevPtr
;
409
uint8_t *
OemStringPtr
;
411
uint8_t
Reserved
[221];
412
}
RTEMS_PACKED
VBE_supplemental_vbe_info_block;
413
414
/* VBE_vbe_info_block Capabilities */
418
#define VBE_DACswitchableMask 0x0001
422
#define VBE_notVGAcompatibleMask 0x0002
427
#define VBE_specialRAMDACopMask 0x0004
431
#define VBE_hwStereoscopicMask 0x0008
435
#define VBE_supportEVCconnMask 0x0010
436
/* D5-31 = Reserved */
437
438
/* VBE_mode_info_block ModeAttributes */
443
#define VBE_modSupInHWMask 0x0001
444
/* D1 = 1 (Reserved) */
449
#define VBE_TTYOutSupByBIOSMask 0x0004
454
#define VBE_ColorModeMask 0x0008
459
#define VBE_GraphicsModeMask 0x0010
464
#define VBE_VGACompModeMask 0x0020
469
#define VBE_VGACompWinMemModeMask 0x0040
474
#define VBE_LinFraBufModeAvaiMask 0x0080
479
#define VBE_DblScnModeAvaiMask 0x0100
484
#define VBE_InterlModeAvaiMask 0x0200
489
#define VBE_HWTripBufSupMask 0x0400
494
#define VBE_HWSterDispSupMask 0x0800
499
#define VBE_DualDispStAdrSupMask 0x1000
500
/* D13-D15 = Reserved */
501
502
/* VBE_mode_info_block WinXAttributes */
506
#define VBE_RelocWinSupMask 0x01
510
#define VBE_WinReadableMask 0x02
514
#define VBE_WinWritableMask 0x04
515
/* D3-D7 = Reserved */
516
517
/* VBE_mode_info_block MemoryModel */
518
#define VBE_TextMode 0x00
519
#define VBE_CGAGraphics 0x01
520
#define VBE_HerculesGraphics 0x02
521
#define VBE_Planar 0x03
522
#define VBE_PackedPixel 0x04
523
#define VBE_NonChain4Color256 0x05
524
#define VBE_DirectColor 0x06
525
#define VBE_YUV 0x07
526
/* 0x08-0x0F Reserved, to be defined by VESA */
527
/* 0x10-0xFF To be defined by OEM */
528
529
/* VBE_mode_info_block DirectColorModeInfo */
533
#define VBE_ColRampProgMask 0x01
537
#define VBE_RsvdBitsUsableMask 0x02
538
539
/* VBE_CRTC_info_block Flags */
544
#define VBE_GrModeDblScanMask 0x01
549
#define VBE_GrModeInterlMask 0x02
554
#define VBE_HorSncPolNegMask 0x04
559
#define VBE_VerSncPolNegMask 0x08
560
561
562
/* VESA BIOS Extensions/Display Data Channel Standard
563
Version: 1.1 November 18, 1999 */
564
565
/* VBE/DDC subfunction numbers - passed in BL register */
567
#define VBEDDC_Capabilities 0x0
569
#define VBEDDC_ReadEDID 0x1
570
571
/* DDC Capabilities */
572
/* DDC level supported - returned in BL register */
574
#define VBEDDC_1SupportedMask 0x1
576
#define VBEDDC_2SupportedMask 0x2
579
#define VBEDDC_scrBlnkDatTrMs 0x4
580
581
582
/* VESA BIOS Extensions/Serial Control Interface Standard
583
Version: 1.0 Revision: 2 Date: July 2, 1997 */
584
585
/* VBE/SCI subfunction numbers - passed in BL register */
587
#define VBESCI_ReportCapabil 0x10
589
#define VBESCI_BegSCLSDACtrl 0x11
591
#define VBESCI_EndSCLSDACtrl 0x12
593
#define VBESCI_WrtSCLClkLine 0x13
595
#define VBESCI_WrtSDADatLine 0x14
597
#define VBESCI_RdySCLClkLine 0x15
599
#define VBESCI_RdySDADatLine 0x16
600
601
/* SCI Capabilities */
602
/* I2C level supported - returned in BL register */
604
#define VBESCI_capSCLwrtMask 0x1
606
#define VBESCI_capSDAwrtMask 0x2
608
#define VBESCI_capSCLrdyMask 0x4
610
#define VBESCI_capSDArdyMask 0x8
611
612
613
#ifdef __cplusplus
614
}
615
#endif
/* __cplusplus */
616
617
#endif
/* ASM */
618
619
#endif
/* _VBE_H */
basedefs.h
This header file provides basic definitions used by the API and the implementation.
RTEMS_PACKED
#define RTEMS_PACKED
Instructs the compiler in a type definition to place members of a structure or union so that the memo...
Definition
basedefs.h:704
RTEMS_PACKED::Signature
uint8_t Signature[4]
Definition
vbe3.h:189
RTEMS_PACKED::RedMaskSize
uint8_t RedMaskSize
Definition
vbe3.h:296
RTEMS_PACKED::SupVbeSignature
uint8_t SupVbeSignature[7]
Definition
vbe3.h:395
RTEMS_PACKED::BnkNumberOfImagePages
uint8_t BnkNumberOfImagePages
Definition
vbe3.h:324
RTEMS_PACKED::Reserved3
uint8_t Reserved3[189]
Definition
vbe3.h:347
RTEMS_PACKED::WinFuncPtr
uint32_t * WinFuncPtr
Definition
vbe3.h:268
RTEMS_PACKED::HorizontalSyncEnd
uint16_t HorizontalSyncEnd
Definition
vbe3.h:359
RTEMS_PACKED::RsvdMaskSize
uint8_t RsvdMaskSize
Definition
vbe3.h:308
RTEMS_PACKED::Checksum
uint8_t Checksum
Definition
vbe3.h:207
RTEMS_PACKED::LinBlueMaskSize
uint8_t LinBlueMaskSize
Definition
vbe3.h:337
RTEMS_PACKED::HorizontalSyncStart
uint16_t HorizontalSyncStart
Definition
vbe3.h:357
RTEMS_PACKED::PixelClock
uint32_t PixelClock
Definition
vbe3.h:369
RTEMS_PACKED::GreenFieldPosition
uint8_t GreenFieldPosition
Definition
vbe3.h:302
RTEMS_PACKED::WinBSegment
uint16_t WinBSegment
Definition
vbe3.h:266
RTEMS_PACKED::Green
uint8_t Green
Definition
vbe3.h:383
RTEMS_PACKED::MemoryModel
uint8_t MemoryModel
Definition
vbe3.h:287
RTEMS_PACKED::OemSoftwareRev
uint16_t OemSoftwareRev
Definition
vbe3.h:235
RTEMS_PACKED::VerticalSyncEnd
uint16_t VerticalSyncEnd
Definition
vbe3.h:365
RTEMS_PACKED::SupVbeSubFunc
uint8_t SupVbeSubFunc[8]
Definition
vbe3.h:399
RTEMS_PACKED::XCharSize
uint8_t XCharSize
Definition
vbe3.h:277
RTEMS_PACKED::LinNumberOfImagePages
uint8_t LinNumberOfImagePages
Definition
vbe3.h:326
RTEMS_PACKED::BIOSDataSel
uint16_t BIOSDataSel
Definition
vbe3.h:195
RTEMS_PACKED::Reserved
uint8_t Reserved[222]
Definition
vbe3.h:243
RTEMS_PACKED::GreenMaskSize
uint8_t GreenMaskSize
Definition
vbe3.h:300
RTEMS_PACKED::VideoModePtr
uint32_t * VideoModePtr
Definition
vbe3.h:230
RTEMS_PACKED::BankSize
uint8_t BankSize
Definition
vbe3.h:289
RTEMS_PACKED::OemData
uint8_t OemData[256]
Definition
vbe3.h:245
RTEMS_PACKED::VbeSignature
uint8_t VbeSignature[4]
Definition
vbe3.h:222
RTEMS_PACKED::MaxPixelClock
uint32_t MaxPixelClock
Definition
vbe3.h:345
RTEMS_PACKED::OemStringPtr
uint8_t * OemStringPtr
Definition
vbe3.h:226
RTEMS_PACKED::PMInitialize
uint16_t PMInitialize
Definition
vbe3.h:193
RTEMS_PACKED::LinBytesPerScanLine
uint16_t LinBytesPerScanLine
Definition
vbe3.h:322
RTEMS_PACKED::WinASegment
uint16_t WinASegment
Definition
vbe3.h:264
RTEMS_PACKED::VbeVersion
uint16_t VbeVersion
Definition
vbe3.h:224
RTEMS_PACKED::Reserved0
uint8_t Reserved0
Definition
vbe3.h:293
RTEMS_PACKED::VerticalSyncStart
uint16_t VerticalSyncStart
Definition
vbe3.h:363
RTEMS_PACKED::VerticalTotal
uint16_t VerticalTotal
Definition
vbe3.h:361
RTEMS_PACKED::PhysBasePtr
uint32_t * PhysBasePtr
Definition
vbe3.h:315
RTEMS_PACKED::offset
uint16_t offset
Offset to segment described by selector.
Definition
vbe3.h:178
RTEMS_PACKED::A0000Sel
uint16_t A0000Sel
Definition
vbe3.h:197
RTEMS_PACKED::BytesPerScanLine
uint16_t BytesPerScanLine
Definition
vbe3.h:270
RTEMS_PACKED::LinRedMaskSize
uint8_t LinRedMaskSize
Definition
vbe3.h:329
RTEMS_PACKED::RefreshRate
uint16_t RefreshRate
Definition
vbe3.h:371
RTEMS_PACKED::WinAAttributes
uint8_t WinAAttributes
Definition
vbe3.h:256
RTEMS_PACKED::Reserved1
uint32_t Reserved1
Definition
vbe3.h:317
RTEMS_PACKED::NumberOfBanks
uint8_t NumberOfBanks
Definition
vbe3.h:285
RTEMS_PACKED::LinRsvdMaskSize
uint8_t LinRsvdMaskSize
Definition
vbe3.h:341
RTEMS_PACKED::ModeAttributes
uint16_t ModeAttributes
Definition
vbe3.h:254
RTEMS_PACKED::Blue
uint8_t Blue
Definition
vbe3.h:381
RTEMS_PACKED::OemProductNamePtr
uint8_t * OemProductNamePtr
Definition
vbe3.h:239
RTEMS_PACKED::BitsPerPixel
uint8_t BitsPerPixel
Definition
vbe3.h:283
RTEMS_PACKED::NumberOfPlanes
uint8_t NumberOfPlanes
Definition
vbe3.h:281
RTEMS_PACKED::LinRsvdFieldPosition
uint8_t LinRsvdFieldPosition
Definition
vbe3.h:343
RTEMS_PACKED::B8000Sel
uint16_t B8000Sel
Definition
vbe3.h:201
RTEMS_PACKED::DirectColorModeInfo
uint8_t DirectColorModeInfo
Definition
vbe3.h:312
RTEMS_PACKED::LinRedFieldPosition
uint8_t LinRedFieldPosition
Definition
vbe3.h:331
RTEMS_PACKED::SupVbeVersion
uint16_t SupVbeVersion
Definition
vbe3.h:397
RTEMS_PACKED::Red
uint8_t Red
Definition
vbe3.h:385
RTEMS_PACKED::Reserved2
uint16_t Reserved2
Definition
vbe3.h:319
RTEMS_PACKED::CodeSegSel
uint16_t CodeSegSel
Definition
vbe3.h:203
RTEMS_PACKED::Flags
uint8_t Flags
Definition
vbe3.h:367
RTEMS_PACKED::RsvdFieldPosition
uint8_t RsvdFieldPosition
Definition
vbe3.h:310
RTEMS_PACKED::OemVendorNamePtr
uint8_t * OemVendorNamePtr
Definition
vbe3.h:237
RTEMS_PACKED::YCharSize
uint8_t YCharSize
Definition
vbe3.h:279
RTEMS_PACKED::NumberOfImagePages
uint8_t NumberOfImagePages
Definition
vbe3.h:291
RTEMS_PACKED::Capabilities
uint8_t Capabilities[4]
Definition
vbe3.h:228
RTEMS_PACKED::InProtectMode
uint8_t InProtectMode
Definition
vbe3.h:205
RTEMS_PACKED::YResolution
uint16_t YResolution
Definition
vbe3.h:275
RTEMS_PACKED::selector
uint16_t selector
Selector or Segment depending on whether this is used from 16bit protected mode or from real mode.
Definition
vbe3.h:181
RTEMS_PACKED::LinBlueFieldPosition
uint8_t LinBlueFieldPosition
Definition
vbe3.h:339
RTEMS_PACKED::WinBAttributes
uint8_t WinBAttributes
Definition
vbe3.h:258
RTEMS_PACKED::OemProductRevPtr
uint8_t * OemProductRevPtr
Definition
vbe3.h:241
RTEMS_PACKED::LinGreenMaskSize
uint8_t LinGreenMaskSize
Definition
vbe3.h:333
RTEMS_PACKED::XResolution
uint16_t XResolution
Definition
vbe3.h:273
RTEMS_PACKED::WinGranularity
uint16_t WinGranularity
Definition
vbe3.h:260
RTEMS_PACKED::LinGreenFieldPosition
uint8_t LinGreenFieldPosition
Definition
vbe3.h:335
RTEMS_PACKED::HorizontalTotal
uint16_t HorizontalTotal
Definition
vbe3.h:355
RTEMS_PACKED::WinSize
uint16_t WinSize
Definition
vbe3.h:262
RTEMS_PACKED::BlueMaskSize
uint8_t BlueMaskSize
Definition
vbe3.h:304
RTEMS_PACKED::B0000Sel
uint16_t B0000Sel
Definition
vbe3.h:199
RTEMS_PACKED::BlueFieldPosition
uint8_t BlueFieldPosition
Definition
vbe3.h:306
RTEMS_PACKED::RedFieldPosition
uint8_t RedFieldPosition
Definition
vbe3.h:298
RTEMS_PACKED::Alignment
uint8_t Alignment
Definition
vbe3.h:387
RTEMS_PACKED::TotalMemory
uint16_t TotalMemory
Definition
vbe3.h:232
RTEMS_PACKED::EntryPoint
uint16_t EntryPoint
Definition
vbe3.h:191
Generated by
1.18.0