Skip to content

Commit

Permalink
x86: GEODE add the "mfgptfix" boot time option to fix MFGPT timers
Browse files Browse the repository at this point in the history
The new "mfgptfix" boot command line option may be usd to fix MFGPT
timers on AMD Geode platforms when the BIOS has incorrectly applied
a workaround. TinyBIOS version 0.98 is known to be affected, 0.99
fixes the problem by letting the user disable the workaround.

Signed-off-by: Willy Tarreau <w@1wt.eu>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
  • Loading branch information
Willy Tarreau authored and Ingo Molnar committed Jan 30, 2008
1 parent 45078cb commit e6c4dc6
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 0 deletions.
5 changes: 5 additions & 0 deletions Documentation/kernel-parameters.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1092,6 +1092,11 @@ and is between 256 and 4096 characters. It is defined in the file
Multi-Function General Purpose Timers on AMD Geode
platforms.

mfgptfix [X86-32] Fix MFGPT timers on AMD Geode platforms when
the BIOS has incorrectly applied a workaround. TinyBIOS
version 0.98 is known to be affected, 0.99 fixes the
problem by letting the user disable the workaround.

mga= [HW,DRM]

mousedev.tap_time=
Expand Down
15 changes: 15 additions & 0 deletions arch/x86/kernel/mfgpt_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,21 @@ static int __init mfgpt_disable(char *s)
}
__setup("nomfgpt", mfgpt_disable);

/* Reset the MFGPT timers. This is required by some broken BIOSes which already
* do the same and leave the system in an unstable state. TinyBIOS 0.98 is
* affected at least (0.99 is OK with MFGPT workaround left to off).
*/
static int __init mfgpt_fix(char *s)
{
u32 val, dummy;

/* The following udocumented bit resets the MFGPT timers */
val = 0xFF; dummy = 0;
wrmsr(0x5140002B, val, dummy);
return 1;
}
__setup("mfgptfix", mfgpt_fix);

/*
* Check whether any MFGPTs are available for the kernel to use. In most
* cases, firmware that uses AMD's VSA code will claim all timers during
Expand Down

0 comments on commit e6c4dc6

Please sign in to comment.