Blame view

include/vbe.h 2.76 KB
647f56e74   Simon Glass   Add support for V...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  /******************************************************************************
   * Copyright (c) 2004, 2008 IBM Corporation
   * Copyright (c) 2009 Pattrick Hueper <phueper@hueper.net>
   * All rights reserved.
   *
   * SPDX-License-Identifier:	BSD-2-Clause
   *
   * Contributors:
   *     IBM Corporation - initial implementation
   *****************************************************************************/
  #ifndef _VBE_H
  #define _VBE_H
  
  /* these structs are for input from and output to OF */
a45200225   Bin Meng   x86: Configure VE...
15
  struct __packed vbe_screen_info {
647f56e74   Simon Glass   Add support for V...
16
17
18
19
20
21
22
23
24
  	u8 display_type;	/* 0=NONE, 1= analog, 2=digital */
  	u16 screen_width;
  	u16 screen_height;
  	/* bytes per line in framebuffer, may be more than screen_width */
  	u16 screen_linebytes;
  	u8 color_depth;	/* color depth in bits per pixel */
  	u32 framebuffer_address;
  	u8 edid_block_zero[128];
  };
a45200225   Bin Meng   x86: Configure VE...
25
  struct __packed vbe_screen_info_input {
647f56e74   Simon Glass   Add support for V...
26
27
28
29
30
31
32
33
34
35
36
  	u8 signature[4];
  	u16 size_reserved;
  	u8 monitor_number;
  	u16 max_screen_width;
  	u8 color_depth;
  };
  
  /* these structs only store the required a subset of the VBE-defined fields */
  struct __packed vbe_info {
  	char signature[4];
  	u16 version;
222f25f85   Simon Glass   bios_emulator: Ad...
37
  	u32 oem_string_ptr;
647f56e74   Simon Glass   Add support for V...
38
  	u32 capabilities;
222f25f85   Simon Glass   bios_emulator: Ad...
39
  	u32 modes_ptr;
647f56e74   Simon Glass   Add support for V...
40
  	u16 total_memory;
222f25f85   Simon Glass   bios_emulator: Ad...
41
42
43
44
  	u16 oem_version;
  	u32 vendor_name_ptr;
  	u32 product_name_ptr;
  	u32 product_rev_ptr;
647f56e74   Simon Glass   Add support for V...
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
  };
  
  struct __packed vesa_mode_info {
  	u16 mode_attributes;	/* 00 */
  	u8 win_a_attributes;	/* 02 */
  	u8 win_b_attributes;	/* 03 */
  	u16 win_granularity;	/* 04 */
  	u16 win_size;		/* 06 */
  	u16 win_a_segment;	/* 08 */
  	u16 win_b_segment;	/* 0a */
  	u32 win_func_ptr;	/* 0c */
  	u16 bytes_per_scanline;	/* 10 */
  	u16 x_resolution;	/* 12 */
  	u16 y_resolution;	/* 14 */
  	u8 x_charsize;		/* 16 */
  	u8 y_charsize;		/* 17 */
  	u8 number_of_planes;	/* 18 */
  	u8 bits_per_pixel;	/* 19 */
  	u8 number_of_banks;	/* 20 */
  	u8 memory_model;	/* 21 */
  	u8 bank_size;		/* 22 */
  	u8 number_of_image_pages; /* 23 */
  	u8 reserved_page;
  	u8 red_mask_size;
  	u8 red_mask_pos;
  	u8 green_mask_size;
  	u8 green_mask_pos;
  	u8 blue_mask_size;
  	u8 blue_mask_pos;
  	u8 reserved_mask_size;
  	u8 reserved_mask_pos;
  	u8 direct_color_mode_info;
  	u32 phys_base_ptr;
  	u32 offscreen_mem_offset;
  	u16 offscreen_mem_size;
  	u8 reserved[206];
  };
  
  struct vbe_mode_info {
  	u16 video_mode;
  	bool valid;
  	union {
  		struct vesa_mode_info vesa;
  		u8 mode_info_block[256];
  	};
  };
  
  struct vbe_ddc_info {
  	u8 port_number;	/* i.e. monitor number */
  	u8 edid_transfer_time;
  	u8 ddc_level;
  	u8 edid_block_zero[128];
  };
  
  #define VESA_GET_INFO		0x4f00
  #define VESA_GET_MODE_INFO	0x4f01
  #define VESA_SET_MODE		0x4f02
222f25f85   Simon Glass   bios_emulator: Ad...
102
  #define VESA_GET_CUR_MODE	0x4f03
647f56e74   Simon Glass   Add support for V...
103

153e1dda2   Bin Meng   video: coreboot: ...
104
  extern struct vbe_mode_info mode_info;
ee87ee82e   Simon Glass   dm: video: Add dr...
105
  struct video_priv;
5f6ad029f   Bin Meng   vbe: Make vbe_set...
106
107
108
109
  struct video_uc_platdata;
  int vbe_setup_video_priv(struct vesa_mode_info *vesa,
  			 struct video_priv *uc_priv,
  			 struct video_uc_platdata *plat);
ee87ee82e   Simon Glass   dm: video: Add dr...
110
  int vbe_setup_video(struct udevice *dev, int (*int15_handler)(void));
647f56e74   Simon Glass   Add support for V...
111
112
  
  #endif