Re: [PATCH 2.6.21 3/3] x86_64 EFI64 support Try #2

From: Andrew Morton
Date: Tue Jul 03 2007 - 19:31:48 EST


On Mon, 02 Jul 2007 10:06:17 -0700
Chandramouli Narayanan <mouli@xxxxxxxxxxxxxxx> wrote:

> EFI x86_64 support Patch 3 of 3 (try #2)
> ----------------------------------------
> - Fixed redundant check in efifb_init().
>
> This patch depends on the EFI x86_64 patches 1/3 and 2/3.
>
> This patch adds Graphics Output Protocol support to the kernel.
> x86_64 systems with UEFI2.0 firmware conform to UEFI 2.0 specification.
> UEFI2.0 spec deprecates Universal Graphics Adapter (UGA) protocol and
> only Graphics Output Protocol (GOP) is produced. Therefore, the boot loader
> needs to query the UEFI firmware with appropriate Output Protocol and
> pass the video information to the kernel. As a result of GOP
> protocol, an EFI framebuffer driver is needed for displaying console messages.
> Patch 3 of 3 adds a EFI framebuffer driver. The EFI frame buffer driver in this
> patch is based on the Intel Mac framebuffer driver.
>
> The x86_64 ELILO bootloader takes care of passing the video information
> as appropriate for EFI firmware.
>

That's more like a changelog.

Please cc linux-fbdev-devel@xxxxxxxxxxxxxxxxxxxxx and "Antonino A. Daplas"
<adaplas@xxxxxxx> on framebuffer driver patches.

>
> +config FB_EFI
> + bool "EFI-based Framebuffer Support"
> + depends on (FB = y) && X86 && EFI

So this is selectable on i386 as well. Has it been tested there?

> + select FB_CFB_FILLRECT
> + select FB_CFB_COPYAREA
> + select FB_CFB_IMAGEBLIT
> + help
> + This is the EFI frame buffer device driver. If the firmware on
> + your platform is UEFI2.0, select Y to add support for
> + Graphics Output Protocol for early console messages to appear.
> +
> config FB_IMAC
> bool "Intel-based Macintosh Framebuffer Support"
> depends on (FB = y) && X86 && EFI
>
> ...
>
> --- linux-2.6.21-orig/drivers/video/efifb.c 1969-12-31 16:00:00.000000000 -0800
> +++ linux-2.6.21-uefi-finaltest4/drivers/video/efifb.c 2007-06-12 16:16:12.000000000 -0700
> @@ -0,0 +1,249 @@
> +/*
> + * framebuffer driver for Intel Based Mac's
> + *
> + * (c) 2006 Edgar Hucek <gimli@xxxxxxxxxxxxxx>
> + * Original efi driver written by Gerd Knorr <kraxel@xxxxxxxxxxxxxxxxxxxxx>
> + *
> + */
> +
> +#include <linux/delay.h>
> +#include <linux/errno.h>
> +#include <linux/fb.h>
> +#include <linux/kernel.h>
> +#include <linux/init.h>
> +#include <linux/ioport.h>
> +#include <linux/mm.h>
> +#include <linux/module.h>
> +#include <linux/platform_device.h>
> +#include <linux/screen_info.h>
> +#include <linux/slab.h>
> +#include <linux/string.h>
> +#include <linux/dmi.h>
> +#include <linux/efi.h>
> +
> +#include <asm/io.h>

checkpatch.pl will save me work.

> +#ifndef __i386__
> + //screen_info.imacpm_seg = 0;
> +#endif

hmm.

> +
> + if (!request_mem_region(efifb_fix.smem_start, size_total, "efifb")) {
> + printk(KERN_WARNING
> + "efifb: cannot reserve video memory at 0x%lx\n",
> + efifb_fix.smem_start);

KERN_ERR?


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/