grub_uint16_t height;
};
+struct linux_vesafb_mode
+{
+ grub_uint8_t res_index;
+ grub_uint8_t depth;
+};
+
enum vga_modes
{
+ VGA_320_200,
+ VGA_640_400,
VGA_640_480,
+ VGA_800_500,
VGA_800_600,
+ VGA_896_672,
+ VGA_1024_640,
VGA_1024_768,
+ VGA_1152_720,
VGA_1280_1024,
+ VGA_1440_900,
+ VGA_1600_1200,
};
-struct linux_vesafb_mode
-{
- grub_uint8_t res_index;
- grub_uint8_t depth;
-};
-
static struct linux_vesafb_res linux_vesafb_res[] =
{
+ { 320, 200 },
+ { 640, 400 },
{ 640, 480 },
+ { 800, 500 },
{ 800, 600 },
+ { 896, 672 },
+ { 1024, 640 },
{ 1024, 768 },
- { 1280, 1024 }
+ { 1152, 720 },
+ { 1280, 1024 },
+ { 1440, 900 },
+ { 1600, 1200 },
};
-/* This is the reverse of the table in [linux]/Documentation/fb/vesafb.txt. */
+/* This is the reverse of the table in [linux]/Documentation/fb/vesafb.txt
+ plus a few more modes based on the table in
+ http://en.wikipedia.org/wiki/VESA_BIOS_Extensions */
struct linux_vesafb_mode linux_vesafb_modes[] =
{
+ { VGA_640_400, 8 }, /* 0x300 */
{ VGA_640_480, 8 }, /* 0x301 */
- { 0, 0 },
+ { VGA_800_600, 4 }, /* 0x302 */
{ VGA_800_600, 8 }, /* 0x303 */
- { 0, 0 },
+ { VGA_1024_768, 4 }, /* 0x304 */
{ VGA_1024_768, 8 }, /* 0x305 */
- { 0, 0 },
+ { VGA_1280_1024, 4 }, /* 0x306 */
{ VGA_1280_1024, 8 }, /* 0x307 */
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
{ 0, 0 },
- { 0, 0 },
- { 0, 0 },
- { 0, 0 },
+ { VGA_320_200, 15 }, /* 0x30d */
+ { VGA_320_200, 16 }, /* 0x30e */
+ { VGA_320_200, 24 }, /* 0x30f */
{ VGA_640_480, 15 }, /* 0x310 */
{ VGA_640_480, 16 }, /* 0x311 */
{ VGA_640_480, 24 }, /* 0x312 */
{ VGA_1280_1024, 15 }, /* 0x319 */
{ VGA_1280_1024, 16 }, /* 0x31a */
{ VGA_1280_1024, 24 }, /* 0x31b */
+ { VGA_1600_1200, 8 }, /* 0x31c */
+ { VGA_1600_1200, 15 }, /* 0x31d */
+ { VGA_1600_1200, 16 }, /* 0x31e */
+ { VGA_1600_1200, 24 }, /* 0x31f */
+ { 0, 0 },
+ { VGA_640_400, 15 }, /* 0x321 */
+ { VGA_640_400, 16 }, /* 0x322 */
+ { VGA_640_400, 24 }, /* 0x323 */
+ { VGA_640_400, 32 }, /* 0x324 */
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { VGA_640_480, 32 }, /* 0x329 */
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { VGA_896_672, 8 }, /* 0x32f */
+ { VGA_896_672, 15 }, /* 0x330 */
+ { VGA_896_672, 16 }, /* 0x331 */
+ { VGA_896_672, 24 }, /* 0x332 */
+ { VGA_896_672, 32 }, /* 0x333 */
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { VGA_1600_1200, 32 }, /* 0x342 */
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { VGA_1440_900, 8 }, /* 0x360 */
+ { VGA_1440_900, 15 }, /* 0x361 */
+ { VGA_1440_900, 16 }, /* 0x362 */
+ { VGA_1440_900, 24 }, /* 0x363 */
+ { VGA_1440_900, 32 }, /* 0x364 */
+ { VGA_1152_720, 8 }, /* 0x365 */
+ { VGA_1152_720, 15 }, /* 0x366 */
+ { VGA_1152_720, 16 }, /* 0x367 */
+ { VGA_1152_720, 24 }, /* 0x368 */
+ { VGA_1152_720, 32 }, /* 0x369 */
+ { VGA_1024_640, 8 }, /* 0x36a */
+ { VGA_1024_640, 15 }, /* 0x36b */
+ { VGA_1024_640, 16 }, /* 0x36c */
+ { VGA_1024_640, 24 }, /* 0x36d */
+ { VGA_1024_640, 32 }, /* 0x36e */
+ { VGA_800_500, 8 }, /* 0x36f */
+ { VGA_800_500, 15 }, /* 0x370 */
+ { VGA_800_500, 16 }, /* 0x371 */
+ { VGA_800_500, 24 }, /* 0x372 */
+ { VGA_800_500, 32 }, /* 0x373 */
};
static inline grub_size_t