x86: Add CE4100 platform support

Add CE4100 platform support. CE4100 needs early setup like
moorestown.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Dirk Brandewie <dirk.brandewie@gmail.com>
LKML-Reference: <94720fd7f5564a12ebf202cf2c4f4c0d619aab35.1289331834.git.dirk.brandewie@gmail.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

+66
+1
Documentation/x86/boot.txt
··· 600 600 0x00000001 lguest 601 601 0x00000002 Xen 602 602 0x00000003 Moorestown MID 603 + 0x00000004 CE4100 TV Platform 603 604 604 605 Field name: hardware_subarch_data 605 606 Type: write (subarch-dependent)
+11
arch/x86/Kconfig
··· 377 377 378 378 If unsure, choose "PC-compatible" instead. 379 379 380 + config X86_INTEL_CE 381 + bool "CE4100 TV platform" 382 + depends on PCI 383 + depends on PCI_GODIRECT 384 + depends on X86_32 385 + depends on X86_EXTENDED_PLATFORM 386 + ---help--- 387 + Select for the Intel CE media processor (CE4100) SOC. 388 + This option compiles in support for the CE4100 SOC for settop 389 + boxes and media devices. 390 + 380 391 config X86_MRST 381 392 bool "Moorestown MID platform" 382 393 depends on PCI
+1
arch/x86/include/asm/bootparam.h
··· 124 124 X86_SUBARCH_LGUEST, 125 125 X86_SUBARCH_XEN, 126 126 X86_SUBARCH_MRST, 127 + X86_SUBARCH_CE4100, 127 128 X86_NR_SUBARCHS, 128 129 }; 129 130
+6
arch/x86/include/asm/setup.h
··· 53 53 static inline void x86_mrst_early_setup(void) { } 54 54 #endif 55 55 56 + #ifdef CONFIG_X86_INTEL_CE 57 + extern void x86_ce4100_early_setup(void); 58 + #else 59 + static inline void x86_ce4100_early_setup(void) { } 60 + #endif 61 + 56 62 #ifndef _SETUP 57 63 58 64 /*
+3
arch/x86/kernel/head32.c
··· 61 61 case X86_SUBARCH_MRST: 62 62 x86_mrst_early_setup(); 63 63 break; 64 + case X86_SUBARCH_CE4100: 65 + x86_ce4100_early_setup(); 66 + break; 64 67 default: 65 68 i386_default_early_setup(); 66 69 break;
+1
arch/x86/platform/Makefile
··· 1 1 # Platform specific code goes here 2 + obj-y += ce4100/ 2 3 obj-y += efi/ 3 4 obj-y += mrst/ 4 5 obj-y += olpc/
+1
arch/x86/platform/ce4100/Makefile
··· 1 + obj-$(CONFIG_X86_INTEL_CE) += ce4100.o
+42
arch/x86/platform/ce4100/ce4100.c
··· 1 + /* 2 + * Intel CE4100 platform specific setup code 3 + * 4 + * (C) Copyright 2010 Intel Corporation 5 + * 6 + * This program is free software; you can redistribute it and/or 7 + * modify it under the terms of the GNU General Public License 8 + * as published by the Free Software Foundation; version 2 9 + * of the License. 10 + */ 11 + #include <linux/init.h> 12 + #include <linux/kernel.h> 13 + #include <linux/irq.h> 14 + #include <linux/module.h> 15 + 16 + #include <asm/setup.h> 17 + 18 + static int ce4100_i8042_detect(void) 19 + { 20 + return 0; 21 + } 22 + 23 + static void __init sdv_arch_setup(void) 24 + { 25 + } 26 + 27 + static void __init sdv_find_smp_config(void) 28 + { 29 + } 30 + 31 + /* 32 + * CE4100 specific x86_init function overrides and early setup 33 + * calls. 34 + */ 35 + void __init x86_ce4100_early_setup(void) 36 + { 37 + x86_init.oem.arch_setup = sdv_arch_setup; 38 + x86_platform.i8042_detect = ce4100_i8042_detect; 39 + x86_init.resources.probe_roms = x86_init_noop; 40 + x86_init.mpparse.get_smp_config = x86_init_uint_noop; 41 + x86_init.mpparse.find_smp_config = sdv_find_smp_config; 42 + }