summaryrefslogtreecommitdiff
path: root/gk104-disable-underflow-reporting
diff options
context:
space:
mode:
authorJohn Hubbard <jhubbard@nvidia.com>2019-04-21 17:09:24 -0700
committerJohn Hubbard <jhubbard@nvidia.com>2019-04-24 11:13:31 -0700
commit60b67c31fcad6d0dc9603a034994a12efe3d5202 (patch)
treec71d32e4b2a0d2a9770ac6b9add6ed49b0320e51 /gk104-disable-underflow-reporting
parentd1be635fac4adad238916d28dde406c81ba564a8 (diff)
downloadopen-gpu-doc-60b67c31fcad6d0dc9603a034994a12efe3d5202.tar.xz
Open doc files, version 1 of everything
This copies over files from: http://download.nvidia.com/open-gpu-doc/ with a few overrides from local, as-yet-to-be-published files (generally just a file suffix and licensing tweak). Here's the script that was used to create this commit: wget -r http://download.nvidia.com/open-gpu-doc/ mv download.nvidia.com/open-gpu-doc/* . rm -rf download.nvidia.com/ find . -name index.html | xargs rm -f find . -name Thumbs.db | xargs rm -f find . -type f | grep -v \.git | xargs file | grep CRLF | cut -f1 -d: | xargs dos2unix for f in `find . -name 1 | cut -f2 -d "/"`; do pushd $f; mv 1/* .; popd; done find . -name 1 | xargs rmdir rm -rf Host-Fifo/volta/gv100 mkdir -p Host-Fifo/volta/gv100 cp $sw/docs/Public_Devel_Docs/release/Host-Fifo/volta/gv100/* Host-Fifo/volta/gv100/ rm Display-Ref-Manuals/gv100/dev_display.ref cp $sw/docs/Public_Devel_Docs/release/Display-Ref-Manuals/1/gv100/dev_display.ref \ Display-Ref-Manuals/gv100/dev_display.ref.txt git add . git mv DCB/DCB-4.0-Specification.html DCB/DCB-4.x-Specification.html git reset HEAD Display-Class-Methods/2 git reset HEAD DCB/2 git commit Reviewed-by: Andy Ritger
Diffstat (limited to 'gk104-disable-underflow-reporting')
-rw-r--r--gk104-disable-underflow-reporting/gk104-disable-underflow-reporting.txt89
1 files changed, 89 insertions, 0 deletions
diff --git a/gk104-disable-underflow-reporting/gk104-disable-underflow-reporting.txt b/gk104-disable-underflow-reporting/gk104-disable-underflow-reporting.txt
new file mode 100644
index 0000000..1519c33
--- /dev/null
+++ b/gk104-disable-underflow-reporting/gk104-disable-underflow-reporting.txt
@@ -0,0 +1,89 @@
+Synopsis:
+
+How to address an intermittent problem observed on some GK104-based products.
+
+Description:
+
+A diagnostic setting was inadvertently left enabled in the production VBIOS
+builds on some NVIDIA GK104-based graphics cards. This setting can result in a
+red screen being displayed in some rare cases, for example in response to
+certain mode-set operations.
+
+The setting in question is used as part of the product engineering process to
+make display engine underflows more easily human-detectable. This is a scenario
+in which the bandwidth provided by the GPU's video memory interface, in the
+current performance state (at relevant clock frequencies defined by this state),
+is insufficient to satisfy the current isochronous streaming requirements of the
+display engine.
+
+The NVIDIA Accelerated Linux Graphics Driver disables this setting when it
+initializes the GPU. However, it is NVIDIA's suggestion that independently
+developed drivers also disable it.
+
+Workaround:
+
+The underflow detection setting can be disabled by means of the per-head
+register NV_PDISP_RG_UNDERFLOW(i), accessible via the GPUs' BAR0 (where 'i' is
+the head index):
+
+ NV_PDISP_RG_UNDERFLOW(i) (0x00616308 + (i) * 2048)
+
+Since the affected GPUs implement four heads, four such registers are
+available. To disable the underflow detection, the registers need to be
+programmed with the value 0.
+
+Scope:
+
+The problem described above affects GK104-based products with VBIOS versions
+below 80.04.63.00.00. This includes (but may not be limited to) the following
+products:
+
+ PCI ID Product Name
+ ------- -----------------
+ 0x11a0 GeForce GTX 680M
+ 0x11a1 GeForce GTX 670MX
+ 0x11a2 GeForce GTX 675MX
+ 0x11a3 GeForce GTX 680MX
+ 0x11bc Quadro K5000M
+ 0x11bd Quadro K4000M
+ 0x11be Quadro K3000M
+
+Register Description:
+
+This register is used for detecting underflows and also determines what action
+the hw should take when an underflow occurs.
+
+ENABLE Turns on underflow reporting. Note that this has no effect on the
+underflow mode. The underflow mode (what to do when an underflow occurs, REPEAT
+or RED, is always active).
+
+UNDERFLOWED Indicates whether an underflow has occurred. This is a "sticky" bit.
+To clear it, software writes a '1' to this bit. UNDERFLOWED is active
+only when the above ENABLE bit is set.
+
+UNDERFLOW_MODE Indicates what to do when an underflow occurs. If REPEAT
+is set, then the raster generator will repeat the last pixel, when a new
+pixel is not available. If RED is set, the raster generator will display
+bright red for any missing pixels.
+
+ 31 24 23 16 15 8 7 0
+.-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-.
+| |0 0 0 0 0 0 0| | RG_UNDERFLOW
+`-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-'
+
+#define NV_PDISP_RG_UNDERFLOW(i) (0x00616308+(i)*2048) /* RW-4A */
+#define NV_PDISP_RG_UNDERFLOW__SIZE_1 4 /* */
+#define NV_PDISP_RG_UNDERFLOW_ENABLE 0:0 /* RWIVF */
+#define NV_PDISP_RG_UNDERFLOW_ENABLE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_RG_UNDERFLOW_ENABLE_ENABLE 0x00000001 /* RW--V */
+#define NV_PDISP_RG_UNDERFLOW_ENABLE_DISABLE 0x00000000 /* RW--V */
+#define NV_PDISP_RG_UNDERFLOW_UNDERFLOWED 4:4 /* RWIVF */
+#define NV_PDISP_RG_UNDERFLOW_UNDERFLOWED_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_RG_UNDERFLOW_UNDERFLOWED_CLR 0x00000001 /* -W--V */
+#define NV_PDISP_RG_UNDERFLOW_UNDERFLOWED_YES 0x00000001 /* R---V */
+#define NV_PDISP_RG_UNDERFLOW_UNDERFLOWED_NO 0x00000000 /* R---V */
+#define NV_PDISP_RG_UNDERFLOW_MODE 8:8 /* RWIVF */
+#define NV_PDISP_RG_UNDERFLOW_MODE_INIT 0x00000000 /* RWI-V */
+#define NV_PDISP_RG_UNDERFLOW_MODE_REPEAT 0x00000000 /* RW--V */
+#define NV_PDISP_RG_UNDERFLOW_MODE_RED 0x00000001 /* RW--V */
+