2007-10-22 12:07:46 +02:00
|
|
|
#include <console/console.h>
|
2004-06-28 13:57:31 +02:00
|
|
|
#include <device/device.h>
|
2007-10-22 12:07:46 +02:00
|
|
|
#include <device/pci.h>
|
|
|
|
#include <device/pci_ids.h>
|
|
|
|
#include <device/pci_ops.h>
|
2009-03-13 18:00:46 +01:00
|
|
|
#include <pc80/keyboard.h>
|
2007-10-22 12:07:46 +02:00
|
|
|
#include <arch/io.h>
|
2004-06-28 13:57:31 +02:00
|
|
|
#include "chip.h"
|
|
|
|
|
2007-10-22 12:07:46 +02:00
|
|
|
static void vga_init(device_t dev)
|
|
|
|
{
|
2009-03-13 18:00:46 +01:00
|
|
|
/* The VGA OPROM already lives at 0xc0000,
|
|
|
|
* force coreboot to use it.
|
|
|
|
*/
|
|
|
|
dev->on_mainboard = 1;
|
|
|
|
dev->rom_address = 0xc0000;
|
|
|
|
|
|
|
|
/* Now do the usual initialization */
|
|
|
|
pci_dev_init(dev);
|
|
|
|
|
|
|
|
/* This sneaked in here, because Qemu does not
|
|
|
|
* emulate a SuperIO chip
|
|
|
|
*/
|
2008-05-06 17:02:22 +02:00
|
|
|
init_pc_keyboard(0x60, 0x64, 0);
|
2007-10-22 12:07:46 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
static struct device_operations vga_operations = {
|
|
|
|
.read_resources = pci_dev_read_resources,
|
|
|
|
.set_resources = pci_dev_set_resources,
|
|
|
|
.enable_resources = pci_dev_enable_resources,
|
|
|
|
.init = vga_init,
|
|
|
|
.ops_pci = 0,
|
|
|
|
};
|
|
|
|
|
2007-10-24 11:08:58 +02:00
|
|
|
static const struct pci_driver vga_driver __pci_driver = {
|
2007-10-22 12:07:46 +02:00
|
|
|
.ops = &vga_operations,
|
|
|
|
.vendor = 0x1013,
|
|
|
|
.device = 0x00b8,
|
|
|
|
};
|
|
|
|
|
2009-02-18 21:41:57 +01:00
|
|
|
struct chip_operations mainboard_ops = {
|
2006-11-05 19:50:49 +01:00
|
|
|
CHIP_NAME("QEMU Mainboard")
|
2004-06-28 13:57:31 +02:00
|
|
|
};
|
|
|
|
|