aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2009-08-29 08:54:20 -0400
committerThomas Gleixner <tglx@linutronix.de>2009-08-31 05:09:40 -0400
commit3f4110a48a749a1aa1c54fb807afb3f32f49711c (patch)
tree5c0cab75bbb0868b59ee9a5b9f76fb2f5d325211
parent162bc7ab01a00eba1c5d614e64a51e1268ee3f96 (diff)
x86: Add Moorestown early detection
Moorestown MID devices need to be detected early in the boot process to setup and do not call x86_default_early_setup as there is no EBDA region to reserve. [ Copied the minimal code from Jacobs latest MRST series ] Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Jacob Pan <jacob.jun.pan@intel.com>
-rw-r--r--arch/x86/Kconfig13
-rw-r--r--arch/x86/include/asm/setup.h6
-rw-r--r--arch/x86/kernel/Makefile1
-rw-r--r--arch/x86/kernel/head32.c3
-rw-r--r--arch/x86/kernel/mrst.c24
5 files changed, 47 insertions, 0 deletions
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 13ffa5df37d7..586d84557f75 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -318,6 +318,7 @@ config X86_EXTENDED_PLATFORM
318 SGI 320/540 (Visual Workstation) 318 SGI 320/540 (Visual Workstation)
319 Summit/EXA (IBM x440) 319 Summit/EXA (IBM x440)
320 Unisys ES7000 IA32 series 320 Unisys ES7000 IA32 series
321 Moorestown MID devices
321 322
322 If you have one of these systems, or if you want to build a 323 If you have one of these systems, or if you want to build a
323 generic distribution kernel, say Y here - otherwise say N. 324 generic distribution kernel, say Y here - otherwise say N.
@@ -377,6 +378,18 @@ config X86_ELAN
377 378
378 If unsure, choose "PC-compatible" instead. 379 If unsure, choose "PC-compatible" instead.
379 380
381config X86_MRST
382 bool "Moorestown MID platform"
383 depends on X86_32
384 depends on X86_EXTENDED_PLATFORM
385 ---help---
386 Moorestown is Intel's Low Power Intel Architecture (LPIA) based Moblin
387 Internet Device(MID) platform. Moorestown consists of two chips:
388 Lincroft (CPU core, graphics, and memory controller) and Langwell IOH.
389 Unlike standard x86 PCs, Moorestown does not have many legacy devices
390 nor standard legacy replacement devices/features. e.g. Moorestown does
391 not contain i8259, i8254, HPET, legacy BIOS, most of the io ports.
392
380config X86_RDC321X 393config X86_RDC321X
381 bool "RDC R-321x SoC" 394 bool "RDC R-321x SoC"
382 depends on X86_32 395 depends on X86_32
diff --git a/arch/x86/include/asm/setup.h b/arch/x86/include/asm/setup.h
index 861e1fe2303b..18e496c98ff0 100644
--- a/arch/x86/include/asm/setup.h
+++ b/arch/x86/include/asm/setup.h
@@ -49,6 +49,12 @@ extern void reserve_standard_io_resources(void);
49extern void i386_reserve_resources(void); 49extern void i386_reserve_resources(void);
50extern void setup_default_timer_irq(void); 50extern void setup_default_timer_irq(void);
51 51
52#ifdef CONFIG_X86_MRST
53extern void x86_mrst_early_setup(void);
54#else
55static inline void x86_mrst_early_setup(void) { }
56#endif
57
52#ifndef _SETUP 58#ifndef _SETUP
53 59
54/* 60/*
diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile
index ccf3db607c2d..5f33316610dc 100644
--- a/arch/x86/kernel/Makefile
+++ b/arch/x86/kernel/Makefile
@@ -104,6 +104,7 @@ obj-$(CONFIG_SCx200) += scx200.o
104scx200-y += scx200_32.o 104scx200-y += scx200_32.o
105 105
106obj-$(CONFIG_OLPC) += olpc.o 106obj-$(CONFIG_OLPC) += olpc.o
107obj-$(CONFIG_X86_MRST) += mrst.o
107 108
108microcode-y := microcode_core.o 109microcode-y := microcode_core.o
109microcode-$(CONFIG_MICROCODE_INTEL) += microcode_intel.o 110microcode-$(CONFIG_MICROCODE_INTEL) += microcode_intel.o
diff --git a/arch/x86/kernel/head32.c b/arch/x86/kernel/head32.c
index 441c075e2b80..4f8e2507e8f3 100644
--- a/arch/x86/kernel/head32.c
+++ b/arch/x86/kernel/head32.c
@@ -45,6 +45,9 @@ void __init i386_start_kernel(void)
45 45
46 /* Call the subarch specific early setup function */ 46 /* Call the subarch specific early setup function */
47 switch (boot_params.hdr.hardware_subarch) { 47 switch (boot_params.hdr.hardware_subarch) {
48 case X86_SUBARCH_MRST:
49 x86_mrst_early_setup();
50 break;
48 default: 51 default:
49 i386_default_early_setup(); 52 i386_default_early_setup();
50 break; 53 break;
diff --git a/arch/x86/kernel/mrst.c b/arch/x86/kernel/mrst.c
new file mode 100644
index 000000000000..3b7078abc871
--- /dev/null
+++ b/arch/x86/kernel/mrst.c
@@ -0,0 +1,24 @@
1/*
2 * mrst.c: Intel Moorestown platform specific setup code
3 *
4 * (C) Copyright 2008 Intel Corporation
5 * Author: Jacob Pan (jacob.jun.pan@intel.com)
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; version 2
10 * of the License.
11 */
12#include <linux/init.h>
13
14#include <asm/setup.h>
15
16/*
17 * Moorestown specific x86_init function overrides and early setup
18 * calls.
19 */
20void __init x86_mrst_early_setup(void)
21{
22 x86_init.resources.probe_roms = x86_init_noop;
23 x86_init.resources.reserve_resources = x86_init_noop;
24}