diff options
author | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-01-22 10:38:37 -0500 |
---|---|---|
committer | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-01-22 10:38:37 -0500 |
commit | fcc9d2e5a6c89d22b8b773a64fb4ad21ac318446 (patch) | |
tree | a57612d1888735a2ec7972891b68c1ac5ec8faea /arch/arm/mach-u300/u300.c | |
parent | 8dea78da5cee153b8af9c07a2745f6c55057fe12 (diff) |
Diffstat (limited to 'arch/arm/mach-u300/u300.c')
-rw-r--r-- | arch/arm/mach-u300/u300.c | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/arch/arm/mach-u300/u300.c b/arch/arm/mach-u300/u300.c new file mode 100644 index 00000000000..48b3b7f3996 --- /dev/null +++ b/arch/arm/mach-u300/u300.c | |||
@@ -0,0 +1,70 @@ | |||
1 | /* | ||
2 | * | ||
3 | * arch/arm/mach-u300/u300.c | ||
4 | * | ||
5 | * | ||
6 | * Copyright (C) 2006-2009 ST-Ericsson AB | ||
7 | * License terms: GNU General Public License (GPL) version 2 | ||
8 | * Platform machine definition. | ||
9 | * Author: Linus Walleij <linus.walleij@stericsson.com> | ||
10 | */ | ||
11 | #include <linux/kernel.h> | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/mm.h> | ||
14 | #include <linux/sched.h> | ||
15 | #include <linux/interrupt.h> | ||
16 | #include <linux/ioport.h> | ||
17 | #include <linux/memblock.h> | ||
18 | #include <linux/platform_device.h> | ||
19 | #include <linux/io.h> | ||
20 | #include <mach/hardware.h> | ||
21 | #include <mach/platform.h> | ||
22 | #include <asm/mach-types.h> | ||
23 | #include <asm/mach/arch.h> | ||
24 | #include <asm/memory.h> | ||
25 | |||
26 | static void __init u300_reserve(void) | ||
27 | { | ||
28 | /* | ||
29 | * U300 - This platform family can share physical memory | ||
30 | * between two ARM cpus, one running Linux and the other | ||
31 | * running another OS. | ||
32 | */ | ||
33 | #ifdef CONFIG_MACH_U300_SINGLE_RAM | ||
34 | #if ((CONFIG_MACH_U300_ACCESS_MEM_SIZE & 1) == 1) && \ | ||
35 | CONFIG_MACH_U300_2MB_ALIGNMENT_FIX | ||
36 | memblock_reserve(PHYS_OFFSET, 0x00100000); | ||
37 | #endif | ||
38 | #endif | ||
39 | } | ||
40 | |||
41 | static void __init u300_init_machine(void) | ||
42 | { | ||
43 | u300_init_devices(); | ||
44 | } | ||
45 | |||
46 | #ifdef CONFIG_MACH_U300_BS2X | ||
47 | #define MACH_U300_STRING "Ericsson AB U300 S25/S26/B25/B26 Prototype Board" | ||
48 | #endif | ||
49 | |||
50 | #ifdef CONFIG_MACH_U300_BS330 | ||
51 | #define MACH_U300_STRING "Ericsson AB U330 S330/B330 Prototype Board" | ||
52 | #endif | ||
53 | |||
54 | #ifdef CONFIG_MACH_U300_BS335 | ||
55 | #define MACH_U300_STRING "Ericsson AB U335 S335/B335 Prototype Board" | ||
56 | #endif | ||
57 | |||
58 | #ifdef CONFIG_MACH_U300_BS365 | ||
59 | #define MACH_U300_STRING "Ericsson AB U365 S365/B365 Prototype Board" | ||
60 | #endif | ||
61 | |||
62 | MACHINE_START(U300, MACH_U300_STRING) | ||
63 | /* Maintainer: Linus Walleij <linus.walleij@stericsson.com> */ | ||
64 | .boot_params = BOOT_PARAMS_OFFSET, | ||
65 | .map_io = u300_map_io, | ||
66 | .reserve = u300_reserve, | ||
67 | .init_irq = u300_init_irq, | ||
68 | .timer = &u300_timer, | ||
69 | .init_machine = u300_init_machine, | ||
70 | MACHINE_END | ||