
Am 14. Februar 2023 20:48:58 MEZ schrieb Simon Glass sjg@chromium.org:
Hi Heinrich,
On Fri, 10 Feb 2023 at 05:11, Heinrich Schuchardt xypron.glpk@gmx.de wrote:
On 2/5/23 20:46, Simon Glass wrote:
Add support for this to EFI in case it becomes useful. At present it just slows things down. Enable CONFIG_VIDEO_COPY to turn it on.
Signed-off-by: Simon Glass sjg@chromium.org
arch/x86/dts/efi-x86_app.dts | 1 + drivers/video/efi.c | 11 +++++++++++ 2 files changed, 12 insertions(+)
diff --git a/arch/x86/dts/efi-x86_app.dts b/arch/x86/dts/efi-x86_app.dts index a5316e2a1a7..7afa3d72d57 100644 --- a/arch/x86/dts/efi-x86_app.dts +++ b/arch/x86/dts/efi-x86_app.dts @@ -27,6 +27,7 @@ }; efi-fb { compatible = "efi-fb";
u-boot,dm-pre-reloc; };
};
diff --git a/drivers/video/efi.c b/drivers/video/efi.c index 169637c2882..9135a8e8187 100644 --- a/drivers/video/efi.c +++ b/drivers/video/efi.c @@ -207,6 +207,16 @@ err: return ret; }
+static int efi_video_bind(struct udevice *dev) +{
struct video_uc_plat *plat = dev_get_uclass_plat(dev);
/* Use a 16MB frame buffer in case VIDEO_COPY is enabled */
plat->copy_size = 16 << 20;
This does not work with today's display sizes:
3840 * 2160 * 4 = 33177600 7680 * 4320 * 4 = 132710400
You have to determine the buffer size from the mode information.
I am trying to do this when the device is bound, i.e. before we know the mode information. How about I just increase it?
Why not access the graphics output protocol here?
You have to look for a graphics output protocol before binding a video device anyway.
Best regards
Heinrich
BTW I notice that the EFI display is very slow on x86, e.g. with scrolling. Are the mtrrs supposed to be set up?
Regards, Simon