^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) ==============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) What is efifb?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) ==============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) This is a generic EFI platform driver for systems with UEFI firmware. The
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) system must be booted via the EFI stub for this to be usable. efifb supports
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) both firmware with Graphics Output Protocol (GOP) displays as well as older
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) systems with only Universal Graphics Adapter (UGA) displays.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) Supported Hardware
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) ==================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) - iMac 17"/20"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) - Macbook
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) - Macbook Pro 15"/17"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) - MacMini
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) - ARM/ARM64/X86 systems with UEFI firmware
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) How to use it?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) ==============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) For UGA displays, efifb does not have any kind of autodetection of your
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) machine.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) You have to add the following kernel parameters in your elilo.conf::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) Macbook :
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) video=efifb:macbook
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) MacMini :
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) video=efifb:mini
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) Macbook Pro 15", iMac 17" :
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) video=efifb:i17
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) Macbook Pro 17", iMac 20" :
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) video=efifb:i20
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) For GOP displays, efifb can autodetect the display's resolution and framebuffer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) address, so these should work out of the box without any special parameters.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) Accepted options:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) ======= ===========================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) nowc Don't map the framebuffer write combined. This can be used
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) to workaround side-effects and slowdowns on other CPU cores
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) when large amounts of console data are written.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) ======= ===========================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) Options for GOP displays:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) mode=n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) The EFI stub will set the mode of the display to mode number n if
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) possible.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) <xres>x<yres>[-(rgb|bgr|<bpp>)]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) The EFI stub will search for a display mode that matches the specified
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) horizontal and vertical resolution, and optionally bit depth, and set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) the mode of the display to it if one is found. The bit depth can either
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) "rgb" or "bgr" to match specifically those pixel formats, or a number
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) for a mode with matching bits per pixel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) auto
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) The EFI stub will choose the mode with the highest resolution (product
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) of horizontal and vertical resolution). If there are multiple modes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) with the highest resolution, it will choose one with the highest color
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) depth.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) list
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) The EFI stub will list out all the display modes that are available. A
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) specific mode can then be chosen using one of the above options for the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) next boot.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) Edgar Hucek <gimli@dark-green.com>