#include <stdlib.h>
#include <string.h>
#include <smp/spinlock.h>
+#if CONFIG_ARCH_X86
+#include <arch/ebda.h>
+#endif
/** Linked list of ALL devices */
struct device *all_devices = &dev_root;
(resource->flags & IORESOURCE_ASSIGNED)) {
printk(BIOS_ERR,
"Resource limit looks wrong! (no APIC?)\n");
- printk(BIOS_ERR, "%s %02lx limit %08Lx\n",
+ printk(BIOS_ERR, "%s %02lx limit %08llx\n",
dev_path(dev), resource->index, resource->limit);
}
for (res = dev->resource_list; res; res = res->next) {
if ((res->flags & IORESOURCE_FIXED))
continue;
- printk(BIOS_SPEW, "%s:@%s %02lx limit %08Lx\n", __func__,
+ printk(BIOS_SPEW, "%s:@%s %02lx limit %08llx\n", __func__,
dev_path(dev), res->index, res->limit);
if ((res->flags & MEM_MASK) == PREF_TYPE &&
(res->limit < limits.pref.limit))
else
continue;
- printk(BIOS_SPEW, "%s2: %s@%02lx limit %08Lx\n", __func__,
+ printk(BIOS_SPEW, "%s2: %s@%02lx limit %08llx\n", __func__,
dev_path(dev), res->index, res->limit);
- printk(BIOS_SPEW, "\tlim->base %08Lx lim->limit %08Lx\n",
+ printk(BIOS_SPEW, "\tlim->base %08llx lim->limit %08llx\n",
lim->base, lim->limit);
/* Is the resource outside the limits? */
printk(BIOS_ERR, "dev_root missing scan_bus operation");
return;
}
+ printk(BIOS_INFO, "Enumerating buses... starting with root now\n");
scan_bus(root, 0);
printk(BIOS_INFO, "done\n");
}
printk(BIOS_INFO, "Initializing devices...\n");
+#if CONFIG_ARCH_X86
+ /* Ensure EBDA is prepared before Option ROMs. */
+ setup_default_ebda();
+#endif
+
/* First call the mainboard init. */
init_dev(&dev_root);