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