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 E9
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  2.0: VESA Coordinated Video Timings (CVT) Standard, Version
165              2.0
166
167              CVT 1.2: VESA Coordinated Video Timings (CVT) Standard,  Version
168              1.2
169
170              CVT 1.2: VESA CVT v1.2 Errata E2
171
172              GTF 1.1: VESA Generalized Timing Formula Standard, Version: 1.1
173
174

OPTIONS

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

TIMING OPTIONS

273       The following options report the timings for  DMT,  VIC  and  HDMI  VIC
274       codes  and  calculate  the timings for CVT or GTF timings, based on the
275       given parameters.  The EDID will not be shown, although it can be  used
276       with the --gtf option in order to read the secondary curve parameters.
277
278       --std <byte1>,<byte2>
279              Show the standard timing represented by these two bytes.
280
281       --dmt <dmt>
282              Show the timings for the DMT with the given DMT ID.
283
284       --vic <vic>
285              Show the timings for this VIC.
286
287       --hdmi-vic <hdmivic>
288              Show the timings for this HDMI VIC.
289
290       --cvt w=<width>,h=<height>,fps=<fps>[,rb=<rb>][,interlaced][,overscan]
291              [,alt][,hblank=<hblank>][,vblank=<vblank>][,early-vsync]
292              Calculate the CVT timings for the given format.
293
294              <width>  is  the  width  in  pixels,  <height> is the frame (not
295              field!) height in lines.
296              <fps> is frames per second for progressive  timings  and  fields
297              per second for interlaced timings.
298              <rb> can be 0 (no reduced blanking, default), or 1-3 for the re‐
299              duced blanking version.
300              If interlaced is given, then this is an interlaced format.
301              If overscan is given, then this is an overscanned format.  I.e.,
302              margins are required.
303              If  alt  is  given and <rb>=2, then report the timings optimized
304              for video: 1000 / 1001 * <fps>.
305              If alt is given and <rb>=3, then the horizontal blanking is  160
306              instead of 80 pixels.
307              If  hblank  is given and <rb>=3, then the horizontal blanking is
308              <hblank> pixels (range of 80-200 and divisible by 8), overriding
309              alt.
310              If  vblank  is given and <rb>=3, then the vertical blanking time
311              is <vblank> microseconds (460 minimum, values > 705 might not be
312              supported by all RBv3 timings compliant source devices.
313              If  early-vsync  is given and <rb>=3, then select an early vsync
314              timing.
315
316       --gtf        w=<width>,h=<height>[,fps=<fps>][,horfreq=<horfreq>][,pix‐
317       clk=<pixclk>]
318              [,interlaced][,overscan][,sec‐
319              ondary][,C=<c>][,M=<m>][,K=<k>][,J=<j>]
320              Calculate the GTF timings for the given format.
321
322              <width> is the width in  pixels,  <height>  is  the  frame  (not
323              field!) height in lines.
324              <fps>  is  frames  per second for progressive timings and fields
325              per second for interlaced timings.
326              <horfreq> is the horizontal frequency in kHz.
327              <pixclk> is the pixel clock frequency in MHz.  Only one of  fps,
328              horfreq or pixclk must be given.
329              If interlaced is given, then this is an interlaced format.
330              If  overscan is given, then this is an overscanned format. I.e.,
331              margins are required.
332              If secondary is given, then the secondary GTF is  used  for  re‐
333              duced  blanking,  where <c>, <m>, <k> and <j> are parameters for
334              the secondary curve.  If none of the secondary curve  parameters
335              were  set,  and  an  EDID file is passed as command line option,
336              then the secondary curve parameters are read from that EDID.
337              The default secondary curve parameters are 40 for <c>,  600  for
338              <m>, 128 for <k> and 20 for <j>.  These values correspond to the
339              normal curve that GTF uses.
340
341       --list-established-timings
342              List all known Established Timings.
343
344       --list-dmts
345              List all known DMTs.
346
347       --list-vics
348              List all known VICs.
349
350       --list-hdmi-vics
351              List all known HDMI VICs.
352
353

NOTES

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

SEE ALSO

363       Xorg(1), xrandr(1), cec-ctl(1), xorg.conf(5), fb.modes(5)
364

AUTHORS

366       edid-decode  was  written by Adam Jackson, with contributions from Eric
367       Anholt, Damien Lespiau, Hans Verkuil and others.  For complete  history
368       and  the  latest  version, see http://git.linuxtv.org/cgit.cgi/edid-de
369       code.git
370
371
372
373                                                                edid-decode(1)
Impressum