summaryrefslogtreecommitdiff
path: root/src/mainboard/emulation/qemu-i386/mainboard.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainboard/emulation/qemu-i386/mainboard.c')
-rw-r--r--src/mainboard/emulation/qemu-i386/mainboard.c49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/mainboard/emulation/qemu-i386/mainboard.c b/src/mainboard/emulation/qemu-i386/mainboard.c
new file mode 100644
index 0000000000..270e5df9eb
--- /dev/null
+++ b/src/mainboard/emulation/qemu-i386/mainboard.c
@@ -0,0 +1,49 @@
+#include <console/console.h>
+#include <device/device.h>
+#include <device/pci.h>
+#include <device/pci_ids.h>
+#include <device/pci_ops.h>
+
+#include <arch/io.h>
+#include <device/chip.h>
+#include "chip.h"
+
+void cpufixup(unsigned long mem)
+{
+ printk_spew("Welcome to LinuxBIOS CPU fixup. done.\n");
+}
+
+static int mainboard_scan_bus(device_t root, int maxbus)
+{
+ int retval;
+ printk_spew("%s: root %p maxbus %d\n", __FUNCTION__, root, maxbus);
+ retval = pci_scan_bus(root->bus, 0, 0xff, maxbus);
+ printk_spew("DONE %s: return %d\n", __FUNCTION__, maxbus);
+ return maxbus;
+}
+
+static struct device_operations mainboard_operations = {
+ .read_resources = root_dev_read_resources,
+ .set_resources = root_dev_set_resources,
+ .enable_resources = enable_childrens_resources,
+ .init = 0,
+ .scan_bus = mainboard_scan_bus,
+ .enable = 0,
+};
+
+static void enumerate(struct chip *chip)
+{
+ struct chip *child;
+ dev_root.ops = &mainboard_operations;
+ chip->dev = &dev_root;
+ chip->bus = 0;
+ for(child = chip->children; child; child = child->next) {
+ child->bus = &dev_root.link[0];
+ }
+}
+
+struct chip_control mainboard_emulation_qemu_i386_control = {
+ .enumerate = enumerate,
+ .name = "qemu mainboard ",
+};
+