blob: abf1299dd104ac66e44cd874756274c499e97484 [file] [log] [blame]
Stefan Reinauerd56981f2007-10-22 10:07:46 +00001#include <console/console.h>
Stefan Reinauer4a3bb762004-06-28 11:57:31 +00002#include <device/device.h>
Stefan Reinauerd56981f2007-10-22 10:07:46 +00003#include <device/pci.h>
4#include <device/pci_ids.h>
5#include <device/pci_ops.h>
6#include <arch/io.h>
Stefan Reinauer4a3bb762004-06-28 11:57:31 +00007#include "chip.h"
8
Stefan Reinauerd56981f2007-10-22 10:07:46 +00009void vga_enable_console();
10
11static void vga_init(device_t dev)
12{
Stefan Reinauerf8ee1802008-01-18 15:08:58 +000013 /* code to make vga init run in real mode - does work but against the current coreboot philosophy */
Stefan Reinauerd56981f2007-10-22 10:07:46 +000014 printk_debug("INSTALL REAL-MODE IDT\n");
15 setup_realmode_idt();
16 printk_debug("DO THE VGA BIOS\n");
17 do_vgabios();
18
19 vga_enable_console();
Aaron Lwe2342f8b2008-05-06 15:02:22 +000020
21 init_pc_keyboard(0x60, 0x64, 0);
Stefan Reinauerd56981f2007-10-22 10:07:46 +000022}
23
24static struct device_operations vga_operations = {
25 .read_resources = pci_dev_read_resources,
26 .set_resources = pci_dev_set_resources,
27 .enable_resources = pci_dev_enable_resources,
28 .init = vga_init,
29 .ops_pci = 0,
30};
31
Stefan Reinauerf1cf1f72007-10-24 09:08:58 +000032static const struct pci_driver vga_driver __pci_driver = {
Stefan Reinauerd56981f2007-10-22 10:07:46 +000033 .ops = &vga_operations,
34 .vendor = 0x1013,
35 .device = 0x00b8,
36};
37
Myles Watsonb8c2aa22008-02-07 20:37:37 +000038struct chip_operations mainboard_emulation_qemu_x86_ops = {
Uwe Hermanna7aa29b2006-11-05 18:50:49 +000039 CHIP_NAME("QEMU Mainboard")
Stefan Reinauer4a3bb762004-06-28 11:57:31 +000040};
41