x86: fsp: Set up an MTRR for the graphics frame buffer
authorSimon Glass <sjg@chromium.org>
Sat, 7 Dec 2019 04:42:19 +0000 (21:42 -0700)
committerBin Meng <bmeng.cn@gmail.com>
Sun, 15 Dec 2019 03:44:17 +0000 (11:44 +0800)
The FSP-S may do this but at least for coral it does not. Set this up so
that graphics is not deathly slow.

It isn't clear whether the FSP is expected to set up MTRR. It is not
mentioned in the APL FSP document.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
arch/x86/lib/fsp/fsp_graphics.c

index 91d2d08..226c7e6 100644 (file)
@@ -8,6 +8,7 @@
 #include <vbe.h>
 #include <video.h>
 #include <asm/fsp/fsp_support.h>
+#include <asm/mtrr.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -97,6 +98,9 @@ static int fsp_video_probe(struct udevice *dev)
        if (ret)
                goto err;
 
+       mtrr_add_request(MTRR_TYPE_WRCOMB, vesa->phys_base_ptr, 256 << 20);
+       mtrr_commit(true);
+
        printf("%dx%dx%d\n", uc_priv->xsize, uc_priv->ysize,
               vesa->bits_per_pixel);