本文将深入解析VBT中的相关内容。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
$ intel_vbt_decode i915_vbt
VBT header:
VBT signature: "$VBT SKYLAKE "
VBT version: 0x0064 (1.0)
VBT header size: 0x0030 (48)
VBT size: 0x1159 (4441)
VBT checksum: 0xd9
BDB offset: 0x00000030 (48)

BDB header:
BDB signature: "BIOS_DATA_BLOCK "
BDB version: 211
BDB header size: 0x0016 (22)
BDB size: 0x1128 (4392)

BDB blocks present:
1 2 3 6 7 8 9 10 12 13 17 18 20 26 27 28
31 32 40 41 42 43 44 46 252 253 254

BDB block 1 - General features block:
Panel fitting: text & graphics
Flexaim: yes
Message: yes
Clear screen: 0
DVO color flip required: no
External VBT: no
Enable SSC: no
LFP on override: no
Disable SSC on clone: no
Underscan support for VGA timings: no
Dynamic CD clock: yes
Hotplug support in VBIOS: no
Disable smooth vision: no
Single DVI for CRT/DVI: no
Enable 180 degree rotation: no
Inverted FDI Rx polarity: no
Extended VBIOS mode: no
Copy iLFP DTD to SDVO LVDS DTD: no
Best fit panel timing algorithm: no
Ignore strap state: no
Legacy monitor detect: yes
Integrated CRT: no
Integrated TV: no
Integrated EFP: no
DP SSC enable: no
DP SSC dongle supported: no

BDB block 2 - General definitions block:
CRT DDC GMBUS addr: 0x02
Use ACPI DPMS CRT power states: no
Skip CRT detect at boot: no
Use DPMS on AIM devices: yes
Boot display type: 0x0000
Child device size: 38
Child device count: 8
Child device info:
Device handle: 0x0008 (LFP 1 (eDP))
Device type: 0x1806 (unknown)
Internal connector
DisplayPort output
Digital output
I2C speed: 0x00
DP onboard redriver: 0x00
DP ondock redriver: 0x00
HDMI level shifter value: 0x00
HDMI max data rate: 0x00
Offset to DTD buffer for edidless CHILD: 0x00
Edidless EFP: no
Compression enable: no
Compression method CPS: no
Dual pipe ganged eDP: no
Compression structure index: 0x00)
Slave DDI port: 0x00 (HDMI-A)
AIM offset: 0
DVO Port: 0x0a (DP-A)
AIM I2C pin: 0x00
AIM Slave address: 0x00
DDC pin: 0x03
EDID buffer ptr: 0x00
DVO config: 0x00
EFP routed through dock: no
Lane reversal: no
Onboard LSPCON: no
Iboost enable: no
HPD sense invert: no
HDMI compatible? no
DP compatible? no
TMDS compatible? no
Aux channel: 0x40
Dongle detect: 0x00
Pipe capabilities: 0x00
SDVO stall signal available: no
Hotplug connect status: 0x00
Integrated encoder instead of SDVO: yes
DVO wiring: 0x00
MIPI bridge type: 00 (unknown)
Device class extension: 0x00
DVO function: 0x00
DP USB type C support: no
2X DP GPIO index: 0x00
2X DP GPIO pin number: 0x00
IBoost level for HDMI: 0x02
IBoost level for DP/eDP: 0x00
Child device info:
Device handle: 0x0004 (EFP 1 (HDMI/DVI/DP))
Device type: 0x60d6 (DisplayPort/HDMI/DVI)
Power management
Hotplug signaling
HDMI output
Content protection
High speed link
TMDS/DVI signaling
DisplayPort output
Digital output
I2C speed: 0x00
DP onboard redriver: 0x10
DP ondock redriver: 0x10
HDMI level shifter value: 0x08
HDMI max data rate: 0x00
Offset to DTD buffer for edidless CHILD: 0x8ea
Edidless EFP: no
Compression enable: no
Compression method CPS: no
Dual pipe ganged eDP: no
Compression structure index: 0x00)
Slave DDI port: 0x00 (HDMI-A)
AIM offset: 0
DVO Port: 0x07 (DP-B)
AIM I2C pin: 0x00
AIM Slave address: 0x00
DDC pin: 0x05
EDID buffer ptr: 0x00
DVO config: 0x00
EFP routed through dock: no
Lane reversal: no
Onboard LSPCON: yes
Iboost enable: no
HPD sense invert: no
HDMI compatible? no
DP compatible? no
TMDS compatible? no
Aux channel: 0x10
Dongle detect: 0x01
Pipe capabilities: 0x00
SDVO stall signal available: no
Hotplug connect status: 0x00
Integrated encoder instead of SDVO: yes
DVO wiring: 0x01
MIPI bridge type: 00 (unknown)
Device class extension: 0x00
DVO function: 0x00
DP USB type C support: no
2X DP GPIO index: 0x00
2X DP GPIO pin number: 0x00
IBoost level for HDMI: 0x02
IBoost level for DP/eDP: 0x00
Child device info:
Device handle: 0x0040 (EFP 2 (HDMI/DVI/DP))
Device type: 0x60d6 (DisplayPort/HDMI/DVI)
Power management
Hotplug signaling
HDMI output
Content protection
High speed link
TMDS/DVI signaling
DisplayPort output
Digital output
I2C speed: 0x00
DP onboard redriver: 0x10
DP ondock redriver: 0x10
HDMI level shifter value: 0x08
HDMI max data rate: 0x00
Offset to DTD buffer for edidless CHILD: 0x8fc
Edidless EFP: no
Compression enable: no
Compression method CPS: no
Dual pipe ganged eDP: no
Compression structure index: 0x00)
Slave DDI port: 0x00 (HDMI-A)
AIM offset: 0
DVO Port: 0x08 (DP-C)
AIM I2C pin: 0x00
AIM Slave address: 0x00
DDC pin: 0x04
EDID buffer ptr: 0x00
DVO config: 0x00
EFP routed through dock: no
Lane reversal: no
Onboard LSPCON: yes
Iboost enable: no
HPD sense invert: no
HDMI compatible? no
DP compatible? no
TMDS compatible? no
Aux channel: 0x20
Dongle detect: 0x01
Pipe capabilities: 0x00
SDVO stall signal available: no
Hotplug connect status: 0x00
Integrated encoder instead of SDVO: yes
DVO wiring: 0x02
MIPI bridge type: 00 (unknown)
Device class extension: 0x00
DVO function: 0x00
DP USB type C support: no
2X DP GPIO index: 0x00
2X DP GPIO pin number: 0x00
IBoost level for HDMI: 0x02
IBoost level for DP/eDP: 0x00
Child device info:
Device handle: 0x0020 (EFP 3 (HDMI/DVI/DP))
Device type: 0x60d6 (DisplayPort/HDMI/DVI)
Power management
Hotplug signaling
HDMI output
Content protection
High speed link
TMDS/DVI signaling
DisplayPort output
Digital output
I2C speed: 0x00
DP onboard redriver: 0x10
DP ondock redriver: 0x10
HDMI level shifter value: 0x08
HDMI max data rate: 0x00
Offset to DTD buffer for edidless CHILD: 0x90e
Edidless EFP: no
Compression enable: no
Compression method CPS: no
Dual pipe ganged eDP: no
Compression structure index: 0x00)
Slave DDI port: 0x00 (HDMI-A)
AIM offset: 0
DVO Port: 0x09 (DP-D)
AIM I2C pin: 0x00
AIM Slave address: 0x00
DDC pin: 0x06
EDID buffer ptr: 0x00
DVO config: 0x00
EFP routed through dock: no
Lane reversal: no
Onboard LSPCON: no
Iboost enable: no
HPD sense invert: no
HDMI compatible? no
DP compatible? no
TMDS compatible? no
Aux channel: 0x30
Dongle detect: 0x01
Pipe capabilities: 0x00
SDVO stall signal available: no
Hotplug connect status: 0x00
Integrated encoder instead of SDVO: yes
DVO wiring: 0x03
MIPI bridge type: 00 (unknown)
Device class extension: 0x00
DVO function: 0x00
DP USB type C support: no
2X DP GPIO index: 0x00
2X DP GPIO pin number: 0x00
IBoost level for HDMI: 0x02
IBoost level for DP/eDP: 0x00

BDB block 3 - Unknown, no decoding available:

BDB block 6 - Unknown, no decoding available:

BDB block 7 - Unknown, no decoding available:

BDB block 8 - Unknown, no decoding available:

BDB block 9 - PSR block:
Panel 14 *
Full link: no
Require AUX to wakeup: no
Lines to wait before link standby: 0
Idle frames to for PSR enable: 0
TP1 wakeup time: 200 usec (0x2)
TP2/TP3 wakeup time: 200 usec (0x2)

BDB block 10 - Unknown, no decoding available:

BDB block 12 - Driver feature data block:
Boot Device Algorithm: os default
Block display switching when DVD active: yes
Allow display switching when in Full Screen DOS: no
Hot Plug DVO: yes
Dual View Zoom: no
Driver INT 15h hook: no
Enable Sprite in Clone Mode: yes
Use 00000110h ID for Primary LFP: no
Boot Mode X: 1024
Boot Mode Y: 768
Boot Mode Bpp: 8
Boot Mode Refresh: 60
Enable LFP as primary: no
Selective Mode Pruning: no
Dual-Frequency Graphics Technology: yes
Default Render Clock Frequency: high
NT 4.0 Dual Display Clone Support: no
Default Power Scheme user interface: CUI
Sprite Display Assignment when Overlay is Active in Clone Mode: secondary
Display Maintain Aspect Scaling via CUI: yes
Preserve Aspect Ratio: no
Enable SDVO device power down: no
CRT hotplug: yes
LVDS config: No LVDS
Define Display statically: no
Legacy CRT max X: 0
Legacy CRT max Y: 0
Legacy CRT max refresh: 85

BDB block 13 - Unknown, no decoding available:

BDB block 17 - Unknown, no decoding available:

BDB block 18 - Unknown, no decoding available:

BDB block 20 - Unknown, no decoding available:

BDB block 26 - Unknown, no decoding available:

BDB block 27 - eDP block:
Panel 14 *
Power Sequence: T3 2000 T7 200 T9 2000 T10 500 T12 5000
Panel color depth: 18 bpp
eDP sDRRS MSA Delay: Lane 1
Fast link params:
rate: 1.62G
lanes: x2 mode
pre-emphasis: none
vswing: 0.4V
Stereo 3D feature: no
T3 optimization: yes
Vswing/preemphasis table selection: Low power (200 mV)
Fast link training: no
DPCD 600h write required: no
PWM delays:
PWM on to backlight enable: 110
Backlight disable to PWM off: 110
Full link params provided: no
Full link params:
pre-emphasis: none
vswing: 0.4V

BDB block 28 - Unknown, no decoding available:

BDB block 31 - Unknown, no decoding available:

BDB block 32 - Unknown, no decoding available:

BDB block 40 - LVDS options block:
Panel type: 14
LVDS EDID available: yes
Pixel dither: yes
PFIT auto ratio: yes
PFIT enhanced graphics mode: no
PFIT enhanced text mode: no
PFIT mode: 3

BDB block 41 - LVDS timing pointer data:
Number of entries: 3

BDB block 42 - LVDS panel data block:
Number of entries: 19 (preferred block marked with '*')
* panel type 14: 1920x1080 clock 148500000
info:
LVDS: 0x00000300
PP_ON_DELAYS: 0x025807d0
PP_OFF_DELAYS: 0x01f407d0
PP_DIVISOR: 0x00270f05
PFIT: 0x38711880
timings: 1920 2008 2053 2200 1080 1083 1089 1125 148500.00 (good)

BDB block 43 - Backlight info block:
Inverter type: 2
polarity: 0
PWM freq: 600
Minimum brightness: 0

BDB block 44 - Unknown, no decoding available:

BDB block 46 - Unknown, no decoding available:

BDB block 252 - Unknown, no decoding available:

BDB block 253 - Unknown, no decoding available:

BDB block 254 - Unknown, no decoding available:

LFP

Local Flat Panel, normally used on mobile platforms only

https://01.org/sites/default/files/documentation/acpi_igd_opregion_spec_0.pdf

EFP

External Flat Panel

https://01.org/sites/default/files/documentation/acpi_igd_opregion_spec_0.pdf

Child device

A child device is a combination of one or more displays.

eDP

eDP is an internal interface designed to connect the PC motherboard to the embedded display in a mobile PC.

DisplayPort: DP, eDP, and iDP Set to Change Display and PC Landscapes

LVDS

Many LVDS panels don’t bother to include an EDID rom, or the vendor didn’t bother to hook up the DDC wire; presumably it’s cheaper for them to stick more data in the VBIOS than add hardware. However, there are some LVDS panels with EDID roms which contain incorrect mode data for the panel (amazing, I know), and so the driver prefers to use the VBT data when both are present.

https://lore.kernel.org/patchwork/patch/268835/