diff options
| author | Andi Kleen <andi@firstfloor.org> | 2008-10-21 08:05:00 -0400 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2008-12-12 11:02:21 -0500 |
| commit | fd28a5b58dddf5cb5df162ae5c8797a63171c31d (patch) | |
| tree | a83de96d80d63d3e3c2759e62cd308334e3e7854 | |
| parent | 6c34bc2976b30dc8b56392c020e25bae1f363cab (diff) | |
x86: remove simnow earlyprintk support
Impact: remove obsolete code
The later versions of SimNow! actually all have serial console
emulation, so the direct interface isn't needed anymore. So remove
the undocumented simnow earlyprintk console.
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
| -rw-r--r-- | arch/x86/kernel/early_printk.c | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/arch/x86/kernel/early_printk.c b/arch/x86/kernel/early_printk.c index 34ad997d3834..23b138e31e9c 100644 --- a/arch/x86/kernel/early_printk.c +++ b/arch/x86/kernel/early_printk.c | |||
| @@ -875,49 +875,6 @@ static struct console early_dbgp_console = { | |||
| 875 | }; | 875 | }; |
| 876 | #endif | 876 | #endif |
| 877 | 877 | ||
| 878 | /* Console interface to a host file on AMD's SimNow! */ | ||
| 879 | |||
| 880 | static int simnow_fd; | ||
| 881 | |||
| 882 | enum { | ||
| 883 | MAGIC1 = 0xBACCD00A, | ||
| 884 | MAGIC2 = 0xCA110000, | ||
| 885 | XOPEN = 5, | ||
| 886 | XWRITE = 4, | ||
| 887 | }; | ||
| 888 | |||
| 889 | static noinline long simnow(long cmd, long a, long b, long c) | ||
| 890 | { | ||
| 891 | long ret; | ||
| 892 | |||
| 893 | asm volatile("cpuid" : | ||
| 894 | "=a" (ret) : | ||
| 895 | "b" (a), "c" (b), "d" (c), "0" (MAGIC1), "D" (cmd + MAGIC2)); | ||
| 896 | return ret; | ||
| 897 | } | ||
| 898 | |||
| 899 | static void __init simnow_init(char *str) | ||
| 900 | { | ||
| 901 | char *fn = "klog"; | ||
| 902 | |||
| 903 | if (*str == '=') | ||
| 904 | fn = ++str; | ||
| 905 | /* error ignored */ | ||
| 906 | simnow_fd = simnow(XOPEN, (unsigned long)fn, O_WRONLY|O_APPEND|O_CREAT, 0644); | ||
| 907 | } | ||
| 908 | |||
| 909 | static void simnow_write(struct console *con, const char *s, unsigned n) | ||
| 910 | { | ||
| 911 | simnow(XWRITE, simnow_fd, (unsigned long)s, n); | ||
| 912 | } | ||
| 913 | |||
| 914 | static struct console simnow_console = { | ||
| 915 | .name = "simnow", | ||
| 916 | .write = simnow_write, | ||
| 917 | .flags = CON_PRINTBUFFER, | ||
| 918 | .index = -1, | ||
| 919 | }; | ||
| 920 | |||
| 921 | /* Direct interface for emergencies */ | 878 | /* Direct interface for emergencies */ |
| 922 | static struct console *early_console = &early_vga_console; | 879 | static struct console *early_console = &early_vga_console; |
| 923 | static int __initdata early_console_initialized; | 880 | static int __initdata early_console_initialized; |
| @@ -960,10 +917,6 @@ static int __init setup_early_printk(char *buf) | |||
| 960 | max_ypos = boot_params.screen_info.orig_video_lines; | 917 | max_ypos = boot_params.screen_info.orig_video_lines; |
| 961 | current_ypos = boot_params.screen_info.orig_y; | 918 | current_ypos = boot_params.screen_info.orig_y; |
| 962 | early_console = &early_vga_console; | 919 | early_console = &early_vga_console; |
| 963 | } else if (!strncmp(buf, "simnow", 6)) { | ||
| 964 | simnow_init(buf + 6); | ||
| 965 | early_console = &simnow_console; | ||
| 966 | keep_early = 1; | ||
| 967 | #ifdef CONFIG_EARLY_PRINTK_DBGP | 920 | #ifdef CONFIG_EARLY_PRINTK_DBGP |
| 968 | } else if (!strncmp(buf, "dbgp", 4)) { | 921 | } else if (!strncmp(buf, "dbgp", 4)) { |
| 969 | if (early_dbgp_init(buf+4) < 0) | 922 | if (early_dbgp_init(buf+4) < 0) |
