summaryrefslogtreecommitdiff
path: root/tools
AgeCommit message (Collapse)Author
2015-06-30tools: Add an intel_firmware_decode toolDamien Lespiau
So we can inspect fw headers. Sample output: Firmware: skl_dmc_ver1_18.bin (7892 bytes) CSS header (128 bytes) module_type: DMC (9) header_len: 32 header_ver: 0x10000 module_id: 0x0 module_vendor: 0x0 date: 0x7df060c size: 1973 key_size: 0 modulus_size: 0 exponent_size: 0 version: 1.18 (0x10012) kernel_header_info: 0x0 Package header (256 bytes) header_len: 64 header_ver: 1 num_entries: 3 Firmware #1 stepping: A.* offset: 4294967295 Firmware #2 stepping: B.* offset: 4294967295 Firmware #3 stepping: *.* offset: 0 0x7f0867143000 0x7f0867143180 signature: 0x40403e3e header_len: 128 header_ver: 1 dmcc_ver: 520 project: 0x900 fw_size: 1845 fw_version: 0x10008 mmio_count: 3 write(0x0008f074, 0x00002fc0) write(0x0008f004, 0x02500204) write(0x0008f034, 0xc003b400) Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-27stats: Spwan igt_init_with_size() from igt_init()Damien Lespiau
It's all about good looking APIs. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-27stats: Add a way to specify if the data set is a population or a sampleDamien Lespiau
This changes how we compute the variance. We want an unbiased variance when reasoning about a sample. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-27stats: Add a way to retrieve the standard deviationDamien Lespiau
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-27stats: Be more precise and talk about mean, not averageDamien Lespiau
There are several types of averages eg. mean, median and mode. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-25skl_compute_wrpll: Don't try other dividers if we find a 0 central freq ↵Damien Lespiau
deviation Paulo suggested that we could short-circuit the search for a good divider if we find a 0 deviation of the DCO frequency from the central frequency. Out of the 373 test frequencies, 34 hit that fast path. Suggested-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-25skl_compute_wrpll: Sync a comment with from the kernel codeDamien Lespiau
Might as well try to keep the code in both this test and the kernel as close as possible. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-25skl_compute_wrpll: Fix the mininum deviation computationDamien Lespiau
Paulo noticed that, because we were only comparing positive deviations with positive deviations and negative deviations with negative deviations, we weren't actually always using the absolute minimal deviation at all. This improves the average deviation across all tested frequencies (373): before: average deviation: 215.13 after: average deviation: 194.47 Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-25skl_compute_wrpll: Cycle through dividers, then central freqsDamien Lespiau
Follow Paulo's comment on the corresponding kernel patch. This means we also have to move the break when we have cycled through the even dividers as well. This improves the number of even dividers used across the tested frequencies (373) (at the expense of a slightly worse average deviation, but "even dividers take precedence over a lower deviation". before: even/odd dividers: 338/35 average deviation: 206.52 after: even/odd dividers: 363/10 average deviation: 215.13 Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-25skl_compute_wrpll: Print the average deviationDamien Lespiau
It's interesting to watch the effect of some algorithm tweaks on the average deviation between the central freq and the dco freq. A metric we'd like to minimize. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-11tools: print a warning for tools replaced by intel_regThomas Wood
Cc: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-05-15intel_display_crc: A new tool to play with display CRCsDamien Lespiau
The CRC debug interface is a bit more than a simple textual file in debugfs as there are a small command language to control what we want from them. This tool starts, slowly, by allowing us to dump the pipe CRCs whenever we want. It can be handy to check what is the current CRC when we reach a certain state on the screen (when using --interactive-debug for instance) against a known CRC. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-05-12quick_dump: Expand the WM cursor registersDamien Lespiau
The tool I used to generate that list doesn't support expanding the list of registers when dealing with something like CUR_WM_A_*. Expand it by hand for now (tm). Remove CUR_PAL_${pipe}_* for the same reason (and because it's not very useful to have). Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-05-11quick_dump/skl: Add more pipe/plane registersDamien Lespiau
With the recent developments, add scaler and NV12 registers to the dump. Also add the cursor registers that were missing in the first batch. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-05-11build: Add missing line continuationDamien Lespiau
When -lrt was added, it was missing a '\' at the end of line. Add it. Cc: Tim Gore <tim.gore@intel.com> Cc: Thomas Wood <thomas.wood@intel.com> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-05-08skl_compute_wrpll: Prefer even dividersDamien Lespiau
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-05-08skl_compute_wrpll: Count how many even/odd dividers we computeDamien Lespiau
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-05-08skl_compute_wrpll: Make sure we respect the DCO frequency constraintsDamien Lespiau
We might as well verify that we have a semblance of all being in order by making sure the DCO frequency is within the expected bounds. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-05-08skl_compute_wrpll: Add a way to test the SKL WRPLL algorithmDamien Lespiau
I had various problems (infinite loops, unable to compute dividers for certain frequencies) after implementing a BSpec update. Much easier to debug that in userspace. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-05-08compute_wrpll: Rename ddi_compute_wrpll to hsw_compute_wrpllDamien Lespiau
We're going to add the SKL version, time to rename the HSW/BDW one. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-05-05rename global mmio variable to igt_global_mmioJani Nikula
Global variable names should reflect the fact that they are indeed global, and at the very least they should not be as short as just "mmio". Rename mmio to igt_global_mmio. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2015-05-05intel_vga_{read,write}: use INREG and OUTREGJani Nikula
Use INREG and OUTREG instead of using mmio directly. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2015-05-05intel_display_poller: use INREG and OUTREGJani Nikula
Use INREG and OUTREG instead of using mmio directly. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2015-05-05intel_watermark: switch to INREGJani Nikula
Use INREG instead of using mmio directly. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2015-05-05intel_reg_{read,write}: switch to INREG and OUTREGJani Nikula
Use INREG and OUTREG instead of using mmio directly. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2015-05-05intel_reg_checker: switch to INREGJani Nikula
Use INREG instead of using mmio directly. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2015-05-05intel_backlight: switch to INREG and OUTREGJani Nikula
Use INREG and OUTREG instead of using mmio directly. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2015-05-05intel_reg: switch to INREG and OUTREGJani Nikula
Use INREG and OUTREG instead of using mmio directly. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2015-04-27tools: add missing header to distributed sourcesThomas Wood
Make sure all the sources for intel_reg are included in the distribution. Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-04-27tools: update .gitignoreThomas Wood
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-04-23intel_reg: introduce one intel_reg tool to rule them allJani Nikula
Three Tools for the Elven-kings under the sky, Seven for the Dwarf-lords in their halls of stone, Nine for Mortal Men doomed to die, One for the Dark Lord on his dark throne In the Land of Mordor where the Shadows lie. One Tool to rule them all, One Tool to find them, One Tool to bring them all and in the darkness bind them In the Land of Mordor where the Shadows lie. J.R.R. Tolkien's epigraph to The Lord of The Tools | sed 's/Ring/Tool/g' Introduce intel_reg as the one Intel graphics register multitool to replace intel_reg_read, intel_reg_write, intel_iosf_sb_read, intel_iosf_sb_write, intel_vga_read, intel_vga_write, intel_reg_dumper, intel_reg_snapshot, and quick_dump.py. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2015-04-22tools/quick_dump/makefile.am: add -lrt to get clock_gettimeTim Gore
Attempting to build IGT on linux without libunwind fails due to tools/quick_dump not linking the rt library, causing an undefined symbol error for clock_gettime. Adding -lrt to the list of libraries in Makefile.am fixes this. Signed-off-by: Tim Gore <tim.gore@intel.com> Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-04-16quick_dump: Fix undefined symbols from libunwindVille Syrjälä
../../lib/.libs/libintel_tools.a(igt_core.o): In function `print_backtrace': intel-gpu-tools/lib/igt_core.c:981: undefined reference to `_Ux86_64_getcontext' intel-gpu-tools/lib/igt_core.c:982: undefined reference to `_ULx86_64_init_local' intel-gpu-tools/lib/igt_core.c:983: undefined reference to `_ULx86_64_step' intel-gpu-tools/lib/igt_core.c:987: undefined reference to `_ULx86_64_get_proc_name' Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2015-04-16quick_dump: Don't allow undefined symbols in _chipset.soVille Syrjälä
Every time _chipset.so has undefined symbols we fail to notice it at build time and then get to wonder why quick_dump fails to actually work. Pass -Wl,--no-undefined to the linker to get a build time error instead of the current runtime error. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2015-04-08tools/intel_reg_dumper: fix PIPECONF decodeImre Deak
- decode the register for BXT too - decode interlace on VLV/CHV too - don't decode rotation and bpc on platforms where these fields are not defined Signed-off-by: Imre Deak <imre.deak@intel.com>
2015-04-08tools/intel_reg_dumper: fix DSPCNTR decode for BXTImre Deak
Signed-off-by: Imre Deak <imre.deak@intel.com>
2015-04-08tools/intel_bios_read: fix SSC freq for BXTImre Deak
On BXT the SSC reference frequency is fixed 100MHz. Signed-off-by: Imre Deak <imre.deak@intel.com>
2015-04-08tools/intel_bios_reader: fix SSC freq for VLV/CHVImre Deak
VLV/CHV has a fixed 100MHz SSC reference frequency. Signed-off-by: Imre Deak <imre.deak@intel.com>
2015-03-26lib: print a stack trace when a test assertion failsThomas Wood
Add an optional dependency on libunwind to print stack traces when a test assertion fails. Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-03-26tools/intel_error_decode: Add gen8+ fault data encodingsMika Kuoppala
These two registers contains the 48bit fault address. Reviewed-by: Michel Thierry <michel.thierry@intel.com> Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
2015-03-26tools/intel_error_decode: Add decodings for FAULT_REGMika Kuoppala
Add decodings for FAULT_REG v2: fix fault encodings and ignore addr type for gen8+ (Michel) fix engine mask Reviewed-by: Michel Thierry <michel.thierry@intel.com> Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
2015-03-26tools/intel_error_decode: Add ERROR decodings for gen8Mika Kuoppala
Add ERROR decodings for gen8 Reviewed-by: Michel Thierry <michel.thierry@intel.com> Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
2015-03-25tools: Update .gitignoreVille Syrjälä
Ignore intel_watermark and unignore the, now extinct, intel_dpio_{read,write}. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2015-03-24tools/intel_watermark: Tool to decode watermark registersVille Syrjälä
The watermark registers on the gmch platform are a bit of a mess. Add a tool to make some sense of them. While at it decode the ilk-bdw wm registers as well. SKL+ is left out for now since it's a very different beast. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2015-03-24tools/intel_iosf_sb_read: Support different register stridesVille Syrjälä
Some IOSF SB units ogranize their registers in a pecualiar way. Even though the registers are 32 bits wide, the register offsets only increment by one when going from one register to the next. Correctly deal with this when dumping several consecutive registers. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2015-03-24tools/intel_iosf_sb_read: Add -c command line option like intel_reg_readVille Syrjälä
Add a command line option '-c <count>' that can be used to read set of consecutive registers without having to specify the offset for each of them. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2015-03-24tools/intel_iosf_sb_*: Support reading/writing multiple registers at onceVille Syrjälä
Allow the user to specify a list of registers to read, and register/value pairs to write. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2015-03-24tools/intel_iosf_sb_*: Use getopt() to parse the optionsVille Syrjälä
I want to add some command line options so switch to getopt() to make that easier. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2015-03-24tools/intel_iosf_sb_*: Replace if ladder with an array and bsearch()Ville Syrjälä
Replace the silly strcasecmp() if ladder with and array that maps the unit names to port numbers. And keep the thing sorted so we can do the lookup with bsearch() for extra speed :) Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2015-03-24tools: Remove intel_dpio_{read,write} toolsVille Syrjälä
intel_dpio_{read,write} as redundant as intel_iosf_sb_{read,write} handle the same task. The difference between the tools was the opcode used to read/write the registers, but with DPIO both opcodes work just fine, so there's no need for both sets of tools. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>