1edid-decode(1)              General Commands Manual             edid-decode(1)
2
3
4

NAME

6       edid-decode - Decode EDID data in human-readable format
7

SYNOPSIS

9       edid-decode <options> [in [out]]
10

DESCRIPTION

12       edid-decode  decodes  EDID  monitor  description data in human-readable
13       format.  If [in] is not given, or [in] is '-', then the  EDID  will  be
14       read from standard input. If [out] is given then the EDID that was read
15       from [in] is written to [out] or to standard output if [out] is '-'. By
16       default  the  output  is written as a hex dump when writing to standard
17       output or a raw EDID if written to a file.
18
19       If [out] is given then edid-decode only does the  conversion,  it  will
20       skip the decoding step.
21
22       Input  files may be raw binaries or ASCII text.  ASCII input is scanned
23       for hex dumps; heuristics are included to search for hexdumps in  edid-
24       decode(1)  output  (as  long  as  the  initial  hex dump was included),
25       xrandr(1) property output and Xorg(1) log file formats,  otherwise  the
26       data  is  treated as a raw hexdump.  EDID blocks for connected monitors
27       can be found in /sys/class/drm/*/edid on modern Linux systems with ker‐
28       nel modesetting support.
29
30       All timings are shown in a short format, for example:
31
32           VIC   16:   1920x1080    60.000  Hz  16:9    67.500 kHz 148.500 MHz
33       (native)
34           VIC   5:  1920x1080i  60.000 Hz  16:9    33.750 kHz  74.250 MHz
35           VIC  39:  1920x1080i  50.000 Hz  16:9    31.250 kHz  72.000 MHz
36
37       Each format starts with a timings type prefix, the resolution,  an  op‐
38       tional  interlaced  indicator ('i'), the frame rate (field rate for in‐
39       terlaced formats), the picture aspect ratio, the horizontal  frequency,
40       the pixelclock frequency and optionally additional flags between paren‐
41       thesis.
42
43       Note that for interlaced formats the frame height  is  given,  not  the
44       field height. So each field in a 1920x1080i format has 540 lines.
45
46       Detailed timings have another 2-3 lines of data:
47
48           VIC   16:   1920x1080    60.000  Hz  16:9    67.500 kHz 148.500 MHz
49       (native)
50                          Hfront   88 Hsync  44 Hback 148 Hpol P
51                          Vfront    4 Vsync   5 Vback  36 Vpol P
52           VIC   5:  1920x1080i  60.000 Hz  16:9    33.750 kHz  74.250 MHz
53                          Hfront   88 Hsync  44 Hback 148 Hpol P
54                          Vfront    2 Vsync   5 Vback  15 Vpol P  Vfront  +0.5
55       Odd Field
56                          Vfront     2  Vsync   5 Vback  15 Vpol P Vback  +0.5
57       Even Field
58           VIC  39:  1920x1080i  50.000 Hz  16:9    31.250 kHz  72.000 MHz
59                          Hfront   32 Hsync 168 Hback 184 Hpol P
60                          Vfront   23 Vsync   5 Vback  57 Vpol N Both Fields
61
62       These describe the horizontal and vertical front porch, sync, backporch
63       and  sync  polarity  values. For interlaced formats there are two lines
64       for the vertical information: one for the Odd Field (aka Field  1)  and
65       one  for  the Even Field (aka Field 2). The vertical front porch of the
66       Odd Field is actually 2.5 (hence the 'Vfront +0.5' at the  end  of  the
67       line), and the back porch of the Even Field is actually 15.5 (hence the
68       'Vback  +0.5' at the end of the line).
69
70       There is a special 'VIC 39' interlaced format where  both  fields  have
71       the  same  vertical  timings,  in  that  case this is marked with 'Both
72       Fields'.
73
74       The following timing types can be shown:
75
76
77              DMT #: Discrete Monitor Timing (see DMT 1.3 standard). The  num‐
78              ber is the DMT ID in hexadecimal.
79
80              CVT: Coordinated Video Timings (formula-based, see CVT 1.2 stan‐
81              dard)
82
83              GTF: Generalized Timing  Formula  (formula-based,  see  GTF  1.1
84              standard)
85
86              IBM: Old IBM Timings
87
88              Apple: Old Apple Timings
89
90              VIC  #:  Video  Identification  Code (see CTA-861 standard). The
91              number is the actual
92                     VIC code.
93
94              HDMI VIC #: HDMI-specific Video Identification  Code  (see  HDMI
95              2.1 standard). The number
96                     is the actual HDMI VIC code.
97
98              DTD  #:  Detailed  Timings  Descriptor (see EDID standard). Also
99              used for
100                     DisplayID Video Timing Modes Types I, II, VI and VII. The
101                     number denotes that this is the Nth DTD in the EDID.
102
103       By  default  DTDs  are  shown  in the long format while others are just
104       shown in the short format. With the option --short-timings all  timings
105       are shown in short format only. With the option --long-timings all tim‐
106       ings are shown in long format.
107
108       Alternate formats for long timings can be chosen via the --xmodeline or
109       --fbmode options.
110
111

STANDARDS

113       The following EDID standards are supported by edid-decode:
114
115              EDID 1.3: VESA Enhanced Extended Display Identication Data Stan‐
116              dard, Release A, Revision 1
117
118              EDID 1.4: VESA Enhanced Extended Display Identication Data Stan‐
119              dard, Release A, Revision 2
120
121              DisplayID  1.3:  VESA  Display  Identification  Data (DisplayID)
122              Standard, Version 1.3
123
124              DisplayID 2.0: VESA DisplayID Standard, Version 2.0
125
126              DisplayID 2.0: VESA DisplayID v2.0 Errata E7
127
128              DI-EXT: VESA Display Information Extension Block  Standard,  Re‐
129              lease A
130
131              LS-EXT:  VESA Enhanced EDID Localized String Extension Standard,
132              Release A
133
134              VTB-EXT: VESA Video Timing Block Extension  Data  Standard,  Re‐
135              lease A
136
137              DTCDB:  VESA  Display  Transfer Characteristics Data Block Stan‐
138              dard, Version 1.0
139
140              DDDB: VESA Display Device Data Block (DDDB) Standard, Version 1
141
142              HDMI 1.4b: High-Definition Multimedia Interface, Version 1.4b
143
144              HDMI 2.1: High-Definition Multimedia Interface, Version 2.1
145
146              HDMI 2.1: Amendment A1 to HDMI Specification Version 2.1
147
148              CTA-861-H: A DTV Profile for Uncompressed High Speed Digital In‐
149              terfaces
150
151              SPWG Notebook Panel Specification, Version 3.5
152
153              EPI Embedded Panel Interface, Revision 1.0
154
155              Microsoft  EDID extension for head-mounted and specialized moni‐
156              tors, Version 3
157
158
159       The following related standards are also used by edid-decode:
160
161              DMT 1.3: VESA and Industry Standards and Guidelines for Computer
162              Display Monitor Timing (DMT), Version 1.0, Rev. 13
163
164              CVT  1.2: VESA Coordinated Video Timings (CVT) Standard, Version
165              1.2
166
167              GTF 1.1: VESA Generalized Timing Formula Standard, Version: 1.1
168
169

OPTIONS

171       -h, --help
172              Prints the help message.
173
174       -o, --output-format <fmt>
175              If [out] is specified, then write the EDID in format <fmt>.
176
177              The output format can be one of:
178              hex: hex numbers in ascii text (default for stdout)
179              raw: binary data (default unless writing to stdout)
180              carray: c-program struct
181              xml: XML data
182
183       -c, --check
184              Check if the EDID conforms to the standards. Warnings and  fail‐
185              ures are reported at the end.
186
187       -C, --check-inline
188              Check  if the EDID conforms to the standards. Warnings and fail‐
189              ures are reported as they happen.
190
191       -n, --native-timings
192              Report the native timings at the end. There may be multiple  na‐
193              tive  timing reports depending on whether the Source only parses
194              Block 0 (e.g. DVI outputs) or Block 0 and the CTA-861  Extension
195              Blocks (HDMI).
196
197       -p, --preferred-timings
198              Report  the  preferred timings at the end. There may be multiple
199              native timing reports  depending  on  whether  the  Source  only
200              parses  Block  0  (e.g. DVI outputs), or Block 0 and the CTA-861
201              Extension Blocks (HDMI), or Block 0 and the DisplayID  Extension
202              Blocks (typical for DisplayPort).
203
204       -P, --physical-address
205              Just  report  the HDMI Source Physical Address and nothing else.
206              Reports f.f.f.f if the EDID could not be parsed, or if there was
207              no  CTA-861 Vendor-Specific Data Block with OUI 00-0C-03. Other‐
208              wise it reports the Source Physical Address as provided in  that
209              Data Block. This can be used as input to HDMI CEC utilities such
210              as the linux cec-ctl(1) utility.
211
212       -S, --short-timings
213              Report all video timings in a short format.
214
215       -L, --long-timings
216              Report all video timings in a long format.
217
218       -X, --xmodeline
219              Report all long video timings in the ModeLine format as  defined
220              in  xorg.conf(5).   This  ModeLine  can be used in the xorg.conf
221              file or passed to xrandr(1) with the xrandr --newmode option.
222
223       -F, --fbmode
224              Report all long video timings in the video mode  format  as  de‐
225              fined in fb.modes(5).
226
227       -V, --v4l2-timings
228              Report  all  long  video timings in the video mode format as de‐
229              fined in the linux header v4l2-dv-timings.h  for  use  with  the
230              V4L2 VIDIOC_S_DV_TIMINGS ioctl.
231
232       -s, --skip-hex-dump
233              Skip the initial hex dump of the EDID.
234
235       -H, --only-hex-dump
236              Only show the hex dump of the EDID, then exit.
237
238       --skip-sha
239              Don't show the SHA hash. Normally edid-decode will show the SHA,
240              i.e. the hash of the git commit  used  to  compile  edid-decode.
241              This uniquely identifies the version of edid-decode that is used
242              to generate the warnings and failures. But it will  also  change
243              the output of edid-decode for every new commit in the git repos‐
244              itory, even if nothing else changed in the  edid-decode  output.
245              Use  this  option  to avoid including the SHA in the edid-decode
246              output.
247
248       --hide-serial-numbers
249              Replace any serial numbers  in  the  human  readable  output  by
250              '...'.   Note that they are still easily extracted from the EDID
251              hex dump at the start.
252
253       --version
254              Show the SHA hash and the last commit date.
255
256

TIMING OPTIONS

258       The following options report the timings for  DMT,  VIC  and  HDMI  VIC
259       codes  and  calculate  the timings for CVT or GTF timings, based on the
260       given parameters.  The EDID will not be shown, although it can be  used
261       with the --gtf option in order to read the secondary curve parameters.
262
263       --std <byte1>,<byte2>
264              Show the standard timing represented by these two bytes.
265
266       --dmt <dmt>
267              Show the timings for the DMT with the given DMT ID.
268
269       --vic <vic>
270              Show the timings for this VIC.
271
272       --hdmi-vic <hdmivic>
273              Show the timings for this HDMI VIC.
274
275       --cvt      w=<width>,h=<height>,fps=<fps>[,rb=<rb>][,interlaced][,over‐
276       scan][,alt]
277              Calculate the CVT timings for the given format.
278
279              <width> is the width in  pixels,  <height>  is  the  frame  (not
280              field!) height in lines.
281              <fps>  is  frames  per second for progressive timings and fields
282              per second for interlaced timings.
283              <rb> can be 0 (no reduced blanking, default), or 1-3 for the re‐
284              duced blanking version.
285              If interlaced is given, then this is an interlaced format.
286              If  overscan is given, then this is an overscanned format. I.e.,
287              margins are required.
288              If alt is given and <rb>=2, then report  the  timings  optimized
289              for video: 1000 / 1001 * <fps>.
290              If  alt is given and <rb>=3, then the horizontal blanking is 160
291              instead of 80 pixels.
292
293       --gtf        w=<width>,h=<height>[,fps=<fps>][,horfreq=<horfreq>][,pix‐
294       clk=<pixclk>]
295              [,interlaced][,overscan][,sec‐
296              ondary][,C=<c>][,M=<m>][,K=<k>][,J=<j>]
297              Calculate the GTF timings for the given format.
298
299              <width> is the width in  pixels,  <height>  is  the  frame  (not
300              field!) height in lines.
301              <fps>  is  frames  per second for progressive timings and fields
302              per second for interlaced timings.
303              <horfreq> is the horizontal frequency in kHz.
304              <pixclk> is the pixel clock frequency in MHz.  Only one of  fps,
305              horfreq or pixclk must be given.
306              If interlaced is given, then this is an interlaced format.
307              If  overscan is given, then this is an overscanned format. I.e.,
308              margins are required.
309              If secondary is given, then the secondary GTF is  used  for  re‐
310              duced  blanking,  where <c>, <m>, <k> and <j> are parameters for
311              the secondary curve.  If none of the secondary curve  parameters
312              were  set,  and  an  EDID file is passed as command line option,
313              then the secondary curve parameters are read from that EDID.
314              The default secondary curve parameters are 40 for <c>,  600  for
315              <m>, 128 for <k> and 20 for <j>.  These values correspond to the
316              normal curve that GTF uses.
317
318       --list-established-timings
319              List all known Established Timings.
320
321       --list-dmts
322              List all known DMTs.
323
324       --list-vics
325              List all known VICs.
326
327       --list-hdmi-vics
328              List all known HDMI VICs.
329
330

NOTES

332       Not all fields are decoded, or decoded  completely.   edid-decode  does
333       attempt  to  validate its input against the relevant standards, but its
334       opinions have not been double-checked with the relevant standards  bod‐
335       ies,  so  they  may  be wrong.  Do not rely on the output format, as it
336       will likely change in future versions of the tool as additional  fields
337       and extensions are added.
338

SEE ALSO

340       Xorg(1), xrandr(1), cec-ctl(1), xorg.conf(5), fb.modes(5)
341

AUTHORS

343       edid-decode  was  written by Adam Jackson, with contributions from Eric
344       Anholt, Damien Lespiau, Hans Verkuil and others.  For complete  history
345       and  the  latest  version, see http://git.linuxtv.org/cgit.cgi/edid-de
346       code.git
347
348
349
350                                                                edid-decode(1)
Impressum