}
#endif
+static int __init dmi_low_memory_corruption(const struct dmi_system_id *d)
+{
+ printk(KERN_NOTICE
+ "%s detected: BIOS corrupts 0xc000, working it around.\n",
+ d->ident);
+
+ reserve_early(0xc000, 0xc400, "BIOS quirk");
+
+ return 0;
+}
+
+/* List of systems that have known low memory corruption BIOS problems */
+static struct dmi_system_id __initdata bad_bios_dmi_table[] = {
+ {
+ .callback = dmi_low_memory_corruption,
+ .ident = "AMI BIOS",
+ .matches = {
+ DMI_MATCH(DMI_BIOS_VENDOR, "American Megatrends Inc."),
+ },
+ },
+ {}
+};
+
/*
* Determine if we were loaded by an EFI loader. If so, then we have also been
* passed the efi memmap, systab, etc., so we should use these data structures
printk(KERN_INFO "Command line: %s\n", boot_command_line);
#endif
+ dmi_check_system(bad_bios_dmi_table);
+
early_cpu_init();
early_ioremap_init();
#endif
#endif
}
+
+