Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 113356
b: refs/heads/master
c: fc38151
h: refs/heads/master
v: v3
  • Loading branch information
Ingo Molnar committed Sep 16, 2008
1 parent 4c9d581 commit 671ca9d
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 1e22436eba84edfec9c25e5a25d09062c4f91ca9
refs/heads/master: fc38151947477596aa27df6c4306ad6008dc6711
20 changes: 20 additions & 0 deletions trunk/arch/x86/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -1089,6 +1089,26 @@ config X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK
Set whether the default state of memory_corruption_check is
on or off.

config X86_RESERVE_LOW_64K
bool "Reserve low 64K of RAM on AMI/Phoenix BIOSen"
default y
help
Reserve the first 64K of physical RAM on BIOSes that are known
to potentially corrupt that memory range. A numbers of BIOSes are
known to utilize this area during suspend/resume, so it must not
be used by the kernel.

Set this to N if you are absolutely sure that you trust the BIOS
to get all its memory reservations and usages right.

If you have doubts about the BIOS (e.g. suspend/resume does not
work or there's kernel crashes after certain hardware hotplug
events) and it's not AMI or Phoenix, then you might want to enable
X86_CHECK_BIOS_CORRUPTION=y to allow the kernel to check typical
corruption patterns.

Say Y if unsure.

config MATH_EMULATION
bool
prompt "Math emulation" if X86_32
Expand Down
4 changes: 3 additions & 1 deletion trunk/arch/x86/kernel/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -735,13 +735,14 @@ static int __init dmi_low_memory_corruption(const struct dmi_system_id *d)
"%s detected: BIOS may corrupt low RAM, working it around.\n",
d->ident);

reserve_early(0x0, 0x10000, "BIOS quirk");
reserve_early_overlap_ok(0x0, 0x10000, "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[] = {
#ifdef CONFIG_X86_RESERVE_LOW_64K
{
.callback = dmi_low_memory_corruption,
.ident = "AMI BIOS",
Expand All @@ -757,6 +758,7 @@ static struct dmi_system_id __initdata bad_bios_dmi_table[] = {
},
},
{}
#endif
};

/*
Expand Down

0 comments on commit 671ca9d

Please sign in to comment.