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 91d2d08557262c06509f0370f94a3606ea722ad4..226c7e66b3f858f27a834956542c5f0a14c5f3a5 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);